| | |
| | | if (Objects.isNull(mast)) { |
| | | // pakoutOrderPause 中止时,WMS 在 WCS 确认取消后会立即本地取消并归档任务。 |
| | | // 如果 WCS 后续又补发 task_cancel 回调,此时当前工作档已不存在,按幂等成功处理。 |
| | | if ("task".equalsIgnoreCase(params.getNotifyType()) && "task_cancel".equalsIgnoreCase(params.getMsgType())) { |
| | | if (isTaskCancelCallback(params)) { |
| | | return R.ok(); |
| | | } |
| | | throw new CoolException("任务档不存在!!"); |
| | |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | } |
| | | } else if ("task".equalsIgnoreCase(params.getNotifyType())) { |
| | | } else if (isTaskCompleteCallback(params)) { |
| | | //任务 |
| | | if ("task_complete".equalsIgnoreCase(params.getMsgType())) { |
| | | |
| | | if (mast.getIoType() == 1 || mast.getIoType() == 2 || mast.getIoType() == 11 || mast.getIoType() == CHANGE_LOC_IO_TYPE) { |
| | | mast.setWrkSts(4L); |
| | | } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) { |
| | | mast.setWrkSts(14L); |
| | | if(Cools.isEmpty(mast.getStaNo())){ |
| | | mast.setOveMk("Y"); |
| | | } |
| | | if (isInboundOrMoveTask(mast)) { |
| | | mast.setWrkSts(4L); |
| | | } else if (isOutboundTask(mast) && canMarkOutboundTaskComplete(mast)) { |
| | | mast.setWrkSts(14L); |
| | | if(Cools.isEmpty(mast.getStaNo())){ |
| | | mast.setOveMk("Y"); |
| | | } |
| | | if (!wrkMastService.updateById(mast)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | //wcs任务取消接口 |
| | | } else if ("task_cancel".equalsIgnoreCase(params.getMsgType())) { |
| | | workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L); |
| | | } |
| | | if (!wrkMastService.updateById(mast)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | } else if (isTaskCancelCallback(params)) { |
| | | //wcs任务取消接口 |
| | | workService.cancelWrkMast(String.valueOf(mast.getWrkNo()), 9955L); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | private boolean isTaskCompleteCallback(ReceviceTaskParams params) { |
| | | return params != null && "task_complete".equalsIgnoreCase(params.getMsgType()); |
| | | } |
| | | |
| | | private boolean isTaskCancelCallback(ReceviceTaskParams params) { |
| | | return params != null && "task_cancel".equalsIgnoreCase(params.getMsgType()); |
| | | } |
| | | |
| | | private boolean isInboundOrMoveTask(WrkMast mast) { |
| | | if (mast == null || mast.getIoType() == null) { |
| | | return false; |
| | | } |
| | | Integer ioType = mast.getIoType(); |
| | | return Objects.equals(ioType, 1) |
| | | || Objects.equals(ioType, 2) |
| | | || Objects.equals(ioType, 11) |
| | | || Objects.equals(ioType, CHANGE_LOC_IO_TYPE); |
| | | } |
| | | |
| | | private boolean isOutboundCrnTaskRun(ReceviceTaskParams params) { |
| | | return params != null |
| | | && "Crn".equalsIgnoreCase(params.getNotifyType()) |