| | |
| | | currentStageCode = lastFlow.getFlowStatus(); |
| | | } |
| | | |
| | | // 3. 遍历所有工单阶段 |
| | | // 工单发布阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getStageDesc(), |
| | |
| | | WorkOrderStatusEnum.RESPONDING_CANCELED.getStageDesc() |
| | | ), actualFlows, WorkOrderStatusEnum.STAGE_ORDER_RESPONSE.getMaxCode(), currentStageCode)); |
| | | |
| | | // 如果当前状态是已取消,则不组装后续阶段 |
| | | if (isCancellationState(actualFlows)) { |
| | | stages.add(new WorkOrderStageVO("结束", new ArrayList<>(), true)); |
| | | return stages; |
| | | } |
| | | // 执行中阶段 |
| | | stages.add(buildStage(WorkOrderStatusEnum.STAGE_IN_EXECUTION.getStageDesc(), Arrays.asList( |
| | | WorkOrderStatusEnum.EXECUTING_TO_BE_COMPLETED.getStageDesc(), |
| | |
| | | } |
| | | |
| | | /** |
| | | * 判断流程记录中是否存在已取消状态 |
| | | * |
| | | * @param actualFlows 实际流程记录列表 |
| | | * @return 如果存在已取消状态返回true,否则返回false |
| | | */ |
| | | private boolean isCancellationState(List<GdWorkOrderFlowEntity> actualFlows) { |
| | | if (actualFlows == null || actualFlows.isEmpty()) { |
| | | return false; |
| | | } |
| | | // 遍历所有流程记录,检查是否存在已取消状态(23) |
| | | for (GdWorkOrderFlowEntity flow : actualFlows) { |
| | | if (WorkOrderStatusEnum.RESPONDING_CANCELED.getCode().equals(flow.getWorkStatus())) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 查找所有匹配的流程记录 |
| | | * |
| | | * @param actualFlows 实际流程记录 |