From 08915b05c42b2ba97a8bb0809aeb48802ae63b46 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期五, 27 三月 2026 20:42:32 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java |  230 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 142 insertions(+), 88 deletions(-)

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 be6a809..a2970cd 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.task.handler;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
@@ -19,9 +20,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.enums.OrderTypeEnum;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.TaskDetlLogServiceImpl;
-import com.zy.asrs.service.impl.TaskDetlServiceImpl;
-import com.zy.asrs.service.impl.WrkDetlLogServiceImpl;
+import com.zy.asrs.service.impl.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -75,7 +74,13 @@
     @Autowired
     private TaskDetlLogService taskDetlLogService;
     @Autowired
-    private WrkDetlLogServiceImpl wrkDetlLogService;
+    private WrkDetlLogService wrkDetlLogService;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
+    private OrderPakoutService orderPakoutService;
 
 
     @Transactional
@@ -279,15 +284,15 @@
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
-                    throw new CoolException(material.getMatnr() +  "鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
                 }
-                ReportOrderParams itemParam = new ReportOrderParams();
-
-                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+                List<WrkDetlLog> wrkDetls = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
                         .eq("matnr", detl.getMatnr())
+                        .eq("three_code", detl.getThreeCode())
                         .eq("supp_code", detl.getSuppCode())
                         .eq("order_no", detl.getOrderNo()));
-                if (Objects.isNull(locDetl)) {
+                if (Objects.isNull(wrkDetls) || wrkDetls.isEmpty()) {
+                    ReportOrderParams itemParam = new ReportOrderParams();
                     // BS Code
                     itemParam.setTotal_serial(detl.getThreeCode())
                             // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
@@ -307,30 +312,34 @@
                             .setDamage_qty(0)
                             // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
                             .setDiff_qty(0);
+                    reportOrderParams.add(itemParam);
                 } else {
-                    // BS Code
-                    itemParam.setTotal_serial(detl.getThreeCode())
-                            // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
-                            .setPro_type(material.getProType())
-                            // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
-                            .setPro_komcode(detl.getMatnr())
-                            // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
-                            .setPro_id(detl.getSuppCode())
-                            .setLocation_no(locDetl.getZpallet())
-                            .setSj_emp(locDetl.getModiUser$())
-                            .setLocation_type(MatLocType.getMatTag(material.getTagId() + ""))
-                            // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                            .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
-                            // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
-                            .setPick_qty(locDetl.getAnfme().intValue())
-                            // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
-                            .setDamage_qty(0)
-                            // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
-                            .setDiff_qty(0);
+                    wrkDetls.forEach(wrkDetl -> {
+                        ReportOrderParams itemParam = new ReportOrderParams();
+                        // BS Code
+                        itemParam.setTotal_serial(detl.getThreeCode())
+                                // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+                                .setPro_type(material.getProType())
+                                // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+                                .setPro_komcode(detl.getMatnr())
+                                // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+                                .setPro_id(detl.getSuppCode())
+                                .setLocation_no(wrkDetl.getZpallet())
+                                .setSj_emp(wrkDetl.getModiUser$())
+                                .setLocation_type(MatLocType.getMatTag(material.getTagId() + ""))
+                                // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+                                .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
+                                // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
+                                .setPick_qty(wrkDetl.getAnfme().intValue())
+//                                .setPick_qty(detl.getQty().intValue())
+                                // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
+                                .setDamage_qty(0)
+                                // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
+                                .setDiff_qty(0);
+                        reportOrderParams.add(itemParam);
+                    });
                 }
-                reportOrderParams.add(itemParam);
             });
-
             orderParam.setDetails(reportOrderParams);
 
             XSR response = null;
@@ -389,42 +398,48 @@
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
-                    throw new CoolException(material.getMatnr() +  "鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
                 }
-                //TODO 姝e父瀹岀粨闇�瑕佹墦寮�
-//                TaskDetlLog detlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>()
-//                        .eq("matnr", detl.getMatnr())
-//                        .eq("supp_code", detl.getStandby1())
-//                        .eq("order_no", detl.getOrderNo()));
-//                if (Objects.isNull(detlLog)) {
-//                    throw new CoolException("鏁版嵁閿欒 锛岃妫�鏌GV浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
-//                }
-                WrkDetlLog detlLog = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>()
+                TaskDetlLog taskDetlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>()
                         .eq("matnr", detl.getMatnr())
                         .eq("supp_code", detl.getStandby1())
                         .eq("order_no", detl.getOrderNo()));
-                if (Objects.isNull(detlLog)) {
-                    throw new CoolException("鐗╂枡缂栫爜锛�" + detl.getMatnr() + "鏁版嵁閿欒 锛岃妫�鏌ュ爢鍨涙満浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
+                if (Objects.isNull(taskDetlLog) || Objects.isNull(taskDetlLog.getAreaType())) {
+                    orderParam.setTarget_location("2");
+//                    throw new CoolException("鏁版嵁閿欒 锛岃妫�鏌GV浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
+                } else {
+                    orderParam.setTarget_location(taskDetlLog.getAreaType());
                 }
-                //鐩爣搴撳尯
-                orderParam.setTarget_location("2");
-//                orderParam.setTarget_location(detlLog.getAreaType());
-                OrderItemsParam itemParam = new OrderItemsParam();
-                // BS Code
-                itemParam
-                        // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
-                        .setPro_type(material.getProType())
-                        // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
-                        .setPro_komcode(detl.getMatnr())
-                        // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
-                        .setPro_id(detl.getSuppCode())
+                List<WrkDetlLog> detlLog = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
+                        .eq("matnr", detl.getMatnr())
+                        .eq("supp_code", detl.getStandby1())
+                        .eq("order_no", detl.getOrderNo()));
+                detlLog.forEach(item -> {
+                    OrderItemsParam itemParam = new OrderItemsParam();
+                    if (Objects.isNull(item)) {
+                        itemParam.setLocation_no("LX99999999");
+                    } else {
+                        itemParam.setLocation_no(item.getZpallet());
+                    }
+                    itemParam
+                            // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+                            .setPro_type(material.getProType())
+                            // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+                            .setPro_komcode(detl.getMatnr())
+                            // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+                            .setPro_id(detl.getSuppCode())
 //                        // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
-                        .setLocation_no(detlLog.getZpallet())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
-                        .setPick_qty(Objects.isNull(detl.getQty()) ? 0 : detl.getQty().intValue());
-                reportOrderParams.add(itemParam);
+//                              .setLocation_no(detlLog.getZpallet())
+                            // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
+                            .setPick_qty(item.getAnfme().intValue());
+//                            .setPick_qty(Objects.isNull(detl.getQty()) ? 0 : detl.getQty().intValue());
+                    reportOrderParams.add(itemParam);
+                });
             });
 
+            //鐩爣搴撳尯
+//          orderParam.setTarget_location("2");
+            // BS Code
             if (orderParam.getTarget_location().equals("2")) {
                 orderParam.setType("11");
             } else if (orderParam.getTarget_location().equals("3")) {
@@ -439,26 +454,29 @@
             try {
                 List<ReportOrderParam> orderParams = new ArrayList<>();
                 orderParams.add(orderParam);
+                log.info("娲惧伐鍗曞叆鍙�---------->{}", JSONArray.toJSONString(orderParams));
                 if (order.getReportOnce() < 4) {
                     response = kopenApiService.reportOutDetailsResult(orderParams, order);
-                } else {
-                    return FAIL;
-                }
-                if (response.getSuccess()) {
-                    success = true;
-                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-                    if (!orderService.updateSettle(order.getId(), settle, null)) {
-                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                    if (!Objects.isNull(response)) {
+                        if (response.getSuccess()) {
+                            success = true;
+                            // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+                            if (!orderService.updateSettle(order.getId(), settle, null)) {
+                                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                            }
+                        } else {
+                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}",
+                                    MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
+                                    JSON.toJSONString(orderParams), JSON.toJSONString(response));
+                            throw new CoolException("涓婃姤KOPEN绯荤粺澶辫触");
+                        }
+                    } else {
+//                            return SUCCESS;
                     }
-                } else {
-                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}",
-                            MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
-                            JSON.toJSONString(orderParams), JSON.toJSONString(response));
-                    throw new CoolException("涓婃姤KOPEN绯荤粺澶辫触");
                 }
             } catch (Exception e) {
                 log.error("fail", e);
-                return FAIL.setMsg(e.getMessage());
+//                        return FAIL.setMsg(e.getMessage());
             } finally {
                 try {
                     // 淇濆瓨鎺ュ彛鏃ュ織
@@ -491,28 +509,30 @@
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
-                    throw new CoolException(material.getMatnr() +  "鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
                 }
-                TaskDetlLog detlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>()
+                List<TaskDetlLog> detlLogs = taskDetlLogService.selectList(new EntityWrapper<TaskDetlLog>()
                         .eq("matnr", detl.getMatnr())
                         .eq("supp_code", detl.getStandby1())
                         .eq("order_no", detl.getOrderNo()));
-                if (Objects.isNull(detlLog)) {
+                if (Objects.isNull(detlLogs) || detlLogs.isEmpty()) {
                     throw new CoolException("鏁版嵁閿欒 锛岃妫�鏌GV浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
                 }
-                OrderItemsParam itemParam = new OrderItemsParam();
-                // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
-                itemParam.setPro_type(material.getProType());
-                // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
-                itemParam.setPro_komcode(material.getMatnr());
-                // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
-                itemParam.setPro_id(detl.getSuppCode());
-                //todo 鍙拌溅缂栫爜
-                itemParam.setTruck_no(detlLog.getZpallet());
-                // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                itemParam.setPick_qty(detl.getQty().intValue());
+                detlLogs.forEach(detlLog -> {
+                    OrderItemsParam itemParam = new OrderItemsParam();
+                    // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+                    itemParam.setPro_type(material.getProType());
+                    // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+                    itemParam.setPro_komcode(material.getMatnr());
+                    // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+                    itemParam.setPro_id(detl.getSuppCode());
+                    //todo 鍙拌溅缂栫爜
+                    itemParam.setTruck_no(detlLog.getZpallet());
+                    // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+                    itemParam.setPick_qty(detlLog.getAnfme().intValue());
 
-                reportOrderParams.add(itemParam);
+                    reportOrderParams.add(itemParam);
+                });
             });
             pubOrderParams.setPartList(reportOrderParams);
 
@@ -607,7 +627,7 @@
         detls.forEach(detl -> {
             Mat material = matService.selectByMatnr(detl.getMatnr());
             if (Objects.isNull(material)) {
-                throw new CoolException(material.getMatnr() +  "鐗╂枡涓嶅瓨鍦�");
+                throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
             }
             OrderItemsParam itemParam = new OrderItemsParam();
             itemParam.setLocation_no(detl.getZpallet())
@@ -634,4 +654,38 @@
 
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    public ReturnT<String> startConvertOrders(OrderPakout orderPakout) {
+        if (orderPakout.getSettle() != 4) {
+            return FAIL;
+        }
+        List<OrderDetlPakout> detlPakins = orderDetlPakoutService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_no", orderPakout.getOrderNo()));
+        if (!Objects.isNull(detlPakins) && !detlPakins.isEmpty()) {
+            detlPakins.forEach(detl -> {
+                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+                        .eq("matnr", detl.getMatnr())
+                        .eq("supp_code", detl.getSuppCode())
+                        .eq("order_no", detl.getOrderNo()));
+                if (!Objects.isNull(orderDetl)) {
+                    orderDetl.setQty(detl.getQty());
+                    orderDetl.setWorkQty(detl.getWorkQty());
+                    if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>()
+                            .eq("matnr", detl.getMatnr())
+                            .eq("supp_code", detl.getSuppCode())
+                            .eq("order_no", detl.getOrderNo()))) {
+                        throw new CoolException("璁㈠崟淇℃伅鏇存柊澶辫触锛侊紒");
+                    }
+                }
+            });
+
+            Order orderNo = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderPakout.getOrderNo()));
+            if (!Objects.isNull(orderNo)) {
+                orderNo.setSettle(4L);
+                if (!orderService.update(orderNo, new EntityWrapper<Order>().eq("order_no", orderPakout.getOrderNo()))) {
+                    throw new CoolException("鍗曟嵁鐘舵�佹洿鏂板け璐ワ紒锛�");
+                }
+            }
+        }
+        return SUCCESS;
+    }
 }

--
Gitblit v1.9.1