吉安感知网项目-后端
linwei
2026-05-22 1d2b7c3172a9a61634de47febd845d67fcf2f417
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderFlowServiceImpl.java
@@ -84,7 +84,6 @@
         currentStageCode = lastFlow.getFlowStatus();
      }
      // 3. 遍历所有工单阶段
      // 工单发布阶段
      stages.add(buildStage(WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getStageDesc(), Arrays.asList(
            WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getStageDesc(),
@@ -99,6 +98,11 @@
            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(),
@@ -205,6 +209,25 @@
   }
   /**
    * 判断流程记录中是否存在已取消状态
    *
    * @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 实际流程记录