吉安感知网项目-后端
rain
2026-01-20 cdc60b89add7a32ee458c4b9c27acfdf40fc14fd
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/service/impl/GdPatrolTaskServiceImpl.java
@@ -16,14 +16,19 @@
 */
package org.sxkj.gd.workorder.service.impl;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.sxkj.common.constant.WordOrderConstant;
import org.sxkj.common.utils.OrderNumUtils;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import org.sxkj.gd.workorder.entity.GdWorkOrderFlowEntity;
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;
import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel;
@@ -50,8 +55,8 @@
   private IGdWorkOrderFlowService gdWorkOrderFlowService;
   @Override
   public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskVO gdPatrolTask) {
      return page.setRecords(baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask));
   public IPage<GdPatrolTaskVO> selectGdPatrolTaskPage(IPage<GdPatrolTaskVO> page, GdPatrolTaskPageParam gdPatrolTask, List<Long> deptIdList) {
      return page.setRecords(baseMapper.selectGdPatrolTaskPage(page, gdPatrolTask, deptIdList));
   }
@@ -69,6 +74,12 @@
   public boolean savePatrolTask(List<GdPatrolTaskEntity> taskEntityList) {
      // 更新流程节点
      for (GdPatrolTaskEntity gdPatrolTaskEntity : taskEntityList) {
         // 生成巡查任务编号
         if (StringUtils.isBlank(gdPatrolTaskEntity.getTaskNo())) {
            // 使用时间戳生成唯一巡查任务编号
            String timestamp = OrderNumUtils.initOrderNum(WordOrderConstant.PATROL_TASK_KEY);
            gdPatrolTaskEntity.setTaskNo(WordOrderConstant.PATROL_TASK_PREFIX + timestamp);
         }
         // 保存巡逻任务
         boolean save = save(gdPatrolTaskEntity);
         if (!save) {
@@ -99,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) {
@@ -115,14 +129,14 @@
      if (PatrolTaskStatusEnum.REJECTED_SIGNING.getValue().equals(auditStatus) && (rejectReason == null || rejectReason.trim().isEmpty())) {
         throw new RuntimeException("拒绝签收时必须填写拒绝原因");
      }
      // 4. 检查其他需要拒绝原因的状态
      if ((PatrolTaskStatusEnum.AUDIT_REJECTED.getValue().equals(auditStatus) || PatrolTaskStatusEnum.REJECTED_ACCEPTANCE.getValue().equals(auditStatus)) && (rejectReason == null || rejectReason.trim().isEmpty())) {
         throw new RuntimeException("审核驳回或拒绝验收时必须填写拒绝原因");
      }
      // 4. 更新任务状态
      task.setTaskStatus(Byte.valueOf(auditStatus));
      task.setTaskStatus(auditStatus);
      boolean updateResult = updateById(task);
      if (!updateResult) {
         throw new RuntimeException("更新任务状态失败");