#
vincentlu
2025-01-21 a079fff1e7bae25a5e29f73709b8e9972216f7ef
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -177,10 +177,10 @@
            return new ArrayList<>();
        }
        return agvNoList.stream().filter(agvNo -> {
            Agv agv = agvService.selectByUuid(agvNo);
            AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
            List<Task> transportTasks = taskService.findTransportTasksByAgv(agv.getId());
            return transportTasks.size() < agvModel.getBackpack();
            Long agvId = agvService.getAgvId(agvNo);
            int transportTasksCount = taskService.findTransportTasksCountByAgv(agvId);
            AgvModel agvModel = agvModelService.getByAgvNo(agvNo);
            return transportTasksCount < agvModel.getBackpack();
        }).collect(Collectors.toList());
    }
@@ -190,15 +190,15 @@
        Long agvId = agvService.getAgvId(agvNo);
        // backpack
        List<Task> transportTasks = taskService.findTransportTasksByAgv(agvId);
        if (!Cools.isEmpty(transportTasks)) {
            weight = weight + transportTasks.size() * 100000;
        Integer transportTasksCount = taskService.findTransportTasksCountByAgv(agvId);
        if (!Cools.isEmpty(transportTasksCount)) {
            weight = weight + transportTasksCount * 100000;
        }
        // distance
        // from
        AgvDetail agvDetail = agvDetailService.selectByAgvId(agvId);
        Code agvCurrCode = codeService.getById(agvDetail.getRecentCode());
        Code agvCurrCode = codeService.getCacheById(agvDetail.getRecentCode());
        Double[] fromPosition = new Double[]{agvCurrCode.getX(), agvCurrCode.getY()};
        // to
        Code firstCode = null;
@@ -207,20 +207,20 @@
            case LOC_TO_LOC:
            case LOC_TO_STA:
                Loc oriLoc = locService.getById(task.getOriLoc());
                firstCode = codeService.getById(oriLoc.getCode());
                firstCode = codeService.getCacheById(oriLoc.getCode());
                break;
            case STA_TO_LOC:
            case STA_TO_STA:
                Sta oriSta = staService.getById(task.getOriSta());
                firstCode = codeService.getById(oriSta.getCode());
                firstCode = codeService.getCacheById(oriSta.getCode());
                break;
            case TO_CHARGE:
            case TO_STANDBY:
            case MOVE:
                firstCode = codeService.getById(task.getDestCode());
                firstCode = codeService.getCacheById(task.getDestCode());
                break;
            default:
                firstCode = codeService.getById(task.getDestCode());
                firstCode = codeService.getCacheById(task.getDestCode());
                break;
        }
        assert null != firstCode;
@@ -232,13 +232,13 @@
        return -weight;
    }
    public Boolean validCapacityOfLane(Agv agv, Code code) {
    public Boolean validCapacityOfLane(String agvNo, Code code) {
        Lane lane = laneService.search(code.getData());
        if (null != lane) {
            Integer maxAgvCountInLane = configService.getVal("maxAgvCountInLane", Integer.class);
            List<String> agvNosByLane = this.findAgvNosByLane(lane);
            agvNosByLane.remove(agv.getUuid());
            agvNosByLane.remove(agvNo);
            if (agvNosByLane.size() >= maxAgvCountInLane) {
                return false;
            }