吉安感知网项目-后端
linwei
2026-01-20 d6ef200f1005fe7f62262a4c4cd045ea5dedc2a4
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;
      }
      // 更新工单状态