From 4206fedd87d92b8dd59c670f9fc0e8190d048c9c Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 二月 2026 15:07:57 +0800
Subject: [PATCH] 入库

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 4379309..d25230b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -1276,16 +1276,26 @@
         Loc loc = new Loc();
         InTaskMsgDto inTaskMsgDto = new InTaskMsgDto();
         locTypeDto.setLocType1(18);
-        List<Loc> loc1 = locService.list(new LambdaQueryWrapper<Loc>()
+        LambdaQueryWrapper<Loc> locQw = new LambdaQueryWrapper<Loc>()
                 .eq(Loc::getAreaId, area)
                 .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
-                .eq(Loc::getType, locTypeDto.getLocType1())
-                .ge(Loc::getRow, deviceBind.getStartRow())
-                .le(Loc::getRow, deviceBind.getEndRow())
-                .orderByAsc(Loc::getLev)
-                .orderByAsc(Loc::getCol)
-                .orderByAsc(Loc::getRow)
-        );
+                .eq(Loc::getType, locTypeDto.getLocType1());
+        if (deviceBind.getStartRow() != null && deviceBind.getEndRow() != null) {
+            locQw.ge(Loc::getRow, deviceBind.getStartRow()).le(Loc::getRow, deviceBind.getEndRow());
+        }
+        locQw.orderByAsc(Loc::getLev).orderByAsc(Loc::getCol).orderByAsc(Loc::getRow);
+        List<Loc> loc1 = locService.list(locQw);
+        // 鑻ユ寜宸烽亾琛岃寖鍥存湭鏌ュ埌绌哄簱浣嶏紝鍒欐斁瀹芥潯浠讹細涓嶉檺鍒惰鑼冨洿锛屼粎鎸夊簱鍖�+绌哄簱+绫诲瀷鏌ヨ锛堜笌 loc/page 琛屼负涓�鑷达級
+        if (Cools.isEmpty(loc1) && times == 0) {
+            loc1 = locService.list(new LambdaQueryWrapper<Loc>()
+                    .eq(Loc::getAreaId, area)
+                    .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+                    .eq(Loc::getType, locTypeDto.getLocType1())
+                    .orderByAsc(Loc::getLev)
+                    .orderByAsc(Loc::getCol)
+                    .orderByAsc(Loc::getRow)
+            );
+        }
         for (Loc loc2 : loc1) {
             if (!LocUtils.locMoveCheckLocTypeComplete(loc2, locTypeDto)) {
                 continue;
@@ -1301,7 +1311,12 @@
         );
         if (Cools.isEmpty(deviceSite)) {
             deviceNo = 0;
-            loc = null;
+            // 鏈夊彲鐢ㄧ┖搴撲綅浣嗘湭閰嶇疆璺緞鏃讹紝鐢ㄦ簮绔欑偣浣滀负鐩爣绔欑偣锛屼粛杩斿洖璇ュ簱浣嶏紝閬垮厤璇姤鈥滄病鏈夌┖搴撲綅鈥�
+            if (loc != null && loc.getId() != null && Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) {
+                inTaskMsgDto.setStaNo(sourceStaNo);
+            } else {
+                loc = null;
+            }
         } else {
             inTaskMsgDto.setStaNo(deviceSite.getDeviceSite());
         }

--
Gitblit v1.9.1