From 88d29e7c87259e12cba5d8e93235d7f4005fe1a2 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 07 二月 2026 15:01:00 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  168 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 105 insertions(+), 63 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 2943288..0d66579 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;
@@ -131,6 +134,10 @@
     private StationRelaService stationRelaService;
     @Autowired
     private BasStationDetlService basStationDetlService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private ConfigService configService;
 
     @Override
     @Transactional
@@ -589,9 +596,6 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void comb(CombParam param, Long userId) {
-//        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
-//            throw new CoolException(BaseRes.PARAM);
-//        }
         if (Objects.isNull(param.getBarcode())) {
             throw new CoolException(BaseRes.PARAM);
         }
@@ -627,7 +631,8 @@
         Date now = new Date();
         // 鏃犲崟缁勬墭
         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");
@@ -1207,15 +1212,15 @@
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(locDetl.getLocNo());
         // 鑾峰彇璺緞
-        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-                .eq("type_no", ioType)
-                .eq("stn_no", staNo.getDevNo())
-                .eq("crn_no", locMast.getCrnNo());
-
-        StaDesc staDesc = staDescService.selectOne(wrapper);
-        if (Cools.isEmpty(staDesc)) {
-            throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
-        }
+//        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//                .eq("type_no", ioType)
+//                .eq("stn_no", staNo.getDevNo())
+//                .eq("crn_no", locMast.getCrnNo());
+//
+//        StaDesc staDesc = staDescService.selectOne(wrapper);
+//        if (Cools.isEmpty(staDesc)) {
+//            throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+//        }
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(2);
         // 鐢熸垚宸ヤ綔妗�
@@ -1226,8 +1231,8 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+//        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
+//        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
         wrkMast.setSourceLocNo(locDetl.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -1330,18 +1335,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.getMatnr()), "matnr", params.getMatnr())
+//                .eq(!Cools.isEmpty(params.getOrderNo()), "order_no", params.getOrderNo())
+        );
         if (Objects.isNull(detlPakins) || detlPakins.isEmpty()) {
             throw new CoolException("鏁版嵁閿欒锛� 鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
         }
@@ -1380,7 +1379,8 @@
                     .eq("area_id", basAreas.getId())
                     .eq("loc_no", locCache.getLocNo()));
             if (Objects.isNull(locDetls) || locDetls.isEmpty()) {
-                throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
+                continue;
+//                throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
             }
 
             Set<String> set = locDetls.stream().map(LocDetl::getMatnr).collect(Collectors.toSet());
@@ -1808,31 +1808,49 @@
             whsType = 2;
         }
 
-        log.info("WCS浠诲姟鐢熸垚璇锋眰鍙傛暟锛歿}", JSONObject.toJSONString(param));
+        WrkMast barcode = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+        if (!Objects.isNull(barcode) && (barcode.getIoType() == 104 || barcode.getIoType() == 103 || barcode.getIoType() == 107) && barcode.getWrkSts() == 14L) {
+            //
+            workService.pickWrkMast(barcode.getWrkNo() + "", userId);
 
-        BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
-                .eq("dev_no", param.getSourceStaNo()));
-        if (Objects.isNull(station)) {
-            throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+            Map<String, Object> response = new HashMap<>();
+            response.put("taskNo", barcode.getWrkNo());
+            response.put("locNo", barcode.getLocNo());
+            response.put("taskPri", barcode.getIoPri());
+
+            return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
+        } else {
+            log.info("WCS浠诲姟鐢熸垚璇锋眰鍙傛暟锛歿}", JSONObject.toJSONString(param));
+
+            BasDevp station = basDevpService.selectOne(new EntityWrapper<BasDevp>()
+                    .eq("dev_no", param.getSourceStaNo()));
+            if (Objects.isNull(station)) {
+                throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+            }
+            Map<String, Object> response = new HashMap<>();
+
+            if (Objects.isNull(barcode)) {
+                List<WaitPakin> waitPakins = waitPakinService
+                        .selectList(new EntityWrapper<WaitPakin>()
+                                .eq("io_status", "N")
+                                .eq("zpallet", param.getBarcode()));
+                if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
+                    throw new CoolException("鏁版嵁閿欒,缁勬嫋妗e凡涓嶅瓨鍦�!!");
+                }
+
+                WrkMast wrkMast = generateCrnInTask(waitPakins, whsType, station, param.getLocType1(), userId);
+
+                response.put("taskNo", wrkMast.getWrkNo());
+                response.put("locNo", wrkMast.getLocNo());
+                response.put("taskPri", wrkMast.getIoPri());
+            } else {
+                response.put("taskNo", barcode.getWrkNo());
+                response.put("locNo", barcode.getLocNo());
+                response.put("taskPri", barcode.getIoPri());
+            }
+
+            return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
         }
-
-        List<WaitPakin> waitPakins = waitPakinService
-                .selectList(new EntityWrapper<WaitPakin>()
-                        .eq("io_status", "N")
-                        .eq("zpallet", param.getBarcode()));
-        if (Objects.isNull(waitPakins) || waitPakins.isEmpty()) {
-            throw new CoolException("鏁版嵁閿欒,缁勬嫋妗e凡涓嶅瓨鍦�!!");
-        }
-
-        WrkMast wrkMast = generateCrnInTask(waitPakins,whsType, station, param.getLocType1(), userId);
-
-        Map<String, Object> response = new HashMap<>();
-        response.put("taskNo", wrkMast.getWrkNo());
-        response.put("locNo", wrkMast.getLocNo());
-        response.put("taskPri", wrkMast.getIoPri());
-
-        return R.ok("浠诲姟鐢熸垚鎴愬姛").add(response);
-
     }
 
     /**
@@ -2029,7 +2047,7 @@
             }
 
         } else {
-            StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), whsType,  findLocNoAttributeVo, locTypeDto);
+            StartupDto dto = commonService.getLocNo(1, sourceStaNo.getDevNo(), whsType, findLocNoAttributeVo, locTypeDto);
 
             int workNo = dto.getWorkNo();
             // 鐢熸垚宸ヤ綔妗�
@@ -2091,13 +2109,11 @@
                     throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
                 }
             } else {
-                wrkMast.setWrkSts(1L);
+                wrkMast.setWrkSts(2L);
                 wrkMast.setIoType(10);
-
                 wrkMastService.updateById(wrkMast);
             }
         });
-
 
         // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
         Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
@@ -2230,11 +2246,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)
@@ -2244,12 +2258,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);
+            }
         }
     }
 
@@ -2631,7 +2665,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())) {
@@ -2640,25 +2674,32 @@
         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 {
@@ -2687,6 +2728,7 @@
 
     /**
      * 6.15WCS鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅
+     *
      * @param combParam
      * @param l
      * @return

--
Gitblit v1.9.1