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 |  361 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 242 insertions(+), 119 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 d5a2ff2..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;
@@ -14,12 +15,12 @@
 import com.zy.api.entity.StockAdjustParams;
 import com.zy.api.entity.StockUpOrderParams;
 import com.zy.api.entity.dto.XSR;
+import com.zy.api.enums.MatLocType;
 import com.zy.api.service.KopenApiService;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.enums.OrderTypeEnum;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.CheckOrderDetlServiceImpl;
-import com.zy.asrs.service.impl.LocDetlServiceImpl;
+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;
@@ -48,8 +49,6 @@
 @Service
 public class OrderSyncHandler extends AbstractHandler<String> {
 
-    private final CheckOrderDetlServiceImpl checkOrderDetlService;
-
     @Autowired
     private JdbcTemplate jdbcTemplate;
     @Autowired
@@ -68,11 +67,21 @@
     private KopenApiService kopenApiService;
     @Autowired
     private MatService matService;
-    private LocDetlServiceImpl locDetlService;
+    @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
+    CheckOrderDetlService checkOrderDetlService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
+    @Autowired
+    private WrkDetlLogService wrkDetlLogService;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
+    private OrderPakoutService orderPakoutService;
 
-    OrderSyncHandler(CheckOrderDetlServiceImpl checkOrderDetlService) {
-        this.checkOrderDetlService = checkOrderDetlService;
-    }
 
     @Transactional
     public ReturnT<String> startOrderIssuedOnceMore(Order order) {
@@ -143,6 +152,7 @@
                 orderDetlList.add(detail);
             }
         }
+
         for (OrderDetl orderDetl : orderDetlList) {
             orderDetl.setWorkQty(0D);
             OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(), order, orderDetl);
@@ -164,17 +174,22 @@
 
     @Transactional(rollbackFor = Exception.class)
     public void ifTransfetInsertStockIn(Order order, OrderDetl orderDetl) {
-        OrderPakin orderPakin = new OrderPakin();
-        BeanUtils.copyProperties(order, orderPakin);
-        orderPakin.setDocType(OrderTypeEnum.STOCK_IN.type.longValue());
-
-        if (!orderPakinService.insert(orderPakin)) {
-            throw new CoolException("鎻掑叆澶囪揣鍏ュ簱鍗曞け璐�");
+        OrderPakin pakin = orderPakinService.selectOne(new EntityWrapper<OrderPakin>()
+                .eq("order_no", order.getOrderNo())
+                .eq("doc_type", OrderTypeEnum.STOCK_IN.type.longValue()));
+        if (Objects.isNull(pakin)) {
+            OrderPakin orderPakin = new OrderPakin();
+            BeanUtils.copyProperties(order, orderPakin);
+            orderPakin.setDocType(OrderTypeEnum.STOCK_IN.type.longValue());
+            if (!orderPakinService.insert(orderPakin)) {
+                throw new CoolException("鎻掑叆澶囪揣鍏ュ簱鍗曞け璐�");
+            }
+            pakin = orderPakin;
         }
+
         OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
         BeanUtils.copyProperties(orderDetl, orderDetlPakin);
-        orderDetlPakin.setOrderId(orderPakin.getId());
-
+        orderDetlPakin.setOrderId(pakin.getId());
         if (!orderDetlPakinService.insert(orderDetlPakin)) {
             throw new CoolException("鎻掑叆澶囪揣鍏ュ簱鍗曞け璐�");
         }
@@ -258,7 +273,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())
@@ -270,42 +284,62 @@
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
-                    throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+                    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)) {
-                    throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦� 锛岃妫�鏌ュ崟鎹槸鍚﹀畬鎴愶紒锛�");
+                if (Objects.isNull(wrkDetls) || wrkDetls.isEmpty()) {
+                    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("LX000000000")
+                            .setSj_emp("9527")
+                            .setLocation_type(MatLocType.getMatTag(material.getTagId() + ""))
+                            // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+                            .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss"))
+                            // 涓婃姤鏃讹紝濡傛灉涓虹┖榛樿涓婃姤 0
+                            .setPick_qty(0)
+                            // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
+                            .setDamage_qty(0)
+                            // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
+                            .setDiff_qty(0);
+                    reportOrderParams.add(itemParam);
+                } else {
+                    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);
+                    });
                 }
-
-                // 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$())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                        .setSj_date(Utils.dateToStr(order.getUpdateTime(), "yyyy-MM-dd HH:mm:ss") )
-                        // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
-                        .setSj_emp(order.getUpdateBy$())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
-                        .setPick_qty(detl.getQty().intValue())
-                        // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
-                        .setDamage_qty(0)
-                        // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
-                        .setDiff_qty(0);
-
-                reportOrderParams.add(itemParam);
             });
-
             orderParam.setDetails(reportOrderParams);
 
             XSR response = null;
@@ -313,8 +347,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.宸蹭笂鎶�
@@ -346,78 +383,100 @@
                 }
             }
         } 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("")
+                    .setSource_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("鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
                 }
-                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())
-                        // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
-                        .setLocation_no(null)
-                        // 涓婃姤鏃讹紝榛樿鐩爣浣嶇疆鏄痭ull
-                        .setLocation_type(null)
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                        .setSj_date(order.getUpdateBy().toString())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
-                        .setSj_emp(order.getUpdateBy$())
-                        // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
-                        .setPick_qty(detl.getQty().intValue())
-                        // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
-                        .setDamage_qty(0)
-                        // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
-                        .setDiff_qty(0);
-
-                reportOrderParams.add(itemParam);
+                TaskDetlLog taskDetlLog = taskDetlLogService.selectOne(new EntityWrapper<TaskDetlLog>()
+                        .eq("matnr", detl.getMatnr())
+                        .eq("supp_code", detl.getStandby1())
+                        .eq("order_no", detl.getOrderNo()));
+                if (Objects.isNull(taskDetlLog) || Objects.isNull(taskDetlLog.getAreaType())) {
+                    orderParam.setTarget_location("2");
+//                    throw new CoolException("鏁版嵁閿欒 锛岃妫�鏌GV浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
+                } else {
+                    orderParam.setTarget_location(taskDetlLog.getAreaType());
+                }
+                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(item.getAnfme().intValue());
+//                            .setPick_qty(Objects.isNull(detl.getQty()) ? 0 : detl.getQty().intValue());
+                    reportOrderParams.add(itemParam);
+                });
             });
 
-            orderParam.setDetails(reportOrderParams);
+            //鐩爣搴撳尯
+//          orderParam.setTarget_location("2");
+            // BS Code
+            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) {
-                    success = true;
-                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-                    if (!orderService.updateSettle(order.getId(), settle, null)) {
-                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                List<ReportOrderParam> orderParams = new ArrayList<>();
+                orderParams.add(orderParam);
+                log.info("娲惧伐鍗曞叆鍙�---------->{}", JSONArray.toJSONString(orderParams));
+                if (order.getReportOnce() < 4) {
+                    response = kopenApiService.reportOutDetailsResult(orderParams, order);
+                    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_DISPATCH_RESULT,
-                            JSON.toJSONString(orderParam), 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 {
                     // 淇濆瓨鎺ュ彛鏃ュ織
@@ -450,19 +509,30 @@
             orderDetls.forEach(detl -> {
                 Mat material = matService.selectByMatnr(detl.getMatnr());
                 if (Objects.isNull(material)) {
-                    throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
                 }
-                OrderItemsParam itemParam = new OrderItemsParam();
-                // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
-                itemParam.setPro_type(material.getProType());
-                // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
-                itemParam.setPro_komcode(material.getMatnr());
-                // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
-                itemParam.setPro_id(detl.getSuppCode());
+                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(detlLogs) || detlLogs.isEmpty()) {
+                    throw new CoolException("鏁版嵁閿欒 锛岃妫�鏌GV浠诲姟妗f槸鍚﹀凡瀹屾垚锛侊紒");
+                }
+                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());
 
-                // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
-                itemParam.setPick_qty(detl.getQty().intValue());
-                reportOrderParams.add(itemParam);
+                    reportOrderParams.add(itemParam);
+                });
             });
             pubOrderParams.setPartList(reportOrderParams);
 
@@ -470,7 +540,7 @@
             pubOrderParamsList.add(pubOrderParams);
             // 璁剧疆娲惧伐鍗曟槑缁�
             stockUpOrderParams.setDetails(pubOrderParamsList);
-            stockUpOrderParams.setUpdate_time(order.getUpdateBy$());
+            stockUpOrderParams.setUpdate_time(order.getUpdateTime$());
 
             XSR response = null;
             boolean success = false;
@@ -483,7 +553,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)) {
@@ -520,7 +599,7 @@
 
     /**
      * 鎹熸孩鍗曞畬缁撲笂鎶�
-     * 
+     *
      * @param order
      * @return
      */
@@ -533,10 +612,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()));
@@ -547,7 +627,7 @@
         detls.forEach(detl -> {
             Mat material = matService.selectByMatnr(detl.getMatnr());
             if (Objects.isNull(material)) {
-                throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+                throw new CoolException(material.getMatnr() + "鐗╂枡涓嶅瓨鍦�");
             }
             OrderItemsParam itemParam = new OrderItemsParam();
             itemParam.setLocation_no(detl.getZpallet())
@@ -560,9 +640,52 @@
 
         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
 
     }
 
+    @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