| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.framework.common.SnowflakeIdWorker; |
| | | import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam; |
| | | import com.zy.asrs.wcs.core.domain.param.CreateManualTakeTaskParam; |
| | | import com.zy.asrs.wcs.core.domain.param.CreateMoveTaskParam; |
| | | import com.zy.asrs.wcs.core.domain.param.CreateOutTaskParam; |
| | |
| | | import com.zy.asrs.wcs.core.entity.Task; |
| | | import com.zy.asrs.wcs.core.entity.TaskCtg; |
| | | import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; |
| | | import com.zy.asrs.wcs.core.model.enums.TaskCtgType; |
| | | import com.zy.asrs.wcs.core.model.enums.TaskStsType; |
| | | import com.zy.asrs.wcs.core.service.LocService; |
| | | import com.zy.asrs.wcs.core.service.TaskCtgService; |
| | |
| | | @Autowired |
| | | private LocService locService; |
| | | |
| | | //生成入库任务 |
| | | @PostMapping("/createInTask") |
| | | public R createInTask(@RequestBody CreateInTaskParam param) { |
| | | //获取入库任务类型 |
| | | TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() |
| | | .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) |
| | | .eq(TaskCtg::getStatus, 1)); |
| | | if (taskCtg == null) { |
| | | return R.error("任务类型异常"); |
| | | } |
| | | |
| | | Loc loc = locService.selectByLocNo(param.getDestLoc()); |
| | | if (loc == null) { |
| | | return R.error("库位号不存在"); |
| | | } |
| | | |
| | | if (!loc.getLocStsFlag().equals("O")) { |
| | | return R.error("库位状态不满足入库条件"); |
| | | } |
| | | |
| | | //优先级 |
| | | Integer priority = 10; |
| | | if (param.getPriority() != null) { |
| | | priority = param.getPriority(); |
| | | } |
| | | |
| | | Task task = new Task(); |
| | | task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | task.setTaskNo(String.valueOf(Utils.getTaskNo("IN"))); |
| | | task.setTaskSts(TaskStsType.NEW_INBOUND.sts); |
| | | task.setTaskCtg(taskCtg.getId()); |
| | | task.setPriority(priority); |
| | | task.setOriginSite(param.getOriginSite()); |
| | | task.setOriginLoc(null); |
| | | task.setDestSite(param.getDestSite()); |
| | | task.setDestLoc(param.getDestLoc()); |
| | | task.setIoTime(new Date()); |
| | | task.setStartTime(new Date()); |
| | | task.setStatus(1); |
| | | task.setMemo(""); |
| | | task.setShuttleNo(null);//等待主线程分配小车 |
| | | task.setRecordLoc("Y");//记录库存信息 |
| | | task.setHostId(1L);//临时控制只允许host为1 |
| | | |
| | | boolean result = taskService.save(task); |
| | | if (!result) { |
| | | return R.error("生成入库任务失败!"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | //生成出库任务 |
| | | @PostMapping("/createOutTask") |
| | | public R createOutTask(@RequestBody CreateOutTaskParam param) { |
| | | //获取出库任务类型 |
| | | TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() |
| | | .eq(TaskCtg::getFlag, "OUT") |
| | | .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) |
| | | .eq(TaskCtg::getStatus, 1)); |
| | | if (taskCtg == null) { |
| | | return R.error("任务类型异常"); |
| | |
| | | return R.error("库位状态不满足出库条件"); |
| | | } |
| | | |
| | | //优先级 |
| | | Integer priority = 10; |
| | | if (param.getPriority() != null) { |
| | | priority = param.getPriority(); |
| | | } |
| | | |
| | | Task task = new Task(); |
| | | task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); |
| | | task.setTaskSts(TaskStsType.NEW_OUTBOUND.sts); |
| | | task.setTaskCtg(taskCtg.getId()); |
| | | task.setPriority(10); |
| | | task.setPriority(priority); |
| | | task.setOriginSite(param.getOriginSite()); |
| | | task.setOriginLoc(param.getOriginLoc()); |
| | | task.setDestSite(param.getDestSite()); |
| | |
| | | public R createManualTakeTask(@RequestBody CreateManualTakeTaskParam param) { |
| | | //获取手动任务类型 |
| | | TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() |
| | | .eq(TaskCtg::getFlag, "MANUAL") |
| | | .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MANUAL)) |
| | | .eq(TaskCtg::getStatus, 1)); |
| | | if (taskCtg == null) { |
| | | return R.error("任务类型异常"); |
| | | } |
| | | |
| | | //优先级 |
| | | Integer priority = 10; |
| | | if (param.getPriority() != null) { |
| | | priority = param.getPriority(); |
| | | } |
| | | |
| | | Task task = new Task(); |
| | |
| | | task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); |
| | | task.setTaskSts(TaskStsType.NEW_MANUAL.sts); |
| | | task.setTaskCtg(taskCtg.getId()); |
| | | task.setPriority(10); |
| | | task.setPriority(priority); |
| | | task.setOriginSite(null); |
| | | task.setOriginLoc(param.getOriginLoc());//源库位 |
| | | task.setDestSite(null); |
| | |
| | | public R createMoveTask(@RequestBody CreateMoveTaskParam param) { |
| | | //获取出库任务类型 |
| | | TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() |
| | | .eq(TaskCtg::getFlag, "MOVE") |
| | | .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE)) |
| | | .eq(TaskCtg::getStatus, 1)); |
| | | if (taskCtg == null) { |
| | | return R.error("任务类型异常"); |
| | |
| | | return R.error("穿梭车和目标位置不在同一楼层"); |
| | | } |
| | | |
| | | //优先级 |
| | | Integer priority = 10; |
| | | if (param.getPriority() != null) { |
| | | priority = param.getPriority(); |
| | | } |
| | | |
| | | Task task = new Task(); |
| | | task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); |
| | | task.setTaskSts(TaskStsType.NEW_MOVE.sts); |
| | | task.setTaskCtg(taskCtg.getId()); |
| | | task.setPriority(10); |
| | | task.setPriority(priority); |
| | | task.setOriginSite(null); |
| | | task.setOriginLoc(null); |
| | | task.setDestSite(param.getDestSite()); |