From a374f2b69941b4b391b2735e6afc9ba943efc6b1 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 27 十二月 2023 19:17:16 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java           |   16 +++-
 src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java       |   18 ++++++
 src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java     |  104 +++++++++++++++++++++++++++++++---
 src/main/webapp/static/js/order/order.js                                     |    7 ++
 src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java         |    2 
 src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java                  |    6 +-
 src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java |    5 +
 src/main/resources/application.yml                                           |   20 ++++--
 8 files changed, 152 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
index 99911fa..2ffb8de 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -11,6 +11,7 @@
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -27,18 +28,23 @@
     @Value("${erp.switch.SaveOrderSwitch}")
     private boolean SaveOrderSwitch;
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
-        if (1==1) return;
         if(!SaveOrderSwitch){
             return;
         }
         List<Order> orders = orderService.selectComplete();
         for (Order order : orders) {
-            ReturnT<String> result = saveOrderSyncHandler.start(order);
-            if (!result.isSuccess()) {
-                log.error("鍗曟嵁[orderNo={}]鎻愪氦鑷砮rp澶辫触", order.getOrderNo());
+            try{
+                ReturnT<String> result = saveOrderSyncHandler.start(order);
+                if (!result.isSuccess()) {
+                    log.error("鍗曟嵁[orderNo={}]鎻愪氦鑷砮rp澶辫触", order.getOrderNo());
+                }
+            }catch (Exception e){
+                Order order1 = orderService.selectById(order.getId());
+                order1.setUpdateTime(new Date());
+                orderService.updateById(order1);
             }
         }
     }
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
index de43a20..1c4e3c6 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -30,7 +30,7 @@
     @Value("${erp.switch.SubmitOrderSwitch}")
     private boolean SubmitOrderSwitch;
 
-    @Scheduled(cron = "0/3 * * * * ? ")
+//    @Scheduled(cron = "0/3 * * * * ? ")
     @Async("orderThreadPool")
     public void completeAndReport(){
         if(!SubmitOrderSwitch){
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
index 859e1da..67bc964 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
@@ -138,6 +138,11 @@
                     order.setUpdateTime(new Date());
                     orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                 }
+            } else {
+                success = false;
+                order.setSettle(7L);
+                order.setUpdateTime(new Date());
+                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
             }
         } catch (Exception e) {
             log.info("涓嬫帹error:"+response);
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
index a05c7ca..20975cc 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -4,10 +4,16 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.zy.asrs.entity.DocType;
 import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
@@ -19,8 +25,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.HashMap;
-import java.util.Set;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * Created by Monkey D. Luffy on 2023.10.21
@@ -43,10 +49,16 @@
     @Autowired
     private DocTypeService docTypeService;
     @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
     private LoginAuthenticationHandler loginAuthenticationHandler;
 
     @Transactional
     public ReturnT<String> start(Order order) {
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+        if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
+            return SUCCESS;
+        }
         //鐧诲綍閲戣澏r
         ReturnT<String> start = loginAuthenticationHandler.start();
         DocType docType = docTypeService.selectById(order.getDocType());
@@ -54,12 +66,72 @@
             return SUCCESS;
         }
         KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
-
+        if (kingDeeUtilType.entryId!=2){
+            return SUCCESS;
+        }
+        Date now = new Date();
         //鏉′欢鎷兼帴
+        JSONObject jsonObjectFBillTypeID = new JSONObject();
+        JSONObject jsonObjectFPickerId = new JSONObject();
+        if (kingDeeUtilType.pakIn==1){
+            jsonObjectFBillTypeID.put("FNUMBER","QTRKD01_SYS");
+        }else {
+            jsonObjectFBillTypeID.put("FNUMBER","QTCKD01_SYS");
+            jsonObjectFPickerId.put("FStaffNumber","X0103_GLGW074_1");
+        }
+
+        JSONObject jsonObjectFStockOrgId = new JSONObject();
+        jsonObjectFStockOrgId.put("FNUMBER","100");
+
+        JSONObject jsonObjectFOwnerIdHead = new JSONObject();
+        jsonObjectFOwnerIdHead.put("FNUMBER","100");
+
+        JSONObject jsonObjectFDEPTID = new JSONObject();
+        jsonObjectFDEPTID.put("FNUMBER","CX");
+
+        List<JSONObject> jsonObjects = new ArrayList<>();
+
+        for (OrderDetl orderDetl:orderDetls){
+            JSONObject jsonObjectFMATERIALID = new JSONObject();
+            jsonObjectFMATERIALID.put("FNUMBER",orderDetl.getMatnr());
+
+            JSONObject jsonObjectFSTOCKID = new JSONObject();
+            jsonObjectFSTOCKID.put("FNUMBER","CK001");
+
+            JSONObject jsonObjectFLOT = new JSONObject();
+            jsonObjectFLOT.put("FNUMBER",orderDetl.getBatch());
+
+            // 浣跨敤LinkedHashMap鏉ヤ繚鎸佹彃鍏ラ『搴�
+            Map<String, Object> orderedMap = new LinkedHashMap<>();
+
+            // 鎸夌収鏈熸湜鐨勯『搴忔坊鍔犻敭鍊煎
+            orderedMap.put("FMATERIALID", jsonObjectFMATERIALID);
+            orderedMap.put("FSTOCKID", jsonObjectFSTOCKID);
+            orderedMap.put("FLOT", jsonObjectFLOT);
+            orderedMap.put("FQty", orderDetl.getQty());                    // 灏�"FQty"鏀惧埌鏈�鍚�
+
+            JSONObject jsonObjectEnd = new JSONObject(orderedMap);
+
+            jsonObjects.add(jsonObjectEnd);
+        }
+
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("Numbers",order.getOrderNo());
+        jsonObject.put("FBillTypeID",jsonObjectFBillTypeID);
+        if (kingDeeUtilType.pakIn==0){
+            jsonObject.put("FPickerId",jsonObjectFPickerId);
+        }
+        jsonObject.put("FDate",DateUtils.convert(now, DateUtils.yyyyMMdd_F));
+        jsonObject.put("FStockOrgId",jsonObjectFStockOrgId);
+        jsonObject.put("FOwnerTypeIdHead","BD_OwnerOrg");
+        jsonObject.put("FOwnerIdHead",jsonObjectFOwnerIdHead);
+        jsonObject.put("FDEPTID",jsonObjectFDEPTID);
+        jsonObject.put("FEntity",jsonObjects);
+
+        JSONObject jsonObjectModel = new JSONObject();
+        jsonObjectModel.put("Model",jsonObject);
+
         JSONObject jsonObject1 = new JSONObject();
-        jsonObject1.put("data", jsonObject);
+        jsonObject1.put("data", jsonObjectModel);
         jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
         String add = jsonObject1.toJSONString();
         //涓婃姤
@@ -74,15 +146,29 @@
                     .setUri(URL)
                     .setPath(outaddressSave)
                     .setJson(add)
+                    .setHttps(true)
                     .build()
                     .doPost();
             JSONObject data = JSON.parseObject(response);
             Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
-            String bool=IsSuccess.toString();
+            String bool1=IsSuccess.toString();
             //淇濆瓨瀹屾垚鍘熻鍗�8杞�6
-            if(bool.equals("true")){
-                success = true;
-                order.setSettle(6L);
+            if(bool1.equals("true")){
+                ObjectMapper objectMapper =  new ObjectMapper();
+                JsonNode rootNode = objectMapper.readTree(response);
+                boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
+                log.info("瀹℃牳bool:"+bool);
+                //鎻愪氦瀹屾垚鍘熻鍗�4杞�6  6.涓婃姤瀹屾垚
+                if(bool){
+                    success = true;
+                    order.setSettle(6L);
+                    order.setUpdateTime(new Date());
+                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
+                }
+            }else {
+                success = false;
+                order.setSettle(7L);
+                order.setUpdateTime(new Date());
                 orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
             }
         } catch (Exception e) {
diff --git a/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java b/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java
new file mode 100644
index 0000000..c7312b3
--- /dev/null
+++ b/src/main/java/com/zy/erp/kingdee/entity/param/SaceOrderOtherParam.java
@@ -0,0 +1,18 @@
+package com.zy.erp.kingdee.entity.param;
+
+import lombok.Data;
+
+@Data
+public class SaceOrderOtherParam {
+    //璐﹀彿ID
+    private String FMATERIALID;
+
+    //璐﹀彿
+    private String FSTOCKID;
+
+    //瀵嗙爜
+    private String FLOT;
+
+    //
+    private Integer FQty;
+}
diff --git a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
index 4943493..6bf8b04 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -36,9 +36,9 @@
     STK_OutStockApply337(12, "鐮斿彂棰嗘枡鍑哄簱鐢宠鍗�-鐮斿彂棰嗘枡鍑哄簱鍗�","STK_OUTSTOCKAPPLY","","鐮斿彂棰嗘枡鍑哄簱鍗�","",0,"STK_OutstockApplyTosTK_MisDelivery",0),
     STK_ASSEMBLY1(13, "缁勮鎷嗗嵏鍗�1","STK_ASSEMBLY","","","",1,"",0),
     STK_ASSEMBLY2(14, "缁勮鎷嗗嵏鍗�2","STK_ASSEMBLY","","","",0,"",0),
-    SAL_RETURNNOTICE1(15, "鍏朵粬鍏ュ簱鍗�","SAL_RETURNNOTICE","","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1,"",2),
-    SAL_DELIVERYNOTICE2(16, "鍏朵粬鍑哄簱鍗�","SAL_DELIVERYNOTICE","","鍏朵粬鍑哄簱鍗�","SAL_DELIVERYNOTICE",0,"",2),
-    PRD_PPBOM(17, "鐢熶骇鐢ㄦ枡娓呭崟-鐢熶骇鐢ㄦ枡娓呭崟鍙樻洿鍗�","PRD_PPBOM","","鐢熶骇棰嗘枡鍗�","PRD_PPBOMChange",1,"PRD_PPBOM2PPBOMCHANGE",2),
+    SAL_RETURNNOTICE1(15, "鍏跺畠鍏ュ簱鍗�","STK_MISCELLANEOUS","","鍏跺畠鍏ュ簱鍗�","STK_MISCELLANEOUS",1,"",2),
+    SAL_DELIVERYNOTICE2(16, "鍏跺畠鍑哄簱鍗�","STK_MisDelivery","","鍏朵粬鍑哄簱鍗�","STK_MisDelivery",0,"",2),
+    PRD_PPBOM(17, "鐢熶骇鐢ㄦ枡娓呭崟-鐢熶骇鐢ㄦ枡娓呭崟鍙樻洿鍗�","PRD_PPBOM","","鐢熶骇棰嗘枡鍗�","PRD_PPBOMChange",1,"PRD_PPBOM2PPBOMCHANGE",10),
     STK_TRANSFERAPPLY2(18, "璋冩嫧鐢宠鍗�2-鐩存帴璋冩嫧鍗�","STK_TRANSFERAPPLY","","鐩存帴璋冩嫧鍗�","STK_TransferDirect",0,"StkTransferApphy-StkTransferDirect",1),
     STK_TRANSFERAPPLY3(19, "璋冩嫧鐢宠鍗�3-鐩存帴璋冩嫧鍗�","STK_TRANSFERAPPLY","","鐩存帴璋冩嫧鍗�","STK_TransferDirect",0,"StkTransferApphy-StkTransferDirect",1),
     ;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index eb2298c..4fefab9 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -17,12 +17,12 @@
 #    url: jdbc:sqlserver://10.10.10.100:1433;databasename=mdqdasrs
 #    username: sa
 #    password: Dtzhcy101+
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs
-    username: sa
-    password: sa@123
-#    url: jdbc:sqlserver://127.0.0.1:51433;databasename=mdqdasrs
+#    url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs
 #    username: sa
-#    password: Zoneyung@zy56$
+#    password: sa@123
+    url: jdbc:sqlserver://47.97.1.152:51433;databasename=mdqdasrs
+    username: sa
+    password: Zoneyung@zy56$
   mvc:
     static-path-pattern: /**
   redis:
@@ -68,8 +68,12 @@
     InboundOrderSwitch: false
     #鐧诲綍鎺ュ彛寮�鍏�
     LoginAuthenticationSwitch: true
-    #涓婃姤鍗曟嵁寮�鍏�  绫冲鏃犵敤
+    #瀹℃牳鍗曟嵁寮�鍏� 绫冲鏃犵敤
     ReviewOrderSwitch: false
+    #淇濆瓨鍗曟嵁寮�鍏�
+    SaveOrderSwitch: true
+    #鎻愪氦鍗曟嵁寮�鍏� 绫冲鏃犵敤
+    SubmitOrderSwitch: false
     #涓嬫帹鍗曟嵁寮�鍏�
     PushDowmOrderSwitch: true
   #  鍦板潃
@@ -81,11 +85,11 @@
     inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
     #鍗曟嵁涓嬫帹鍦板潃
     pushDowmAudit: K3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc
-    #缁撴灉涓婃姤锛堜繚瀛橈級鍗曞湴鍧�  绫冲鏃犵敤
+    #缁撴灉涓婃姤锛堜繚瀛橈級鍗曞湴鍧�
     outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
     #缁撴灉涓婃姤锛堟彁浜わ級鍗曞湴鍧�  绫冲鏃犵敤
     outaddressSubmit: K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc
-    #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧�
+    #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧� 绫冲鏃犵敤
     outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc
   #  鐧诲綍璐﹀彿绠$悊
   login :
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index abe7000..90c1539 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -197,6 +197,7 @@
                             {field: 'payment$', title: '璐х墿鐗瑰緛', width: 160},
                             // {field: 'batch', title: '鎵瑰彿'},
                             {field: 'anfme', title: '鏁伴噺'},
+                            {field: 'batch', title: '鎵规'},
                             {field: 'workQty', title: '浣滀笟鏁伴噺'},
                             {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'},
                             // {field: 'unit', title: '鍗曚綅'},
@@ -271,6 +272,11 @@
                             layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2});
                             return false;
                         }
+
+                        if (nList[xi].batch === ""){
+                            layer.msg('鎵规涓嶈兘涓虹┖', {icon: 2});
+                            return false;
+                        }
                     }
                     for (let xi = 0; xi < nList.length; xi++) {
                         if (nList[xi].owner <= 0){
@@ -321,6 +327,7 @@
                         {field: 'specs', title: '瑙勬牸'},
                         {field: 'weight', title: '閲嶉噺', edit: true},
                         {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+                        {field: 'batch', title: '鎵规(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                         {field: 'owner', title: '璐т富缂栧彿', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
                         {field: 'payment', title: '璐х墿鐘舵��', style: 'color: blue;font-weight: bold', templet: '#payment'},
                         // {field: 'payment', title: '璐х墿鐘舵��',align: 'center', templet: '#payment'},

--
Gitblit v1.9.1