zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/MapDataConstant.java
@@ -7,4 +7,10 @@ public static final Double MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR = 1.09; public static final Integer MAX_STEPS_SINGLE = 25; public static final Integer MIN_SLICE_PATH_LENGTH = 3; public static final Integer MAX_JAM_TIMEOUT = 5 * 1000; } zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/type/BlockSeverityType.java
@@ -1,12 +1,12 @@ package com.zy.acs.manager.core.domain.type; import com.zy.acs.manager.core.service.TrafficService; import com.zy.acs.manager.core.constant.MapDataConstant; public enum BlockSeverityType { // NONE(0), NONE(0), SEVERE(9 * TrafficService.MAX_JAM_TIMEOUT), SEVERE(7 * MapDataConstant.MAX_JAM_TIMEOUT), ; public long duration; zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -4,6 +4,7 @@ import com.zy.acs.common.enums.AgvDirectionType; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.common.utils.MapDataUtils; import com.zy.acs.manager.core.constant.MapDataConstant; import com.zy.acs.manager.core.service.astart.*; import com.zy.acs.manager.core.service.astart.domain.DynamicNode; import com.zy.acs.manager.core.service.floyd.FloydNavigateService; @@ -79,7 +80,14 @@ // navigateNode.setParent(null); // } return navigateNodes.stream().map(NavigateNode::getCodeData).collect(Collectors.toList()); List<String> navigatePath = navigateNodes.stream().map(NavigateNode::getCodeData).collect(Collectors.toList()); // max count of steps if (navigatePath.size() > MapDataConstant.MAX_STEPS_SINGLE) { navigatePath = navigatePath.subList(0, MapDataConstant.MAX_STEPS_SINGLE); } return navigatePath; } /** zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -2,11 +2,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.acs.common.utils.GsonUtils; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.framework.exception.CoolException; import com.zy.acs.manager.common.utils.MapDataUtils; import com.zy.acs.manager.core.constant.MapDataConstant; import com.zy.acs.manager.core.domain.BlockVehicleDto; import com.zy.acs.manager.core.domain.TaskPosDto; import com.zy.acs.manager.core.domain.type.BlockSeverityType; @@ -37,12 +37,6 @@ @Slf4j @Component public class TrafficService { public static final Integer MIN_SLICE_PATH_LENGTH = 3; public static final Integer MAX_JAM_TIMEOUT = 5 * 1000; private final RedisSupport redis = RedisSupport.defaultRedisSupport; @Autowired private AgvService agvService; @@ -239,7 +233,7 @@ assert !Cools.isEmpty(blockVehicleList); boolean hasUnavoidableBlocks = blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable()); if (hasUnavoidableBlocks && pathList.size() <= MIN_SLICE_PATH_LENGTH) { if (hasUnavoidableBlocks && pathList.size() <= MapDataConstant.MIN_SLICE_PATH_LENGTH) { log.info("AGV[{}] waiting in place, because the path list is too short...", agvNo); pathList.clear(); } @@ -277,7 +271,7 @@ if (!Cools.isEmpty(jam.getAvoAgv()) && BlockVehicleDto.customContain(blockVehicleList, agvService.getById(jam.getAvoAgv()).getUuid())) { maxJamTimeoutFactor = 6; maxJamTimeoutFactor = 5; } else { @@ -336,7 +330,7 @@ // handle jam timeout if (null != maxJamTimeoutFactor) { if (System.currentTimeMillis() - jam.getStartTime().getTime() > MAX_JAM_TIMEOUT * maxJamTimeoutFactor) { if (System.currentTimeMillis() - jam.getStartTime().getTime() > MapDataConstant.MAX_JAM_TIMEOUT * maxJamTimeoutFactor) { if (!Cools.isEmpty(lockPathList)) {