SaleDownLoadTask.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.uas.eis.task;
  2. import com.uas.api.b2c_erp.seller.model.OrderDetail;
  3. import com.uas.eis.config.DonlimConfig;
  4. import com.uas.eis.dao.BaseDao;
  5. import com.uas.eis.dto.SaleDownLoadDTO;
  6. import com.uas.eis.dto.SaleDownLoadReq;
  7. import com.uas.eis.dto.SaleDownLoadResp;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.http.*;
  12. import org.springframework.stereotype.Component;
  13. import java.text.SimpleDateFormat;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16. import java.util.List;
  17. @Component
  18. public class SaleDownLoadTask extends BaseTask {
  19. @Autowired
  20. private DonlimConfig donlimConfig;
  21. @Autowired
  22. private BaseDao baseDao;
  23. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  24. public void execute() {
  25. SaleDownLoadReq req = new SaleDownLoadReq();
  26. req.setSupplyCode(donlimConfig.getSupplyCode());
  27. req.configSign();
  28. String now= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
  29. Object querytime=baseDao.getFieldDataByCondition("docking_xinbao_reccord","DONEDATE_","type_='SALE'");
  30. req.setQueryTime(querytime.toString());
  31. List<String> errsqls = new ArrayList<String>();
  32. try {
  33. HttpHeaders headers = new HttpHeaders();
  34. headers.setContentType(MediaType.APPLICATION_JSON);
  35. ResponseEntity<SaleDownLoadResp> resp = restTemplate.postForEntity(donlimConfig.getRoute()+"/order/orderList", configHttpEntity(req), SaleDownLoadResp.class);
  36. assertOK(resp);
  37. //记录对接日志
  38. logger.info("SaleDownLoad code {} ,msg {} ",resp.getBody().getCode(),resp.getBody().getMsg());
  39. List<SaleDownLoadDTO> downLoadDTOS = resp.getBody().getData();
  40. logger.info("SaleDownLoad dataSize {}", downLoadDTOS.size());
  41. //对接数据写入中间表
  42. if(downLoadDTOS.size()>0){
  43. List<String> sqls = new ArrayList<String>();
  44. for(SaleDownLoadDTO sale:downLoadDTOS){
  45. int id = baseDao.getSeqId("DOCKING_XINBAO_SALE_SEQ");// 获取主键序列
  46. sqls.addAll(sale.toSqlString(id,req.getTimeStamp()));// 插入主记录
  47. errsqls.add("insert into DOCKING_XINBAO_SALE_ERR(timeStamp_,pono) values('"+req.getTimeStamp()+"','"+sale.getPoNo()+"')");
  48. logger.info("SaleDownLoad PONO: {}", sale.getPoNo());
  49. }
  50. if(sqls.size()>0){
  51. baseDao.execute(sqls);
  52. }
  53. baseDao.execute("update docking_xinbao_reccord set DONEDATE_='"+now+"' where type_='SALE'");
  54. }
  55. logger.info("SaleDownLoad insert into dockingTable", downLoadDTOS.size());
  56. 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='对接新宝')");
  57. logger.info("SaleDownLoad turnSale begin");
  58. //对接数据转入正式表
  59. baseDao.procedure("dockingToSale", new Object[] { req.getTimeStamp()});
  60. logger.info("SaleDownLoad turnSale end");
  61. } catch (Exception e) {
  62. if(errsqls.size()>0){
  63. baseDao.execute(errsqls);
  64. }
  65. e.printStackTrace();
  66. }
  67. }
  68. }