From 8a4bae16c2e6397251e0f9c58521aa9be363eb8e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 05 十一月 2024 16:37:05 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java         |   23 +++++++++++++----------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java |   12 ++++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/BlockVehicleDto.java         |   15 +++++++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java          |    5 +++++
 4 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/BlockVehicleDto.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/BlockVehicleDto.java
new file mode 100644
index 0000000..d5a8730
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/BlockVehicleDto.java
@@ -0,0 +1,15 @@
+package com.zy.acs.manager.core.domain;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 11/5/2024
+ */
+@Data
+public class BlockVehicleDto {
+
+    private String vehicle;
+
+    private boolean avoidable;
+
+}
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 e10ba16..c2ed10b 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
@@ -7,7 +7,6 @@
 import com.zy.acs.framework.exception.CoolException;
 import com.zy.acs.manager.common.utils.MapDataUtils;
 import com.zy.acs.manager.core.domain.TaskPosDto;
-import com.zy.acs.manager.core.service.astart.DynamicNodeType;
 import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
 import com.zy.acs.manager.core.service.astart.RetreatNavigateNode;
 import com.zy.acs.manager.core.service.astart.WaveNodeType;
@@ -237,7 +236,7 @@
 
             if (!Cools.isEmpty(pathList)) {
 
-                if (!Cools.isEmpty(blockVehicleList) && !pathList.get(pathList.size() - 1).equals(endCode.getData())) {
+                if (!pathList.get(pathList.size() - 1).equals(endCode.getData()) && !Cools.isEmpty(blockVehicleList)) {
                     String blockAgvNo = blockVehicleList.get(0);
                     if (mapDataDispatcher.queryCodeListFromDynamicNode(null, blockAgvNo).size() > 1 && pathList.size() <= MIN_SLICE_PATH_LENGTH) {
                         pathList.clear();
@@ -431,18 +430,22 @@
                 List<String> waveNodeList = MapDataUtils.parseWaveNode(waveNode);
                 List<String> otherWaveList = MapDataUtils.hasOtherWave(waveNodeList, agvNo);
                 if (!Cools.isEmpty(otherWaveList)) {
-                    blockVehicleList.addAll(otherWaveList);
+                    for (String otherWave : otherWaveList) {
+                        if (mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size() <= 1) {
+                            blockVehicleList.add(otherWave);
+                        }
+                    }
                     break;
                 }
             }
 
-            DynamicNode dynamicNode = dynamicMatrix[node[0]][node[1]];
-            String vehicle = dynamicNode.getVehicle();
-            assert !vehicle.equals(DynamicNodeType.BLOCK.val);
-            if (!vehicle.equals(DynamicNodeType.ACCESS.val) && !vehicle.equals(agvNo)) {
-                blockVehicleList.add(vehicle);
-                break;
-            }
+//            DynamicNode dynamicNode = dynamicMatrix[node[0]][node[1]];
+//            String vehicle = dynamicNode.getVehicle();
+//            assert !vehicle.equals(DynamicNodeType.BLOCK.val);
+//            if (!vehicle.equals(DynamicNodeType.ACCESS.val) && !vehicle.equals(agvNo)) {
+//                blockVehicleList.add(vehicle);
+//                break;
+//            }
 
             pathList.add(code);
         }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java
index 5eeeec4..14d09ac 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java
@@ -2,11 +2,16 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zy.acs.manager.manager.entity.Jam;
+import com.zy.acs.manager.manager.enums.JamStateType;
+
+import java.util.List;
 
 public interface JamService extends IService<Jam> {
 
     Jam getJam(Long agvId, Long jamCode, Long jamSeg);
 
+    List<Jam> queryByAvoid(Long avoAgv, JamStateType jamState);
+
     Boolean checkIfFinish(Long avoAgv, String currCodeData);
 
     boolean deprecate(Long id, Long loginUserId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
index 9abba73..c0c7504 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
@@ -38,6 +38,18 @@
     }
 
     @Override
+    public List<Jam> queryByAvoid(Long avoAgv, JamStateType jamState) {
+        if (null == avoAgv) {
+            return null;
+        }
+        LambdaQueryWrapper<Jam> wrapper = new LambdaQueryWrapper<Jam>().eq(Jam::getAvoAgv, avoAgv);
+        if (null != jamState) {
+            wrapper.eq(Jam::getState, jamState.toString());
+        }
+        return this.list(wrapper);
+    }
+
+    @Override
     public Boolean checkIfFinish(Long avoAgv, String currCodeData) {
         if (Cools.isEmpty(avoAgv, currCodeData)) {
             return null;

--
Gitblit v1.9.1