guoshilong
2024-02-07 15601bee826ae306649c50d88dfa4f8416c8aa94
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
@@ -5,6 +5,7 @@
import cn.gistack.flow.core.feign.IFlowClient;
import cn.gistack.flow.core.utils.FlowUtil;
import cn.gistack.flow.core.utils.TaskUtil;
import cn.gistack.nky.fegin.INkyClient;
import cn.gistack.sm.patrol.entity.PatrolRecord;
import cn.gistack.sm.patrol.entity.PatrolReport;
import cn.gistack.sm.patrol.entity.PatrolTask;
@@ -14,9 +15,8 @@
import cn.gistack.sm.patrol.service.IPatrolTaskService;
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 cn.gistack.sm.patrol.vo.*;
import cn.gistack.sm.sjztmd.service.IYwTermitesTaskService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.log.exception.ServiceException;
@@ -25,16 +25,12 @@
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.net.http.HttpRequest;
import java.util.*;
import java.util.stream.Collectors;
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
@@ -45,6 +41,8 @@
   private final IFlowClient flowClient;
   private final IPatrolRecordService patrolRecordService;
   private final IPatrolReportService patrolReportService;
   private final INkyClient nkyClient;
   private final IYwTermitesTaskService waterDataTermitesService;
   /**
    * 自定义分页查询
@@ -54,8 +52,14 @@
    */
   @Override
   public IPage<PatrolTaskVO> selectPatrolTask(IPage<PatrolTaskVO> page, PatrolTaskVO patrolTask) {
      List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTask(page, patrolTask);
      return page.setRecords(patrolTaskList);
//      List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTask(page, patrolTask);
      List<PatrolTaskVO> patrolTaskList = baseMapper.selectPatrolTaskPage(page.getCurrent()-1,page.getSize(),patrolTask);
      long total = baseMapper.getPatrolTaskTotal(patrolTask);
      page.setRecords(patrolTaskList);
      page.setTotal(total);
      return page;
   }
   /**
@@ -112,7 +116,7 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public boolean startProcess(PatrolTask patrolTask) {
   public PatrolTask startProcess(PatrolTask patrolTask) {
      String businessTable = FlowUtil.getBusinessTable(ProcessConstant.PATROL_KEY);
      if (Func.isEmpty(patrolTask.getId())) {
         save(patrolTask);
@@ -132,7 +136,7 @@
      } else {
         updateById(patrolTask);
      }
      return true;
      return patrolTask;
   }
   @Override
@@ -159,6 +163,15 @@
         //保存上报
         //停用
//         saveReport(patrolTask);
         //查监测预警表,看是否有这个任务,有的话修改任务状态
         Boolean finishDamTask = nkyClient.finishTask(patrolTask.getId().toString());
         if (!finishDamTask){
            //查白蚁表,看是否有这个任务,有的话修改任务状态
            Boolean finishTermitesTask = waterDataTermitesService.finishTask(patrolTask.getId().toString());
         }
         return baseMapper.updateById(patrolTask) >0;
      }else {
         return  false;
@@ -214,23 +227,14 @@
   @Override
   public IPage<PatrolTaskReport> getTaskReportPage(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) {
      List<PatrolTaskReport> list = new ArrayList();
      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;
      //获取行政区划统计报表
      if (patrolTaskReport.getRegionFlag().equals("1")){
         list = baseMapper.getRegionReportPage(page,patrolTaskReport);
      }else {
         //获取水库巡查报表
         list = baseMapper.getReservoirReportPage(page,patrolTaskReport);
      }
      return page.setRecords(list);
   }
@@ -239,43 +243,69 @@
   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;
      //获取行政区划统计报表
      if (patrolTaskReport.getRegionFlag().equals("1")){
         list = baseMapper.getRegionReportList(patrolTaskReport);
      }else {
         //获取水库巡查报表
         list = baseMapper.getReservoirReportList(patrolTaskReport);
      }
      return list;
   }
   @Override
   public List<TaskStatusCount> getTaskStatusCount(PatrolTaskVO patrolTaskVO) {
      return baseMapper.getTaskStatusCount(patrolTaskVO);
   }
   @Override
   public List<TaskStatusCount> getTaskStatusCountOptimize(PatrolTaskVO patrolTaskVO) {
      List<TaskStatusCount> list = new ArrayList<>();
//      TaskStatusCount all = baseMapper.getTaskStatusCountAll(patrolTaskVO);
//
//      TaskStatusCount unfinished = baseMapper.getTaskStatusCountByType(patrolTaskVO,"1");
//      TaskStatusCount processing = baseMapper.getTaskStatusCountByType(patrolTaskVO,"2");
//      TaskStatusCount finished = baseMapper.getTaskStatusCountByType(patrolTaskVO,"3");
//
//      list.add(unfinished);
//      list.add(processing);
//      list.add(finished);
//      list.add(all);
      TaskStatus taskStatus = baseMapper.getTaskStatus(patrolTaskVO);
      TaskStatusCount unfinished = new TaskStatusCount("未完成","1",taskStatus.getUnfinished());
      TaskStatusCount processing = new TaskStatusCount("进行中","2",taskStatus.getProcessing());
      TaskStatusCount finished = new TaskStatusCount("已完成","3",taskStatus.getFinished());
      TaskStatusCount all = new TaskStatusCount("全部","",taskStatus.getTotal());
      list.add(unfinished);
      list.add(processing);
      list.add(finished);
      list.add(all);
      return list;
   }
   @Override
   public TaskStatus getTaskStatus(PatrolTaskVO patrolTaskVO) {
      TaskStatus taskStatus = baseMapper.getTaskStatus(patrolTaskVO);
      return taskStatus;
   }
   @Override
   public List<TaskStatusCount> getTaskTypeCount(PatrolTaskVO patrolTaskVO) {
      return baseMapper.getTaskTypeCount(patrolTaskVO);
   }
   @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);
      }
      list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
      return page.setRecords(list);
   }