吉安感知网项目-后端
linwei
2026-01-31 bcc36efe5fd3264625bb884e50c2f353fb052b61
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -67,6 +67,8 @@
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * 巡查任务表 服务实现类
@@ -94,11 +96,13 @@
   private JianXingtuApiService jianXingtuApiService;
   @Autowired
   private IGdManageDeviceService gdManageDeviceService;
    @Override
    public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask) {
      List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      gdPatrolTask.setDeptList(deptList);
        return page.setRecords(baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask));
      List<GdPatrolTaskVO> gdPatrolTaskVOS = baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask);
      return page.setRecords(gdPatrolTaskVOS);
    }
@@ -138,7 +142,7 @@
            gdWorkOrderFlowEntity.setCreateUser(AuthUtil.getUserId());
            gdWorkOrderFlowEntity.setWorkOrderId(gdPatrolTaskEntity.getId());
            gdWorkOrderFlowEntity.setFlowName(PatrolTaskStatusEnum.PENDING_SIGNING.getStageDesc());
            gdWorkOrderFlowEntity.setFlowDesc(AuthUtil.getUserName() + " " + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss") + " 发布任务,等待接单");
         gdWorkOrderFlowEntity.setFlowDesc(PatrolTaskStatusEnum.PENDING_SIGNING.getStageDesc());
            gdWorkOrderFlowEntity.setOperator(AuthUtil.getNickName());
            gdWorkOrderFlowEntity.setType(WorkOrderTypeEnum.PATROL_TASK.getValue());
            gdWorkOrderFlowEntity.setAreaCode(gdPatrolTaskEntity.getAreaCode());
@@ -233,6 +237,21 @@
                // 执行工单状态更新逻辑
                return updateWorkOrderStatusAndFlow(task.getWorkOrderId(),
                    WorkOrderStatusEnum.EXECUTING_TO_BE_COMPLETED);
         }
      }
      if (auditStatus == 3) {
         // 查询同一个工单下的所有子任务
         List<GdPatrolTaskEntity> subTasks = list(Wrappers.<GdPatrolTaskEntity>lambdaQuery()
            .eq(GdPatrolTaskEntity::getWorkOrderId, task.getWorkOrderId()));
         boolean allSubTasksWithdrawn = subTasks.stream()
            .allMatch(item -> item.getTaskStatus().equals(PatrolTaskStatusEnum.WITHDRAWN.getValue()));
         // 示例:如果所有子任务都审核成功,可以更新工单状态为已完成
         if (allSubTasksWithdrawn) {
            // 执行工单状态更新逻辑
            return updateWorkOrderStatusAndFlow(task.getWorkOrderId(),
               WorkOrderStatusEnum.RESPONDING_CANCELED);
            }
        }
        // 7. 验收拒绝
@@ -446,11 +465,7 @@
        flowEntity.setCreateUser(AuthUtil.getUserId());
        flowEntity.setWorkOrderId(workOrderId);
        flowEntity.setFlowName(newStatus.getStageDesc());
        // 构建流转描述
        String flowDesc = buildFlowDesc(newStatus, rejectReason);
        flowEntity.setFlowDesc(flowDesc);
      flowEntity.setFlowDesc(newStatus.getStageDesc());
        flowEntity.setOperator(AuthUtil.getNickName());
        flowEntity.setType(WorkOrderTypeEnum.PATROL_TASK.getValue());
        flowEntity.setAreaCode(areaCode);
@@ -463,28 +478,7 @@
        return true;
    }
    /**
     * 构建流转描述
     *
     * @param newStatus    新状态
     * @param rejectReason 拒绝原因
     * @return 流转描述
     */
    private String buildFlowDesc(PatrolTaskStatusEnum newStatus, String rejectReason) {
        String baseDesc = String.format("%s %s ",
                AuthUtil.getNickName(),
                DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        // 拒绝类状态需要添加拒绝原因
        if (newStatus == PatrolTaskStatusEnum.REJECTED_SIGNING ||
            newStatus == PatrolTaskStatusEnum.AUDIT_REJECTED ||
            newStatus == PatrolTaskStatusEnum.REJECTED_ACCEPTANCE) {
            return String.format("%s%s:%s", baseDesc, newStatus.getDesc(), rejectReason);
        }
        // 其他状态直接使用枚举描述
        return baseDesc + newStatus.getDesc();
    }
   private String getDeptName(Long deptId) {
      if (deptId == null) {
@@ -606,6 +600,7 @@
   /**
    * 构建巡察任务推送的巡察任务信息
    *
    * @param gdPatrolTaskVO
    * @return
    */