From 6bc053bf909e0ae12916ba468c6c309a28aa6520 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 22 Jan 2024 11:27:08 +0800
Subject: [PATCH] 白蚁任务关联

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/service/impl/PatrolTaskServiceImpl.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 20 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 ae73771..d611412 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;
@@ -15,7 +16,10 @@
 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.TaskStatusCount;
+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 +28,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;
 
 	/**
 	 * 自定义分页查询
@@ -113,7 +113,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,12 +133,12 @@
 		} else {
 			updateById(patrolTask);
 		}
-		return true;
+		return patrolTask;
 	}
 
 	@Override
-	@Transactional
-	public boolean patrolCompleteTask(PatrolTask patrolTask,String currentUserId) {
+	@Transactional(rollbackFor = Exception.class)
+	public boolean patrolCompleteTask(PatrolTaskVO patrolTask,String currentUserId,String taskUser) {
 		R<BladeFlow> res = flowClient.getBladeFlow(patrolTask.getId().toString(),currentUserId);
 		if (res.isSuccess()){
 			BladeFlow flow = res.getData();
@@ -152,10 +152,23 @@
 				variables = Kv.create();
 			}
 			variables.put(ProcessConstant.REPORT_KEY,patrolTask.getReport());
-			variables.put("taskUser",StringUtil.format("{}{}", TASK_USR_PREFIX, "1650048152667467777"));
+			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;
@@ -165,13 +178,18 @@
 	@Override
 	public boolean chargeCompletePerson(BladeFlowTask bladeFlowTask) {
 		//判断是否上报
+//		boolean isReport = false;
+//		List<PatrolReport> collect = bladeFlowTask.getPatrolReportList().stream().filter(report -> Func.equals(report.getStatus(), 2)).collect(Collectors.toList());
+//		if (collect.size()>0){
+//			isReport = true;
+//		}
+//		//更新report表
+//		boolean update = patrolReportService.updateBatchById(bladeFlowTask.getPatrolReportList());
+
 		boolean isReport = false;
-		List<PatrolReport> collect = bladeFlowTask.getPatrolReportList().stream().filter(report -> Func.equals(report.getStatus(), 2)).collect(Collectors.toList());
-		if (collect.size()>0){
+		if (StringUtil.isNoneBlank(bladeFlowTask.getTaskUser())){
 			isReport = true;
 		}
-		//更新report表
-		boolean update = patrolReportService.updateBatchById(bladeFlowTask.getPatrolReportList());
 
 		String taskId = bladeFlowTask.getTaskId();
 		String processInstanceId = bladeFlowTask.getProcessInstanceId();
@@ -191,14 +209,69 @@
 		variables.put(ProcessConstant.TOTECH_KEY,bladeFlowTask.getToTech());
 		//完成任务
 		flowClient.completeTask(taskId, processInstanceId, comment, variables);
-		return update;
+		return true;
 	}
 
 	@Override
-	public PatrolTask customizeGetById(String businessId) {
+	public PatrolTaskVO customizeGetById(String businessId) {
 		return baseMapper.customizeGetById(businessId);
 	}
 
+	@Override
+	public List<PatrolTask> getAll(PatrolTaskVO patrolTaskVO) {
+		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> 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