| | |
| | | // 验证设备站点 |
| | | DeviceSite deviceSite = validateDeviceSite(param); |
| | | |
| | | // 空板入库:与非空板同一入口,仅不校验组托,只做分配库位、建任务、更新库位 |
| | | // 空板入库:与非空板同一入口;createInTaskForEmptyPallet 内会拦截已组托托盘 |
| | | if (param.getIoType() != null && param.getIoType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)) { |
| | | return createInTaskForEmptyPallet(param); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 空板入库:与非空板同一流程(校验站点、分配库位、建任务、更新库位),仅不校验组托、不写任务明细、不更新组托状态。 |
| | | * 空板入库:与非空板同一流程(校验站点、分配库位、建任务、更新库位),不写任务明细、不更新组托状态。 |
| | | * 已组托(入库中/任务执行中)的托盘禁止走本流程,应使用满板入库。 |
| | | * 由 createInTask 在 ioType=空板时调用;需在设备站点中配置 type=10(空板入库)的站点路径。 |
| | | */ |
| | | private InTaskMsgDto createInTaskForEmptyPallet(TaskInParam sourceParam) { |
| | |
| | | // 校验设备站点(需配置 type=10 空板入库的站点) |
| | | DeviceSite deviceSite = validateDeviceSite(param); |
| | | |
| | | // 已组托:与 createInTask 满板分支一致,仅允许入库中/任务执行中的组托单参与校验 |
| | | WaitPakin palletized = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() |
| | | .eq(WaitPakin::getBarcode, barcode) |
| | | .in(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val, PakinIOStatus.PAKIN_IO_STATUS_TASK_EXCE.val)); |
| | | if (palletized != null) { |
| | | throw new CoolException("barcode=" + barcode + ": 托盘已经组托,不能空板入库"); |
| | | } |
| | | |
| | | // 检查该托盘号是否已有空板入库任务,有则复用 |
| | | Task existingInTask = taskService.getOne(new LambdaQueryWrapper<Task>() |
| | | .eq(Task::getBarcode, barcode) |