From d6ef200f1005fe7f62262a4c4cd045ea5dedc2a4 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 20 Jan 2026 08:40:33 +0800
Subject: [PATCH] 工单巡查

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java |   64 +++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java
index 75bdb51..a89f39d 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java
@@ -152,30 +152,60 @@
 			return false;
 		}
 
-		// 检查工单当前状态是否为发布中_接单中(10)
-		if (!workOrder.getWorkOrderStatus().equals(WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getCode())) {
+		// 检查当前状态是否允许该操作类型
+		WorkOrderStatusEnum currentStatus = WorkOrderStatusEnum.getByCode(workOrder.getWorkOrderStatus());
+		if (currentStatus == null || !currentStatus.isAllowedOperation(statusParam.getOperationType())) {
 			return false;
 		}
 
-		// 操作类型:1接单,2拒接接单
+		// 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消  6不同意取消 7.同意修改 8.不同意修改
 		Integer operationType = statusParam.getOperationType();
 		String newStatus = null;
 		String flowName = null;
-		String flowDesc = null;
 
-		if (operationType == 1) {
-			// 接单操作:更新状态为响应中_待拆分(20)
-			newStatus = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getCode();
-			flowName = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getStageDesc();
-			flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS);
-		} else if (operationType == 2) {
-			// 拒接接单操作:更新状态为发布中_拒绝接单(11)
-			newStatus = WorkOrderStatusEnum.PUBLISHING_REJECTING.getCode();
-			flowName = WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc();
-			flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS);
-		} else {
-			// 无效的操作类型
-			return false;
+		// 统一设置流转描述前缀
+		String flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS);
+
+		switch (operationType) {
+			case 1:
+			case 7:
+				// 接单操作:更新状态为响应中_待拆分(20)
+				newStatus = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getStageDesc();
+				break;
+			case 2:
+				// 拒接接单操作:更新状态为发布中_拒绝接单(11)
+				newStatus = WorkOrderStatusEnum.PUBLISHING_REJECTING.getCode();
+				flowName = WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc();
+				break;
+			case 3:
+				// 申请取消操作:更新状态为响应中_申请取消(21)
+				newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getStageDesc();
+				break;
+			case 4:
+				// 申请修改操作:更新状态为响应中_申请修改(22)
+				newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getStageDesc();
+				break;
+			case 5:
+				// 已取消操作:更新状态为响应中_已取消(23)
+				newStatus = WorkOrderStatusEnum.RESPONDING_CANCELED.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_CANCELED.getStageDesc();
+				break;
+			case 6:
+				// 已取消操作:更新状态为响应中_已取消(24)
+				newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getStageDesc();
+				break;
+			case 8:
+				// 已取消操作:更新状态为响应中_已取消(25)
+				newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getCode();
+				flowName = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getStageDesc();
+				break;
+			default:
+				// 无效的操作类型
+				return false;
 		}
 
 		// 更新工单状态

--
Gitblit v1.9.3