From af8a669a028838d4896eb4167a6895551938dd29 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期一, 19 一月 2026 15:06:52 +0800
Subject: [PATCH] 备货指示派工单反馈优化

---
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java |  124 +++++++++++++++++++++++++----------------
 1 files changed, 76 insertions(+), 48 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 2f138d3..047bb09 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -19,6 +19,8 @@
 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.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -69,6 +71,8 @@
     private LocDetlService locDetlService;
     @Autowired
     CheckOrderDetlService checkOrderDetlService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
 
 
     @Transactional
@@ -255,7 +259,6 @@
             ReportOrderParam orderParam = new ReportOrderParam();
             orderParam.setCompany_id(order.getCstmrName())
                     .setWms_id(order.getId() + "")
-//                    .setOrder_no(order.getOrderNo())
                     .setDispatch_no(order.getOrderNo())
                     .setType(order.getDocType() + "")
                     .setInv_no(order.getNumber())
@@ -289,11 +292,9 @@
                         .setPro_id(detl.getSuppCode())
                         .setLocation_no(locDetl.getZpallet())
                         .setSj_emp(locDetl.getModiUser$())
-                        .setLocation_type(MatLocType.getMatTag(material.getTagId()  + ""))
+                        .setLocation_type(MatLocType.getMatTag(material.getTagId() + ""))
                         // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                        .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss") )
-                        // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
-                        .setSj_emp(order.getUpdateBy$())
+                        .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
                         // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
                         .setPick_qty(detl.getQty().intValue())
                         // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
@@ -311,8 +312,11 @@
             try {
                 List<ReportOrderParam> orderParams = new ArrayList<>();
                 orderParams.add(orderParam);
-                response = kopenApiService.getInDispatchResult(orderParams);
-
+                if (order.getReportOnce() < 4) {
+                    response = kopenApiService.getInDispatchResult(orderParams, order);
+                } else {
+                    return FAIL;
+                }
                 // if (true) {
                 // success = true;
                 // // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -344,64 +348,68 @@
                 }
             }
         } else if (Integer.valueOf(docType.getDocId() + "").equals(OrderTypeEnum.TRANSFER.type)) {
-            // 澶囪揣娲惧伐鍗曪紙鍑哄簱锛�
+            // 澶囪揣鎸囩ず娲惧伐鍗曪紙鍑哄簱锛�
             ReportOrderParam orderParam = new ReportOrderParam();
             orderParam.setCompany_id(order.getCstmrName())
                     .setWms_id(order.getId() + "")
-                    .setOrder_no(order.getOrderNo())
+                    .setDispatch_no(order.getOrderNo())
                     .setType(order.getDocType() + "")
-                    .setInv_no(order.getNumber())
-                    .setPm_tktid(order.getItemName())
                     .setUpdate_time(Utils.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"))
-                    .setTarget_location("");
+                    //鐩爣搴撳尯
+                    .setTarget_location("")
+                    .setTarget_location("1");
 
-            List<ReportOrderParams> reportOrderParams = new ArrayList<>();
+            List<OrderItemsParam> reportOrderParams = new ArrayList<>();
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
                     throw new CoolException("鐗╂枡涓嶅瓨鍦�");
                 }
-                ReportOrderParams itemParam = new ReportOrderParams();
+                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槸鍚﹀凡瀹屾垚锛侊紒");
+                }
+                //鐩爣搴撳尯
+                orderParam.setTarget_location(detlLog.getAreaType());
+                OrderItemsParam itemParam = new OrderItemsParam();
                 // BS Code
-                itemParam.setTotal_serial(detl.getThreeCode())
+                itemParam
                         // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
                         .setPro_type(material.getProType())
                         // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
                         .setPro_komcode(detl.getMatnr())
                         // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
                         .setPro_id(detl.getSuppCode())
-                        // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
-                        .setLocation_no(null)
-                        // 涓婃姤鏃讹紝榛樿鐩爣浣嶇疆鏄痭ull
-                        .setLocation_type(null)
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                        .setSj_date(order.getUpdateBy().toString())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
-                        .setSj_emp(order.getUpdateBy$())
+//                        // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
+                        .setLocation_no(detlLog.getZpallet())
                         // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
-                        .setPick_qty(detl.getQty().intValue())
-                        // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
-                        .setDamage_qty(0)
-                        // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
-                        .setDiff_qty(0);
-
+                        .setPick_qty(detl.getQty().intValue());
                 reportOrderParams.add(itemParam);
             });
 
-            orderParam.setDetails(reportOrderParams);
+            if (orderParam.getTarget_location().equals("2")) {
+                orderParam.setType("11");
+            } else if (orderParam.getTarget_location().equals("3")) {
+                orderParam.setType("12");
+            } else {
+                orderParam.setType("13");
+            }
+            orderParam.setPartList(reportOrderParams);
 
             XSR response = null;
             boolean success = false;
             try {
-                // response = new HttpHandler.Builder()
-                // .setUri(MesConstant.URL)
-                // .setPath(MesConstant.PAKOUT_URL)
-                // .setJson(JSON.toJSONString(pakoutParam))
-                // .build()
-                // .doPost();
-                // JSONObject jsonObject = JSON.parseObject(response);
-                // if (jsonObject.getInteger("code").equals(200)) {
-                if (true) {
+                List<ReportOrderParam> orderParams = new ArrayList<>();
+                orderParams.add(orderParam);
+                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)) {
@@ -409,8 +417,8 @@
                     }
                 } else {
                     log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}",
-                            MesConstant.URL + MesConstant.OUT_DISPATCH_RESULT,
-                            JSON.toJSONString(orderParam), JSON.toJSONString(response));
+                            MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
+                            JSON.toJSONString(orderParams), JSON.toJSONString(response));
                     throw new CoolException("涓婃姤KOPEN绯荤粺澶辫触");
                 }
             } catch (Exception e) {
@@ -457,7 +465,8 @@
                 itemParam.setPro_komcode(material.getMatnr());
                 // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
                 itemParam.setPro_id(detl.getSuppCode());
-
+                //todo 鍙拌溅缂栫爜
+                itemParam.setTruck_no("TC310080014");
                 // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
                 itemParam.setPick_qty(detl.getQty().intValue());
                 reportOrderParams.add(itemParam);
@@ -468,7 +477,7 @@
             pubOrderParamsList.add(pubOrderParams);
             // 璁剧疆娲惧伐鍗曟槑缁�
             stockUpOrderParams.setDetails(pubOrderParamsList);
-            stockUpOrderParams.setUpdate_time(order.getUpdateBy$());
+            stockUpOrderParams.setUpdate_time(order.getUpdateTime$());
 
             XSR response = null;
             boolean success = false;
@@ -481,7 +490,16 @@
                 // .doPost();
                 // JSONObject jsonObject = JSON.parseObject(response);
                 // if (jsonObject.getInteger("code").equals(200)) {
-                if (true) {
+
+                List<StockUpOrderParams> orderParams = new ArrayList<>();
+                orderParams.add(stockUpOrderParams);
+                if (order.getReportOnce() < 4) {
+                    response = kopenApiService.getOutDetailsResult(orderParams, order);
+                } else {
+                    return FAIL;
+                }
+
+                if (response.getSuccess()) {
                     success = true;
                     // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
                     if (!orderService.updateSettle(order.getId(), settle, null)) {
@@ -518,7 +536,7 @@
 
     /**
      * 鎹熸孩鍗曞畬缁撲笂鎶�
-     * 
+     *
      * @param order
      * @return
      */
@@ -531,10 +549,11 @@
         adjustParam.setCompany_id(order.getCstmrName())
                 .setWms_id(order.getId() + "")
                 .setType(0 + "")
-                .setCompany_id(order.getCstmrName());
+                .setUpdate_time(order.getUpdateTime$());
+//                .setKopen_id(order.getDefNumber());
 
-        adjustParam.setBsby_no(order.getNumber())
-                .setResason("")
+        adjustParam.setBsby_no(order.getOrderNo())
+                .setReason("")
                 .setReason_name("");
         List<CheckOrderDetl> detls = checkOrderDetlService
                 .selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", order.getId()));
@@ -558,6 +577,15 @@
 
         adjustParams.add(adjustParam);
 
+        if (order.getReportOnce() < 3) {
+            XSR response = kopenApiService.reportCheckOrder(adjustParams, order);
+            if (response.getSuccess()) {
+                return SUCCESS;
+            } else {
+                return FAIL;
+            }
+        }
+
         return SUCCESS;
         // TODO Auto-generated method stub
 

--
Gitblit v1.9.1