| | |
| | | return gdWorkOrderFlowService.save(flowEntity); |
| | | } |
| | | } |
| | | // 7. 验收通过 |
| | | if (auditStatus == 7) { |
| | | // 查询同一个工单下的所有子任务 |
| | | List<GdPatrolTaskEntity> subTasks = list(Wrappers.<GdPatrolTaskEntity>lambdaQuery() |
| | | .eq(GdPatrolTaskEntity::getWorkOrderId, task.getWorkOrderId())); |
| | | |
| | | // 检查是否所有子任务都审核成功(除了被撤回和验收拒绝的) |
| | | boolean allSubTasksAudited = checkAllSubTasksAcceptancePassed(subTasks); |
| | | // 这里可以根据allSubTasksAudited的结果执行后续逻辑,比如更新工单状态等 |
| | | if (allSubTasksAudited) { |
| | | // 执行工单状态更新逻辑 |
| | | // 注意:需要注入工单相关的Service才能执行更新 |
| | | GdWorkOrderEntity gdWorkOrderEntity = new GdWorkOrderEntity(); |
| | | gdWorkOrderEntity.setId(task.getWorkOrderId()); |
| | | gdWorkOrderEntity.setWorkOrderStatus(WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getCode()); |
| | | Integer b1 = baseMapper.updateWorkOrderById(gdWorkOrderEntity); |
| | | if (b1 > 0) { |
| | | // 6. 保存流转记录:使用枚举设置flowName |
| | | GdWorkOrderFlowEntity flowEntity = new GdWorkOrderFlowEntity(); |
| | | flowEntity.setCreateUser(AuthUtil.getUserId()); |
| | | flowEntity.setWorkOrderId(task.getWorkOrderId()); |
| | | flowEntity.setFlowName(WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getDesc()); |
| | | flowEntity.setFlowDesc(AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss") + " 更新了任务信息,状态转换为:" + WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getDesc()); |
| | | flowEntity.setOperator(AuthUtil.getUserName()); |
| | | flowEntity.setType(WorkOrderTypeEnum.PATROL_TASK.getValue()); |
| | | flowEntity.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); |
| | | return gdWorkOrderFlowService.save(flowEntity); |
| | | } |
| | | } |
| | | } |
| | | return b; |
| | | } |
| | | |
| | |
| | | return statusEnum == PatrolTaskStatusEnum.AUDIT_PASSED; |
| | | } |
| | | |
| | | /** |
| | | * 判断单个任务是否验收通过 |
| | | * |
| | | * @param statusEnum 任务状态枚举 |
| | | * @return 是否验收通过 |
| | | */ |
| | | private boolean isTaskAcceptancePassed(PatrolTaskStatusEnum statusEnum) { |
| | | // 验收通过的任务状态包括:验收通过 |
| | | return statusEnum == PatrolTaskStatusEnum.ACCEPTANCE_PASSED; |
| | | } |
| | | |
| | | /** |
| | | * 检查是否所有子任务都验收通过(除了被撤回和验收拒绝的) |
| | | * |
| | | * @param subTasks 子任务列表 |
| | | * @return 是否所有子任务都验收通过 |
| | | */ |
| | | private boolean checkAllSubTasksAcceptancePassed(List<GdPatrolTaskEntity> subTasks) { |
| | | for (GdPatrolTaskEntity subTask : subTasks) { |
| | | String taskStatus = subTask.getTaskStatus(); |
| | | PatrolTaskStatusEnum statusEnum = PatrolTaskStatusEnum.getByValue(taskStatus); |
| | | |
| | | // 如果任务状态不是验收通过状态,且不是被撤回和验收拒绝的,则返回false |
| | | if (!isTaskAcceptancePassed(statusEnum) && |
| | | statusEnum != PatrolTaskStatusEnum.WITHDRAWN && |
| | | statusEnum != PatrolTaskStatusEnum.REJECTED_ACCEPTANCE) { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean republishPatrolTask(GdPatrolTaskEntity taskEntity) { |