From a64658c5d91adba50240676eb8ffa6a24aa6caa4 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 31 三月 2026 13:49:33 +0800
Subject: [PATCH] 跑库代码更新

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/test/AutoRunScheduler.java |   69 ++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/test/AutoRunScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/test/AutoRunScheduler.java
index dfc8a73..58e5b20 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/test/AutoRunScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/test/AutoRunScheduler.java
@@ -80,26 +80,39 @@
     }
 
     private void autoRun(AgvModel agvModel) {
-        int availableAgvCount = this.getAvailableAgvCount();
-        if (0 == availableAgvCount) {
-            log.error("failed to run auto agv task, 璺戝簱鍖哄煙鏃犲彲鐢ㄥ皬杞�");
-            return;
-        }
 
-//        List<String> staPreNos = getStaPrefixes(staGroupList);
         List<String> staPreNos = new ArrayList<>();
         String memo = "DEMO_STA_" + String.join("-", staPreNos);
-        List<String> codes = getTestAreaCodes();
-        if (codes.isEmpty()) {
-            log.error("failed to run auto agv task, 鏈厤缃窇搴撳尯鍩�");
+        String taskAssignModeArea = configService.getVal("TaskAssignModeArea", String.class);
+        if (Cools.isEmpty(taskAssignModeArea)) {
             return;
         }
-        // 鍏ュ簱
-        this.runStaToLoc(agvModel, codes, memo);
-        // 鍑哄簱
-        this.runLocToSta(agvModel, codes, memo);
-        // 绉诲簱
-        this.runLocToLoc(agvModel, codes, memo);
+        for (String areaCode : taskAssignModeArea.split(";")) {
+            List<String> testAreaCodes = getTestAreaCodes(areaCode);
+            if (testAreaCodes.isEmpty()) {
+                continue;
+            }
+            List<Area> list = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getName, areaCode));
+            Optional<Integer> max = list.stream().map(Area::getPriority).filter(Objects::nonNull).max(Integer::compareTo);
+            Integer priority = max.isPresent() ? max.get() : null;
+            if (!Cools.isEmpty(priority)) {
+                // 鍏ュ簱
+                this.runStaToLoc(agvModel, testAreaCodes, memo);
+                // 鍑哄簱
+                this.runLocToSta(agvModel, testAreaCodes, memo);
+                // 绉诲簱
+                this.runLocToLoc(areaCode, agvModel, testAreaCodes, memo);
+            } else if (priority > 10) {
+                // 鍑哄簱
+                this.runLocToSta(agvModel, testAreaCodes, memo);
+                // 绉诲簱
+                this.runLocToLoc(areaCode, agvModel, testAreaCodes, memo);
+            } else if (priority > 100) {
+                // 绉诲簱
+                this.runLocToLoc(areaCode, agvModel, testAreaCodes, memo);
+            }
+        }
+
     }
 
     // 鍏ュ簱
@@ -195,10 +208,10 @@
     }
 
     // 绉诲簱
-    private void runLocToLoc(AgvModel agvModel, List<String> codes, String staTaskMemo) {
+    private void runLocToLoc(String area, AgvModel agvModel, List<String> codes, String staTaskMemo) {
         String memo = "DEMO_LOC";
 
-        int availableAgvCount = this.getAvailableAgvCount();
+        int availableAgvCount = this.getAvailableAgvCount(area);
 
         // 鏈�澶� ? 缁刡us杩愯
         if (availableAgvCount <= busService.count(new LambdaQueryWrapper<Bus>()
@@ -269,26 +282,16 @@
     }
 
 
-    public List<String> getTestAreaCodes() {
-        String taskAssignModeArea = configService.getVal("TaskAssignModeArea", String.class);
-        if (Cools.isEmpty(taskAssignModeArea)) {
-            List<Code> list = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1));
-            return list.stream().map(Code::getData).collect(Collectors.toList());
-        }
-        List<Area> list = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getName, taskAssignModeArea));
+    public List<String> getTestAreaCodes(String areaCode) {
+        List<Area> list = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getName, areaCode));
         if (list.isEmpty()) {
             return Collections.emptyList();
         }
         return areaGovernService.queryCodes(list.stream().map(Area::getId).collect(Collectors.toList()));
     }
 
-    public List<Long> getTestAreaAgvs() {
-        String taskAssignModeArea = configService.getVal("TaskAssignModeArea", String.class);
-        if (Cools.isEmpty(taskAssignModeArea)) {
-            List<Agv> list = agvService.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, 1));
-            return list.stream().map(Agv::getId).collect(Collectors.toList());
-        }
-        List<Area> list = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getName, taskAssignModeArea));
+    public List<Long> getTestAreaAgvs(String areaCode) {
+        List<Area> list = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getName, areaCode));
         if (list.isEmpty()) {
             return Collections.emptyList();
         }
@@ -306,9 +309,9 @@
         return result;
     }
 
-    private int getAvailableAgvCount() {
+    private int getAvailableAgvCount(String areaCode) {
         int res = 0;
-        List<Long> testAreaAgvs = getTestAreaAgvs();
+        List<Long> testAreaAgvs = getTestAreaAgvs(areaCode);
         for (Long agvId : testAreaAgvs) {
             String agvNo = agvService.getAgvNo(agvId);
             Agv agv = agvService.selectByUuid(agvNo);

--
Gitblit v1.9.1