| | |
| | | import com.zy.acs.framework.common.SnowflakeIdWorker; |
| | | import com.zy.acs.manager.common.domain.param.HandlerPublishParam; |
| | | import com.zy.acs.manager.common.exception.BusinessException; |
| | | import com.zy.acs.manager.core.service.AvoidWaveCalculator; |
| | | import com.zy.acs.manager.core.service.MainService; |
| | | import com.zy.acs.manager.core.service.ThreadPoolRegulator; |
| | | import com.zy.acs.manager.core.service.TrafficService; |
| | | import com.zy.acs.manager.core.service.*; |
| | | import com.zy.acs.manager.core.service.astart.MapDataDispatcher; |
| | | import com.zy.acs.manager.manager.entity.*; |
| | | import com.zy.acs.manager.manager.enums.ActionStsType; |
| | |
| | | @Autowired |
| | | private MainService mainService; |
| | | @Autowired |
| | | private MainLockWrapService mainLockWrapService; |
| | | @Autowired |
| | | private SnowflakeIdWorker snowflakeIdWorker; |
| | | @Autowired |
| | | private CodeService codeService; |
| | |
| | | private MapDataDispatcher mapDataDispatcher; |
| | | @Autowired |
| | | private AvoidWaveCalculator avoidWaveCalculator; |
| | | @Autowired |
| | | private PatrolService patrolService; |
| | | |
| | | @RequestMapping(value = "/control/agv", method = {RequestMethod.GET, RequestMethod.POST}) |
| | | @Transactional |
| | |
| | | case MOVE: |
| | | Code endCode = null; |
| | | if (!Cools.isEmpty(param.getEndCode())) { |
| | | endCode = codeService.getById(param.getEndCode()); |
| | | endCode = codeService.getCacheById(param.getEndCode()); |
| | | } |
| | | if (!Cools.isEmpty(param.getEndCodeStr())) { |
| | | endCode = codeService.selectByData(param.getEndCodeStr()); |
| | | endCode = codeService.getCacheByData(param.getEndCodeStr()); |
| | | } |
| | | if (null == endCode) { |
| | | return R.error(); |
| | | } |
| | | if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskMode(), endCode.getData())) { |
| | | if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) { |
| | | return R.error(); |
| | | } |
| | | break; |
| | | case TO_CHARGE: |
| | | case TO_STANDBY: |
| | | if (!mainService.buildMinorTask(agv, agvDetail, param.getTaskMode(), null)) { |
| | | if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) { |
| | | return R.error(); |
| | | } |
| | | break; |
| | |
| | | task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum())); |
| | | |
| | | task.setOriLoc(oriLoc.getId()); |
| | | task.setOriCode(oriLoc.getCode()); |
| | | task.setDestLoc(destLoc.getId()); |
| | | task.setDestCode(destLoc.getCode()); |
| | | |
| | | task.setTaskType(param.getTaskMode().val()); |
| | | task.setTaskSts(TaskStsType.WAITING.val()); |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/agv/patrol", method = {RequestMethod.GET, RequestMethod.POST}) |
| | | public R agvPatrol(@RequestHeader String appKey, |
| | | @RequestBody HandlerPublishParam param) throws ExecutionException, InterruptedException { |
| | | if (Cools.isEmpty(param.getAgvNo(), appKey)) { |
| | | return R.error(); |
| | | } |
| | | if (!APP_KEY.equals(appKey)) { |
| | | return R.error(); |
| | | } |
| | | String agvNo = param.getAgvNo(); |
| | | if (patrolService.isPatrolling(agvNo)) { |
| | | return patrolService.shutdownPatrol(agvNo); |
| | | } else { |
| | | return patrolService.startupPatrol(agvNo); |
| | | } |
| | | } |
| | | |
| | | } |