#
luxiaotao1123
2024-11-27 da407d4525cd6ea211d952fc2fd96f5ba30510e8
#
4个文件已修改
34 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/MapDataConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/type/BlockSeverityType.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)) {