zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -220,11 +220,19 @@ if (!pathList.get(pathList.size() - 1).equals(endCode.getData())) { assert !Cools.isEmpty(blockVehicleList); boolean hasUnavoidableBlocks = blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable()); boolean hasUnavoidableBlocks = blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable()); if (hasUnavoidableBlocks && pathList.size() <= MIN_SLICE_PATH_LENGTH) { log.info("AGV[{}] waiting in place, because the path list is too short...", agvNo); pathList.clear(); } boolean hasCycleJam = blockVehicleList.stream().anyMatch( blockVehicleDto -> null != jamService.getCycleJam(agv.getId(), segment.getId(), blockVehicleDto.getVehicle()) ); if (hasCycleJam) { log.info("AGV[{}] waiting in place, because has cycle jam...", agvNo); pathList.clear(); } } // 无可走行路径 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/JamService.java
@@ -10,6 +10,8 @@ Jam getJam(Long agvId, Long jamCode, Long jamSeg); Jam getCycleJam(Long jamAgv, Long jamSeg, String avoAgvNo); List<Jam> queryByAvoid(Long avoAgv, JamStateType jamState); Boolean checkIfFinish(Long avoAgv, String currCodeData); zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
@@ -7,6 +7,7 @@ import com.zy.acs.manager.manager.entity.Jam; import com.zy.acs.manager.manager.enums.JamStateType; import com.zy.acs.manager.manager.mapper.JamMapper; import com.zy.acs.manager.manager.service.AgvService; import com.zy.acs.manager.manager.service.CodeService; import com.zy.acs.manager.manager.service.JamService; import lombok.extern.slf4j.Slf4j; @@ -22,6 +23,8 @@ @Autowired private CodeService codeService; @Autowired private AgvService agvService; @Override public Jam getJam(Long agvId, Long jamCode, Long jamSeg) { @@ -38,6 +41,21 @@ } @Override public Jam getCycleJam(Long jamAgv, Long jamSeg, String avoAgvNo) { List<Jam> jams = this.list(new LambdaQueryWrapper<Jam>() .eq(Jam::getJamAgv, jamAgv) .eq(Jam::getJamSeg, jamSeg) .eq(Jam::getAvoAgv, agvService.selectByUuid(avoAgvNo).getId()) .eq(Jam::getCycleAvo, 1) // .eq(Jam::getState, JamStateType.RUNNING.toString()) ); if (!Cools.isEmpty(jams)) { return jams.stream().findFirst().orElse(null); } return null; } @Override public List<Jam> queryByAvoid(Long avoAgv, JamStateType jamState) { if (null == avoAgv) { return null;