From 15601bee826ae306649c50d88dfa4f8416c8aa94 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 07 Feb 2024 10:19:10 +0800
Subject: [PATCH] 任务列表接口优化

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java |  133 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 117 insertions(+), 16 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
index 00a5245..0db7c54 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java
+++ b/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,8 +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.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;
@@ -24,28 +25,24 @@
 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.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.*;
 
 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;
 	private final IPatrolReportService patrolReportService;
+	private final INkyClient nkyClient;
+	private final IYwTermitesTaskService waterDataTermitesService;
 
 	/**
 	 * 自定义分页查询
@@ -55,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;
 	}
 
 	/**
@@ -113,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);
@@ -133,7 +136,7 @@
 		} else {
 			updateById(patrolTask);
 		}
-		return true;
+		return patrolTask;
 	}
 
 	@Override
@@ -155,8 +158,20 @@
 			variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, taskUser));
 			// 完成任务
 			flowClient.completeTask(taskId,processInstanceId,comment,variables);
-			saveReport(patrolTask);
+			//保存巡查记录
 			patrolRecordService.saveBatch(patrolTask.getPatrolRecordList());
+			//保存上报
+			//停用
+//			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;
@@ -201,7 +216,7 @@
 	}
 
 	@Override
-	public PatrolTask customizeGetById(String businessId) {
+	public PatrolTaskVO customizeGetById(String businessId) {
 		return baseMapper.customizeGetById(businessId);
 	}
 
@@ -210,6 +225,92 @@
 		return baseMapper.getAll(patrolTaskVO);
 	}
 
+	@Override
+	public IPage<PatrolTaskReport> getTaskReportPage(IPage<PatrolTaskReport> page,PatrolTaskReport patrolTaskReport) {
+		List<PatrolTaskReport> list  = new ArrayList<>();
+
+		//获取行政区划统计报表
+		if (patrolTaskReport.getRegionFlag().equals("1")){
+			list = baseMapper.getRegionReportPage(page,patrolTaskReport);
+		}else {
+			//获取水库巡查报表
+			list = baseMapper.getReservoirReportPage(page,patrolTaskReport);
+		}
+		return page.setRecords(list);
+	}
+
+	@Override
+	public List<PatrolTaskReport> getTaskReportList(PatrolTaskReport patrolTaskReport) {
+		List<PatrolTaskReport> list = new ArrayList();
+
+		//获取行政区划统计报表
+		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();
+
+		list = baseMapper.getTaskReportDetailRegion(page,patrolTaskReport);
+
+		return page.setRecords(list);
+	}
+
+
+	@Transactional(rollbackFor = Exception.class)
 	public void saveReport(PatrolTask patrolTask){
 		//拿到当前任务下的异常巡查记录
 		PatrolRecord patrolRecord = new PatrolRecord();

--
Gitblit v1.9.3