| | |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | | import com.vincent.rsf.server.manager.service.impl.LocServiceImpl; |
| | | import com.vincent.rsf.server.manager.utils.WarehouseLocationRetrievalUtil; |
| | | import com.vincent.rsf.server.system.constant.GlobalConfigCode; |
| | | import com.vincent.rsf.server.system.constant.SerialRuleCode; |
| | | import com.vincent.rsf.server.system.entity.*; |
| | |
| | | MissionTaskIssueParam missionTaskIssueParam = new MissionTaskIssueParam(flowStepInstance,subsystemFlowTemplate,flowStepTemplate); |
| | | |
| | | missionTaskIssueParam.setType(RcsTaskType.getTypeDesc(task.getTaskType())); |
| | | boolean souSign = taskInstance.getSourceCode().matches("\\d+"); |
| | | boolean souSign = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getSourceCode()); |
| | | if (souSign){ |
| | | WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getSourceCode())); |
| | | if (Cools.isEmpty(warehouseAreas)){ |
| | | BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()).last("limit 1")); |
| | | if (Cools.isEmpty(basStation)){ |
| | | basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() |
| | | .apply("station_alias != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getSourceCode()) |
| | | .eq(BasStation::getDeleted, 0) // 通常需要加上未删除条件 |
| | | .last("LIMIT 1")); |
| | | } |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |
| | | flowStepInstance.setStatus((short)4); |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,源点未查询到,重试次数大于等于五次,标记为失败!!!"); |
| | | } else { |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,源点未查询到目标点未查询到,等待重试...."); |
| | | } |
| | | continue; |
| | | } else { |
| | | missionTaskIssueParam.setSourceCode(basStation.getStationName()); |
| | | } |
| | | } else { |
| | | missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode()); |
| | | } |
| | | missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode()); |
| | | } else { |
| | | BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()).last("limit 1")); |
| | | if (Cools.isEmpty(basStation)){ |
| | | basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() |
| | | .apply("station_alias != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getSourceCode()) |
| | | .eq(BasStation::getDeleted, 0) // 通常需要加上未删除条件 |
| | | .last("LIMIT 1")); } |
| | | BasStation basStation = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeSizeIsItAvailable(taskInstance.getSourceCode()); |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |
| | |
| | | missionTaskIssueParam.setSourceCode(basStation.getStationName()); |
| | | } |
| | | } |
| | | boolean endSign = taskInstance.getTargetCode().matches("\\d+"); |
| | | boolean endSign = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getTargetCode()); |
| | | if (endSign){ |
| | | WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getTargetCode())); |
| | | if (Cools.isEmpty(warehouseAreas)){ |
| | | BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()).last("limit 1")); |
| | | if (Cools.isEmpty(basStation)){ |
| | | basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() |
| | | .apply("station_alias != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getTargetCode()) |
| | | .eq(BasStation::getDeleted, 0) // 通常需要加上未删除条件 |
| | | .last("LIMIT 1")); } |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |
| | | flowStepInstance.setStatus((short)4); |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,目标点未查询到,重试次数大于等于五次,标记为失败!!!"); |
| | | } else { |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,目标点未查询到,等待重试...."); |
| | | } |
| | | continue; |
| | | } else { |
| | | missionTaskIssueParam.setTargetCode(basStation.getStationName()); |
| | | } |
| | | |
| | | } else { |
| | | missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode()); |
| | | } |
| | | missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode()); |
| | | } else { |
| | | BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()).last("limit 1")); |
| | | if (Cools.isEmpty(basStation)){ |
| | | basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() |
| | | .apply("station_alias != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getTargetCode()) |
| | | .eq(BasStation::getDeleted, 0) // 通常需要加上未删除条件 |
| | | .last("LIMIT 1")); } |
| | | BasStation basStation = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeSizeIsItAvailable(taskInstance.getTargetCode()); |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |
| | | flowStepInstance.setStatus((short)4); |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,目标点未查询到,重试次数大于等于五次,标记为失败!!!"); |
| | | log.error("任务下发失败,源点未查询到,重试次数大于等于五次,标记为失败!!!"); |
| | | } else { |
| | | flowStepInstanceService.updateById(flowStepInstance); |
| | | log.error("任务下发失败,目标点未查询到,等待重试...."); |
| | | log.error("任务下发失败,源点未查询到目标点未查询到,等待重试...."); |
| | | } |
| | | continue; |
| | | } else { |
| | |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { |
| | | task.setTaskStatus(TaskStsType.COMPLETE_IN.id); |
| | | } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)){ |
| | | if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)){ |
| | | if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val) |
| | | || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val) |
| | | || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_NOT_OUT.val) |
| | | ){ |
| | | task.setTaskStatus(TaskStsType.AWAIT.id); |
| | | } else { |
| | | task.setTaskStatus(TaskStsType.COMPLETE_OUT.id); |
| | |
| | | } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) { |
| | | if ((!Cools.isEmpty(task.getResource()) && task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) |
| | | // 盘点出库先到 196(非波次) |
| | | ||task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) |
| | | if ((!Cools.isEmpty(task.getResource()) |
| | | && (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val) |
| | | || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val) |
| | | || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_NOT_OUT.val) |
| | | ) |
| | | )// 盘点出库先到 196(非波次) |
| | | ||task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) |
| | | ) { |
| | | task.setTaskStatus(TaskStsType.AWAIT.id); |
| | | } else { |
| | |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { |
| | | if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode()) |
| | | .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) { |
| | | task.setTaskStatus(TaskStsType.WCS_EXECUTE_IN.id); |
| | | if (!taskService.updateById(task)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | /**排除移库功能*/ |
| | |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type) |
| | | || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) { |
| | | if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode()) |
| | | .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_OUT.id))) { |
| | | task.setTaskStatus(TaskStsType.WCS_EXECUTE_OUT.id); |
| | | if (!taskService.updateById(task)) { |
| | | throw new CoolException("任务状态修改失败!!"); |
| | | } |
| | | /**如果是普通站点,修改站点状态为入库预约*/ |