From af21084fa4d1e5f8432f61fbd26a3e4e99495616 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 11 Jan 2024 18:03:49 +0800
Subject: [PATCH] 三色任务完善

---
 src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java |  293 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 252 insertions(+), 41 deletions(-)

diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
index 73c5687..4c7bdfa 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -16,20 +16,26 @@
  */
 package org.springblade.modules.task.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springblade.common.constant.DictConstant;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.category.entity.CategoryEntity;
 import org.springblade.modules.category.service.ICategoryService;
+import org.springblade.modules.grid.entity.GridWorkLogEntity;
+import org.springblade.modules.grid.service.IGridWorkLogService;
 import org.springblade.modules.house.service.IHouseRentalService;
 import org.springblade.modules.house.service.IHouseholdService;
 import org.springblade.modules.house.vo.HouseRentalTenantVO;
+import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.place.service.IPlaceExtService;
 import org.springblade.modules.place.service.IPlaceService;
 import org.springblade.modules.place.vo.PlaceVO;
@@ -43,10 +49,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -75,6 +78,15 @@
 
 	@Autowired
 	private ITaskCampusReportingEventService taskCampusReportingEventService;
+
+	@Autowired
+	private ITaskLabelReportingEventService taskLabelReportingEventService;
+
+	@Autowired
+	private ITaskHotelReportingService taskHotelReportingService;
+
+	@Autowired
+	private IGridWorkLogService gridWorkLogService;
 
 	@Override
 	public IPage<TaskVO> selectTaskPage(IPage<TaskVO> page, TaskVO task) {
@@ -284,48 +296,247 @@
 
 	/**
 	 * 根据类型创建任务
-	 * @param reportType 任务/事件类型
-	 * @param color 参数
+	 * @param param 参数
 	 * @return
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean createTaskJob(Integer reportType, String color) {
+	public boolean createTaskJob(String param) {
+		// 解析参数
+		JSONObject jsonParam = JSON.parseObject(param);
+//		String params = jsonParam.getString("params");
 		boolean flag = false;
-		if (reportType==6){
-			// 校园安全自查,查询标签为教育的场所 parentNo = 1601
-			String parentNo = "1601";
-			QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("is_deleted",0).eq("parent_no",parentNo);
-			List<CategoryEntity> categoryEntityList = categoryService.list(wrapper);
-			// 取出编号集合
-			List<String> stringList = categoryEntityList.stream().map(categoryEntity -> categoryEntity.getCategoryNo()).collect(Collectors.toList());
-			// 根据编号集合查询对应的场所
-			List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,color);
-			// 生成任务
-			for (PlaceVO placeVO : placeVOList) {
-				TaskEntity taskEntity = new TaskEntity();
-				taskEntity.setType(1);
-				taskEntity.setName(DictConstant.CAMPUS_SECURITY_INSPECTION);
-				taskEntity.setFrequency(2);
-				taskEntity.setCreateTime(new Date());
-				taskEntity.setHouseCode(placeVO.getHouseCode());
-				taskEntity.setReportType(reportType);
-				// 新增
-				flag = save(taskEntity);
-				// 同时新增校园安全检查任务
-				TaskCampusReportingEventEntity campusReportingEventEntity = new TaskCampusReportingEventEntity();
-				campusReportingEventEntity.setTaskId(taskEntity.getId());
-				campusReportingEventEntity.setPlaceId(placeVO.getId());
-				campusReportingEventEntity.setCheckUserId(placeVO.getPrincipalUserId());
-				campusReportingEventEntity.setCheckUserName(placeVO.getPrincipal());
-				campusReportingEventEntity.setCheckTelephone(placeVO.getPrincipalPhone());
-				// 系统下发
-				campusReportingEventEntity.setSource(2);
-				// 新增
-				taskCampusReportingEventService.save(campusReportingEventEntity);
-			}
-		}
+		// 校园安全自查任务生成
+		createCampusReportingTask();
+		// 打金店/二手车/二手手机任务生成
+		createLabelReportingTask();
+		// 旅馆安全自查任务生成
+		createHotelReportingTask();
+		// 人员类-肇事肇祸精神障碍患者走访任务生成
+		createGridWordTask();
+		// 返回
 		return flag;
 	}
+
+
+	/**
+	 * 人员类-肇事肇祸精神障碍患者走访任务生成
+	 */
+	public void createGridWordTask() {
+		// 肇事肇祸精神障碍患者走访任务生成,查询标签为:20
+		List<Integer> list = new ArrayList<Integer>(){{
+			add(20);
+		}};
+		// 根据人员标签编号集合查询对应的住户(按颜色区分近多少天没有发过任务的住户)
+		List<HouseholdVO> householdVOList = iHouseholdService.getHouseholdListByParam(list);
+		// 生成任务
+		for (HouseholdVO household : householdVOList) {
+			// 新增走访任务
+			saveGridWordTask(household);
+		}
+	}
+
+	/**
+	 * 新增走访任务
+	 * @param household
+	 */
+	public void saveGridWordTask(HouseholdVO household) {
+		GridWorkLogEntity gridWorkLogEntity = new GridWorkLogEntity();
+		gridWorkLogEntity.setHouseholdId(household.getId());
+		gridWorkLogEntity.setType(2);
+		gridWorkLogEntity.setPersonType(20);
+		// 系统下发
+		gridWorkLogEntity.setSource(2);
+		// 新增
+		gridWorkLogService.save(gridWorkLogEntity);
+	}
+
+	/**
+	 * 打金店/二手车/二手手机任务生成
+	 */
+	public void createLabelReportingTask() {
+		// 打金店/二手车/二手手机任务生成,标签:130808/140304/130604
+		List<String> stringList = new ArrayList<String>(){{
+			add("130808");
+			add("140304");
+			add("130604");
+		}};
+		String tableName = "jczz_task_label_reporting_event";
+		// 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所)
+		List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName);
+		// 生成任务
+		for (PlaceVO placeVO : placeVOList) {
+			String taskName = "";
+			Integer reportType = 3;
+			if (placeVO.getLabel().equals("130808")){
+				taskName = DictConstant.DA_JIN_DIAN;
+				reportType = 3;
+			}
+			if (placeVO.getLabel().equals("130604")){
+				taskName = DictConstant.USED_MOBILE_PHONES;
+				reportType = 4;
+			}
+			if (placeVO.getLabel().equals("140304")){
+				taskName = DictConstant.USED_CAR;
+				reportType = 5;
+			}
+			// 新增任务
+			TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, taskName, 2, reportType);
+			// 同时新增打金店/二手车/二手手机任务
+			saveGoldShop(placeVO, taskEntity,taskName,reportType);
+		}
+	}
+
+	/**
+	 * 旅馆安全自查任务生成
+	 */
+	public void createHotelReportingTask() {
+		// 旅馆标签为
+		List<String> stringList = new ArrayList<String>(){{
+			add("120101");
+			add("120102");
+			add("120103");
+			add("120104");
+		}};
+		String tableName = "jczz_task_hotel_reporting";
+		// 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所)
+		List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName);
+		// 生成任务
+		for (PlaceVO placeVO : placeVOList) {
+			// 新增任务
+			TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, DictConstant.HOTEL_SECURITY, 2, 2);
+			// 同时新增校园安全检查任务
+			saveHotel(placeVO, taskEntity);
+		}
+	}
+
+	/**
+	 * 校园安全自查任务生成
+	 */
+	public void createCampusReportingTask() {
+		// 校园安全自查,查询标签为教育的场所 parentNo = 1601
+		String parentNo = "1601";
+		QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
+		wrapper.eq("is_deleted",0).eq("parent_no",parentNo);
+		List<CategoryEntity> categoryEntityList = categoryService.list(wrapper);
+		// 取出编号集合
+		List<String> stringList = categoryEntityList.stream().map(categoryEntity -> categoryEntity.getCategoryNo()).collect(Collectors.toList());
+		// 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所)
+		String tableName = "jczz_task_campus_reporting_event";
+		List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName);
+		// 生成任务
+		for (PlaceVO placeVO : placeVOList) {
+			// 新增任务
+			TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, DictConstant.CAMPUS_SECURITY_INSPECTION, 2, 6);
+			// 同时新增校园安全检查任务
+			saveCampus(placeVO, taskEntity);
+		}
+	}
+
+	/**
+	 * 新增校园安全检查任务
+	 * @param placeVO
+	 * @param taskEntity
+	 */
+	private void saveCampus(PlaceVO placeVO, TaskEntity taskEntity) {
+		TaskCampusReportingEventEntity campusReportingEventEntity = new TaskCampusReportingEventEntity();
+		campusReportingEventEntity.setTaskId(taskEntity.getId());
+		campusReportingEventEntity.setPlaceId(placeVO.getId());
+		campusReportingEventEntity.setCampusName(placeVO.getPlaceName());
+		campusReportingEventEntity.setCheckUserId(placeVO.getPrincipalUserId());
+		campusReportingEventEntity.setCheckUserName(placeVO.getPrincipal());
+		campusReportingEventEntity.setCheckTelephone(placeVO.getPrincipalPhone());
+		// 系统下发
+		campusReportingEventEntity.setSource(2);
+		// 待完善
+		campusReportingEventEntity.setConfirmFlag("4");
+		// 新增
+		taskCampusReportingEventService.save(campusReportingEventEntity);
+	}
+
+	/**
+	 * 新增旅馆安全检查任务
+	 * @param placeVO
+	 * @param taskEntity
+	 */
+	private void saveHotel(PlaceVO placeVO, TaskEntity taskEntity) {
+		TaskHotelReportingEntity taskHotelReportingEntity = new TaskHotelReportingEntity();
+		taskHotelReportingEntity.setTaskId(taskEntity.getId());
+		taskHotelReportingEntity.setPlaceId(placeVO.getId());
+		taskHotelReportingEntity.setHotelName(placeVO.getPlaceName());
+		taskHotelReportingEntity.setCheckUserId(placeVO.getPrincipalUserId());
+		taskHotelReportingEntity.setCheckUserName(placeVO.getPrincipal());
+		taskHotelReportingEntity.setCheckTelephone(placeVO.getPrincipalPhone());
+		// 系统下发
+		taskHotelReportingEntity.setSource(2);
+		// 待完善
+		taskHotelReportingEntity.setConfirmFlag("4");
+		// 新增
+		taskHotelReportingService.save(taskHotelReportingEntity);
+	}
+
+
+	/**
+	 * 新增打金店/二手车/二手手机任务
+	 * @param placeVO
+	 * @param taskEntity
+	 * @param taskName
+	 * @param reportType
+	 */
+	private void saveGoldShop(PlaceVO placeVO, TaskEntity taskEntity,String taskName,Integer reportType) {
+		TaskLabelReportingEventEntity taskLabelReportingEventEntity = new TaskLabelReportingEventEntity();
+		taskLabelReportingEventEntity.setTaskId(taskEntity.getId());
+		taskLabelReportingEventEntity.setPlaceId(placeVO.getId());
+		taskLabelReportingEventEntity.setDistrictName(placeVO.getPlaceName());
+		taskLabelReportingEventEntity.setUserId(placeVO.getPrincipalUserId());
+		taskLabelReportingEventEntity.setOwner(placeVO.getPrincipal());
+		taskLabelReportingEventEntity.setPhoneNumber(placeVO.getPrincipalPhone());
+		taskLabelReportingEventEntity.setLabelName(taskName);
+		// 打金店
+		if (reportType==3){
+			taskLabelReportingEventEntity.setEventType("1");
+		}
+		// 二手车
+		if (reportType==4){
+			taskLabelReportingEventEntity.setEventType("3");
+		}
+		// 二手手机
+		if (reportType==5){
+			taskLabelReportingEventEntity.setEventType("2");
+		}
+		taskLabelReportingEventEntity.setEventType(taskName);
+		// 系统下发
+		taskLabelReportingEventEntity.setSource(2);
+		// 待完善
+		taskLabelReportingEventEntity.setConfirmFlag("4");
+		// 新增
+		taskLabelReportingEventService.save(taskLabelReportingEventEntity);
+	}
+
+	/**
+	 * 插入任务信息
+	 * @param houseCode
+	 * @param type
+	 * @param taskName
+	 * @param frequency
+	 * @param reportType
+	 * @return
+	 */
+	private TaskEntity saveTaskEntity(String houseCode,
+									  Integer type,
+									  String taskName,
+									  Integer frequency,
+									  Integer reportType) {
+		TaskEntity taskEntity = new TaskEntity();
+		taskEntity.setType(type);
+		taskEntity.setName(taskName);
+		taskEntity.setFrequency(frequency);
+		taskEntity.setCreateTime(new Date());
+		taskEntity.setHouseCode(houseCode);
+		taskEntity.setReportType(reportType);
+		// 新增
+		save(taskEntity);
+		// 返回
+		return taskEntity;
+	}
 }

--
Gitblit v1.9.3