| | |
| | | return o2.getPriority() - o1.getPriority(); |
| | | } |
| | | }); |
| | | Integer backpack = agvService.getBackpack(agv); |
| | | Integer backpack = agvService.getBackpack(agvId); |
| | | if (taskList.size() > backpack) { |
| | | taskList = taskList.subList(0, backpack); |
| | | } |
| | |
| | | success = true; |
| | | break; |
| | | case ORI_STA: |
| | | // load from sta |
| | | sta = staService.getById(currTask.getOriSta()); |
| | | success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT); |
| | | |
| | | boolean permit = conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT); |
| | | |
| | | // load sta |
| | | // remove expiredTime |
| | | // reserve to be waiting |
| | | if (!staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT)) { |
| | | break; |
| | | } |
| | | // convey plc valid |
| | | if (!conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT)) { |
| | | // reserve rollback |
| | | staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.OUT); |
| | | break; |
| | | } |
| | | success = true; |
| | | break; |
| | | case DEST_STA: |
| | | // place sta |
| | | // place to sta |
| | | sta = staService.getById(currTask.getDestSta()); |
| | | success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.IN); |
| | | // reserve to be waiting |
| | | if (!staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.IN)) { |
| | | break; |
| | | } |
| | | // convey plc valid |
| | | if (!conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.IN)) { |
| | | // reserve rollback |
| | | staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.IN); |
| | | break; |
| | | } |
| | | success = true; |
| | | break; |
| | | default: |
| | | log.error("agv[{}] has wrong posType [{}], segment [{}]", protocol.getAgvNo(), posType.toString(), currSeg.getId()); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("agv[{}] failed to deal with action request, qrCode={}", agv.getUuid(), agv_06_up.getVal(), e); |
| | | } |
| | |
| | | } |
| | | |
| | | if (taskComplete) { |
| | | // locService.taskCallBack(task); |
| | | |
| | | task.setTaskSts(TaskStsType.COMPLETE.val()); |
| | | task.setEndTime(now); |
| | | task.setUpdateTime(now); |