#
luxiaotao1123
2 天以前 b22c773435474fcdaea05c6239d9cc94bbfd499c
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -50,6 +50,8 @@
    private AgvAreaDispatcher agvAreaDispatcher;
    @Autowired
    private SegmentService segmentService;
    @Autowired
    private TravelService travelService;
    /**
     * get available agv list which is idle
@@ -62,7 +64,6 @@
        List<String> result = new ArrayList<>();
        for (Agv agv : agvList) {
            if (!hasRunning) {
                // 1. without running tasks
                if (0 < taskService.count(new LambdaQueryWrapper<Task>()
                        .eq(Task::getAgvId, agv.getId())
                        .and(i -> i
@@ -73,10 +74,13 @@
                )) {
                    continue;
                }
            }
            // 2. in idle status
            if (!agvService.judgeEnable(agv.getId(), true)) {
                continue;
                if (!agvService.judgeEnable(agv.getId(), true, true)) {
                    continue;
                }
            } else {
                if (!agvService.judgeEnable(agv.getId(), true, false)) {
                    continue;
                }
            }
            result.add(agv.getUuid());
@@ -121,7 +125,7 @@
            return null;
        }
        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), true);
        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), true);
        FilterLaneDto filterLaneDto = this.filterThroughLane(task, availableAgvNos);
        if (filterLaneDto == null) {
            return null;
@@ -155,7 +159,7 @@
     *      it can break the limit of the number of agv backpack
     */
    public synchronized String normalExecute(Task task) {
        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), false);
        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), false);
//        List<String> availableAgvNos = this.getAvailableAgvNos(null);
        if (Cools.isEmpty(availableAgvNos)) {
//            log.warn("No available agv to assign the task[{}]", task.getSeqNum());
@@ -221,15 +225,15 @@
//                continue;
//            }
            // in TransferStationHandler.hasDelayAtSta
            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
            if (null == currSeg) {
            Travel currTravelInRollerWaiting = travelService.findRollerWaitingTravel(agvId, currentCode.getId());
            if (null == currTravelInRollerWaiting) {
                continue;
            }
            // has enough backpack space to load
            Integer backpack = agvService.getBackpack(agvId);
            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(null, agvId);
            if (usedBackpacks.size() >= backpack) {
            Integer backpackCap = agvService.getBackpack(agvId);
            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currTravelInRollerWaiting.getId(), agvId);
            if (usedBackpacks.size() >= backpackCap) {
                continue;
            }