From 707d414c0e6a8baff3ce7affec820f0fc1a13c19 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 24 二月 2026 09:06:04 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  119 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 80 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 5731507..e87e8f8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -29,6 +29,9 @@
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import com.zy.system.service.impl.ConfigServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -133,6 +136,8 @@
     private BasStationDetlService basStationDetlService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private ConfigService configService;
 
     @Override
     @Transactional
@@ -173,7 +178,9 @@
         wrkMastService.insert(wrkMast);
 
         for (OrderDetl orderDetl : param.getCombMats()) {
-            Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", orderDetl.getMatnr()));
+            Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                    .eq("supp_code", orderDetl.getStandby1())
+                    .eq("matnr", orderDetl.getMatnr()));
             if (mat == null) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + orderDetl.getMatnr());
             }
@@ -372,6 +379,7 @@
         for (CombParam.CombMat combMat : combParam.getCombMats()) {
             List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>()
                     .eq("loc_no", combParam.getLocNo())
+                    .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1())
                     .eq("matnr", combMat.getMatnr()));
             if (locDetlList.isEmpty()) {
                 return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -446,7 +454,9 @@
                 wrkMast.setModiUser(userId);
                 wrkMastService.insert(wrkMast);
 
-                Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", combMat.getMatnr()));
+                Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                        .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1())
+                        .eq("matnr", combMat.getMatnr()));
                 if (mat == null) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + combMat.getMatnr());
                 }
@@ -627,7 +637,7 @@
         // 鏃犲崟缁勬墭
         if (Cools.isEmpty(param.getOrderNo())) {
             //绌烘澘缁勬墭
-            if (param.getPakinType().equals("3")) {
+            if (!Cools.isEmpty(param.getPakinType()) && param.getPakinType().equals("3")) {
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.setZpallet(param.getBarcode());
                 waitPakin.setIoStatus("N");
@@ -708,6 +718,7 @@
                 // elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3());
                 OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
                         .eq("order_id", order.getId())
+                        .eq("supp_code", elem.getStandby1())
                         .eq("matnr", elem.getMatnr()));
                 if (Objects.isNull(elem.getBoxType1())) {
                     throw new CoolException("鏍煎眰缂栫爜涓嶈兘涓虹┖锛侊紒");
@@ -738,9 +749,16 @@
                 }
             });
 
-            Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
-            List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
-            Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
+            List<Mat> tempMats = new ArrayList<>();
+            for (DetlDto detlDto : detlDtos) {
+                Mat mat = matService.selectOne(new EntityWrapper<Mat>()
+                        .eq("matnr", detlDto.getMatnr())
+                        .eq("supp_code", detlDto.getStandby1()));
+                tempMats.add(mat);
+            }
+
+//            Set<String> matnrs = tempMats.stream().map(Mat::getMatnr).collect(Collectors.toSet());
+            Set<Long> tagIds = tempMats.stream().map(Mat::getTagId).collect(Collectors.toSet());
             if (tagIds.size() > 1) {
                 throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
             }
@@ -1186,6 +1204,7 @@
                 orderDetl.setUpdateBy(userId);
                 orderDetl.setUpdateTime(now);
                 Wrapper wrapper = new EntityWrapper<OrderDetl>().eq("order_no", orderNo)
+                        .eq(!Cools.isEmpty(orderDetl.getStandby1()), "supp_code", orderDetl.getStandby1())
                         .eq("matnr", orderDetl.getMatnr());
                 if (!Cools.isEmpty(orderDetl.getBatch())) {
                     wrapper.eq("batch", orderDetl.getBatch());
@@ -1303,7 +1322,6 @@
                 .eq("area_id", basAreas.getId())
                 .eq("frozen", 0)
                 .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                // .eq("loc_no", params.getTarSite())
                 .orderAsc(Arrays.asList("loc_no"))
                 .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
         if (Objects.isNull(locCache)) {
@@ -1330,18 +1348,12 @@
         if (Objects.isNull(params)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        if (Objects.isNull(params.getOrderNo())) {
-            throw new CoolException("鍗曞彿涓嶈兘涓虹┖锛侊紒");
-        }
-        OrderPakin orderPakin = orderPakinService
-                .selectOne(new EntityWrapper<OrderPakin>().eq("order_no", params.getOrderNo()));
-        if (Objects.isNull(orderPakin)) {
-            throw new CoolException("鏁版嵁閿欒锛氬崟鎹笉瀛樺湪锛侊紒");
-        }
+
         List<OrderDetlPakin> detlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
-                .eq(!Cools.isEmpty(params.getThreeCode()), "three_code", params.getThreeCode())
-                .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
-                .eq("order_id", orderPakin.getId()));
+                        .eq(!Cools.isEmpty(params.getThreeCode()), "three_code", params.getThreeCode())
+//                .eq(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
+//                .eq(!Cools.isEmpty(params.getOrderNo()), "order_no", params.getOrderNo())
+        );
         if (Objects.isNull(detlPakins) || detlPakins.isEmpty()) {
             throw new CoolException("鏁版嵁閿欒锛� 鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
         }
@@ -1681,9 +1693,13 @@
         if (container.getMixMax() < detlDtos.size()) {
             throw new CoolException("瓒呭嚭瀹瑰櫒鏈�澶ф贩瑁呮暟閲忥紝褰撳墠瀹瑰櫒鏈�澶ф暟閲忎负锛�" + container.getMixMax() + "!!");
         }
-        Set<String> matnrs = detlDtos.stream().map(DetlDto::getMatnr).collect(Collectors.toSet());
-        List<Mat> mats = matService.selectList(new EntityWrapper<Mat>().in("matnr", matnrs));
-        Set<Long> tagIds = mats.stream().map(Mat::getTagId).collect(Collectors.toSet());
+        List<Mat> tempMats = new ArrayList<>();
+        for (DetlDto detlDto : detlDtos) {
+            Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", detlDto.getMatnr())
+                    .eq("supp_code", detlDto.getStandby1()));
+            tempMats.add(mat);
+        }
+        Set<Long> tagIds = tempMats.stream().map(Mat::getTagId).collect(Collectors.toSet());
         if (tagIds.size() > 1) {
             throw new CoolException("缁勬墭鐗╂枡绫诲瀷涓嶄竴鑷达紝鍙湁鐩稿悓鐨勭墿鏂欏垎绫绘墠鍙互缁勬墭锛侊紒");
         }
@@ -1895,7 +1911,7 @@
                     .eq("dev_no", basStation.getDevNo())
                     .eq("matnr", combMat.getMatnr())
                     .eq("batch", combMat.getBatch())
-                    .eq("standby1", combMat.getStandby1()));
+                    .eq(!Cools.isEmpty(combMat.getStandby1()), "standby1", combMat.getStandby1()));
             if (Cools.isEmpty(basStationDetl)) {
                 basStationDetl = new BasStationDetl();
                 Mat mat = matService.selectByMatnr(combMat.getMatnr());
@@ -1936,8 +1952,8 @@
         OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
                 .eq("order_id", orderPakin.getId())
                 .eq("matnr", combMat.getMatnr())
-                .eq("batch", combMat.getBatch())
-                .eq("standby1", combMat.getStandby1()));
+                .eq(!Cools.isEmpty(combMat.getBatch()),"batch", combMat.getBatch())
+                .eq(!Cools.isEmpty(combMat.getStandby1()), "supp_code", combMat.getStandby1()));
         if (Cools.isEmpty(orderDetlPakin)) {
             throw new CoolException("妫�绱㈠崟鎹槑缁嗘暟鎹け璐�");
         }
@@ -2110,17 +2126,16 @@
                     throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
                 }
             } else {
-                wrkMast.setWrkSts(1L);
+                wrkMast.setWrkSts(2L);
                 wrkMast.setIoType(10);
-
                 wrkMastService.updateById(wrkMast);
             }
         });
 
-
         // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
         Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
                 .eq("zpallet", pakin.getZpallet());
+
         WaitPakin setParam = new WaitPakin();
         setParam.setLocNo(locNo);
         setParam.setIoStatus("Y");
@@ -2229,7 +2244,9 @@
                         if (container.getMixMax() > sets.size()) {
                             //浣欎笅鍙贩鏀剧绫�
                             long suplus = Math.round((container.getMixMax() - sets.size()) * 10000) / 10000;
-                            Mat mats = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr));
+                            Mat mats = matService.selectOne(new EntityWrapper<Mat>()
+                                    .eq("supp_code", supId)
+                                    .eq("matnr", matnr));
                             if (Objects.isNull(mats)) {
                                 throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�");
                             }
@@ -2249,11 +2266,9 @@
             });
         });
 
-        // 鍒ゆ柇鏍规嵁鍒嗘嫞鍑哄簱鍚�,杩橀渶瑕佸嚭澶氬皯鎵樼洏鎴栨枡绠�;濡傛灉浣欐枡澶т簬0, 鍑烘柊鎵樼洏鎴栨枡绠�
-        if (totalOut.get().compareTo(0.0) > 0) {
-            generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
-            //TODO 缁嗗寲鍖哄垎锛屽綋鍓嶅嚭搴撴墭鐩樻槸婊¤冻鎷h揣鏁伴噺
-        } else {
+        /**鏄惁浼樺厛绌烘澘鍑哄簱*/
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "OutStockOrderByEmpty"));
+        if (!Objects.isNull(config) && Boolean.parseBoolean(config.getValue())) {
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                     // todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
                     .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
@@ -2263,12 +2278,32 @@
             if (Objects.isNull(locMast)) {
                 throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
             }
-
             CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(locDetls);
             locMasts.add(crnTaskDetlDTO);
 
             // 绌烘澘鍑哄簱
             generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+        } else {
+            // 鍒ゆ柇鏍规嵁鍒嗘嫞鍑哄簱鍚�,杩橀渶瑕佸嚭澶氬皯鎵樼洏鎴栨枡绠�;濡傛灉浣欐枡澶т簬0, 鍑烘柊鎵樼洏鎴栨枡绠�
+            if (totalOut.get().compareTo(0.0) > 0) {
+                generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+                //TODO 缁嗗寲鍖哄垎锛屽綋鍓嶅嚭搴撴墭鐩樻槸婊¤冻鎷h揣鏁伴噺
+            } else {
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                        // todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
+                        .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
+                        .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
+                        .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+
+                if (Objects.isNull(locMast)) {
+                    throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
+                }
+                CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(locDetls);
+                locMasts.add(crnTaskDetlDTO);
+
+                // 绌烘澘鍑哄簱
+                generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
+            }
         }
     }
 
@@ -2505,7 +2540,6 @@
                 if (!taskDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
-
             }
 
             for (WaitPakin pakin : pakins) {
@@ -2650,7 +2684,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R taskMove(CompleteParam combParam, long userId) {
-        if (Objects.isNull(combParam.getWorkNo())) {
+        if (Objects.isNull(combParam.getTaskNo())) {
             return R.error("浠诲姟鍙蜂笉鑳戒负绌�");
         }
         if (Objects.isNull(combParam.getSourceLocNo())) {
@@ -2659,26 +2693,33 @@
         if (Objects.isNull(combParam.getLocNo())) {
             return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛�");
         }
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getWorkNo()));
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", combParam.getTaskNo()));
         if (Objects.isNull(wrkMast)) {
             return R.error("浠诲姟妗d笉瀛樺湪锛侊紒");
         }
+
+
         String body = JSON.toJSONString(combParam);
         boolean success = false;
         String response = "";
         try {
             response = new HttpHandler.Builder()
-                    .setUri(HIKApiConstant.AGV_IP)
+                    .setUri(MesConstant.WCS_URL)
                     .setPath(MesConstant.MOVE_LOC_TASK)
                     .setJson(body)
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
             if (jsonObject.getInteger("code").equals(200)) {
-                wrkMast.setWrkSts(12L);
+                wrkMast.setWrkSts(2L);
                 if (!wrkMastService.updateById(wrkMast)) {
                     throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
                 }
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+                if (!Objects.isNull(locMast)) {
+                    locMast.setMoveStatus(1);
+                    locMastService.updateById(locMast);
+                }
                 success = true;
             } else {
                 log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.WCS_URL + MesConstant.MOVE_LOC_TASK, body, response);

--
Gitblit v1.9.1