From f04487fef5ac47380dfa9670156743c9d273966b Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 23 Mar 2024 15:54:40 +0800
Subject: [PATCH] 巡查修改
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 176 insertions(+), 3 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
index 1d0bb6e..8f25e41 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
@@ -2,9 +2,13 @@
import cn.gistack.sm.intelligentCall.constant.ZtConstant;
import cn.gistack.sm.intelligentCall.service.CallService;
+import cn.gistack.sm.patrol.entity.PatrolGroupItem;
import cn.gistack.sm.patrol.entity.PatrolTask;
+import cn.gistack.sm.patrol.service.IPatrolGroupItemService;
import cn.gistack.sm.patrol.service.IPatrolTaskService;
+import cn.gistack.sm.sjztmd.entity.AttResBase;
import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
+import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
@@ -13,6 +17,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -24,11 +29,15 @@
import org.springframework.web.client.RestTemplate;
import springfox.documentation.annotations.ApiIgnore;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoField;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
/**
* @ClassName SM服务Feign实现类
@@ -49,6 +58,8 @@
private static final String ONLINE = "http://10.42.6.192";
private final IPatrolTaskService patrolTaskService;
private final IAttResManagePersonService attResManagePersonService;
+ private final IAttResBaseService attResBaseService;
+ private final IPatrolGroupItemService patrolGroupItemService;
@Autowired
private RestTemplate restTemplate;
@@ -76,11 +87,20 @@
public List<Integer> createTaskJobHandler(String processDefinitionId,
String taskType,
String title,
- String content) {
+ String content, int type) {
List<PatrolResponsiblePerson> patrolResponsiblePersonList = attResManagePersonService.getPatrolResponsiblePersonAll();
- List<Integer> taskJob = createTaskJob(processDefinitionId, taskType, title, content, patrolResponsiblePersonList);
+ List<Integer> taskJob = createTaskJob(processDefinitionId, taskType, title, content, type, patrolResponsiblePersonList);
return taskJob;
}
+
+ @Override
+ public List<Integer> createNewTaskJobHandler(String taskType, String title, String content, int type) {
+ List<PatrolResponsiblePerson> patrolResponsiblePersonList = attResManagePersonService.getPatrolResponsiblePersonAll();
+ List<Integer> taskJob = createNewTaskJob(taskType, title, content, type, patrolResponsiblePersonList);
+ return taskJob;
+ }
+
+
@Override
@GetMapping(CREATE_TASK_JOB_BY_CONDITION_HANDLER)
@@ -107,6 +127,34 @@
return taskJob;
}
+
+ @Override
+ public String createTask(String processDefinitionId, String taskType, String title, String content, String resCd) {
+ //根据水库id获取巡查责任人
+ List<String> resList = new ArrayList<>();
+ resList.add(resCd);
+
+ List<PatrolResponsiblePerson> patrolResponsiblePersonByResCdList = attResManagePersonService.getPatrolResponsiblePersonByResCdList(resList);
+ PatrolResponsiblePerson patrolResponsiblePerson = patrolResponsiblePersonByResCdList.get(0);
+ //不确定是否有多个,循环下发
+ PatrolTask patrolTask = new PatrolTask();
+// patrolTask.setProcessDefinitionId(processDefinitionId);
+ patrolTask.setToUserId(patrolResponsiblePerson.getUserId());
+ patrolTask.setProjectId(resCd);
+
+ patrolTask.setReservoirName(patrolResponsiblePerson.getName());
+ patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00"));
+ patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59"));
+
+ patrolTask.setTitle(title);
+ patrolTask.setContent(content);
+ patrolTask.setTaskType(taskType);
+ patrolTaskService.startProcess(patrolTask);
+ String taskId = patrolTask.getId().toString();
+ return taskId;
+ }
+
+
/**
@@ -188,7 +236,7 @@
log.info("当前创建任务对象:" + JSON.toJSONString(item));
try {
PatrolTask patrolTask = new PatrolTask();
- patrolTask.setProcessDefinitionId(processDefinitionId);
+// patrolTask.setProcessDefinitionId(processDefinitionId);
patrolTask.setToUserId(item.getUserId());
patrolTask.setProjectId(item.getResGuid());
patrolTask.setReservoirName(item.getName());
@@ -216,4 +264,129 @@
}
+
+ private List<Integer> createNewTaskJob(String taskType, String title, String content, int type, List<PatrolResponsiblePerson> patrolResponsiblePersonList) {
+
+ AtomicInteger failureCount = new AtomicInteger();
+ //循环责任人给责任人下发任务
+ patrolResponsiblePersonList.forEach(item -> {
+ log.info("当前创建任务对象:" + JSON.toJSONString(item));
+ try {
+ PatrolTask patrolTask = new PatrolTask();
+// patrolTask.setProcessDefinitionId(processDefinitionId);
+ patrolTask.setToUserId(item.getUserId());
+ //水库id
+ patrolTask.setProjectId(item.getResGuid());
+
+ //水库名称
+ patrolTask.setReservoirName(item.getName());
+ // 开始时间-结束时间
+ if (type == 1) { //周任务
+ LocalDate today = LocalDate.now();
+ LocalDate firstDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 1);
+ LocalDate lastDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 7);
+
+ String firstDayOfWeekString = firstDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00"));
+ String lastDayOfWeekString = lastDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 23:59:59"));
+ //开始时间,结束时间
+ patrolTask.setStartTime(firstDayOfWeekString);
+ patrolTask.setEndTime(lastDayOfWeekString);
+ } else { // 默认天任务
+ patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00"));
+ patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59"));
+ }
+
+ // 标题格式 月-日 水库名称 每日巡检任务
+ patrolTask.setTitle(DateUtil.format(new Date(),"MM-dd") + item.getName() + "-" + title);
+
+ //内容
+ patrolTask.setContent(DateUtil.format(new Date(),"yyyyMMdd") +content);
+
+ //任务类型
+ patrolTask.setTaskType(taskType);
+
+ //设置角色为巡查责任人
+ patrolTask.setPatrolRole("5");
+
+
+ //获取巡查项,给任务赋值
+ List<PatrolGroupItem> list = patrolGroupItemService.list();
+ List<String> collect = list.stream().map(groupItem -> groupItem.getId().toString()).collect(Collectors.toList());
+ String itemIds = StringUtil.join(collect, ",");
+ patrolTask.setPatrolGroupItemId(itemIds);
+
+ // 创建任务
+ patrolTaskService.deliverTask(patrolTask);
+
+
+ } catch (Exception e) {
+ log.error("创建任务失败:" + e.getMessage());
+ log.error("创建任务失败对象:" + JSON.toJSONString(item));
+ failureCount.getAndIncrement();
+ }
+
+ });
+ List<Integer> list = new ArrayList<>();
+ list.add(patrolResponsiblePersonList.size());
+ list.add(failureCount.get());
+ // 返回
+ return list;
+
+ }
+
+
+
+
+ public List<Integer> createTaskJob(String processDefinitionId,
+ String taskType,
+ String title,
+ String content,
+ int type,
+ List<PatrolResponsiblePerson> patrolResponsiblePersonList){
+ AtomicInteger failureCount = new AtomicInteger();
+ patrolResponsiblePersonList.forEach(item -> {
+ log.info("当前创建任务对象:" + JSON.toJSONString(item));
+ try {
+ PatrolTask patrolTask = new PatrolTask();
+// patrolTask.setProcessDefinitionId(processDefinitionId);
+ patrolTask.setToUserId(item.getUserId());
+ patrolTask.setProjectId(item.getResGuid());
+ patrolTask.setReservoirName(item.getName());
+ // 开始时间-结束时间
+ if (type == 1) { //周任务
+ LocalDate today = LocalDate.now();
+ LocalDate firstDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 1);
+ LocalDate lastDayOfWeek = today.with(ChronoField.DAY_OF_WEEK, 7);
+
+ String firstDayOfWeekString = firstDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 00:00:00"));
+ String lastDayOfWeekString = lastDayOfWeek.format(DateTimeFormatter.ofPattern("yyyy-MM-dd 23:59:59"));
+
+ patrolTask.setStartTime(firstDayOfWeekString);
+ patrolTask.setEndTime(lastDayOfWeekString);
+ } else { // 默认天任务
+ patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00"));
+ patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59"));
+ }
+
+ // 标题格式 月-日 水库名称 每日巡检任务
+ patrolTask.setTitle(DateUtil.format(new Date(),"MM-dd") + item.getName() + "-" + title);
+ patrolTask.setContent(DateUtil.format(new Date(),"yyyyMMdd") +content);
+ patrolTask.setTaskType(taskType);
+ // 创建任务
+ patrolTaskService.startProcess(patrolTask);
+ } catch (Exception e) {
+ log.error("创建任务失败:" + e.getMessage());
+ log.error("创建任务失败对象:" + JSON.toJSONString(item));
+ failureCount.getAndIncrement();
+ }
+
+ });
+ List<Integer> list = new ArrayList<>();
+ list.add(patrolResponsiblePersonList.size());
+ list.add(failureCount.get());
+ // 返回
+ return list;
+ }
+
+
}
--
Gitblit v1.9.3