#
luxiaotao1123
2024-11-09 46a1c6c2437c1341e1d7994d61b66eb27d40ae1b
#
4个文件已修改
100 ■■■■ 已修改文件
zy-acs-flow/src/i18n/zh.js 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/i18n/zh.js
zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
@@ -48,18 +48,20 @@
}
/**
 *
 * TRUNCATE man_action;
 * TRUNCATE man_bus;
 * TRUNCATE man_code;
 * TRUNCATE man_code_gap;
 * TRUNCATE man_func_sta;
 * TRUNCATE man_jam;
 * TRUNCATE man_loc;
 * TRUNCATE man_nav_map;
 * TRUNCATE man_route;
 * TRUNCATE man_segment;
 * TRUNCATE man_sta;
 * TRUNCATE man_task;
 * TRUNCATE man_travel;
 * TRUNCATE man_segment;
 * TRUNCATE man_jam;
 * TRUNCATE man_action;
 *
 * TRUNCATE man_code;
 * TRUNCATE man_code_gap;
 * TRUNCATE man_route;
 *
 * TRUNCATE man_func_sta;
 * TRUNCATE man_loc;
 * TRUNCATE man_sta;
 * TRUNCATE man_nav_map;
 *
 */
zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
@@ -2,15 +2,28 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.framework.common.R;
import com.zy.acs.manager.core.service.MainService;
import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.enums.TaskStsType;
import com.zy.acs.manager.manager.enums.TaskTypeType;
import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvService;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;
@@ -28,6 +41,63 @@
    @Autowired
    private AgvService agvService;
    @Autowired
    private AgvDetailService agvDetailService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private MainService mainService;
    @Autowired
    private CodeService codeService;
    @Autowired
    private MapService mapService;
    private void executePatrolLogic(String agvNo) {
        this.patrolOfMove(agvNo);
    }
    private void patrolOfMove(String agvNo) {
        Agv agv = agvService.selectByUuid(agvNo);
        AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
        if (taskService.count(new LambdaQueryWrapper<Task>()
                .eq(Task::getAgvId, agv.getId())
                .and(i -> {
                    i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
                            .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
                            .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
                })) > 0) {
            return;
        }
        if (!agvService.judgeEnable(agv.getId())) {
            return;
        }
        Code randomCode = this.getRandomCode(agvDetail);
        if (null == randomCode) {
            return;
        }
        if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) {
            log.info(agv.getUuid() + "开始走行演示...");
        }
    }
    public Code getRandomCode(AgvDetail agvDetail) {
        Code startCode = codeService.getById(agvDetail.getRecentCode());
        List<String> notInCodeList = new ArrayList<>();
        notInCodeList.add("00000061");
        List<Code> list = codeService.list(new LambdaQueryWrapper<Code>().notIn(Code::getData, notInCodeList));
        Collections.shuffle(list);
        for (Code endCode : list) {
            List<String> pathList = mapService.validFeasibility(startCode, endCode);
            if (pathList.size() >= 5) {
                return endCode;
            }
        }
        return list.stream().findFirst().orElse(null);
    }
    // ---------------------------------------------------------------------------
    public boolean isPatrolling(String agvNo) {
        ScheduledFuture<?> scheduledFuture = AGV_PATROL_MAP.get(agvNo);
@@ -74,11 +144,6 @@
            log.error("未能成功停止AGV " + agvNo + " 的跑库任务。");
            return R.error("未能成功停止AGV " + agvNo + " 的跑库任务。");
        }
    }
    private void executePatrolLogic(String agvNo) {
        // TODO: 在这里实现具体的跑库业务逻辑
        log.info("执行AGV " + agvNo + " 的跑库任务。");
    }
    @PostConstruct
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
@@ -13,6 +13,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -63,8 +64,8 @@
        return this.matrixHeader.get(idx);
    }
//    @PostConstruct
    @SuppressWarnings("all")
    @PostConstruct
    public void generateMatrix() {
        log.info("【FLOYD】正在计算矩阵数据......");
        List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1).eq(Code::getDeleted, false));