From da5d4106e294a229e3bf72939c6b7630e6345d76 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 10 三月 2026 10:30:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/WcsController.java |   50 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index a4d3b9e..4afa422 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -9,6 +9,7 @@
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.CodeRes;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
@@ -64,6 +65,23 @@
             if (Cools.isEmpty(param.getBarcode())) {
                 return R.error("鏉$爜涓嶈兘涓虹┖");
             }
+        WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode());
+        if (!Cools.isEmpty(wrkMast1)&&wrkMast1.getWrkSts()==2) {
+            StartupDto dto1 =new StartupDto();
+            dto1.setBarcode(param.getBarcode());
+            dto1.setStaNo(Integer.valueOf(wrkMast1.getStaNo()));
+            String wcsLoc = Utils.WMSLocToWCSLoc(wrkMast1.getLocNo());
+            dto1.setLocNo(wcsLoc);
+            dto1.setCrnNo(wrkMast1.getCrnNo());
+            dto1.setWorkNo(wrkMast1.getWrkNo());
+            dto1.setTaskNo(wrkMast1.getWrkNo()+"");
+//            dto1.setTaskPri((int) Math.round(wrkMast1.getIoPri()));
+            return R.ok(dto1);
+        }
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1));
+        if (!Cools.isEmpty(wrkMasts)&&wrkMasts.size()>30) {
+            return R.error("闄愯");
+        }
             waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
             if (Cools.isEmpty(waitPakins)) {
                 WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
@@ -105,18 +123,7 @@
         sourceStaNo.setLocType1(param.getLocType1());
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
 
-        StartupDto dto = null;
-        switch (param.getIoType()) {
-            case 1://婊℃墭鐩樺叆搴�
-                assert waitPakins != null;
-                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
-                break;
-            case 10://绌烘墭鐩樺叆搴�
-                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
-                break;
-            default:
-                break;
-        }
+        StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins, param.getRow());
         log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
         return R.ok().add(dto);
     }
@@ -417,7 +424,7 @@
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional
-    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
+    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins, List<Integer> recommendRows) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
@@ -425,7 +432,7 @@
         List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
-        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
+        StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto, recommendRows);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -475,12 +482,12 @@
         if (!waitPakinService.update(setParam, wrapper)) {
             throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
         }
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(now);
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
+//        // 鏇存柊婧愮珯鐐逛俊鎭�
+//        sourceStaNo.setWrkNo(workNo);
+//        sourceStaNo.setModiTime(now);
+//        if (!basDevpService.updateById(sourceStaNo)){
+//            throw new CoolException("鏇存柊婧愮珯澶辫触");
+//        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){
@@ -492,6 +499,9 @@
         } else {
             throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
+        String wcsLoc = Utils.WMSLocToWCSLoc(dto.getLocNo());
+        dto.setLocNo(wcsLoc);
+        dto.setTaskNo(workNo+"");
         return dto;
     }
 

--
Gitblit v1.9.1