From 020f936ddf191a425e2130237c44ed1197e92269 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 24 五月 2025 14:51:04 +0800
Subject: [PATCH] #

---
 rsf-admin/src/page/task/TaskList.jsx                                                 |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java              |   63 ++++++++++++++++++++++++-------
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |    4 +-
 3 files changed, 51 insertions(+), 18 deletions(-)

diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 3792b7a..982d91b 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -218,7 +218,7 @@
     }
 
     return (
-        record?.taskStatus == 198 && record?.taskType == 103 ? <ConfirmButton label={"toolbar.pick"} startIcon={<ColorizeOutlinedIcon />} onConfirm={pickClick} /> : <></>
+        record?.taskStatus == 199 && record?.taskType == 103 ? <ConfirmButton label={"toolbar.pick"} startIcon={<ColorizeOutlinedIcon />} onConfirm={pickClick} /> : <></>
     )
 }
 
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 1ccabdd..b6b4eff 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
@@ -492,7 +492,7 @@
                 if ((ioType == 1 && deviceBind.getBeSimilar().equals("1"))) {
                     //鐩镐技鐗╂枡鎵撳紑锛屽垽鏂繁搴撲綅鏈夋病鏈夎揣锛屾病璐у氨鏀炬繁搴撲綅锛屾湁璐у氨涓嶆搷浣�
                     Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
-                            .eq(Loc::getRow, shallowLoc)
+                            .eq(Loc::getCode, shallowLoc)
                             .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                             .eq(Loc::getAreaId, area)
                     );
@@ -561,7 +561,7 @@
         //鏌ヨ褰撳墠搴撲綅绫诲瀷绌哄簱浣� 灏忎簬5涓垯locmast = null
         List<Loc> locTypeLocMasts = locService.list(new LambdaQueryWrapper<Loc>()
                 .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
-                .eq(Loc::getDeviceNo, deviceNo)
+                .eq(Loc::getChannel, deviceNo)
                 .eq(Loc::getType, locTypeDto.getLocType1())
                 .eq(Loc::getAreaId, area)
         );
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java
index 0c66250..705260a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/utils/LocUtils.java
@@ -9,6 +9,7 @@
 import com.vincent.rsf.server.manager.entity.DeviceBind;
 import com.vincent.rsf.server.manager.entity.Loc;
 import com.vincent.rsf.server.manager.service.DeviceBindService;
+import com.vincent.rsf.server.manager.service.LocService;
 
 
 import java.util.List;
@@ -19,27 +20,54 @@
      * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿
      */
     public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) {
-        int row = getRow(shallowLoc);
-        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
-        int targetRow;
-        if (remainder == 2) {
-            targetRow = row - 1;
-        } else if (remainder == 3) {
-            targetRow = row + 1;
-        } else {
-            throw new CoolException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
+        LocService locService = SpringUtils.getBean(LocService.class);
+        Loc shaLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc));
+        int row = shaLoc.getRow()-1;
+        boolean contains = slaveProperties.getDoubleLocs().contains(row);
+        Loc deepLoc = null;
+        if (contains) {
+            deepLoc = locService.getOne(new LambdaQueryWrapper<Loc>()
+                    .eq(Loc::getAreaId, shaLoc.getAreaId())
+                    .eq(Loc::getRow, row)
+                    .eq(Loc::getCol, shaLoc.getCol())
+                    .eq(Loc::getLev, shaLoc.getLev())
+            );
+        }else {
+            deepLoc = locService.getOne(new LambdaQueryWrapper<Loc>()
+                    .eq(Loc::getAreaId, shaLoc.getAreaId())
+                    .eq(Loc::getRow, shaLoc.getRow()+1)
+                    .eq(Loc::getCol, shaLoc.getCol())
+                    .eq(Loc::getLev, shaLoc.getLev())
+            );
         }
-        return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
+        return deepLoc.getCode();
     }
 
     /**
      * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿
      */
     public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
-        int row = getRow(deepLoc);
-        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
-        int shallowRow = remainder == 1 ? (row + 1) : (row - 1);
-        return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
+        LocService locService = SpringUtils.getBean(LocService.class);
+        Loc depLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, deepLoc));
+        int row = depLoc.getRow()-1;
+        boolean contains = slaveProperties.getDoubleLocs().contains(row);
+        Loc shallowLoc = null;
+        if (!contains) {
+            shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>()
+                    .eq(Loc::getAreaId, depLoc.getAreaId())
+                    .eq(Loc::getRow, row)
+                    .eq(Loc::getCol, depLoc.getCol())
+                    .eq(Loc::getLev, depLoc.getLev())
+            );
+        }else {
+            shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>()
+                    .eq(Loc::getAreaId, depLoc.getAreaId())
+                    .eq(Loc::getRow, depLoc.getRow()+1)
+                    .eq(Loc::getCol, depLoc.getCol())
+                    .eq(Loc::getLev, depLoc.getLev())
+            );
+        }
+        return shallowLoc.getCode();
     }
 
     /**
@@ -117,7 +145,12 @@
      */
     public static int getRow(String locNo) {
         if (!Cools.isEmpty(locNo)) {
-            return Integer.parseInt(locNo.substring(0, 2));
+            LocService locService = SpringUtils.getBean(LocService.class);
+            Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, locNo));
+            if (null == loc) {
+                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+            }
+            return loc.getRow();
         }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }

--
Gitblit v1.9.1