| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package com.uas.eis.task;
- import com.uas.eis.beans.result.CrmQueryResult;
- import com.uas.eis.dao.BaseDao;
- import com.uas.eis.dao.SqlRowList;
- import com.uas.eis.manager.CustomerManager;
- import com.uas.eis.utils.Constant;
- import com.uas.eis.utils.DateUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.EnableAsync;
- import org.springframework.scheduling.annotation.EnableScheduling;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import java.math.BigDecimal;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- @Component
- @EnableAsync
- @EnableScheduling
- public class CustomerTask {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- private BaseDao baseDao;
- @Autowired
- private CustomerManager customerManager;
- @Scheduled(cron = "*/10 * * * * ?")
- public void syncCustomers() {
- try {
- List<String> field_values = new ArrayList<>();
- SqlRowList rs = baseDao.queryForRowSet("select ml_syncTime from (select * from FXXKDockingErrorlog where 1=2 and nvl(ML_TYPE,' ')='客户资料下载' and ML_SYNCTIME is not null order by ml_date desc) where rownum=1");
- if(rs.next()){
- String ml_syncTime = rs.getGeneralString("ml_syncTime");
- field_values.add(ml_syncTime);
- CrmQueryResult crmQueryResult = customerManager.queryCustomer(field_values);
- int errorCode = crmQueryResult.getErrorCode();
- if(errorCode == 0){
- Map<String, Object> data = crmQueryResult.getData();
- List<Map<String, Object>> dataList = (List<Map<String,Object>>) data.get("dataList");
- //m:成功条数 n:失败条数
- int m=0,n=0;
- if(dataList.size()>0){
- //最后(即最近)一次同步时间
- Long create_time_Last = Long.parseLong(new BigDecimal(dataList.get(dataList.size()-1).get("create_time").toString()).toPlainString());
- for (int i = 0; i < dataList.size(); i++) {
- Object _id = dataList.get(i).get("_id");
- Object name = dataList.get(i).get("name");
- SimpleDateFormat sdf = new SimpleDateFormat(Constant.YMD_HMS);
- if(baseDao.checkIf("customer", "cu_name='" + name + "'")){
- baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'客户名称已存在','客户资料下载','"+name+"')");
- logger.info("异常信息:客户名称已存在");
- n++;
- continue;
- }
- try {
- Object em_code = baseDao.getFieldDataByCondition("employee", "max(em_code) em_code", "em_name='" + dataList.get(i).get("field_w9e4q__c") + "'");
- Long create_time = Long.parseLong(new BigDecimal(dataList.get(i).get("create_time").toString()).toPlainString());
- Long last_modified_time = Long.parseLong(new BigDecimal(dataList.get(i).get("last_modified_time").toString()).toPlainString());
- String sql="insert into customer(cu_id,cu_code,cu_name,cu_shortname,cu_add2,cu_sellercode,cu_sellername,cu_kind," +
- "cu_mobile,cu_email,cu_recordman,cu_recorddate,cu_lastdate,cu_auditstatus,cu_auditstatuscode,CU_FXXKID)" +
- "values(CUSTOMER_SEQ.nextval,'"+dataList.get(i).get("account_no")+"','"+name+"','"+dataList.get(i).get("UDSText3__c")+"','"+ dataList.get(i).get("address")+"'," +
- "'"+em_code+"','"+dataList.get(i).get("field_w9e4q__c")+"','"+dataList.get(i).get("account_type")+"'," +
- "'"+dataList.get(i).get("tel")+"','"+dataList.get(i).get("email")+"'," +
- "'"+dataList.get(i).get("created_by")+"',"+DateUtil.parseDateToOracleString(Constant.YMD_HMS,sdf.parse(sdf.format(create_time)))+"," +
- DateUtil.parseDateToOracleString(Constant.YMD_HMS,sdf.parse(sdf.format(last_modified_time)))+",'在录入','ENTERING','"+_id+"')";
- baseDao.execute(sql);
- m++;
- }catch (Exception e){
- baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+crmQueryResult.getErrorMessage()+"','客户资料下载','"+name+"')");
- logger.info("异常信息:"+e);
- n++;
- }
- }
- baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_syncTime) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'下载记录"+dataList.size()+"条,成功"+m+"条,失败"+n+"条','客户资料下载','"+create_time_Last+"')");
- }
- }else{
- baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+crmQueryResult.getErrorMessage()+"','客户资料下载','')");
- logger.info("异常信息:"+crmQueryResult.getErrorMessage());
- }
- }
- }catch (Exception e){
- baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+e.getMessage()+"','客户资料下载','')");
- logger.info("异常信息:"+e.getMessage());
- e.printStackTrace();
- }
- }
- }
|