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

---
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java |  167 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 127 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 167e77e..a5ff1a4 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -15,10 +15,7 @@
 import com.zy.asrs.entity.param.CompleteParam;
 import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.LocDetlServiceImpl;
-import com.zy.asrs.service.impl.MatServiceImpl;
-import com.zy.asrs.service.impl.RowLastnoServiceImpl;
-import com.zy.asrs.service.impl.WrkDetlServiceImpl;
+import com.zy.asrs.service.impl.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.constant.MesConstant;
 import com.zy.common.utils.HttpHandler;
@@ -53,7 +50,11 @@
     @Autowired
     private RowLastnoService rowLastnoService;
     @Autowired
-    private OrderDetlPakoutService orderDetlPakoutService ;
+    private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private WrkDetlLogService wrkDetlLogService;
 
     /**
      * 閫氱煡WCS閿佸畾搴撲綅锛屽強绂佹褰撳墠搴撲綅鐨勪竴鍒囨搷浣�
@@ -148,16 +149,15 @@
                     .build()
                     .doPost();
             Map<String, Object> result = JSON.parseObject(response, Map.class);
-
-            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getTaskNo()));
-            wrkMast.setWrkSts(12L);
-            if (!wrkMastService.updateById(wrkMast)) {
-                throw new CoolException("鏇存柊澶辫触锛侊紒");
-            }
             if (result.get("code").equals(200)) {
                 //TODO 涓婃姤鏄惁鎴愬姛
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getTaskNo()));
+                wrkMast.setWrkSts(12L);
+                if (!wrkMastService.updateById(wrkMast)) {
+                    throw new CoolException("鏇存柊澶辫触锛侊紒");
+                }
             } else {
-                throw new CoolException("鍑哄簱涓嬪彂浠诲姟涓嬪彂澶辫触锛侊紒");
+                throw new CoolException("鍑哄簱涓嬪彂浠诲姟涓嬪彂澶辫触---------------->" + result.get("msg"));
 //                return R.error().add(result);
             }
         } catch (IOException e) {
@@ -188,15 +188,10 @@
             throw new CoolException("浠诲姟妗d笉瀛樺湪锛侊紒");
         }
         log.info("浠诲姟鎵ц鍙傛暟鍥炲啓:{}", JSON.toJSONString(params));
-        if (params.getNotifyType().equals("task")) {
-            //浠诲姟
-            if (params.getMsgType().equals("task_complete") || params.getMsgType().equals("station_out_task_run")) {
-                if (mast.getIoType() == 1 || mast.getIoType() == 11 || mast.getIoType() == 10 || mast.getIoType() == 53 || mast.getIoType() == 54 || mast.getIoType() == 57) {
-
-                    mast.setWrkSts(4L);
-                } else if (mast.getIoType() == 101 || mast.getIoType() == 110 || mast.getIoType() == 103 || mast.getIoType() == 104 || mast.getIoType() == 107) {
-                    //TODO 鎭㈠姝e父鍚庯紝杩欓噷浠g爜瑕佹敞閲婃帀
-                    if (mast.getIoType() == 103  || mast.getIoType() == 107) {
+        if (params.getMsgType().equals("task_complete") || params.getMsgType().equals("station_out_task_run_complete")) {
+            if (mast.getIoType() == 1 || mast.getIoType() == 11 || mast.getIoType() == 10 || mast.getIoType() == 53 || mast.getIoType() == 54 || mast.getIoType() == 57) {
+                if (params.getMsgType().equals("task_complete")) {
+                    if (mast.getIoType() == 53) {
                         List<WrkDetl> wrkDetls103 = wrkDetlService
                                 .selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo()));
                         if (wrkDetls103.isEmpty()) {
@@ -226,14 +221,49 @@
                             }
                         }
                     }
-                    mast.setWrkSts(14L);
+                    mast.setWrkSts(4L);
                 }
-                if (!wrkMastService.updateById(mast)) {
-                    throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+            } else if (mast.getIoType() == 101 || mast.getIoType() == 110 || mast.getIoType() == 103 || mast.getIoType() == 104 || mast.getIoType() == 107) {
+                if (mast.getWrkSts() != 14) {
+                    //TODO 鎭㈠姝e父鍚庯紝杩欓噷浠g爜瑕佹敞閲婃帀
+//                    if (mast.getIoType() == 103  || mast.getIoType() == 107) {
+//                        List<WrkDetl> wrkDetls103 = wrkDetlService
+//                                .selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo()));
+//                        if (wrkDetls103.isEmpty()) {
+//                            throw new CoolException("鎷f枡鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + mast.getWrkNo());
+//                        }
+//                        for (WrkDetl wrkDetl : wrkDetls103) {
+//                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+//                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(),
+//                                    wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+//                                    wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+//                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+//                            if (orderDetlPakout == null) {
+//                                orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(),
+//                                        wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+//                                        wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+//                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+//                            }
+//                            if (!Cools.isEmpty(orderDetlPakout)) {
+//                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+//                                        wrkDetl.getMatnr(),
+//                                        orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+//                                        wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+//                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(),
+//                                        wrkDetl.getAnfme())) {
+//                                    throw new CoolException("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + mast.getWrkNo());
+//                                }
+//                            }
+//                        }
+//                    }
                 }
-            } else if (params.getMsgType().equals("task_cancel")) {
-                //todo 鍙栨秷浠诲姟
+                mast.setWrkSts(14L);
             }
+            if (!wrkMastService.updateById(mast)) {
+                throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+            }
+        } else if (params.getMsgType().equals("task_cancel")) {
+            //todo 鍙栨秷浠诲姟
         }
         return R.ok();
     }
@@ -307,7 +337,14 @@
         }
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", params.getTaskNo()));
         if (Objects.isNull(wrkMast)) {
-            return R.error("浠诲姟妗d笉瀛樺湪锛屾垨宸插姞鍏ュ巻鍙叉。");
+            WrkMastLog wrkLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>()
+                    .eq("loc_no", params.getLocNo())
+                    .eq("wrk_no", params.getTaskNo()));
+
+            wrkMast = new WrkMast();
+            BeanUtils.copyProperties(wrkLog, wrkMast);
+
+//            return R.error("浠诲姟妗d笉瀛樺湪锛屾垨宸插姞鍏ュ巻鍙叉。");
         }
         LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
         if (Objects.isNull(locMast)) {
@@ -330,17 +367,33 @@
                 if (!Objects.isNull(selectOne)) {
                     Map<String, Object> response = new HashMap<>();
                     response.put("locNo", selectOne.getLocNo());
-
-                    //鍘熷簱浣嶇疆绌�
-                    locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
-                    locMastService.updateById(locMast);
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    locDetls.forEach(locDetl -> {
+                        String locNo = locDetl.getLocNo();
+                        locDetl.setLocNo(selectOne.getLocNo());
+                        if (!locDetlService.update(locDetl, new EntityWrapper<LocDetl>()
+                                .eq("loc_no", locNo)
+                                .eq("supp_code", locDetl.getSuppCode())
+                                .eq("matnr", locDetl.getMatnr()))) {
+                            throw new CoolException("搴撲綅鏇存柊澶辫触锛侊紒");
+                        }
+                    });
 
                     //鏂板簱浣嶉绾﹀叆搴�
-                    selectOne.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+                    selectOne.setBarcode(locMast.getBarcode());
+                    selectOne.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
                     locMastService.updateById(selectOne);
 
                     wrkMast.setLocNo(selectOne.getLocNo());
+                    wrkMast.setWrkSts(2L);
+                    wrkMast.setBarcode(locMast.getBarcode());
                     wrkMastService.updateById(wrkMast);
+
+
+                    //鍘熷簱浣嶇疆绌�
+                    locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+                    locMast.setBarcode(null);
+                    locMastService.updateById(locMast);
 
                     return R.ok().add(response);
                 } else {
@@ -355,16 +408,33 @@
                     Map<String, Object> response = new HashMap<>();
                     response.put("locNo", selectOne.getLocNo());
 
-                    //鍘熷簱浣嶇疆绌�
-                    locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
-                    locMastService.updateById(locMast);
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    locDetls.forEach(locDetl -> {
+                        String locNo = locDetl.getLocNo();
+                        locDetl.setLocNo(selectOne.getLocNo());
+                        if (!locDetlService.update(locDetl, new EntityWrapper<LocDetl>()
+                                .eq("loc_no", locNo)
+                                .eq("supp_code", locDetl.getSuppCode())
+                                .eq("matnr", locDetl.getMatnr()))) {
+                            throw new CoolException("搴撲綅鏇存柊澶辫触锛侊紒");
+                        }
+                    });
 
                     //鏂板簱浣嶉绾﹀叆搴�
-                    selectOne.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+                    selectOne.setBarcode(locMast.getBarcode());
+                    selectOne.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
                     locMastService.updateById(selectOne);
 
                     wrkMast.setLocNo(selectOne.getLocNo());
+                    wrkMast.setWrkSts(2L);
+                    wrkMast.setBarcode(locMast.getBarcode());
                     wrkMastService.updateById(wrkMast);
+
+
+                    //鍘熷簱浣嶇疆绌�
+                    locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+                    locMast.setBarcode(null);
+                    locMastService.updateById(locMast);
 
                     return R.ok().add(response);
                 } else {
@@ -380,17 +450,34 @@
                 Map<String, Object> response = new HashMap<>();
                 response.put("locNo", selectOne.getLocNo());
 
-                //鍘熷簱浣嶇疆绌�
-                locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
-                locMastService.updateById(locMast);
+                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                locDetls.forEach(locDetl -> {
+                    String locNo = locDetl.getLocNo();
+                    locDetl.setLocNo(selectOne.getLocNo());
+                    if (!locDetlService.update(locDetl, new EntityWrapper<LocDetl>()
+                            .eq("loc_no", locNo)
+                            .eq("supp_code", locDetl.getSuppCode())
+                            .eq("matnr", locDetl.getMatnr()))) {
+                        throw new CoolException("搴撲綅鏇存柊澶辫触锛侊紒");
+                    }
+                });
 
                 //鏂板簱浣嶉绾﹀叆搴�
-                selectOne.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
+                selectOne.setBarcode(locMast.getBarcode());
+                selectOne.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
                 locMastService.updateById(selectOne);
 
                 wrkMast.setLocNo(selectOne.getLocNo());
+                wrkMast.setWrkSts(2L);
+                wrkMast.setBarcode(locMast.getBarcode());
                 wrkMastService.updateById(wrkMast);
 
+
+                //鍘熷簱浣嶇疆绌�
+                locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+                locMast.setBarcode(null);
+                locMastService.updateById(locMast);
+
                 return R.ok().add(response);
             } else {
                 return R.error("鏆傛棤鍙敤搴撲綅锛侊紒");

--
Gitblit v1.9.1