From cdc60b89add7a32ee458c4b9c27acfdf40fc14fd Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Tue, 20 Jan 2026 15:02:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java | 2
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/PatrolTaskStatusEnum.java | 46 +++++++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdWorkOrderServiceImpl.java | 163 +++++++++++---------------
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderPageParam.java | 2
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskAuditParam.java | 4
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdWorkOrderFlowWrapper.java | 16 ++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java | 7
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderAddParam.java | 2
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdWorkOrderFlowController.java | 46 ++-----
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/WorkOrderStatusEnum.java | 10
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdWorkOrderFlowVO.java | 16 ++
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java | 6
13 files changed, 181 insertions(+), 141 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
index 780d8a5..beaf2f2 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
@@ -173,7 +173,7 @@
@ApiOperationSupport(order = 10)
@ApiOperation(value = "审核巡查任务", notes = "传入审核参数,拒绝时必须填写拒绝原因")
public R audit(@Valid @RequestBody GdPatrolTaskAuditParam auditParam) {
- boolean result = gdPatrolTaskService.auditPatrolTask(auditParam.getId(), auditParam.getAuditStatus(), auditParam.getRejectReason());
+ boolean result = gdPatrolTaskService.auditPatrolTask(auditParam);
return R.status(result);
}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdWorkOrderFlowController.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdWorkOrderFlowController.java
index d8b95a2..c83abdb 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdWorkOrderFlowController.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdWorkOrderFlowController.java
@@ -1,19 +1,3 @@
-/*
- * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * Neither the name of the dreamlu.net developer nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * Author: Chill 庄骞 (smallchill@163.com)
- */
package org.sxkj.gd.workorder.controller;
import io.swagger.annotations.Api;
@@ -70,26 +54,26 @@
return R.data(GdWorkOrderFlowWrapper.build().entityVO(detail));
}
/**
- * 流程记录表 分页
+ * 流程记录表 列表
*/
- // @GetMapping("/list")
- // @ApiOperationSupport(order = 2)
- // @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow")
- // public R<IPage<GdWorkOrderFlowVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow, Query query) {
- // IPage<GdWorkOrderFlowEntity> pages = gdWorkOrderFlowService.page(Condition.getPage(query), Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class));
- // return R.data(GdWorkOrderFlowWrapper.build().pageVO(pages));
- // }
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @ApiOperation(value = "列表", notes = "传入gdWorkOrderFlow")
+ public R<List<GdWorkOrderFlowVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow) {
+ List<GdWorkOrderFlowEntity> list = gdWorkOrderFlowService.list(Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class));
+ return R.data(GdWorkOrderFlowWrapper.build().entityVOList(list));
+ }
/**
* 流程记录表 自定义分页
*/
- @GetMapping("/page")
- @ApiOperationSupport(order = 3)
- @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow")
- public R<IPage<GdWorkOrderFlowVO>> page(GdWorkOrderFlowVO gdWorkOrderFlow, Query query) {
- IPage<GdWorkOrderFlowVO> pages = gdWorkOrderFlowService.selectGdWorkOrderFlowPage(Condition.getPage(query), gdWorkOrderFlow);
- return R.data(pages);
- }
+ // @GetMapping("/page")
+ // @ApiOperationSupport(order = 3)
+ // @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow")
+ // public R<IPage<GdWorkOrderFlowVO>> page(GdWorkOrderFlowVO gdWorkOrderFlow, Query query) {
+ // IPage<GdWorkOrderFlowVO> pages = gdWorkOrderFlowService.selectGdWorkOrderFlowPage(Condition.getPage(query), gdWorkOrderFlow);
+ // return R.data(pages);
+ // }
/**
* 流程记录表 新增
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/PatrolTaskStatusEnum.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/PatrolTaskStatusEnum.java
index ca222e3..bfed17b 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/PatrolTaskStatusEnum.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/enums/PatrolTaskStatusEnum.java
@@ -97,4 +97,48 @@
public static boolean isValidValue(String value) {
return getByValue(value) != null;
}
-}
\ No newline at end of file
+
+ /**
+ * 检查当前状态是否允许指定的操作类型
+ * @param operationType 操作类型:1接单,2拒接接单,3申请取消,4申请修改,5同意取消,6不同意取消,7同意修改,8不同意修改
+ * @return 是否允许操作
+ */
+ public boolean isAllowedOperation(Integer operationType) {
+ if (operationType == null) {
+ return false;
+ }
+
+ switch (this) {
+ case PENDING_SIGNING:
+ // 发布中_接单中状态允许:1接单,2拒接接单
+ return operationType == 1 || operationType == 2;
+ case REJECTED_SIGNING:
+ // 响应中_待拆分状态允许:3申请取消,4申请修改
+ return operationType == 3 || operationType == 4 ;
+ case WITHDRAWN:
+ // 响应中_申请取消状态允许:5同意取消,6不同意取消
+ return operationType == 5 || operationType == 6;
+ case PENDING_AUDIT:
+ // 响应中_申请修改状态允许:7同意修改,8不同意修改
+ return operationType ==7 || operationType == 8 ;
+ case AUDIT_REJECTED:
+ // 响应中_拒绝取消状态允许:3申请取消
+ return operationType == 3;
+ case AUDIT_PASSED:
+ // 响应中_拒绝修改状态允许:4申请修改
+ return operationType == 4;
+ case PENDING_ACCEPTANCE:
+ // 响应中_拒绝修改状态允许:4申请修改
+ return operationType == 4;
+ case REJECTED_ACCEPTANCE:
+ // 响应中_拒绝修改状态允许:4申请修改
+ return operationType == 4;
+ case ACCEPTANCE_PASSED:
+ // 响应中_拒绝修改状态允许:4申请修改
+ return operationType == 4;
+ default:
+ // 其他状态不允许操作
+ return false;
+ }
+ }
+}
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 6402fdf..5d2924c 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
@@ -212,7 +212,7 @@
/**
* 检查当前状态是否允许指定的操作类型
- * @param operationType 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改
+ * @param operationType 操作类型:1接单,2拒接接单,3申请取消,4申请修改,5同意取消,6不同意取消,7同意修改,8不同意修改
* @return 是否允许操作
*/
public boolean isAllowedOperation(Integer operationType) {
@@ -228,16 +228,16 @@
// 响应中_待拆分状态允许:3申请取消,4申请修改
return operationType == 3 || operationType == 4 ;
case RESPONDING_APPLY_CANCEL:
- // 响应中_申请取消状态允许:6同意取消,8不同意取消
+ // 响应中_申请取消状态允许:5同意取消,6不同意取消
return operationType == 5 || operationType == 6;
case RESPONDING_APPLY_MODIFY:
- // 响应中_申请修改状态允许:7同意修改,9不同意修改
+ // 响应中_申请修改状态允许:7同意修改,8不同意修改
return operationType ==7 || operationType == 8 ;
case RESPONDING_REJECT_CANCEL:
- // 响应中_拒绝取消状态允许:1接单
+ // 响应中_拒绝取消状态允许:3申请取消
return operationType == 3;
case RESPONDING_REJECT_MODIFY:
- // 响应中_拒绝修改状态允许:1接单
+ // 响应中_拒绝修改状态允许:4申请修改
return operationType == 4;
default:
// 其他状态不允许操作
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskAuditParam.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskAuditParam.java
index 40bf51f..d165944 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskAuditParam.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/GdPatrolTaskAuditParam.java
@@ -16,9 +16,9 @@
private Long id;
/**
- * 审核状态:4审核通过、5审核拒绝
+ * 审核状态:
*/
- @ApiModelProperty(value = "审核状态:4审核通过、5审核拒绝", required = true)
+ @ApiModelProperty(value = "审核状态:1.同意签收、2.拒绝签收 、3.撤回任务 、4.同意审核、 5.拒绝审核、 6.验收通过、 7.验收拒绝", required = true)
@NotNull(message = "审核状态不能为空")
private String auditStatus;
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderAddParam.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderAddParam.java
index e3223ed..7e406a1 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderAddParam.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderAddParam.java
@@ -33,7 +33,7 @@
@NotNull
private String deviceLoadDemand;
- @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结算完成_已结算")
@NotNull
private String workOrderStatus;
/**
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderPageParam.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderPageParam.java
index ba72890..6d3bdc5 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderPageParam.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/param/WorkOrderPageParam.java
@@ -22,7 +22,7 @@
@NotNull
private String workOrderType;
- @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结算完成_已结算")
@NotNull
private String workOrderStatus;
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 7b95ce2..22275b0 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拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 7.不同意修改 ", required = true)
+ @ApiModelProperty(value = "操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改 ", required = true)
@NotNull(message = "操作类型不能为空")
private Integer operationType;
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
index 74b094c..acdd69c 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/IGdPatrolTaskService.java
@@ -18,6 +18,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
+import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam;
import org.sxkj.gd.workorder.vo.GdPatrolTaskVO;
import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel;
@@ -59,10 +60,8 @@
/**
* 审核巡查任务
- * @param id 任务ID
- * @param auditStatus 审核状态:4审核通过、5审核拒绝
- * @param rejectReason 拒绝原因(审核拒绝时必填)
+ * @param auditParam
* @return
*/
- boolean auditPatrolTask(Long id, String auditStatus, String rejectReason);
+ boolean auditPatrolTask(GdPatrolTaskAuditParam auditParam);
}
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
index 262c7e0..c333f90 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -27,6 +27,7 @@
import org.sxkj.gd.workorder.enums.PatrolTaskStatusEnum;
import org.sxkj.gd.workorder.enums.WorkOrderStatusEnum;
import org.sxkj.gd.workorder.enums.WorkOrderTypeEnum;
+import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam;
import org.sxkj.gd.workorder.service.IGdWorkOrderFlowService;
import org.sxkj.gd.workorder.vo.GdPatrolTaskVO;
@@ -109,7 +110,10 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean auditPatrolTask(Long id, String auditStatus, String rejectReason) {
+ public boolean auditPatrolTask(GdPatrolTaskAuditParam auditParam) {
+ Long id = auditParam.getId();
+ String auditStatus = auditParam.getAuditStatus();
+ String rejectReason = auditParam.getRejectReason();
// 1. 获取巡查任务
GdPatrolTaskEntity task = getById(id);
if (task == null) {
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 a89f39d..2e25613 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
@@ -1,19 +1,3 @@
-/*
- * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * Neither the name of the dreamlu.net developer nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- * Author: Chill 庄骞 (smallchill@163.com)
- */
package org.sxkj.gd.workorder.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -87,53 +71,68 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateWorkOrder(WorkOrderAddParam workOrderParam) {
- GdWorkOrderEntity entity = Objects.requireNonNull(BeanUtil.copy(workOrderParam, GdWorkOrderEntity.class));
+ // 参数转换
+ GdWorkOrderEntity entity = BeanUtil.copy(workOrderParam, GdWorkOrderEntity.class);
// 验证并格式化几何数据
- String geom = entity.getGeom();
- String validatedGeom = GeomUtils.validateAndFormatGeom(geom);
+ String validatedGeom = GeomUtils.validateAndFormatGeom(entity.getGeom());
if (validatedGeom == null) {
return false;
}
-
- // 设置验证后的几何数据
entity.setGeom(validatedGeom);
// 生成工单编号
if (StringUtils.isBlank(entity.getWorkOrderCode())) {
- // 使用时间戳生成唯一工单编号
String timestamp = OrderNumUtils.initOrderNum(WordOrderConstant.ORDER_REDIS_KEY);
entity.setWorkOrderCode(WordOrderConstant.ORDER_PREFIX + timestamp);
}
- Integer save = 0;
+
+ // 保存操作
+ Integer saveResult;
+ Date now = new Date();
if (entity.getId() != null) {
+ // 更新操作
entity.setUpdateUser(AuthUtil.getUserId());
- entity.setUpdateTime(new Date());
- save = baseMapper.updateWorkOrderById(entity);
+ entity.setUpdateTime(now);
+
+ // 状态转换:拒绝状态修改后自动转换为待处理状态
+ switch (entity.getWorkOrderStatus()) {
+ case "11": // 发布中_拒绝接单 → 发布中_接单中
+ entity.setWorkOrderStatus(WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getCode());
+ break;
+ case "24": // 响应中_拒绝取消 → 响应中_申请取消
+ entity.setWorkOrderStatus(WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getCode());
+ break;
+ case "25": // 响应中_拒绝修改 → 响应中_申请修改
+ entity.setWorkOrderStatus(WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getCode());
+ break;
+ }
+ saveResult = baseMapper.updateWorkOrderById(entity);
} else {
+ // 新增操作
entity.setCreateUser(AuthUtil.getUserId());
- entity.setCreateTime(new Date());
+ entity.setCreateTime(now);
entity.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
entity.setStatus(1);
entity.setIsDeleted(0);
- save = baseMapper.saveWorkOrder(entity);
+ saveResult = baseMapper.saveWorkOrder(entity);
}
- // 保存成功
- if (save > 0) {
- // 保存流转记录
- GdWorkOrderFlowEntity gdWorkOrderFlowEntity = new GdWorkOrderFlowEntity();
- gdWorkOrderFlowEntity.setCreateUser(AuthUtil.getUserId());
- gdWorkOrderFlowEntity.setWorkOrderId(entity.getId());
- gdWorkOrderFlowEntity.setFlowName(WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getStageDesc());
- gdWorkOrderFlowEntity.setFlowDesc(AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
- gdWorkOrderFlowEntity.setOperator(AuthUtil.getUserName());
- gdWorkOrderFlowEntity.setType(WorkOrderTypeEnum.WORK_ORDER_TASK.getValue());
- gdWorkOrderFlowEntity.setAreaCode(entity.getAreaCode());
- gdWorkOrderFlowEntity.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
- boolean save1 = gdWorkOrderFlowService.save(gdWorkOrderFlowEntity);
- return save1;
+ // 保存成功则保存流转记录
+ if (saveResult > 0) {
+ // 构建并保存流转记录
+ GdWorkOrderFlowEntity flowEntity = new GdWorkOrderFlowEntity();
+ flowEntity.setCreateUser(AuthUtil.getUserId());
+ flowEntity.setWorkOrderId(entity.getId());
+ flowEntity.setFlowName(WorkOrderStatusEnum.STAGE_WORK_ORDER_RELEASE.getStageDesc());
+ flowEntity.setFlowDesc(String.format("%s %s", AuthUtil.getUserName(), org.springblade.core.tool.utils.DateUtil.format(now, "yyyy-MM-dd HH:mm:ss")));
+ flowEntity.setOperator(AuthUtil.getUserName());
+ flowEntity.setType(WorkOrderTypeEnum.WORK_ORDER_TASK.getValue());
+ flowEntity.setAreaCode(entity.getAreaCode());
+ flowEntity.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+ return gdWorkOrderFlowService.save(flowEntity);
}
+
return false;
}
@@ -146,82 +145,62 @@
@Override
@Transactional(rollbackFor = Exception.class)
public boolean handleWorkOrderStatus(WorkOrderStatusParam statusParam) {
- // 获取工单信息
+ // 1. 获取工单信息
GdWorkOrderEntity workOrder = getById(statusParam.getWorkOrderId());
if (workOrder == null) {
return false;
}
- // 检查当前状态是否允许该操作类型
+ // 2. 状态权限校验
WorkOrderStatusEnum currentStatus = WorkOrderStatusEnum.getByCode(workOrder.getWorkOrderStatus());
- if (currentStatus == null || !currentStatus.isAllowedOperation(statusParam.getOperationType())) {
+ Integer operationType = statusParam.getOperationType();
+ if (currentStatus == null || !currentStatus.isAllowedOperation(operationType)) {
return false;
}
- // 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改
- Integer operationType = statusParam.getOperationType();
- String newStatus = null;
- String flowName = null;
-
- // 统一设置流转描述前缀
- String flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS);
-
+ // 3. 确定新状态和流转名称
+ WorkOrderStatusEnum newStatusEnum;
switch (operationType) {
- case 1:
- case 7:
- // 接单操作:更新状态为响应中_待拆分(20)
- newStatus = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getStageDesc();
+ case 1: // 接单
+ case 7: // 同意修改
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT;
break;
- case 2:
- // 拒接接单操作:更新状态为发布中_拒绝接单(11)
- newStatus = WorkOrderStatusEnum.PUBLISHING_REJECTING.getCode();
- flowName = WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc();
+ case 2: // 拒接接单
+ newStatusEnum = WorkOrderStatusEnum.PUBLISHING_REJECTING;
break;
- case 3:
- // 申请取消操作:更新状态为响应中_申请取消(21)
- newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getStageDesc();
+ case 3: // 申请取消
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL;
break;
- case 4:
- // 申请修改操作:更新状态为响应中_申请修改(22)
- newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getStageDesc();
+ case 4: // 申请修改
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY;
break;
- case 5:
- // 已取消操作:更新状态为响应中_已取消(23)
- newStatus = WorkOrderStatusEnum.RESPONDING_CANCELED.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_CANCELED.getStageDesc();
+ case 5: // 同意取消
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_CANCELED;
break;
- case 6:
- // 已取消操作:更新状态为响应中_已取消(24)
- newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getStageDesc();
+ case 6: // 不同意取消
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL;
break;
- case 8:
- // 已取消操作:更新状态为响应中_已取消(25)
- newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getCode();
- flowName = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getStageDesc();
+ case 8: // 不同意修改
+ newStatusEnum = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY;
break;
- default:
- // 无效的操作类型
+ default: // 无效操作类型
return false;
}
- // 更新工单状态
- workOrder.setWorkOrderStatus(newStatus);
+ // 4. 更新工单状态
+ Date now = new Date();
+ workOrder.setWorkOrderStatus(newStatusEnum.getCode());
workOrder.setUpdateUser(AuthUtil.getUserId());
- workOrder.setUpdateTime(new Date());
- workOrder.setGeom(null);
- boolean update = updateById(workOrder);
+ workOrder.setUpdateTime(now);
+ boolean updateResult = updateById(workOrder);
- // 更新成功,保存流转记录
- if (update) {
+ // 5. 保存流转记录
+ if (updateResult) {
GdWorkOrderFlowEntity flowEntity = new GdWorkOrderFlowEntity();
flowEntity.setCreateUser(AuthUtil.getUserId());
flowEntity.setWorkOrderId(workOrder.getId());
- flowEntity.setFlowName(flowName);
- flowEntity.setFlowDesc(flowDesc);
+ flowEntity.setFlowName(newStatusEnum.getStageDesc());
+ flowEntity.setFlowDesc(String.format("%s %s", AuthUtil.getUserName(), org.springblade.core.tool.utils.DateUtil.format(now, CommonConstant.YYYY_MM_DD_HH_MM_SS)));
flowEntity.setOperator(AuthUtil.getUserName());
flowEntity.setType(WorkOrderTypeEnum.WORK_ORDER_TASK.getValue());
flowEntity.setAreaCode(workOrder.getAreaCode());
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdWorkOrderFlowVO.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdWorkOrderFlowVO.java
index 8558836..a077234 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdWorkOrderFlowVO.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/vo/GdWorkOrderFlowVO.java
@@ -32,11 +32,25 @@
private static final long serialVersionUID = 1L;
/**
+ * 流转名称
+ */
+ @ApiModelProperty(value = "流转名称")
+ private String flowName;
+ /**
+ * 流转描述
+ */
+ @ApiModelProperty(value = "流转描述")
+ private String flowDesc;
+ /**
* 关联工单任务表ID/巡查任务ID
*/
@ApiModelProperty(value = "关联工单任务表ID/巡查任务ID")
private Long workOrderId;
-
+ /**
+ * 操作人
+ */
+ @ApiModelProperty(value = "操作人")
+ private String operator;
/**
* 类型(0工单任务 1巡查任务)
*/
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdWorkOrderFlowWrapper.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdWorkOrderFlowWrapper.java
index 60db9a1..e3e0193 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdWorkOrderFlowWrapper.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/wrapper/GdWorkOrderFlowWrapper.java
@@ -20,7 +20,10 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.sxkj.gd.workorder.entity.GdWorkOrderFlowEntity;
import org.sxkj.gd.workorder.vo.GdWorkOrderFlowVO;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 流程记录表 包装类,返回视图层所需的字段
@@ -46,5 +49,18 @@
return gdWorkOrderFlowVO;
}
+ /**
+ * 将实体列表转换为VO列表
+ * @param list 实体列表
+ * @return VO列表
+ */
+ public List<GdWorkOrderFlowVO> entityVOList(List<GdWorkOrderFlowEntity> list) {
+ if (list == null || list.isEmpty()) {
+ return new ArrayList<>();
+ }
+ return list.stream()
+ .map(this::entityVO)
+ .collect(Collectors.toList());
+ }
}
--
Gitblit v1.9.3