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 | 160 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 136 insertions(+), 24 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..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,12 +136,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 +155,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 +181,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 +212,105 @@
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> 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