From ac88fa85ea2b39f9c94f080a95406739e64fd7f2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 21 三月 2026 18:01:18 +0800
Subject: [PATCH] 优化找库位规则

---
 src/main/java/com/zy/common/web/WcsController.java |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 80df050..a458757 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -56,7 +56,10 @@
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
     public synchronized R getLocNo(@RequestBody SearchLocParam param) {
-        log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+
+        if(param.getBarcode().contains("-") || param.getBarcode().contains("gsl")){
+            log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+        }
         if (Cools.isEmpty(param.getSourceStaNo())) {
             return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
         }
@@ -79,7 +82,7 @@
             return R.ok(dto1);
         }
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1));
-        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 1) {
+        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 10) {
             return R.error("闄愯");
         }
         waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
@@ -124,7 +127,7 @@
         sourceStaNo.setLocType1(param.getLocType1());
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
 
-        StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins, param.getRow());
+        StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
         log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
         return R.ok().add(dto);
     }
@@ -158,8 +161,10 @@
         StartupDto dto = null;
         switch (param.getIoType()) {
             case 1://婊℃墭鐩樺叆搴�
+                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto, param.getOutArea(), 1);
+                break;
             case 10://绌烘墭鐩樺叆搴�
-                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto, param.getOutArea());
+                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto, param.getOutArea(), 10);
                 break;
 //                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
 //                break;
@@ -396,14 +401,14 @@
      * 鍏ㄦ澘鍏ュ簱AGV
      */
     @Transactional
-    public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto, Integer outArea) {
+    public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto, Integer outArea, Integer staDescId) {
         // 婧愮珯鐐圭姸鎬佹娴�
 //        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
         findLocNoAttributeVo.setOutArea(outArea);
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
-        StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto);
+        StartupDto dto = commonService.getLocNo(staDescId, devpNo, findLocNoAttributeVo, locTypeDto);
         // 鏇存柊鐩爣搴撲綅鐘舵��
         Date now = new Date();
         if (dto == null) {
@@ -428,7 +433,7 @@
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional
-    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins, List<Integer> recommendRows) {
+    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
@@ -436,7 +441,8 @@
         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, recommendRows);
+        // 婊℃澘鍏ュ簱缁熶竴鎸夊簱浣嶆帓鍙�(row_lastno)鐨� currentRow/crn_qty 杞锛屼笉鍙傝�� WCS 閫忎紶鐨勬帹鑽愭帓銆�
+        StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�

--
Gitblit v1.9.1