Browse Source

新宝对接

DINGYL 2 years ago
parent
commit
f2c22cad3e

+ 27 - 7
src/main/java/com/uas/eis/dto/SaleDownLoadDTO.java

@@ -1,34 +1,54 @@
 package com.uas.eis.dto;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.eis.utils.DateUtil;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
 @Data
 public class SaleDownLoadDTO {
     private Long poId;
-    private Long poNo;
+    private String poNo;
     private String orgName;
     private String orderType;
     private String supplyCode;
     private String supplyName;
-    @JSONField(format = "yyyy-MM-dd HH24:mi:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private Date prepareDate;
     private String preparePeople;
     private String remark;
-    @JSONField(format = "yyyy-MM-dd HH24:mi:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
-    @JSONField(format = "yyyy-MM-dd HH24:mi:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     private String updateTime;
     private Integer materialNum;
     private Double totalAmount;
     private List<OrderDetail> orderDetail;
 
+    public List<String> toSqlString(int id,Long timeStamp) {
+        List<String> sqls=new ArrayList<>();
+        String sql="insert into docking_xinbao_sale(id_,timeStamp_,poId,poNo,orgName,orderType,supplyCode,supplyName,prepareDate,preparePeople,createTime,updateTime,materialNum,totalAmount,remark)" +
+                " values("+id+",'"+timeStamp+"','"+poId+"','"+poNo+"','"+orgName+"','"+orderType+"','"+supplyCode+"','"+supplyName+"',"
+                + DateUtil.parseDateToOracleString(null, this.prepareDate)+",'"+preparePeople+"',"
+                +DateUtil.parseDateToOracleString(null, this.createTime)+","
+                +DateUtil.parseDateToOracleString( "yyyy-MM-dd HH:mm:ss", this.updateTime)+","+materialNum+",'"+totalAmount+"','"+remark+"')";
+        sqls.add(sql);
+        for(OrderDetail detail:this.getOrderDetail()){
+            sql="insert into docking_xinbao_saledet(mainid,poRowId,poNo,rowNo,materialNoOwner,materialNo,materialName,materialSpecification,materialNum,singleAmount,totalAmount,planArrivalTime,remark)" +
+                    " values("+id+",'"+detail.poRowId+"','"+detail.poNo+"',"+detail.rowNo+",'"+detail.materialNoOwner+"','"+detail.materialNo+"','"
+                    +detail.materialName+"','"+detail.materialSpecification+"',"+detail.materialNum+","+detail.singleAmount+","+detail.totalAmount+","+
+                    DateUtil.parseDateToOracleString(null, detail.planArrivalTime)+",'"+remark+"')";
+            sqls.add(sql);
+        }
+        return sqls;
+    }
+
     class OrderDetail {
         private Long poRowId;
-        private Long poNo;
+        private String poNo;
         private Integer rowNo;
         private String materialNoOwner;
         private String materialNo;
@@ -48,11 +68,11 @@ public class SaleDownLoadDTO {
             this.poRowId = poRowId;
         }
 
-        public Long getPoNo() {
+        public String getPoNo() {
             return poNo;
         }
 
-        public void setPoNo(Long poNo) {
+        public void setPoNo(String poNo) {
             this.poNo = poNo;
         }
 

+ 24 - 0
src/main/java/com/uas/eis/dto/SaleOrderstateRestReq.java

@@ -0,0 +1,24 @@
+package com.uas.eis.dto;
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+@ToString(callSuper = true)
+public class SaleOrderstateRestReq extends BaseReq {
+    //private String dataArray;
+    private JSONObject data;
+    private String dataType;
+    public Map<String, Object> build(){
+       Map<String,Object> map = new HashMap<>();
+       map.put("signName", this.getSignName());
+       map.put("supplyCode", this.getSupplyCode());
+       map.put("data", this.data);
+        map.put("dataType", this.dataType);
+       map.put("timeStamp", this.getTimeStamp());
+       return map;
+    }
+}

+ 14 - 0
src/main/java/com/uas/eis/dto/SaleOrderstateRestResp.java

@@ -0,0 +1,14 @@
+package com.uas.eis.dto;
+
+public class SaleOrderstateRestResp extends BaseResp {
+
+    private String data;
+
+    public String getData() {
+        return data;
+    }
+
+    public void setData(String data) {
+        this.data = data;
+    }
+}

+ 279 - 0
src/main/java/com/uas/eis/dto/SaleOutDTO.java

@@ -0,0 +1,279 @@
+package com.uas.eis.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.eis.utils.DateUtil;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class SaleOutDTO {
+    private String billNo;
+    private String supplyCode;
+    private String supplyName;
+
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private Date applyTime;
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private Date planArrivalTime;
+    private String orgName;
+    private String receiveAddress;
+    private String deliveryPeople;
+    private String linkMobile;
+    private String remark;
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    public List<DeliveryDetail> getDeliveryDetail() {
+        return deliveryDetail;
+    }
+
+    public void setDeliveryDetail(List<DeliveryDetail> deliveryDetail) {
+        this.deliveryDetail = deliveryDetail;
+    }
+
+    private List<DeliveryDetail> deliveryDetail;
+
+    public List<String> toSqlString(int id, Long timeStamp) {
+        List<String> sqls=new ArrayList<>();
+        String sql="insert into docking_xinbao_saleout(id_,timeStamp_,billNo,supplyCode,supplyName," +
+                "applyTime,planArrivalTime," +
+                "orgName,receiveAddress,deliveryPeople,linkMobile,remark," +
+                "createTime,updateTime )" +
+                " values("+id+",'"+timeStamp+"','"+billNo+"','"+supplyCode+"','"+supplyName+"',"
+                + DateUtil.parseDateToOracleString(null, this.applyTime)+"," + DateUtil.parseDateToOracleString(null, this.planArrivalTime)+
+                ",'"+orgName+"','"+receiveAddress+"','"+deliveryPeople+"','"+linkMobile+"','"+remark+"',"
+                +DateUtil.parseDateToOracleString(null, this.createTime)+","
+                +DateUtil.parseDateToOracleString( "yyyy-MM-dd HH:mm:ss", this.updateTime)+")";
+        sqls.add(sql);
+        for(DeliveryDetail detail:this.getDeliveryDetail()){
+            sql="insert into docking_xinbao_saleOutdet(mainid,poRowId,poNo,poRowNo,billNo,rowNo," +
+                    "materialNo,materialName,materialSpecification,materialNum," +
+                    "warehouseNo,batchNo,remark)" +
+                    " values("+id+",'"+detail.poRowId+"','"+detail.poNo+"','"+detail.poRowNo+"','"+detail.billNo+"','"+detail.rowNo+"','"
+                    +detail.materialNo+"','"+detail.materialName+"','"+detail.materialSpecification+"',"+detail.materialNum+",'"
+                    +detail.warehouseNo+"','"+detail.batchNo+"','"+remark+"')";
+            sqls.add(sql);
+        }
+        return sqls;
+    }
+
+
+    class DeliveryDetail {
+        private long poRowId;
+        private String poNo;
+        private int poRowNo;
+        private String billNo;
+        private String rowNo;
+        private String materialNo;
+        private String materialName;
+        private String materialSpecification;
+        private double materialNum;
+
+        public long getPoRowId() {
+            return poRowId;
+        }
+
+        public void setPoRowId(long poRowId) {
+            this.poRowId = poRowId;
+        }
+
+        public String getPoNo() {
+            return poNo;
+        }
+
+        public void setPoNo(String poNo) {
+            this.poNo = poNo;
+        }
+
+        public int getPoRowNo() {
+            return poRowNo;
+        }
+
+        public void setPoRowNo(int poRowNo) {
+            this.poRowNo = poRowNo;
+        }
+
+        public String getBillNo() {
+            return billNo;
+        }
+
+        public void setBillNo(String billNo) {
+            this.billNo = billNo;
+        }
+
+        public String getRowNo() {
+            return rowNo;
+        }
+
+        public void setRowNo(String rowNo) {
+            this.rowNo = rowNo;
+        }
+
+        public String getMaterialNo() {
+            return materialNo;
+        }
+
+        public void setMaterialNo(String materialNo) {
+            this.materialNo = materialNo;
+        }
+
+        public String getMaterialSpecification() {
+            return materialSpecification;
+        }
+
+        public void setMaterialSpecification(String materialSpecification) {
+            this.materialSpecification = materialSpecification;
+        }
+
+        public double getMaterialNum() {
+            return materialNum;
+        }
+
+        public void setMaterialNum(double materialNum) {
+            this.materialNum = materialNum;
+        }
+
+        public String getWarehouseNo() {
+            return warehouseNo;
+        }
+
+        public void setWarehouseNo(String warehouseNo) {
+            this.warehouseNo = warehouseNo;
+        }
+
+        public String getBatchNo() {
+            return batchNo;
+        }
+
+        public void setBatchNo(String batchNo) {
+            this.batchNo = batchNo;
+        }
+
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
+
+        private String warehouseNo;
+        private String batchNo;
+        private String remark;
+
+
+        public String getMaterialName() {
+            return materialName;
+        }
+        public void setMaterialName(String materialName) {
+            this.materialName = materialName;
+        }
+    }
+
+
+
+    public String getBillNo() {
+        return billNo;
+    }
+
+    public void setBillNo(String billNo) {
+        this.billNo = billNo;
+    }
+
+    public String getSupplyCode() {
+        return supplyCode;
+    }
+
+    public void setSupplyCode(String supplyCode) {
+        this.supplyCode = supplyCode;
+    }
+
+    public String getSupplyName() {
+        return supplyName;
+    }
+
+    public void setSupplyName(String supplyName) {
+        this.supplyName = supplyName;
+    }
+
+    public Date getApplyTime() {
+        return applyTime;
+    }
+
+    public void setApplyTime(Date applyTime) {
+        this.applyTime = applyTime;
+    }
+
+    public Date getPlanArrivalTime() {
+        return planArrivalTime;
+    }
+
+    public void setPlanArrivalTime(Date planArrivalTime) {
+        this.planArrivalTime = planArrivalTime;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public String getReceiveAddress() {
+        return receiveAddress;
+    }
+
+    public void setReceiveAddress(String receiveAddress) {
+        this.receiveAddress = receiveAddress;
+    }
+
+    public String getDeliveryPeople() {
+        return deliveryPeople;
+    }
+
+    public void setDeliveryPeople(String deliveryPeople) {
+        this.deliveryPeople = deliveryPeople;
+    }
+
+    public String getLinkMobile() {
+        return linkMobile;
+    }
+
+    public void setLinkMobile(String linkMobile) {
+        this.linkMobile = linkMobile;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+
+}

+ 20 - 0
src/main/java/com/uas/eis/dto/SaleOutReq.java

@@ -0,0 +1,20 @@
+package com.uas.eis.dto;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+@ToString(callSuper = true)
+public class SaleOutReq extends BaseReq {
+    private String queryTime;
+    public Map<String, Object> build(){
+       Map<String,Object> map = new HashMap<>();
+       map.put("signName", this.getSignName());
+       map.put("supplyCode", this.getSupplyCode());
+       map.put("queryTime", this.queryTime);
+       map.put("timeStamp", this.getTimeStamp());
+       return map;
+    }
+}

+ 16 - 0
src/main/java/com/uas/eis/dto/SaleOutResp.java

@@ -0,0 +1,16 @@
+package com.uas.eis.dto;
+
+import java.util.List;
+
+public class SaleOutResp extends BaseResp {
+    private List<SaleOutDTO> data;
+
+    public java.util.List<SaleOutDTO> getData() {
+        return data;
+    }
+
+    public void setData(List<SaleOutDTO> data) {
+        this.data = data;
+    }
+
+}

+ 24 - 0
src/main/java/com/uas/eis/dto/SaleOutstateRestReq.java

@@ -0,0 +1,24 @@
+package com.uas.eis.dto;
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+@ToString(callSuper = true)
+public class SaleOutstateRestReq extends BaseReq {
+    //private String dataArray;
+    private JSONObject data;
+    private String dataType;
+    public Map<String, Object> build(){
+       Map<String,Object> map = new HashMap<>();
+       map.put("signName", this.getSignName());
+       map.put("supplyCode", this.getSupplyCode());
+       map.put("data", this.data);
+        map.put("dataType", this.dataType);
+       map.put("timeStamp", this.getTimeStamp());
+       return map;
+    }
+}

+ 14 - 0
src/main/java/com/uas/eis/dto/SaleOutstateRestResp.java

@@ -0,0 +1,14 @@
+package com.uas.eis.dto;
+
+public class SaleOutstateRestResp extends BaseResp {
+
+    private String data;
+
+    public String getData() {
+        return data;
+    }
+
+    public void setData(String data) {
+        this.data = data;
+    }
+}

+ 33 - 3
src/main/java/com/uas/eis/task/SaleDownLoadTask.java

@@ -1,4 +1,5 @@
 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;
@@ -9,6 +10,10 @@ 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
@@ -23,19 +28,44 @@ public class SaleDownLoadTask extends BaseTask {
         SaleDownLoadReq req = new SaleDownLoadReq();
         req.setSupplyCode(donlimConfig.getSupplyCode());
         req.configSign();
-        req.setQueryTime("2023-06-01 00:00:00");
+        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");
             //对接数据转入正式表
-            logger.info("SaleDownLoad dataSize {}", downLoadDTOS.size());
+            baseDao.procedure("dockingToSale", new Object[] { req.getTimeStamp()});
+            logger.info("SaleDownLoad turnSale end");
         } catch (Exception e) {
+            if(errsqls.size()>0){
+                baseDao.execute(errsqls);
+            }
             e.printStackTrace();
         }
     }

+ 44 - 0
src/main/java/com/uas/eis/task/SaleOrderstateReset.java

@@ -0,0 +1,44 @@
+package com.uas.eis.task;
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.eis.config.DonlimConfig;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dto.SaleOrderstateRestReq;
+import com.uas.eis.dto.SaleOrderstateRestResp;
+import org.hibernate.mapping.Array;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class SaleOrderstateReset extends BaseTask{
+    @Autowired
+    private DonlimConfig donlimConfig;
+    @Autowired
+    private BaseDao baseDao;
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    public void execute() {
+        SaleOrderstateRestReq req = new SaleOrderstateRestReq();
+        req.setSupplyCode(donlimConfig.getSupplyCode());
+        req.configSign();
+        JSONObject jsonobj=new JSONObject();
+        jsonobj.put("poNo", "PO-PC230600929");
+        req.setData(jsonobj);
+        req.setDataType("1");
+        try {
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            ResponseEntity<SaleOrderstateRestResp> resp = restTemplate.postForEntity(donlimConfig.getRoute()+"/order/updateOrderSyncStatus", configHttpEntity(req), SaleOrderstateRestResp.class);
+            assertOK(resp);
+            logger.info("SaleOrderstateReset code {} ,msg {} ",resp.getBody().getCode(),resp.getBody().getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}

+ 67 - 0
src/main/java/com/uas/eis/task/SaleOutTask.java

@@ -1,4 +1,71 @@
 package com.uas.eis.task;
 
+import com.uas.eis.config.DonlimConfig;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dto.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Component
 public class SaleOutTask extends BaseTask{
+    @Autowired
+    private DonlimConfig donlimConfig;
+
+    @Autowired
+    private BaseDao baseDao;
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    public void execute() {
+        SaleOutReq req = new SaleOutReq();
+        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_='SALEOUT'");
+        req.setQueryTime(querytime.toString());
+        List<String> errsqls = new ArrayList<String>();
+        try {
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            ResponseEntity<SaleOutResp> resp = restTemplate.postForEntity(donlimConfig.getRoute()+"/wms/deliveryBill", configHttpEntity(req), SaleOutResp.class);
+            assertOK(resp);
+            logger.info("SaleOut code {} ,msg {} ",resp.getBody().getCode(),resp.getBody().getMsg());
+            List<SaleOutDTO> saleOutDTOS = resp.getBody().getData();
+            //记录对接日志
+            logger.info("SaleOut dataSize {}", saleOutDTOS.size());
+            //对接数据写入中间表
+            if(saleOutDTOS.size()>0){
+                List<String> sqls = new ArrayList<String>();
+                for(SaleOutDTO saleOut:saleOutDTOS){
+                    int id = baseDao.getSeqId("DOCKING_XINBAO_SALEOUT_SEQ");// 获取主键序列
+                    sqls.addAll(saleOut.toSqlString(id,req.getTimeStamp()));// 插入主记录
+                    errsqls.add("insert into DOCKING_XINBAO_SALEOUT_ERR(timeStamp_,billNo) values('"+req.getTimeStamp()+"','"+saleOut.getBillNo()+"')");
+                    logger.info("SaleOutDownLoad billNo: {}", saleOut.getBillNo());
+                }
+                if(sqls.size()>0){
+                    baseDao.execute(sqls);
+                }
+                baseDao.execute("update docking_xinbao_reccord set DONEDATE_='"+now+"' where type_='SALEOUT'");
+            }
+            logger.info("SaleOutDownLoad insert into dockingTable", saleOutDTOS.size());
+            baseDao.execute("update DOCKING_XINBAO_SALEOUT set turnstatus=-2 where TIMESTAMP_='"+req.getTimeStamp()+"' and" +
+                    " exists(select 1 from prodinout where pi_class='出货单' and pi_sourcecode=billno and pi_sourcetype='对接新宝')");
+            logger.info("SaleDownLoad turnSaleOut begin");
+            //对接数据转入正式表
+            baseDao.procedure("dockingToSaleOut", new Object[] { req.getTimeStamp()});
+            logger.info("SaleDownLoad turnSaleOut end");
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 45 - 0
src/main/java/com/uas/eis/task/SaleOutstateReset.java

@@ -0,0 +1,45 @@
+package com.uas.eis.task;
+
+import com.alibaba.fastjson.JSONObject;
+import com.uas.eis.config.DonlimConfig;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dto.SaleOrderstateRestReq;
+import com.uas.eis.dto.SaleOrderstateRestResp;
+import com.uas.eis.dto.SaleOutstateRestReq;
+import com.uas.eis.dto.SaleOutstateRestResp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+@Component
+public class SaleOutstateReset extends BaseTask{
+    @Autowired
+    private DonlimConfig donlimConfig;
+    @Autowired
+    private BaseDao baseDao;
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    public void execute() {
+        SaleOutstateRestReq req = new SaleOutstateRestReq();
+        req.setSupplyCode(donlimConfig.getSupplyCode());
+        req.configSign();
+        JSONObject jsonobj=new JSONObject();
+        jsonobj.put("billNo", "ASN20230621002164");
+        req.setData(jsonobj);
+        req.setDataType("1");
+        try {
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            ResponseEntity<SaleOutstateRestResp> resp = restTemplate.postForEntity(donlimConfig.getRoute()+"/wms/updateDeliveryBillSyncStatus", configHttpEntity(req), SaleOutstateRestResp.class);
+            assertOK(resp);
+            logger.info("SaleOutstateReset code {} ,msg {} ",resp.getBody().getCode(),resp.getBody().getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}

+ 41 - 0
src/main/java/com/uas/eis/task/XinbaoTask.java

@@ -0,0 +1,41 @@
+package com.uas.eis.task;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Component
+public class XinbaoTask {
+    @Autowired
+    private SaleDownLoadTask saleDownLoadTask;
+    @Autowired
+    private SaleOutTask saleOutTask;
+    @Autowired
+    private InventoryTask inventoryTask;
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    //定时注解 @cron
+    @Scheduled(cron = "0 0/3 * * * ?")
+    public void downLoadSale(){
+        logger.info("订单对接  {} ",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        saleDownLoadTask.execute();
+    }
+    //定时注解 @cron
+    @Scheduled(cron = "0 0/3 * * * ?")
+    public void downLoadSaleOut(){
+        logger.info("出货对接  {} ",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        saleOutTask.execute();
+    }
+
+    //定时注解 @cron
+    @Scheduled(cron = "0 0/15 * * * ?")
+    public void upLoadInventory(){
+        logger.info("库存对接  {} ",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        inventoryTask.execute();
+
+    }
+}

+ 57 - 2
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -1,21 +1,76 @@
 package com.uas.eis;
 
-import com.uas.eis.task.SaleDownLoadTask;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.task.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = {UasEisApplication.class})
 public class UasEisApplicationTests {
 	@Autowired
 	private SaleDownLoadTask saleDownLoadTask;
-
+	@Autowired
+	private SaleOutTask saleOutTask;
+	@Autowired
+	private InventoryTask inventoryTask;
+	@Autowired
+	private SaleOrderstateReset saleOrderstateReset;
+	@Autowired
+	private SaleOutstateReset saleOutstateReset;
+	@Autowired
+	private BaseDao baseDao;
 
 	@Test
 	public void Test() {
+		//订单下载对接
+		System.out.println("test");
+		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
+		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
+		System.out.println(ob);
 		saleDownLoadTask.execute();
 	}
+	@Test
+	public void Test1() {
+		//订单对接状态重置
+		System.out.println("test");
+		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
+		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
+		System.out.println(ob);
+		saleOrderstateReset.execute();
+	}
+	@Test
+	public void Test2() {
+		//库存上传对接
+		System.out.println("test");
+		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
+		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
+		System.out.println(ob);
+		inventoryTask.execute();
+	}
 
+	@Test
+	public void Test3() {
+		//出货对接
+		System.out.println("test");
+		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
+		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
+		System.out.println(ob);
+		saleOutTask.execute();
+	}
+	@Test
+	public void Test4() {
+		//订单对接状态重置
+		System.out.println("test");
+		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
+		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
+		System.out.println(ob);
+		saleOutstateReset.execute();
+	}
 }