From da4f2304da2646aa0336b492514655e7cc8a494a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 11 六月 2025 12:49:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jx-gt-crn-wcs' into jx-gt-crn-wcs

---
 src/main/java/com/zy/asrs/controller/CrnController.java |   43 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 6376556..e6c8399 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -35,6 +35,7 @@
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.properties.SystemProperties;
+import com.zy.core.thread.RgvThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -248,6 +249,8 @@
         command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+        short locSts = isLocSts(param.getRow(), param.getBay(), param.getLev());
+        command.setTraySize(locSts);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -265,6 +268,8 @@
         command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+        short locSts = isLocSts(param.getSourceRow(), param.getSourceBay(), param.getSourceLev());
+        command.setTraySize(locSts);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -286,7 +291,16 @@
                 .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
         LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
                 .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
-        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
+        if (sourceLoc.getLocType1() != loc.getLocType1()){
+            return R.error("搴撲綅绫诲瀷涓嶄竴鑷�");
+        }
+        short locSts1 = isLocSts(param.getRow(), param.getBay(), param.getLev());
+        short locSts2 = isLocSts(param.getSourceRow(), param.getSourceBay(), param.getSourceLev());
+        if (locSts1 != locSts2){
+            return R.error("搴撲綅涓嶅尮閰�");
+        }
+        command.setTraySize(locSts1);
+//        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
         return crnControl(command)?R.ok():R.error();
     }
 
@@ -376,6 +390,8 @@
         return crnControl(command)?R.ok():R.error();
     }
 
+
+
 //    @ManagerAuth(memo = "鏆傚仠")
 //    @PostMapping("/operator/pause")
 //    public R crnPause(CrnOperatorParam param){
@@ -394,8 +410,18 @@
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
-        MessageQueue.clear(SlaveType.Crn, param.getCrnNo());
-        return R.ok("娓呴櫎鍛戒护鎴愬姛");
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+        return crnControl(command)?R.ok():R.error();
     }
 
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
@@ -491,5 +517,16 @@
         }
     }
 
+    private short isLocSts(Short row,Short bay,Short lev){
+//        String loc = String.format("%2d",row)+String.format("%3d",bay)+String.format("%2d",lev);
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                .eq("row1", row).eq("bay1", bay).eq("lev1", lev));
+        if (Cools.isEmpty(locMast)){
+            return 0;
+        }
+
+        return locMast.getLocType1();
+    }
+
 
 }

--
Gitblit v1.9.1