From 1b9f41e12e3ee8ac8bbc388eab7585300bdab75a Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 27 五月 2025 16:57:35 +0800
Subject: [PATCH] #ZH

---
 src/main/java/com/zy/core/thread/RgvThread.java |   62 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 879779c..8cf35c2 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -53,6 +53,7 @@
     private Long trackBenchmark = 1L;
     //  # 閬胯璺濈
     private Long avoidDistance = 5000L;
+    private String errorRgv = "-";
 
     /**
      * 宸ヤ綅1澶嶄綅淇″彿
@@ -290,6 +291,7 @@
         while (true) {
             RgvRunProtocol rgvRun = RgvRunCache.getRgvRun();
             if (!rgvRun.getRgvNo().equals(slave.getId())){
+
                 continue;
             }
             try {
@@ -307,6 +309,7 @@
                     rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                     rgvRun.setRgvNo(slave.getOtherId());
                     RgvRunCache.updateRgvStatus(rgvRun);
+                    RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
                     continue;
                 }
 
@@ -327,6 +330,7 @@
                     rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                     rgvRun.setRgvNo(slave.getOtherId());
                     RgvRunCache.updateRgvStatus(rgvRun);
+                    RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅鎺㈢墿鐗╃姸鎬佸紓甯�");
                     continue;
                 }
                 if (rgvTaskProtocol.getAvoid() != 0) {
@@ -337,6 +341,7 @@
                         issued.setTaskStatus(1);
                         issued.setDirection(true);
                         write(issued);
+                        RgvErrCache.updateRgvErr(slave.getId());
                         rgvTaskProtocol.setAvoid(0);
 
 //                        try{Thread.sleep(50L);} catch (Exception e){}
@@ -358,21 +363,25 @@
                             if (rgvOtherStatusEnable()) {
                                 //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
                                 if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
+                                    RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
                                     break;
                                 }
                             }
                             if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50
                                     && taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){
                                 taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+                                RgvErrCache.updateRgvErr(slave.getId());
                                 break;
                             } else {
                                 TaskProtocol issued = new TaskProtocol(taskProtocol,true);
                                 write(issued);
+                                RgvErrCache.updateRgvErr(slave.getId());
                                 taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
                                 break;
                             }
                         }
                     }
+                    RgvErrCache.updateRgvErr(slave.getId());
                 } else {
                     for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
                         if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
@@ -380,6 +389,7 @@
                             if (rgvOtherStatusEnable()) {
                                 //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
                                 if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
+                                    RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
                                     break;
                                 }
                             }
@@ -389,32 +399,38 @@
                                     DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId());
                                     StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo());
                                     if (staProtocol == null ) {
+                                        RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣");
                                         break;
                                     }
                                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                                     if (!staProtocol.isAutoing() || staProtocol.isLoading()
                                     ){
+                                        RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华");
                                         break;
                                     }
                                 } else if (taskProtocol.getTaskStatus()==2){
                                     DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId());
                                     StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo());
                                     if (staProtocol == null ) {
+                                        RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣");
                                         break;
                                     }
                                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                                     if (!staProtocol.isAutoing() || !staProtocol.isLoading() || staProtocol.getWorkNo()==0
                                     ){
+                                        RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华");
                                         break;
                                     }
                                 }
                                 TaskProtocol issued = new TaskProtocol(taskProtocol);
                                 write(issued);
+                                RgvErrCache.updateRgvErr(slave.getId());
                                 taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
                                 break;
                             } else {
                                 TaskProtocol issued = new TaskProtocol(taskProtocol,true);
                                 write(issued);
+                                RgvErrCache.updateRgvErr(slave.getId());
                                 break;
                             }
                         }
@@ -465,10 +481,25 @@
         RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
 
         if (rgvProtocol == null || rgvTaskProtocol == null) {
+            errorRgv = slave.getId()+"鍙峰皬杞﹁繛鎺ュけ璐�";
             return false;
         }
-        if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L
-                || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) {
+        if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO)) {
+            errorRgv = slave.getId()+"鍙峰皬杞﹂潪鑷姩";
+            return false;
+        }
+        if (rgvProtocol.getRgvPos().equals(0L)
+                || rgvTaskProtocol.getAvoid() == -1
+                || rgvProtocol.getRgvPosDestination() == 0L) {
+            errorRgv = slave.getId()+"鍙峰皬杞︾姸鎬佸紓甯�";
+            return false;
+        }
+        if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) {
+            errorRgv = slave.getId()+"鍙峰皬杞﹂潪绌洪棽";
+            return false;
+        }
+        if ( (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) {
+            errorRgv = slave.getId()+"鍙峰皬杞﹀瓨鍦ㄨ繍琛岀洰鏍囧�硷紝闇�瑕佸浣嶏紒锛侊紒";
             return false;
         }
         RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
@@ -477,10 +508,12 @@
 //                "rgvTaskProtocolOther:"+slave.getOtherId()+"sign:"+rgvTaskProtocolOther.isSignRun()+"/n");
 
         if (rgvProtocolOther == null) {
+            errorRgv = slave.getOtherId()+"鍙峰皬杞﹁繛鎺ュけ璐�";
             return false;
         }
         if (rgvProtocolOther.statusEnable) {
             if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) {
+                errorRgv = slave.getOtherId()+"鍙峰皬杞︾姸鎬佸紓甯�";
                 return false;
             }
         }
@@ -536,6 +569,7 @@
                                             long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
                                             if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                                                 log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                                                errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
                                                 try{
                                                     DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                                     deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -559,12 +593,15 @@
                             }
                         }
                         if (signNowPosRun){
+                            errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
                             return false;
                         }
                     }
                     long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
                     if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                         log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                        errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                         try{
                             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                             deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -591,6 +628,8 @@
                     long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
                     if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                         log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                        errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                         try{
                             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                             deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -618,6 +657,8 @@
                         long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
                         if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                             log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                            errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                             try{
                                 DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                 deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -635,6 +676,8 @@
                         RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
                         return false;
                     }
+                    errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑...";
+
                     return false;
                 }
             } else {
@@ -671,6 +714,8 @@
                                             long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
                                             if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                                                 log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                                                errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                                                 try{
                                                     DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                                     deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -694,12 +739,15 @@
                             }
                         }
                         if (signNowPosRun){
+                            errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
                             return false;
                         }
                     }
                     long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
                     if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                         log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                        errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                         try{
                             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                             deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -726,6 +774,8 @@
                     long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
                     if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                         log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                        errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                         try{
                             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                             deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -754,6 +804,8 @@
                         long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
                         if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                             log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                            errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
                             try{
                                 DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                 deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -771,6 +823,7 @@
                         RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
                         return false;
                     }
+                    errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟涓�...";
                     return false;
                 }
             } else {
@@ -781,6 +834,8 @@
                 }
             }
         }
+
+        errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑...";
         return false;
     }
 
@@ -918,6 +973,9 @@
 //                        }
 //                    }
 //                }
+                if (rgvProtocol.getAlarm$()!=0){
+                    RgvErrCache.updateRgvErr(slave.getId(),rgvProtocol.getAlarmM());
+                }
 
                 try {
                     // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�

--
Gitblit v1.9.1