From 350c6c907be54665cef1e5ff006581ff2773a04e Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 21 Jan 2026 12:42:16 +0800
Subject: [PATCH] 工单管理调整
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java | 62 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
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 deb7e49..53bcaf8 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
@@ -232,6 +232,36 @@
return gdWorkOrderFlowService.save(flowEntity);
}
}
+ // 7. 验收通过
+ if (auditStatus == 7) {
+ // 查询同一个工单下的所有子任务
+ List<GdPatrolTaskEntity> subTasks = list(Wrappers.<GdPatrolTaskEntity>lambdaQuery()
+ .eq(GdPatrolTaskEntity::getWorkOrderId, task.getWorkOrderId()));
+
+ // 检查是否所有子任务都审核成功(除了被撤回和验收拒绝的)
+ boolean allSubTasksAudited = checkAllSubTasksAcceptancePassed(subTasks);
+ // 这里可以根据allSubTasksAudited的结果执行后续逻辑,比如更新工单状态等
+ if (allSubTasksAudited) {
+ // 执行工单状态更新逻辑
+ // 注意:需要注入工单相关的Service才能执行更新
+ GdWorkOrderEntity gdWorkOrderEntity = new GdWorkOrderEntity();
+ gdWorkOrderEntity.setId(task.getWorkOrderId());
+ gdWorkOrderEntity.setWorkOrderStatus(WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getCode());
+ Integer b1 = baseMapper.updateWorkOrderById(gdWorkOrderEntity);
+ if (b1 > 0) {
+ // 6. 保存流转记录:使用枚举设置flowName
+ GdWorkOrderFlowEntity flowEntity = new GdWorkOrderFlowEntity();
+ flowEntity.setCreateUser(AuthUtil.getUserId());
+ flowEntity.setWorkOrderId(task.getWorkOrderId());
+ flowEntity.setFlowName(WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getDesc());
+ flowEntity.setFlowDesc(AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss") + " 更新了任务信息,状态转换为:" + WorkOrderStatusEnum.ACCEPTED_TO_BE_SETTLED.getDesc());
+ flowEntity.setOperator(AuthUtil.getUserName());
+ flowEntity.setType(WorkOrderTypeEnum.PATROL_TASK.getValue());
+ flowEntity.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+ return gdWorkOrderFlowService.save(flowEntity);
+ }
+ }
+ }
return b;
}
@@ -268,6 +298,38 @@
return statusEnum == PatrolTaskStatusEnum.AUDIT_PASSED;
}
+ /**
+ * 判断单个任务是否验收通过
+ *
+ * @param statusEnum 任务状态枚举
+ * @return 是否验收通过
+ */
+ private boolean isTaskAcceptancePassed(PatrolTaskStatusEnum statusEnum) {
+ // 验收通过的任务状态包括:验收通过
+ return statusEnum == PatrolTaskStatusEnum.ACCEPTANCE_PASSED;
+ }
+
+ /**
+ * 检查是否所有子任务都验收通过(除了被撤回和验收拒绝的)
+ *
+ * @param subTasks 子任务列表
+ * @return 是否所有子任务都验收通过
+ */
+ private boolean checkAllSubTasksAcceptancePassed(List<GdPatrolTaskEntity> subTasks) {
+ for (GdPatrolTaskEntity subTask : subTasks) {
+ String taskStatus = subTask.getTaskStatus();
+ PatrolTaskStatusEnum statusEnum = PatrolTaskStatusEnum.getByValue(taskStatus);
+
+ // 如果任务状态不是验收通过状态,且不是被撤回和验收拒绝的,则返回false
+ if (!isTaskAcceptancePassed(statusEnum) &&
+ statusEnum != PatrolTaskStatusEnum.WITHDRAWN &&
+ statusEnum != PatrolTaskStatusEnum.REJECTED_ACCEPTANCE) {
+ return false;
+ }
+ }
+ return true;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public boolean republishPatrolTask(GdPatrolTaskEntity taskEntity) {
--
Gitblit v1.9.3