From 337746fee651f91e9c63bd1c33a474c236d51889 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 06 十一月 2024 10:33:34 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java                |    2 
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java             |   38 +++----------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java |   27 +++++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java          |    2 +
 4 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index cb6fd28..89d03da 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1355,7 +1355,7 @@
                 }
 
                 // segment call back
-                trafficService.callback(segmentList);
+                segmentService.processNext(segmentList);
 
                 log.info("Agv [{}] {}浣滀笟瀹屾瘯 ==========>> ", protocol.getAgvNo(), serialNo);
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index b32dc23..0325a9c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -189,28 +189,6 @@
         }
     }
 
-    public void callback(List<Segment> segmentList) {
-        Date now = new Date();
-
-        segmentList.stream().max(Comparator.comparingInt(Segment::getSerial)).ifPresent(segment -> {
-            Segment nextSegment = segmentService.getNextStepOfInit(segment.getTravelId(), segment.getSerial());
-
-            if (null != nextSegment) {
-
-                nextSegment.setState(SegmentStateType.WAITING.toString());
-                nextSegment.setUpdateTime(now);
-                if (!segmentService.updateById(nextSegment)) {
-                    log.error("Segment [{}] 鏇存柊澶辫触 锛侊紒锛�", nextSegment.getGroupId() + " - " + nextSegment.getSerial());
-                }
-
-            } else {
-
-                travelService.checkFinish(segment.getTravelId());
-            }
-        });
-
-    }
-
     private List<String> checkoutPath(Agv agv, Code startCode, Code endCode, Segment segment) {
         Integer lev = null;
         String agvNo = agv.getUuid();
@@ -261,7 +239,6 @@
                     return pathList;
                 }
 
-                boolean initJamCache = false;
                 if (null == jam) {
                     jam = new Jam();
                     jam.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
@@ -274,7 +251,11 @@
                         log.error("{}鍙疯溅杈嗗湪{}瀹氫綅琚樆濉烇紝璁板綍闃诲鐘舵�佸け璐ワ紒锛侊紒", agvNo, startCode.getData());
                         return pathList;
                     }
-                    initJamCache = true;
+                } else {
+                    jam.setDuration(System.currentTimeMillis() - jam.getStartTime().getTime());
+                    if (!jamService.updateById(jam)) {
+                        log.error("{}缂栧彿闃诲璁板綍鏇存柊澶辫触锛侊紒锛�", jam.getUuid());
+                    }
                 }
                 long previousTimestamp = jam.getStartTime().getTime();
 
@@ -388,13 +369,6 @@
 
                 }
 
-                if (!initJamCache) {
-                    jam.setDuration(System.currentTimeMillis() - jam.getStartTime().getTime());
-                    if (!jamService.updateById(jam)) {
-                        log.error("{}缂栧彿闃诲璁板綍鏇存柊澶辫触锛侊紒锛�", jam.getUuid());
-                    }
-                }
-
             }
 
         }
@@ -409,7 +383,7 @@
                     log.error("{}缂栧彿闃诲璁板綍瀹屾垚淇敼澶辫触锛侊紒锛�", jam.getUuid());
                 }
             }
-            // expired jam
+            // deal expired jam
             for (Jam expiredJam : jamService.list(new LambdaQueryWrapper<Jam>()
                     .eq(Jam::getJamAgv, agv.getId())
                     .eq(Jam::getState, JamStateType.RUNNING.toString()))) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
index 3772f0d..02803e3 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
@@ -8,6 +8,8 @@
 
 public interface SegmentService extends IService<Segment> {
 
+    void processNext(List<Segment> segmentList);
+
     Segment getNextStepOfInit(Long travelId, Integer serial);
 
     Segment getJustWaitingSeg(Long agvId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
index 02f2a82..da6a106 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
@@ -8,10 +8,13 @@
 import com.zy.acs.manager.manager.service.AgvService;
 import com.zy.acs.manager.manager.service.SegmentService;
 import com.zy.acs.framework.common.Cools;
+import com.zy.acs.manager.manager.service.TravelService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -20,6 +23,30 @@
 
     @Autowired
     private AgvService agvService;
+    @Autowired
+    private TravelService travelService;
+
+    @Override
+    public void processNext(List<Segment> segmentList) {
+        Date now = new Date();
+
+        segmentList.stream().max(Comparator.comparingInt(Segment::getSerial)).ifPresent(segment -> {
+            Segment nextSegment = this.getNextStepOfInit(segment.getTravelId(), segment.getSerial());
+
+            if (null != nextSegment) {
+
+                nextSegment.setState(SegmentStateType.WAITING.toString());
+                nextSegment.setUpdateTime(now);
+                if (!this.updateById(nextSegment)) {
+                    log.error("Segment [{}] failed to update 锛侊紒锛�", nextSegment.getGroupId() + " - " + nextSegment.getSerial());
+                }
+
+            } else {
+
+                travelService.checkFinish(segment.getTravelId());
+            }
+        });
+    }
 
     @Override
     public Segment getNextStepOfInit(Long travelId, Integer serial) {

--
Gitblit v1.9.1