#
vincentlu
21 小时以前 5b686555ac1b0a632fb1da7fd5ec717e79041c37
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -252,33 +252,25 @@
                        , (task, agvNo, sta) -> {
                            Long agvId = agvService.getAgvId(agvNo);
//                            List<Travel> travelList = travelService.list(new LambdaQueryWrapper<Travel>()
//                                    .eq(Travel::getAgvId, agvId)
//                                    .eq(Travel::getState, TravelStateType.RUNNING.toString())
//                                    .orderByDesc(Travel::getCreateTime));
//                            if (Cools.isEmpty(travelList)) {
//                                throw new BusinessException("[Agv: " + agvNo + "]allocate inbound failed to find travel");
//                            }
//                            Travel travel = travelList.get(0);
//
//                            List<Segment> currSegments = segmentService.list(new LambdaQueryWrapper<Segment>()
//                                    .eq(Segment::getAgvId, agvId)
//                                    .eq(Segment::getTravelId, travel.getId())
//                            );
                            // load segment
                            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
                            Travel travel = travelService.findRunningTravel(agvId);
                            if (null == travel) {
                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no roller waiting travel");
                            }
                            // curr segment
                            Segment currSeg = segmentService.getCurrWaitingSeg(travel.getId(), agvId);
                            if (null == currSeg) {
                                throw new BusinessException("[Agv:" + agvNo + "] allocate inbound failed: no roller waiting segment");
                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no waiting segment");
                            }
                            // get backpack lev
                            int backpackLev = 0;
                            int backpack = agvService.getBackpack(agvId);
                            int backpackCap = agvService.getBackpack(agvId);
                            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId);
                            if (usedBackpacks.size() >= backpack) {
                            if (usedBackpacks.size() >= backpackCap) {
                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound segment failed: no idle backpack to use");
                            }
                            for (int lev = 1; lev <= backpack; lev++) {
                            for (int lev = 1; lev <= backpackCap; lev++) {
                                if (!usedBackpacks.contains(lev)) {
                                    backpackLev = lev;
                                    break;
@@ -513,9 +505,9 @@
                    return o2.getPriority() - o1.getPriority();
                }
            });
            Integer backpack = agvService.getBackpack(agvId);
            if (taskList.size() > backpack) {
                taskList = taskList.subList(0, backpack);
            Integer backpackCap = agvService.getBackpack(agvId);
            if (taskList.size() > backpackCap) {
                taskList = taskList.subList(0, backpackCap);
            }
            AgvDetail agvDetail = agvDetailService.selectByAgvId(agvId);
@@ -585,7 +577,7 @@
                }
                if (backpackLev > backpack) {
                if (backpackLev > backpackCap) {
                    throw new BusinessException("解析Task失败,AGV背篓已满......");
                }
@@ -1904,7 +1896,6 @@
            agv_06_down.setSerialNo(agv_06_up.getSerialNo());
            agv_06_down.setActionCode(agv_06_up.getActionCode());
            agv_06_down.setResult(success ? 1 : 0);
            //agv_06_down.setResult(0);
            redis.push(RedisConstant.AGV_PATH_DOWN_FLAG, AgvProtocol.build(protocol.getAgvNo()).setMessageBody(agv_06_down));
        }