From 654d0f6f816af954125ad6661a0b934d56c22083 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 25 九月 2025 13:22:55 +0800
Subject: [PATCH] 一条订单明细完成,上报关闭

---
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |   81 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 73 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index 693b9b9..54dc6bd 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -19,16 +19,20 @@
 import com.zy.asrs.service.OrderService;
 import com.zy.common.model.DetlDto;
 import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.text.Format;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 @Slf4j
 @Service("orderDetlService")
@@ -39,12 +43,23 @@
     @Autowired
     private OrderDetlService orderDetlService;
 
+    @Resource
+    private UserService userService;
+
     @Autowired
     private ApiLogService apiLogService;
     @Value("${erp.switch.ReviewOrderSwitch}")
     private Boolean switchReviewOrderSwitch;
     @Value("${erp.address.URL}")
     private String URL;
+    @Value("${erp.address.sServer}")
+    private String sServer;
+    @Value("${erp.address.sAccID}")
+    private String sAccID;
+    @Value("${erp.address.sUserID}")
+    private String sUserID;
+    @Value("${erp.address.sPassword}")
+    private String sPassword;
     @Value("${erp.address.inaddressSave}")
     private String inaddressSave;
     @Value("${erp.address.outaddressSave}")
@@ -140,10 +155,10 @@
         OrderRsult.Login login = new OrderRsult.Login();
         OrderRsult.HeadTable headTable = new OrderRsult.HeadTable();
         OrderRsult.BodyTable bodyTable = new OrderRsult.BodyTable();
-        login.setSAccID("999"); //璐﹀鍙�    鍥哄畾
-        login.setSUserID("sys");//U8鐧婚檰璐﹀彿 鍥哄畾
-        login.setSPassword("123456");//U8鐧婚檰瀵嗙爜 鍥哄畾
-        login.setSServer("10.1.9.20");//U8鏈嶅姟鍣ㄥ湴鍧�銆�鍥哄畾
+        login.setSAccID(sAccID); //璐﹀鍙�    鍥哄畾
+        login.setSUserID(sUserID);//U8鐧婚檰璐﹀彿 鍥哄畾
+        login.setSPassword(sPassword);//U8鐧婚檰瀵嗙爜 鍥哄畾
+        login.setSServer(sServer);//U8鏈嶅姟鍣ㄥ湴鍧�銆�鍥哄畾
         orderRsult.setLogin(login);
         orderRsult.setVerifier("sys");//鍗曟嵁绫诲瀷銆� 鍥哄畾
         orderRsult.setCommandType(sts.equals(1) ? "鏂板" : "鍏抽棴");//鎿嶄綔绫诲瀷 銆�鍥哄畾
@@ -158,8 +173,8 @@
         headTable.setCmaker("sys");//鍒跺崟浜哄悕绉�
         headTable.setVt_id("89");//妯℃澘鍙�		榛樿
 
-        headTable.setCiwhcode("");//杞叆浠撳簱缂栫爜
-        headTable.setCowhcode("");//杞嚭浠撳簱缂栫爜
+        headTable.setCiwhcode("1");//杞叆浠撳簱缂栫爜
+        headTable.setCowhcode("1");//杞嚭浠撳簱缂栫爜
         headTable.setCordcode("");//鍑哄簱绫诲埆缂栫爜      榛樿
         headTable.setCirdcode("");//鍏ュ簱绫诲埆缂栫爜      榛樿
         headTable.setCodepcode("");//杞嚭閮ㄩ棬缂栫爜
@@ -176,9 +191,18 @@
         bodyTable.setCoutposcode("");//鐩爣璐т綅
         bodyTable.setItrsid(orderDetl.getMemo());//琛屼富閿�
         bodyTable.setEditprop(sts.equals(1) ? "A" : "B");//鐘舵�� A 鏂板
+        User user = userService.selectById(orderDetl.getUpdateBy());
+        headTable.setWms_operator(user == null ? "" : user.getUsername()); // 鎿嶄綔璐﹀彿鍚嶇О
 
+        ArrayList<OrderRsult.BodyTable> bodyTables = new ArrayList<>();
+        bodyTables.add(bodyTable);
+        orderRsult.setBodyTable(bodyTables);
 
-        if (order.getDocType()>10L) {
+        ArrayList<OrderRsult.HeadTable> headTables = new ArrayList<>();
+        headTables.add(headTable);
+        orderRsult.setHeadTable(headTables);
+
+        if (order.getDocType() == 34L) {
             ERPPath=outaddressSave;
         }
         ERPName=order.getDocType$();
@@ -196,11 +220,52 @@
             System.out.println("response:"+response);
             JSONObject jsonObject = JSON.parseObject(response);
 
-            if (jsonObject.getInteger("code").equals(200)) {
+            if (jsonObject.getInteger("code").equals(1)) {
                 orderDetl.setUnits(qty+orderDetl.getUnits());
                 orderDetl.setStatus(sts);
                 orderDetlService.updateById(orderDetl);
                 success = true;
+                // 涓�鏉¤鍗曟槑缁嗗畬鎴愶紝涓婃姤鍏抽棴
+                if (Objects.equals(orderDetl.getAnfme(), orderDetl.getQty())) {
+                    boolean success2 = false;
+                    try {
+                        orderRsult.setCommandType("鍏抽棴");
+                        response = new HttpHandler.Builder()
+//                        .setHeaders(map)
+                                .setUri(URL)
+                                .setPath(ERPPath)
+                                .setJson(JSON.toJSONString(orderRsult))
+                                .build()
+                                .doPost();
+                        System.out.println("response:" + response);
+                        JSONObject jsonObject2 = JSON.parseObject(response);
+
+                        if (jsonObject2.getInteger("code").equals(1)) {
+                            success2 = true;
+                        } else {
+                            log.error("鏂板瀹屾垚璋冪敤鍏抽棴璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL + "/" + ERPPath, JSON.toJSONString(orderRsult), response);
+                        }
+                    } catch (Exception e) {
+                        log.error("鏂板瀹屾垚璋冪敤鍏抽棴璇锋眰鎺ュ彛寮傚父锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL + "/" + ERPPath, JSON.toJSONString(orderRsult), response);
+                        e.printStackTrace();
+                    } finally {
+                        try {
+                            // 淇濆瓨鎺ュ彛鏃ュ織
+                            ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+                            apiLogService.save(
+                                    "鍏抽棴涓婃姤" + ERPName,
+                                    URL + "/" + ERPPath,
+                                    null,
+                                    "127.0.0.1",
+                                    JSON.toJSONString(orderRsult),
+                                    response,
+                                    success2
+                            );
+                        } catch (Exception e) {
+                            log.error("", e);
+                        }
+                    }
+                }
             } else {
                 log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+ERPPath, JSON.toJSONString(orderRsult), response);
             }

--
Gitblit v1.9.1