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/handler/SaveOrderSyncHandler.java |  104 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 95 insertions(+), 9 deletions(-)

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) {

--
Gitblit v1.9.1