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 |   96 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 93 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 abde6fa..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,7 +2,9 @@
 
 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;
@@ -15,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;
@@ -34,6 +37,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
  * @ClassName SM服务Feign实现类
@@ -55,6 +59,7 @@
 	private final IPatrolTaskService patrolTaskService;
 	private final IAttResManagePersonService attResManagePersonService;
 	private final IAttResBaseService attResBaseService;
+	private final IPatrolGroupItemService patrolGroupItemService;
 
 	@Autowired
 	private RestTemplate restTemplate;
@@ -87,6 +92,15 @@
 		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)
@@ -124,7 +138,7 @@
 		PatrolResponsiblePerson patrolResponsiblePerson = patrolResponsiblePersonByResCdList.get(0);
 		//不确定是否有多个,循环下发
 			PatrolTask patrolTask = new PatrolTask();
-			patrolTask.setProcessDefinitionId(processDefinitionId);
+//			patrolTask.setProcessDefinitionId(processDefinitionId);
 			patrolTask.setToUserId(patrolResponsiblePerson.getUserId());
 			patrolTask.setProjectId(resCd);
 
@@ -139,6 +153,8 @@
 			String taskId = patrolTask.getId().toString();
 			return taskId;
 	}
+
+
 
 
 	/**
@@ -220,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());
@@ -247,6 +263,80 @@
 		return list;
 	}
 
+
+
+	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,
@@ -258,7 +348,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());

--
Gitblit v1.9.3