| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package com.uas.eis.task;
- import com.uas.api.b2c_erp.seller.model.OrderDetail;
- import com.uas.eis.config.DonlimConfig;
- import com.uas.eis.dao.BaseDao;
- import com.uas.eis.dto.SaleDownLoadDTO;
- import com.uas.eis.dto.SaleDownLoadReq;
- import com.uas.eis.dto.SaleDownLoadResp;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.*;
- import org.springframework.stereotype.Component;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @Component
- public class SaleDownLoadTask extends BaseTask {
- @Autowired
- private DonlimConfig donlimConfig;
- @Autowired
- private BaseDao baseDao;
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- public void execute() {
- SaleDownLoadReq req = new SaleDownLoadReq();
- req.setSupplyCode(donlimConfig.getSupplyCode());
- req.configSign();
- String now= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
- Object querytime=baseDao.getFieldDataByCondition("docking_xinbao_reccord","DONEDATE_","type_='SALE'");
- req.setQueryTime(querytime.toString());
- List<String> errsqls = new ArrayList<String>();
- try {
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON);
- ResponseEntity<SaleDownLoadResp> resp = restTemplate.postForEntity(donlimConfig.getRoute()+"/order/orderList", configHttpEntity(req), SaleDownLoadResp.class);
- assertOK(resp);
- //记录对接日志
- logger.info("SaleDownLoad code {} ,msg {} ",resp.getBody().getCode(),resp.getBody().getMsg());
- List<SaleDownLoadDTO> downLoadDTOS = resp.getBody().getData();
- logger.info("SaleDownLoad dataSize {}", downLoadDTOS.size());
- //对接数据写入中间表
- if(downLoadDTOS.size()>0){
- List<String> sqls = new ArrayList<String>();
- for(SaleDownLoadDTO sale:downLoadDTOS){
- int id = baseDao.getSeqId("DOCKING_XINBAO_SALE_SEQ");// 获取主键序列
- sqls.addAll(sale.toSqlString(id,req.getTimeStamp()));// 插入主记录
- errsqls.add("insert into DOCKING_XINBAO_SALE_ERR(timeStamp_,pono) values('"+req.getTimeStamp()+"','"+sale.getPoNo()+"')");
- logger.info("SaleDownLoad PONO: {}", sale.getPoNo());
- }
- if(sqls.size()>0){
- baseDao.execute(sqls);
- }
- baseDao.execute("update docking_xinbao_reccord set DONEDATE_='"+now+"' where type_='SALE'");
- }
- logger.info("SaleDownLoad insert into dockingTable", downLoadDTOS.size());
- baseDao.execute("update DOCKING_XINBAO_SALE set turnstatus=-2 where TIMESTAMP_='"+req.getTimeStamp()+"' and exists(select 1 from sale where sa_pocode=PONO and sa_sourcetype='对接新宝')");
- logger.info("SaleDownLoad turnSale begin");
- //对接数据转入正式表
- baseDao.procedure("dockingToSale", new Object[] { req.getTimeStamp()});
- logger.info("SaleDownLoad turnSale end");
- } catch (Exception e) {
- if(errsqls.size()>0){
- baseDao.execute(errsqls);
- }
- e.printStackTrace();
- }
- }
- }
|