From 91c623a67e67a0f2627d237fbf54bacbf678cbd2 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 16 五月 2024 14:14:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/phyzasrs' into phyzasrs

---
 src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java |  132 ++++++++++++++
 src/main/java/com/zy/asrs/entity/param/ReportErpParam.java     |   35 +++
 src/main/java/com/zy/asrs/controller/OpenController.java       |   64 ++++--
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java         |    2 
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java   |   80 ++++++--
 src/main/java/com/zy/asrs/entity/param/MatSyncParam.java       |   55 ++++++
 src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java     |  119 +++++++++++++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java    |   44 ++++
 8 files changed, 472 insertions(+), 59 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 06b718e..f92440c 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -288,9 +288,12 @@
             return R.parse(BaseRes.PARAM);
         }
 
-        openService.syncOrder(param,true,"閲囪喘鍏ュ簱鍗�");
+        String docName = param.getChildren().get(0).getIQuantity() > 0 ? "閾跺骇閲囪喘鍏ュ簱鍗�" : "閾跺骇閲囪喘閫�璐у崟";
+        boolean pakin = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
 
-        return R.ok("鍏ュ簱鍗曟嵁鎺ュ彈鎴愬姛");
+        openService.syncOrder(param,pakin,docName);
+
+        return R.ok("鍗曟嵁鎺ュ彈鎴愬姛");
 
     }
 
@@ -304,12 +307,22 @@
         if (Cools.isEmpty(param)) {
             return R.parse(BaseRes.PARAM);
         }
+        if(!Cools.eq("鐢熶骇",param.getCVouchtype())){
+            String docName = param.getIQuantity() > 0 ?  "閾跺骇濮斿鍏ュ簱鍗�" : "閾跺骇濮斿鍏ュ簱閫�璐у崟";
+            boolean pakin = param.getIQuantity() > 0 ? true : false;
+            mappingPakInOrderParam(param,pakin,docName);
 
-        openService.syncOrder(mappingPakInOrderParam(param),true,"鐢熶骇鍏ュ簱鍗�");
-        openService.syncOrder(mappingPakOutOrderParam(param),false,"鐢熶骇鍑哄簱鍗�");
+            String docName1 = param.getChildren().get(0).getIQuantity() > 0 ?  "閾跺骇濮斿鏉愭枡鍑哄簱鍗�" : "閾跺骇濮斿鏉愭枡閫�鏂欏崟";
+            boolean pakin1 = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
+            mappingPakOutOrderParam(param,pakin1,docName1);
 
+        }else {
+            String docName1 = param.getChildren().get(0).getIQuantity() > 0 ?  "閾跺骇鐢熶骇鏉愭枡鍑哄簱鍗�" : "閾跺骇鐢熶骇鏉愭枡閫�鏂欏崟";
+            boolean pakin1 = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
+            mappingPakOutOrderParam(param,pakin1,docName1);
+        }
 
-        return R.ok("鍑哄簱鍗曟嵁鎺ュ彈鎴愬姛");
+        return R.ok("鍗曟嵁鎺ュ彈鎴愬姛");
 
     }
 
@@ -333,19 +346,20 @@
 
     }
 
-    private OrderSyncParam mappingPakInOrderParam(OrderProdSyncParam param){
+    private void mappingPakInOrderParam(OrderProdSyncParam param,boolean pakin,String docName){
         //鐢熸垚鍗曟嵁涓讳綋
         OrderSyncParam orderSyncParam = new OrderSyncParam();
-        orderSyncParam.setCPOID(param.getOrderNoT());
+        orderSyncParam.set鎿嶄綔绯荤粺鍙�(param.get鎿嶄綔绯荤粺鍙�());
+        orderSyncParam.setcPOID(param.getOrderNoT());
         orderSyncParam.setDdate(param.getOrderTime());
-        orderSyncParam.setCMemo("");
+        orderSyncParam.setcMemo(param.getCMemo());
 
         //鐢熸垚鍗曟嵁鏄庣粏
         OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
-        orderDetl.setCInvCode(param.getCInvCode());
-        orderDetl.setIQuantity(param.getIQuantity());
+        orderDetl.setcInvCode(param.getCInvCode());
+        orderDetl.setiQuantity(param.getIQuantity());
         orderDetl.setCsocode(param.getCsocode());
-        orderDetl.setBFree1(null);
+        orderDetl.setbFree1(param.getBFree1());
 
         //娣诲姞鍗曟嵁鏄庣粏鍒板崟鎹富浣�
         List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
@@ -353,34 +367,44 @@
 
         orderSyncParam.setChildren(orderDetls);
 
-        return orderSyncParam;
+//        String docName = param.getIQuantity() > 0 ?  "閾跺骇浜у搧鐢熶骇鍏ュ簱鍗�" : "鍏ュ簱閫�鍥炲崟";
+//        boolean pakin = param.getIQuantity() > 0 ? true : false;
+
+        openService.syncOrder(orderSyncParam,pakin,docName);
+
+        //return orderSyncParam;
     }
 
-    private OrderSyncParam mappingPakOutOrderParam(OrderProdSyncParam param){
+    private void mappingPakOutOrderParam(OrderProdSyncParam param,boolean pakin,String docName){
         OrderSyncParam orderSyncParam = new OrderSyncParam();
 
-        List<OrderProdSyncParam.ChildInfo> child = param.getChild();
+        List<OrderProdSyncParam.ChildInfo> child = param.getChildren();
 
         //鐢熸垚鍗曟嵁涓讳綋
-        orderSyncParam.setCPOID(child.get(0).getOrderNoT());
+        orderSyncParam.set鎿嶄綔绯荤粺鍙�(param.get鎿嶄綔绯荤粺鍙�());
+        orderSyncParam.setcPOID(child.get(0).getOrderNoT());
         orderSyncParam.setDdate(param.getOrderTime());
-        orderSyncParam.setCMemo("");
+        orderSyncParam.setcMemo("");
 
         //鐢熸垚鍗曟嵁鏄庣粏
         List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
 
         for(OrderProdSyncParam.ChildInfo childInfo : child){
             OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
-            orderDetl.setCInvCode(childInfo.getCInvCode());
-            orderDetl.setIQuantity(childInfo.getIQuantity());
+            orderDetl.setcInvCode(childInfo.getCInvCode());
+            orderDetl.setiQuantity(childInfo.getIQuantity());
             orderDetl.setCsocode(param.getCsocode());
-            orderDetl.setBFree1(childInfo.getBFree1());
+            orderDetl.setbFree1(childInfo.getBFree1());
             orderDetl.setID(childInfo.getIDs() + "");
+            orderDetl.setIvouchrowno(childInfo.getIvouchrowno());
+
             orderDetls.add(orderDetl);
         }
         orderSyncParam.setChildren(orderDetls);
 
-        return orderSyncParam;
+        openService.syncOrder(orderSyncParam,false,docName);
+
+        //return orderSyncParam;
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java b/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
index ec130d0..5b8d1ee 100644
--- a/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/MatSyncParam.java
@@ -20,7 +20,7 @@
     //瑙勬牸鍨嬪彿
     String cInvStd;
     //鏄惁鎵规绠$悊
-    Integer bInvBatch;
+    String bInvBatch;
     //涓昏閲忓崟浣嶇紪鐮�/鍚嶇О
     String cComUnitCode;
     //閲囪喘鍗曚綅缂栫爜/閲囪喘鍗曚綅鍚嶇О
@@ -36,4 +36,57 @@
     //鐘舵��
     Integer states;
 
+    public void setcInvCode(String cInvCode) {
+        this.cInvCode = cInvCode;
+    }
+
+    public void setcInvName(String cInvName) {
+        this.cInvName = cInvName;
+    }
+
+    public void setiGroupType(String iGroupType) {
+        this.iGroupType = iGroupType;
+    }
+
+    public void setcInvCCode(String cInvCCode) {
+        this.cInvCCode = cInvCCode;
+    }
+
+    public void setcInvStd(String cInvStd) {
+        this.cInvStd = cInvStd;
+    }
+
+    public void setbInvBatch(String bInvBatch) {
+        this.bInvBatch = bInvBatch;
+    }
+
+    public void setcComUnitCode(String cComUnitCode) {
+        this.cComUnitCode = cComUnitCode;
+    }
+
+    public void setcComUnitName(String cComUnitName) {
+        this.cComUnitName = cComUnitName;
+    }
+
+    public void setPuCote(String puCote) {
+        PuCote = puCote;
+    }
+
+    public void setProname(String proname) {
+        this.proname = proname;
+    }
+
+    public void setProcode(String procode) {
+        this.procode = procode;
+    }
+
+    public void setbFree1(String bFree1) {
+        this.bFree1 = bFree1;
+    }
+
+    public void setStates(Integer states) {
+        this.states = states == 0 ? 1 : 0;
+    }
+
+
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java b/src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java
index c89230e..de1319e 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java
@@ -6,6 +6,9 @@
 
 @Data
 public class OrderProdSyncParam {
+    private String 鎿嶄綔绯荤粺鍙�;
+    private String 鎿嶄綔鍗曟嵁;
+    private String 鎿嶄綔绫诲瀷;
     //宸ュ崟鍙�
     private String orderNo;
     //宸ュ崟鍙稵
@@ -21,9 +24,93 @@
     //鐢熶骇鏁伴噺
     private Double iQuantity;
     //鐘舵��
-    private Integer status;
+    private Integer states;
+    //瑙勬牸锛堣嚜鐢遍」1锛�
+    private String bFree1;
+    //浜х嚎
+    private String define24;
+    //鍗曟嵁绫诲瀷
+    private String cVouchtype;
+    //澶囨敞
+    private String cMemo;
+    //鏉ユ簮鏍囪瘑
+    private String sourceIndefine;
+    //浜у搧鐢熶骇鏍囪瘑
+    private String prodIndefine;
     //瀛愪欢淇℃伅
-    private List<ChildInfo> child;
+    private List<ChildInfo> children;
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public void setOrderNoT(String orderNoT) {
+        this.orderNoT = orderNoT;
+    }
+
+    public void setOrderTime(String orderTime) {
+        this.orderTime = orderTime;
+    }
+
+    public void setIvouchrowno(String ivouchrowno) {
+        this.ivouchrowno = ivouchrowno;
+    }
+
+    public void setcInvCode(String cInvCode) {
+        this.cInvCode = cInvCode;
+    }
+
+    public void setCsocode(String csocode) {
+        this.csocode = csocode;
+    }
+
+    public void setiQuantity(Double iQuantity) {
+        this.iQuantity = iQuantity;
+    }
+
+    public void setStates(Integer states) {
+        this.states = states;
+    }
+
+    public void setbFree1(String bFree1) {
+        this.bFree1 = bFree1;
+    }
+
+    public void setDefine24(String define24) {
+        this.define24 = define24;
+    }
+
+    public void setcVouchtype(String cVouchtype) {
+        this.cVouchtype = cVouchtype;
+    }
+
+    public void setChild(List<ChildInfo> children) {
+        this.children = children;
+    }
+
+    public void set鎿嶄綔绯荤粺鍙�(String 鎿嶄綔绯荤粺鍙�) {
+        this.鎿嶄綔绯荤粺鍙� = 鎿嶄綔绯荤粺鍙�;
+    }
+
+    public void set鎿嶄綔鍗曟嵁(String 鎿嶄綔鍗曟嵁) {
+        this.鎿嶄綔鍗曟嵁 = 鎿嶄綔鍗曟嵁;
+    }
+
+    public void set鎿嶄綔绫诲瀷(String 鎿嶄綔绫诲瀷) {
+        this.鎿嶄綔绫诲瀷 = 鎿嶄綔绫诲瀷;
+    }
+
+    public void setcMemo(String cMemo) {
+        this.cMemo = cMemo;
+    }
+
+    public void setSourceIndefine(String sourceIndefine) {
+        this.sourceIndefine = sourceIndefine;
+    }
+
+    public void setProdIndefine(String prodIndefine) {
+        this.prodIndefine = prodIndefine;
+    }
 
     /**
      * 鐢ㄤ簬鐢熸垚鍑哄簱鍗曟嵁
@@ -36,14 +123,55 @@
         private Integer IDs;
         //宸ュ崟鍙稵
         private String orderNoT;
+        //宸ュ崟鍙�
+        private String orderNo;
         //鐗╂枡缂栫爜
         private String cInvCode;
         //鏁伴噺
         private Double iQuantity;
         //瑙勬牸锛堣嚜鐢遍」1锛�
         private String bFree1;
+        //鍗曟嵁琛屽彿
+        private String ivouchrowno;
+        //瀛愪欢鍙�
+        private String childNo;
 
 
+        public void setID(Integer ID) {
+            this.ID = ID;
+        }
+
+        public void setIDs(Integer IDs) {
+            this.IDs = IDs;
+        }
+
+        public void setOrderNoT(String orderNoT) {
+            this.orderNoT = orderNoT;
+        }
+
+        public void setcInvCode(String cInvCode) {
+            this.cInvCode = cInvCode;
+        }
+
+        public void setiQuantity(Double iQuantity) {
+            this.iQuantity = iQuantity;
+        }
+
+        public void setbFree1(String bFree1) {
+            this.bFree1 = bFree1;
+        }
+
+        public void setOrderNo(String orderNo) {
+            this.orderNo = orderNo;
+        }
+
+        public void setIvouchrowno(String ivouchrowno) {
+            this.ivouchrowno = ivouchrowno;
+        }
+
+        public void setChildNo(String childNo) {
+            this.childNo = childNo;
+        }
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java b/src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java
index fb52a63..0670929 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java
@@ -2,11 +2,13 @@
 
 import lombok.Data;
 
-import java.util.Date;
 import java.util.List;
 
 @Data
 public class OrderSyncParam {
+    private String 鎿嶄綔绯荤粺鍙�;
+    private String 鎿嶄綔鍗曟嵁;
+    private String 鎿嶄綔绫诲瀷;
     //閲囪喘璁㈠崟缂栧彿
     private String cPOID;
     //渚涘簲鍟嗙紪鐮�
@@ -28,6 +30,58 @@
 
     private List<OrderDetl> children;
 
+    public void setcPOID(String cPOID) {
+        this.cPOID = cPOID;
+    }
+
+    public void setcVenCode(String cVenCode) {
+        this.cVenCode = cVenCode;
+    }
+
+    public void setcPersonCode(String cPersonCode) {
+        this.cPersonCode = cPersonCode;
+    }
+
+    public void setcSCCode(String cSCCode) {
+        this.cSCCode = cSCCode;
+    }
+
+    public void setCexch_name(String cexch_name) {
+        this.cexch_name = cexch_name;
+    }
+
+    public void setNflat(Double nflat) {
+        this.nflat = nflat;
+    }
+
+    public void setcMemo(String cMemo) {
+        this.cMemo = cMemo;
+    }
+
+    public void setStates(Integer states) {
+        this.states = states;
+    }
+
+    public void setDdate(String ddate) {
+        this.ddate = ddate;
+    }
+
+    public void setChildren(List<OrderDetl> children) {
+        this.children = children;
+    }
+
+    public void set鎿嶄綔绯荤粺鍙�(String 鎿嶄綔绯荤粺鍙�) {
+        this.鎿嶄綔绯荤粺鍙� = 鎿嶄綔绯荤粺鍙�;
+    }
+
+    public void set鎿嶄綔鍗曟嵁(String 鎿嶄綔鍗曟嵁) {
+        this.鎿嶄綔鍗曟嵁 = 鎿嶄綔鍗曟嵁;
+    }
+
+    public void set鎿嶄綔绫诲瀷(String 鎿嶄綔绫诲瀷) {
+        this.鎿嶄綔绫诲瀷 = 鎿嶄綔绫诲瀷;
+    }
+
     @Data
     public static class OrderDetl{
         //閲囪喘璁㈠崟琛屽彿
@@ -35,7 +89,7 @@
         //鐗╂枡缂栫爜
         private String cInvCode;
         //闇�姹傛椂闂�
-        private Date dArriveDate;
+        private String dArriveDate;
         //闇�姹傛暟閲�
         private Double iQuantity;
         //鍚◣鍗曚环
@@ -61,6 +115,67 @@
         //閿�鍞鍗曞瓙琛ㄦ爣璇�
         private String iorderdid;
 
+
+        public void setIvouchrowno(String ivouchrowno) {
+            this.ivouchrowno = ivouchrowno;
+        }
+
+        public void setcInvCode(String cInvCode) {
+            this.cInvCode = cInvCode;
+        }
+
+        public void setdArriveDate(String dArriveDate) {
+            this.dArriveDate = dArriveDate;
+        }
+
+        public void setiQuantity(Double iQuantity) {
+            this.iQuantity = iQuantity;
+        }
+
+        public void setiTaxPrice(Double iTaxPrice) {
+            this.iTaxPrice = iTaxPrice;
+        }
+
+        public void setiPerTaxRate(Double iPerTaxRate) {
+            this.iPerTaxRate = iPerTaxRate;
+        }
+
+        public void setCbMemo(String cbMemo) {
+            this.cbMemo = cbMemo;
+        }
+
+        public void setiNum(Double iNum) {
+            this.iNum = iNum;
+        }
+
+        public void setcSource(String cSource) {
+            this.cSource = cSource;
+        }
+
+        public void setcDefine22(String cDefine22) {
+            this.cDefine22 = cDefine22;
+        }
+
+        public void setRstates(String rstates) {
+            Rstates = rstates;
+        }
+
+        public void setCsocode(String csocode) {
+            this.csocode = csocode;
+        }
+
+        public void setbFree1(String bFree1) {
+            this.bFree1 = bFree1;
+        }
+
+        public void setID(String ID) {
+            this.ID = ID;
+        }
+
+        public void setIorderdid(String iorderdid) {
+            this.iorderdid = iorderdid;
+        }
+
     }
 
 
diff --git a/src/main/java/com/zy/asrs/entity/param/ReportErpParam.java b/src/main/java/com/zy/asrs/entity/param/ReportErpParam.java
new file mode 100644
index 0000000..054f721
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ReportErpParam.java
@@ -0,0 +1,35 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ReportErpParam {
+    private String 鎿嶄綔绯荤粺鍙�;
+    private String 鎿嶄綔鍗曟嵁;
+    private String 鎿嶄綔绫诲瀷;
+    private String ddate;
+    private String cWhCode;
+    private String cDepCode;
+    private String cOrderCode;
+    private String cMaker;
+    private String cHandler;
+    private String cDefine14;
+    private List<ChildInfo> children;
+
+    @Data
+    public static class ChildInfo{
+        private String irowno;
+        private String cInvCode;
+        private String iQuantity;
+        private String cBatch;
+        private String iNum;
+        private String iinvexchrate;
+        private String bFree1;
+        private String iPOsID;
+        private String cOrderCode;
+        private String ivouchrowno;
+        private String Define22;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index f92f070..58d4ffb 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -609,7 +609,7 @@
         }
         Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
 
-        Mat mat = matService.selectByMatnr(param.getCInvCCode());
+        Mat mat = matService.selectByMatnr(param.getCInvCode());
         if (Cools.isEmpty(mat)) {
             mat = new Mat();
             mat.setTagId(tag.getId());
@@ -636,11 +636,11 @@
 
     private void syncMat(Mat mat, MatSyncParam param){
         Date date = new Date();
-        mat.setMatnr(param.getCInvCCode());//鐗╂枡缂栫爜
+        mat.setMatnr(param.getCInvCode());//鐗╂枡缂栫爜
         mat.setMaktx(param.getCInvName());//鐗╂枡鍚嶇О
         mat.setSpecs(param.getCInvStd());//瑙勬牸
         mat.setUnit(param.getCComUnitName());
-        mat.setBeBatch(param.getBInvBatch());
+        mat.setBeBatch(Cools.eq("true",param.getBInvBatch()) ? 1 : 0);
         mat.setStatus(param.getStates());
 
         mat.setCreateBy(9999L);//9999琛ㄧずerp涓嬪彂
@@ -858,9 +858,29 @@
             throw new CoolException("鍗曟嵁鍙傛暟涓虹┖鎴栬�呭崟鎹鎯呬负绌猴紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅");
         }
 
+        Order orderOld = null;
+
         if(!Cools.isEmpty(orderService.selectByNo(param.getCPOID()))){
-            callApiLogSave(param, "/order/pakout/default/v1", "鎺ュ彈鍗曟嵁澶辫触锛岃鍗曟嵁宸插瓨鍦紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅", false);
-            throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
+
+            orderOld = orderService.selectByNo(param.getCPOID());
+            if(orderOld.getSettle() > 1){
+                throw new CoolException("璇ュ崟鎹凡鍦ㄤ綔涓氫腑锛屾棤娉曟洿鏀瑰崟鎹俊鎭�");
+            }
+
+//            String orderNo = param.getCPOID();
+//            if (orderNo.contains("-")){
+//                int index = Integer.parseInt(orderNo.split("-")[1]) + 1;
+//                orderNo = orderNo.split("-")[0] + "-" + index;
+//                param.setcPOID(orderNo);
+//            }else {
+//                orderNo = orderNo + "-1";
+//                param.setcPOID(orderNo);
+//            }
+//
+//            syncOrder(param,pakin,docName);
+
+            //callApiLogSave(param, "/order/pakout/default/v1", "鎺ュ彈鍗曟嵁澶辫触锛岃鍗曟嵁宸插瓨鍦紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅", false);
+            //throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
         }
         Date now = new Date();
         Order order = orderMapping(param,now,pakin,docName);
@@ -869,6 +889,12 @@
             OrderDetl orderDetl = orderDetlMapping(order,od,now);
             orderDetlService.insert(orderDetl);
         });
+
+        if(!Cools.isEmpty(orderOld)){
+            //鍒犻櫎鍘熸湁鍗曟嵁淇℃伅
+            orderService.delete(new EntityWrapper<Order>().eq("id",orderOld.getId()));
+            orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id",orderOld.getId()));
+        }
 
         callApiLogSave(param, "/order/pakout/default/v1", "鎺ュ彈鍗曟嵁鎴愬姛", true);
 
@@ -887,7 +913,7 @@
         }
 
         orderService.deleteById(order);
-        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no",orderNo));
+        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id",order.getId()));
 
         return true;
     }
@@ -907,6 +933,8 @@
         order.setMemo(param.getCMemo());
         //鍒跺崟浜�
         order.setShipCode(param.getCPersonCode());
+
+        order.setDefNumber(param.get鎿嶄綔绯荤粺鍙�());
 
         order.setCreateTime(now);
         order.setUpdateTime(now);
@@ -943,12 +971,14 @@
         //鏁伴噺
         od.setAnfme(odParam.getIQuantity());
         //閿�鍞鍗曞彿
-        od.setThreeCode(odParam.getCsocode());
+        od.setThreeCode(odParam.getCDefine22());
         //鑷敱椤�
         od.setDeadTime(odParam.getBFree1());
         //IDs
         od.setSku(odParam.getID());
 
+        od.setLength(odParam.getINum());
+
         od.setStatus(1);
         od.setQty(0.0D);
         od.setCreateBy(9999L);
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index db31a00..84bfaa1 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -39,7 +39,7 @@
         }
     }
 
-    //@Scheduled(cron = "0/5 * * * * ? ")
+    @Scheduled(cron = "0/5 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
         String erpReport = Parameter.get().getErpReport();
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 9da4362..4807c23 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -7,6 +7,7 @@
 import com.zy.asrs.entity.DocType;
 import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.param.ReportErpParam;
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.DocTypeService;
 import com.zy.asrs.service.OrderDetlService;
@@ -17,12 +18,12 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * Created by vincent on 2020/7/7
@@ -31,8 +32,6 @@
 @Service
 public class OrderSyncHandler extends AbstractHandler<String> {
 
-    @Autowired
-    private JdbcTemplate jdbcTemplate;
     @Autowired
     private OrderService orderService;
     @Autowired
@@ -51,34 +50,28 @@
     @Transactional
     public ReturnT<String> start(Order order) {
 
+        List<String> docNames = new ArrayList<>(Arrays.asList("閾跺骇閲囪喘鍏ュ簱鍗�","閾跺骇濮斿鏉愭枡鍑哄簱鍗�","閾跺骇濮斿鍏ュ簱鍗�","閾跺骇鐢熶骇鏉愭枡鍑哄簱鍗�"));
+
         DocType docType = docTypeService.selectById(order.getDocType());
-        if("鎵嬪姩鍑哄簱鍗�".equals(docType.getDocName())
-                || "鎵嬪姩鍏ュ簱鍗�".equals(docType.getDocName())
-                || "鑷姩琛ヨ揣鍗�".equals(docType.getDocName())
-                || "浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+        if(!docNames.contains(docType.getDocName())){
             order.setSettle(8L);
             orderService.updateById(order);
             return SUCCESS;
         }
+//        if("鎵嬪姩鍑哄簱鍗�".equals(docType.getDocName())
+//                || "鎵嬪姩鍏ュ簱鍗�".equals(docType.getDocName())
+//                || "鑷姩琛ヨ揣鍗�".equals(docType.getDocName())
+//                || "浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+//            order.setSettle(8L);
+//            orderService.updateById(order);
+//            return SUCCESS;
+//        }
 
+        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
 
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        Map<String, Object> param = new HashMap<>();
-        param.put("id",order.getOrderNo());
-        param.put("dDate",sdf.format(new Date()));
-        param.put("cHandler","WMS绯荤粺");
-
-        List<Map<String,Object>> orderDetlsParam = new ArrayList<>();
-        param.put("orderDetails",orderDetlsParam);
-
-        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-
-        for (OrderDetl orderDetl : orderDetls){
-            Map<String, Object> odMap = new HashMap<>();
-            odMap.put("autoid",orderDetl.getItemNum());
-            odMap.put("iQuantity",orderDetl.getQty());
-            orderDetlsParam.add(odMap);
-        }
+        ReportErpParam param = new ReportErpParam();
+        mappingParam(order,param);
+        mappingParamChildren(orderDetlList,param);
 
         int code = doHttpRequest(param, "鍗曟嵁瀹℃牳", url, orderReportPath, null, "127.0.0.1");
         if(code == 0){
@@ -89,6 +82,41 @@
         return SUCCESS;
     }
 
+    private void mappingParam(Order order, ReportErpParam param){
+        param.set鎿嶄綔绯荤粺鍙�(order.getDefNumber());
+        param.set鎿嶄綔鍗曟嵁(order.getDocType$());
+        param.set鎿嶄綔绫诲瀷("add");
+        param.setDdate(order.getOrderTime());
+        param.setCWhCode("");
+        param.setCDepCode("YZ");
+        param.setCOrderCode(order.getOrderNo());
+        param.setCMaker("");
+        param.setCHandler("");
+        param.setCDefine14(order.getOrderNo());
+    }
+
+    private void mappingParamChildren(List<OrderDetl> orderDetlList, ReportErpParam param){
+        List<ReportErpParam.ChildInfo> paramChild = new ArrayList<>();
+        param.setChildren(paramChild);
+        for (OrderDetl orderDetl : orderDetlList){
+            ReportErpParam.ChildInfo childInfo = new ReportErpParam.ChildInfo();
+            childInfo.setIrowno(orderDetl.getItemNum());
+            childInfo.setCInvCode(orderDetl.getMatnr());
+            childInfo.setIQuantity(orderDetl.getQty() + "");
+            childInfo.setCBatch(orderDetl.getBatch());
+            childInfo.setINum(orderDetl.getLength() + "");
+            childInfo.setIinvexchrate("");
+            childInfo.setBFree1(orderDetl.getDeadTime());
+            childInfo.setIPOsID(orderDetl.getId() + "");
+            childInfo.setCOrderCode(orderDetl.getOrderNo());
+            childInfo.setIvouchrowno(orderDetl.getItemNum());
+            childInfo.setDefine22(orderDetl.getThreeCode());
+
+            paramChild.add(childInfo);
+        }
+
+    }
+
     private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
         String response = "";
         boolean success = false;

--
Gitblit v1.9.1