From 52a57d1a6cd61009304656db35e50d4b9dbbda03 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期二, 01 七月 2025 11:16:40 +0800
Subject: [PATCH] #改造

---
 src/main/java/com/zy/asrs/controller/CrnController.java |  132 ++++++++++++++++++++++++++++++-------------
 1 files changed, 91 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index ece8da6..688fed8 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -19,6 +19,7 @@
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.MainServiceImpl;
+import com.zy.asrs.service.impl.TaskWrkServiceImpl;
 import com.zy.asrs.utils.CommandUtils;
 import com.zy.asrs.utils.VersionUtils;
 import com.zy.core.CrnThread;
@@ -53,10 +54,10 @@
 @RestController
 public class CrnController {
 
-    @Value("${wms.url}")
-    private String wmsUrl;
-    @Value("${wms.movePath}")
-    private String movePath;
+//    @Value("${wms.url}")
+//    private String wmsUrl;
+//    @Value("${wms.movePath}")
+//    private String movePath;
 
 
 
@@ -72,6 +73,8 @@
     private MainServiceImpl mainService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private TaskWrkServiceImpl taskWrkService;
 
 
     @ManagerAuth(memo = "杩涜涓殑鍛戒护")
@@ -195,13 +198,12 @@
 
             vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
             if (crnProtocol.getTaskNo()>0) {
-                WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
-                if (wrkMast != null) {
-                    vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
-                    vo.setSourceStaNo(wrkMast.getSourceStaNo$());    //  婧愮珯
-                    vo.setStaNo(wrkMast.getStaNo$());   //  鐩爣绔�
-                    vo.setSourceLocNo(wrkMast.getSourceLocNo());    //  婧愬簱浣�
-                    vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
+                TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+                if (taskWrk != null) {
+//                    vo.setWrkSts(taskWrk.getWrkSts$());   // 宸ヤ綔鐘舵��
+//                    vo.setIoType(taskWrk.getIoType$());   //  鍏ュ嚭搴撶被鍨�
+                    vo.setSourceStaNo(taskWrk.getStartPoint());
+                    vo.setStaNo(taskWrk.getTargetPoint());
                 }
             } else {
                 vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc());   //  妯″紡鐘舵��
@@ -236,13 +238,18 @@
 
         vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
         if (crnProtocol.getTaskNo()>0) {
-            WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
-            if (wrkMast != null) {
-                vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
-                vo.setSourceStaNo(wrkMast.getSourceStaNo$());    //  婧愮珯
-                vo.setStaNo(wrkMast.getStaNo$());   //  鐩爣绔�
-                vo.setSourceLocNo(wrkMast.getSourceLocNo());    //  婧愬簱浣�
-                vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
+            TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+            if (taskWrk != null) {
+//                vo.setWrkSts(taskWrk.getWrkSts$());   // 宸ヤ綔鐘舵��
+//                vo.setIoType(taskWrk.getIoType$());   //  鍏ュ嚭搴撶被鍨�
+                vo.setSourceStaNo(taskWrk.getStartPoint());
+                vo.setStaNo(taskWrk.getTargetPoint());
+//            if (wrkMast != null) {
+//                vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
+//                vo.setSourceStaNo(wrkMast.getSourceStaNo$());    //  婧愮珯
+//                vo.setStaNo(wrkMast.getStaNo$());   //  鐩爣绔�
+//                vo.setSourceLocNo(wrkMast.getSourceLocNo());    //  婧愬簱浣�
+//                vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
             }
         } else {
             vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc());   //  妯″紡鐘舵��
@@ -279,13 +286,14 @@
 
             vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
             if (crnProtocol.getTaskNo()>0) {
-                WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
-                if (wrkMast != null) {
-                    vo.setDeviceStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
-                    vo.setSourceStaNo(wrkMast.getSourceStaNo$());    //  婧愮珯
-                    vo.setStaNo(wrkMast.getStaNo$());   //  鐩爣绔�
-                    vo.setSourceLocNo(wrkMast.getSourceLocNo());    //  婧愬簱浣�
-                    vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
+                TaskWrk taskWrk = taskWrkService.selectByWrkNo(crnProtocol.getTaskNo().intValue());
+//                WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
+                if (taskWrk != null) {
+                    vo.setDeviceStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc());   //  妯″紡鐘舵��
+                    vo.setSourceStaNo(taskWrk.getStartPoint());    //  婧愮珯
+                    vo.setStaNo(taskWrk.getTargetPoint());   //  鐩爣绔�
+//                    vo.setSourceLocNo(taskWrk.getTargetPoint());    //  婧愬簱浣�
+//                    vo.setLocNo(taskWrk.getLocNo());    //  鐩爣搴撲綅
                 }
             } else {
                 if (Cools.isEmpty(crnProtocol.modeType)){
@@ -295,6 +303,7 @@
                 }
             }
             vo.setLaneNo(crnProtocol.getLaneNo());  //
+            vo.setErrorCrn(crnProtocol.getErrCrn());  //
             vo.setXspeed(crnProtocol.getXSpeed());  //  璧拌閫熷害锛坢/min)
             vo.setYspeed(crnProtocol.getYSpeed());  //  鍗囬檷閫熷害锛坢/min)
             vo.setZspeed(crnProtocol.getZSpeed());  //  鍙夌墮閫熷害锛坢/min)
@@ -322,6 +331,7 @@
             }
             vo.setInEnable(basCrnp.getInEnable());
             vo.setOutEnable(basCrnp.getOutEnable());
+            vo.setTaskComplete(crnThread.getResetFlag()? "浠诲姟瀹屾垚涓嬪彂绛夊緟":"-");
         }
         return R.ok().add(list);
     }
@@ -540,19 +550,54 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
-        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);     // 鐩爣搴撲綅灞�
-        command.setCommand((short)0);
-        return crnControl(command)?R.ok():R.error();
+        if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) {
+            return R.error("璇烽�夋嫨鍫嗗灈鏈�");
+        }
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo());
+        crnThread.setResetFlag(true);
+        return R.ok();
+//        CrnCommand command = new CrnCommand();
+//        command.setCrnNo(); // 鍫嗗灈鏈虹紪鍙�
+//        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+//        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+//        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);     // 鐩爣搴撲綅灞�
+//        command.setCommand((short)0);
+//        return crnControl(command)?R.ok():R.error();
+    }
+
+    @ManagerAuth(memo = "浠诲姟瀹屾垚鎸囦护娓呴櫎")
+    @PostMapping("/crn/operator/taskCompleteClearCommand")
+    public R crnTaskCompleteClearCommand(CrnOperatorParam param){
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+//        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
+//            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
+//        }
+        // 绯荤粺杩愯鐘舵�佸垽鏂�
+        if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) {
+            return R.error("璇烽�夋嫨鍫嗗灈鏈�");
+        }
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo());
+        crnThread.setResetFlag(false);
+        return R.ok();
+//        CrnCommand command = new CrnCommand();
+//        command.setCrnNo(); // 鍫嗗灈鏈虹紪鍙�
+//        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+//        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+//        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);     // 鐩爣搴撲綅灞�
+//        command.setCommand((short)0);
+//        return crnControl(command)?R.ok():R.error();
     }
 
 //    @ManagerAuth(memo = "鏆傚仠")
@@ -615,12 +660,13 @@
                 }
                 CrnCommand crnCommand = new CrnCommand();
                 crnCommand.setCrnNo(crn.getId()); // 鍫嗗灈鏈虹紪鍙�
+                crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
                 crnCommand.setTaskMode(CrnTaskModeType.CLEAR);
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 crnCommand.setCommand((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 // 寤舵椂鍙戦��
                 Thread.sleep(1000L);
-                if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(5, crnCommand), false)) {
+                if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(5, crnCommand))) {
                     return R.ok();
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -772,9 +818,11 @@
                 if (crnProtocol == null) {
                     throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
                 }
+                command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
+
                 // 绌洪棽鍒ゆ柇
 //                if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
-                if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(4, command), false)) {
+                if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(4, command))) {
                     return true;
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");
@@ -806,9 +854,11 @@
                 if (crnProtocol == null) {
                     throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
                 }
+                command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撳彿
+
                 // 绌洪棽鍒ゆ柇
 //                if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
-                if (CommandUtils.offer(SlaveType.Crn, crn.getId(), new Task(2, command), false)) {
+                if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
                     return true;
                 } else {
                     throw new CoolException("鍛戒护涓嬪彂澶辫触");

--
Gitblit v1.9.1