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/param/WorkOrderStatusParam.java | 2
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java | 53 ++++++++++++++++-
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java | 64 +++++++++++++++-----
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdWorkOrderEntity.java | 2
4 files changed, 98 insertions(+), 23 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdWorkOrderEntity.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdWorkOrderEntity.java
index 6f64ecf..2de25ac 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdWorkOrderEntity.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/entity/GdWorkOrderEntity.java
@@ -72,7 +72,7 @@
/**
* 工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、21响应中_申请取消、22响应中_申请修改、23响应中_已取消、30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、50验收通过_待结算、60结算完成_已结算
*/
- @ApiModelProperty(value = "工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、21响应中_申请取消、22响应中_申请修改、23响应中_已取消、30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、50验收通过_待结算、60结算完成_已结算")
+ @ApiModelProperty(value = "工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、21响应中_申请取消、22响应中_申请修改、23响应中_已取消、24响应中_拒绝取消、25响应中_拒绝修改 30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、50验收通过_待结算、60结算完成_已结算")
@TableField("work_order_status")
private String workOrderStatus;
/**
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java
index a40414f..6402fdf 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java
@@ -75,6 +75,16 @@
RESPONDING_CANCELED("23", "响应中_已取消", "接单响应"),
/**
+ * 响应中_拒绝取消
+ */
+ RESPONDING_REJECT_CANCEL("24", "响应中_拒绝取消", "接单响应"),
+
+ /**
+ * 响应中_拒绝修改
+ */
+ RESPONDING_REJECT_MODIFY("25", "响应中_拒绝修改", "接单响应"),
+
+ /**
* 执行中_待全部完成
*/
EXECUTING_TO_BE_COMPLETED("30", "执行中_待全部完成", "执行中"),
@@ -169,12 +179,12 @@
* @param code 状态码
* @return 枚举对象
*/
- public static WorkOrderStatusEnum getByCode(Byte code) {
+ public static WorkOrderStatusEnum getByCode(String code) {
if (code == null) {
return null;
}
for (WorkOrderStatusEnum status : values()) {
- if (status.getCode().equals(code)) {
+ if (code.equals(status.getCode())) {
return status;
}
}
@@ -186,7 +196,7 @@
* @param code 状态码
* @return 状态描述
*/
- public static String getDescByCode(Byte code) {
+ public static String getDescByCode(String code) {
WorkOrderStatusEnum status = getByCode(code);
return status != null ? status.getDesc() : null;
}
@@ -196,7 +206,42 @@
* @param code 状态码
* @return 是否有效
*/
- public static boolean isValid(Byte code) {
+ public static boolean isValid(String code) {
return getByCode(code) != null;
}
+
+ /**
+ * 检查当前状态是否允许指定的操作类型
+ * @param operationType 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改
+ * @return 是否允许操作
+ */
+ public boolean isAllowedOperation(Integer operationType) {
+ if (operationType == null) {
+ return false;
+ }
+
+ switch (this) {
+ case PUBLISHING_ACCEPTING:
+ // 发布中_接单中状态允许:1接单,2拒接接单
+ return operationType == 1 || operationType == 2;
+ case RESPONDING_TO_BE_SPLIT:
+ // 响应中_待拆分状态允许:3申请取消,4申请修改
+ return operationType == 3 || operationType == 4 ;
+ case RESPONDING_APPLY_CANCEL:
+ // 响应中_申请取消状态允许:6同意取消,8不同意取消
+ return operationType == 5 || operationType == 6;
+ case RESPONDING_APPLY_MODIFY:
+ // 响应中_申请修改状态允许:7同意修改,9不同意修改
+ return operationType ==7 || operationType == 8 ;
+ case RESPONDING_REJECT_CANCEL:
+ // 响应中_拒绝取消状态允许:1接单
+ return operationType == 3;
+ case RESPONDING_REJECT_MODIFY:
+ // 响应中_拒绝修改状态允许:1接单
+ return operationType == 4;
+ default:
+ // 其他状态不允许操作
+ return false;
+ }
+ }
}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderStatusParam.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderStatusParam.java
index 0ccc265..7b95ce2 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderStatusParam.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderStatusParam.java
@@ -23,7 +23,7 @@
/**
* 操作类型:1接单,2拒接接单
*/
- @ApiModelProperty(value = "操作类型:1接单,2拒接接单", required = true)
+ @ApiModelProperty(value = "操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 7.不同意修改 ", required = true)
@NotNull(message = "操作类型不能为空")
private Integer operationType;
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