From 1a518d788ee36886af92b2adfcbe9e79e83ef08e Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 22 一月 2026 09:44:51 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
index 0bf08bd..ae3b643 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -5,6 +5,7 @@
 import com.zy.acs.manager.core.service.MainLockWrapService;
 import com.zy.acs.manager.core.service.MainService;
 import com.zy.acs.manager.core.service.TrafficService;
+import com.zy.acs.manager.core.service.TransferStationHandler;
 import com.zy.acs.manager.manager.entity.Bus;
 import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.entity.Task;
@@ -20,6 +21,7 @@
 import org.springframework.context.event.EventListener;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.support.TransactionTemplate;
 
 import javax.annotation.PreDestroy;
 import java.util.ArrayList;
@@ -47,6 +49,8 @@
     private Thread actionPublicThread;
 
     @Autowired
+    private TransactionTemplate txTemplate;
+    @Autowired
     private AgvService agvService;
     @Autowired
     private BusService busService;
@@ -67,7 +71,9 @@
     @Autowired
     private LocService locService;
     @Autowired
-    private AgvModelService agvModelService;
+    private TravelService travelService;
+    @Autowired
+    private TransferStationHandler transferStationHandler;
 
     @Scheduled(cron = "0/1 * * * * ? ")
     private void startupBus() throws InterruptedException {
@@ -116,11 +122,19 @@
                             .eq(Segment::getState, SegmentStateType.WAITING.toString())
                     );
                     for (Segment segment : segments) {
-                        long startTime = System.currentTimeMillis();
-                        trafficService.trigger(segment);
-//                        log.info("traffic calculation spend {} ms", System.currentTimeMillis() - startTime);
+                        if (transferStationHandler.hasDelayAtSta(segment)) {
+                            continue;
+                        } else {
+                            travelService.clearRollerWaiting(segment.getTravelId());
+                        }
+                        try {
+                            txTemplate.executeWithoutResult(status -> {
+                                trafficService.trigger(segment);
+                            });
+                        } catch (Exception e) {
+                            log.error("trigger fail segId={}", segment.getId(), e);
+                        }
                     }
-
                 } catch (Exception e) {
                     log.error("KernelScheduler.trafficCalcThread fail", e);
                 }

--
Gitblit v1.9.1