From 6e02d92c3b9c240fa78a343b67ddf0db12d840e6 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 22 八月 2025 17:00:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
index 9008544..f1655fa 100644
--- a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
+++ b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
@@ -56,6 +56,17 @@
                 List<TrafficControlDataModel> allTrafficControl = getAllTrafficControl();
                 //鏇存柊浜ょ淇℃伅
                 redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_MAP.key, allTrafficControl);
+
+                for (TrafficControlDataModel dataModel : allTrafficControl) {
+                    Integer shuttleNo = dataModel.getShuttleNo();
+                    Integer taskNo = dataModel.getTaskNo();
+
+                    Object object1 = redisUtil.get(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo);
+                    if(object1 == null) {
+                        redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo, 1, 60 * 60);
+                    }
+                }
+
                 Thread.sleep(200);
             }catch (Exception e){
                 e.printStackTrace();
@@ -163,10 +174,14 @@
                         Long idleTime = pathIdleShuttleMap.get(shuttleProtocol.getShuttleNo());
                         if((System.currentTimeMillis() - idleTime) > 1000 * 10) {
                             //妫�娴嬮殰纰嶇墿杞�
-                            boolean checkObstacle = shuttleOperaUtils.checkObstacle(shuttleProtocol.getCurrentLocNo(), new ArrayList<Integer>() {{
+                            int checkObstacle = shuttleOperaUtils.checkObstacle(shuttleProtocol.getCurrentLocNo(), new ArrayList<Integer>() {{
                                 add(shuttleNo);
-                            }});
+                            }}, totalNodeList);
                             pathIdleShuttleMap.remove(shuttleProtocol.getShuttleNo());
+
+                            if (checkObstacle == 2) {
+                                pathShuttleThread.restartCalcPath();
+                            }
                         }
                     }else {
                         pathIdleShuttleMap.put(shuttleProtocol.getShuttleNo(), System.currentTimeMillis());
@@ -187,6 +202,10 @@
                 }
 
                 if(totalLocList.contains(locNo)) {
+                    String first = totalLocList.get(0);
+                    if(first.equals(locNo)) {//filter first node
+                       continue;
+                    }
                     return false;
                 }
             }
@@ -200,7 +219,7 @@
 
         applyRecordsMap.remove(shuttleNo);
         redisUtil.set(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo, 1, 60 * 60);
-        News.info("receipt traffic {},{}", shuttleNo, taskNo);
+        News.info("[RCS Debug] receipt traffic {},{}", shuttleNo, taskNo);
         return true;
     }
 
@@ -324,7 +343,7 @@
     public synchronized boolean operateTrafficControl(OperateTrafficControlParam param) {
         long startTime = System.currentTimeMillis();
         String operaType = param.getOperaType();
-        News.info("Operate Traffic Control is Start " + operaType);
+        News.info("[RCS Debug] Operate Traffic Control is Start " + operaType);
 
         boolean result = false;
         if (operaType.equals("add")) {
@@ -343,7 +362,7 @@
                         new ArrayList<>(model.getTotalNodeList())
                 ))
                 .collect(Collectors.toList());
-        News.info("Operate Traffic Control is end " + (System.currentTimeMillis() - startTime) + "ms");
+        News.info("[RCS Debug] Operate Traffic Control is end " + (System.currentTimeMillis() - startTime) + "ms");
         return result;
     }
 
@@ -382,6 +401,7 @@
         }
 
         trafficControlDataList.remove(idx);//鍙栨秷绠″埗
+        redisUtil.del(RedisKeyType.TRAFFIC_CONTROL_SUCCESS_APPLY.key + shuttleNo + "_" + taskNo);
         return true;
     }
 

--
Gitblit v1.9.1