From 1d2b7c3172a9a61634de47febd845d67fcf2f417 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 22 May 2026 14:23:33 +0800
Subject: [PATCH] fix(workflow): 修复工单流程阶段组装逻辑
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderFlowServiceImpl.java | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderFlowServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderFlowServiceImpl.java
index b6c4ac5..ad5f0c6 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderFlowServiceImpl.java
+++ b/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 实际流程记录
--
Gitblit v1.9.3