guoshilong
2023-07-12 b176ddd3a9acdd1eef2e7eb9c0cef5fa620334b4
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -15,6 +15,7 @@
import cn.gistack.sm.patrol.util.EnhancementServicesTool;
import cn.gistack.sm.patrol.util.IdWorker;
import cn.gistack.sm.patrol.vo.BladeFlowTask;
import cn.gistack.sm.patrol.vo.PatrolTaskReport;
import cn.gistack.sm.patrol.vo.PatrolTaskVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
@@ -32,16 +33,14 @@
import org.springframework.transaction.annotation.Transactional;
import java.net.http.HttpRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class PatrolTaskServiceImpl extends BaseServiceImpl<PatrolTaskMapper, PatrolTask> implements IPatrolTaskService {
   private final IFlowClient flowClient;
   private final IPatrolRecordService patrolRecordService;
@@ -155,8 +154,11 @@
         variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
         // 完成任务
         flowClient.completeTask(taskId,processInstanceId,comment,variables);
         saveReport(patrolTask);
         //保存巡查记录
         patrolRecordService.saveBatch(patrolTask.getPatrolRecordList());
         //保存上报
         //停用
//         saveReport(patrolTask);
         return baseMapper.updateById(patrolTask) >0;
      }else {
         return  false;
@@ -201,7 +203,7 @@
   }
   @Override
   public PatrolTask customizeGetById(String businessId) {
   public PatrolTaskVO customizeGetById(String businessId) {
      return baseMapper.customizeGetById(businessId);
   }
@@ -210,6 +212,75 @@
      return baseMapper.getAll(patrolTaskVO);
   }
   @Override
   public IPage<PatrolTaskReport> getTaskReportPage(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) {
      List<PatrolTaskReport> list = new ArrayList();
      switch (patrolTaskReport.getRegionFlag()){
         case "1": //省  获取市级数据
            list = baseMapper.getCityReportPage(page,patrolTaskReport);
            break;
         case "2"://市   获取区县级数据
            list = baseMapper.getCountyReportPage(page,patrolTaskReport);
            break;
         case "3"://区县 获取乡镇级数据
            list = baseMapper.getTownReportPage(page,patrolTaskReport);
            break;
         case "4"://乡镇  获取水库数据
            list = baseMapper.getReservoirReportPage(page,patrolTaskReport);
            break;
         default:
            break;
      }
      return page.setRecords(list);
   }
   @Override
   public List<PatrolTaskReport> getTaskReportList(PatrolTaskReport patrolTaskReport) {
      List<PatrolTaskReport> list = new ArrayList();
      switch (patrolTaskReport.getRegionFlag()){
         case "1": //省  获取市级数据
            list = baseMapper.getCityReportList(patrolTaskReport);
            break;
         case "2"://市   获取区县级数据
            list = baseMapper.getCountyReportList(patrolTaskReport);
            break;
         case "3"://区县 获取乡镇级数据
            list = baseMapper.getTownReportList(patrolTaskReport);
            break;
         case "4"://乡镇  获取水库数据
            list = baseMapper.getReservoirReportList(patrolTaskReport);
            break;
         default:
            break;
      }
      return list;
   }
   @Override
   public IPage<PatrolTaskReport> getTaskReportDetail(IPage<PatrolTaskReport> page, PatrolTaskReport patrolTaskReport) {
      List<PatrolTaskReport> list = new ArrayList();
      if (Func.isNotEmpty(patrolTaskReport.getReservoirId())){
         //获取该水库的巡查
         list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
      }else {
         String code = patrolTaskReport.getAdCode();
         if (code.substring(0,4).indexOf("00") > -1) {
            //前4位包含00 =》省
            patrolTaskReport.setAdCode(code.substring(0,2));
         } else if (code.substring(0,6).indexOf("00") > -1) {
            //前六位包含00 =》市
            patrolTaskReport.setAdCode(code.substring(0,4));
         }
         list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
      }
      return page.setRecords(list);
   }
   @Transactional(rollbackFor = Exception.class)
   public void saveReport(PatrolTask patrolTask){
      //拿到当前任务下的异常巡查记录
      PatrolRecord patrolRecord = new PatrolRecord();