From a2979b5df06744de80c6be6218260e2fa701cce2 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 10 Jan 2024 20:27:42 +0800
Subject: [PATCH] 新增标签任务处理

---
 src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java |  159 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 153 insertions(+), 6 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 acc0bdd..73c5687 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
@@ -17,27 +17,37 @@
 package org.springblade.modules.task.service.impl;
 
 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.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.house.service.IHouseRentalService;
 import org.springblade.modules.house.service.IHouseholdService;
 import org.springblade.modules.house.vo.HouseRentalTenantVO;
 import org.springblade.modules.place.service.IPlaceExtService;
-import org.springblade.modules.task.entity.TaskEntity;
+import org.springblade.modules.place.service.IPlaceService;
+import org.springblade.modules.place.vo.PlaceVO;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.task.entity.*;
 import org.springblade.modules.task.mapper.TaskMapper;
-import org.springblade.modules.task.service.ITaskReportForRepairsService;
-import org.springblade.modules.task.service.ITaskService;
+import org.springblade.modules.task.service.*;
 import org.springblade.modules.task.vo.TaskVO;
 import org.springframework.beans.factory.annotation.Autowired;
 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.stream.Collectors;
 
 /**
  * 任务表 服务实现类
@@ -48,8 +58,8 @@
 @Service
 public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, TaskEntity> implements ITaskService {
 
-	// @Autowired
-	// private ITaskReportForRepairsService iTaskReportForRepairsService;
+	 @Autowired
+	 private IPlaceService placeService;
 
 	@Autowired
 	private IHouseholdService iHouseholdService;
@@ -57,9 +67,21 @@
 	@Autowired
 	private IHouseRentalService iHouseRentalService;
 
+	@Autowired
+	private IDeptService deptService;
+
+	@Autowired
+	private ICategoryService categoryService;
+
+	@Autowired
+	private ITaskCampusReportingEventService taskCampusReportingEventService;
+
 	@Override
 	public IPage<TaskVO> selectTaskPage(IPage<TaskVO> page, TaskVO task) {
-		task.setUserId(AuthUtil.getUserId());
+		Dept dept = deptService.getById(AuthUtil.getDeptId());
+		if (null != dept) {
+			task.setCommunityCode(dept.getRegionCode());
+		}
 		// 民警角色
 		if (AuthUtil.getUserRole().equals("mj")) {
 			task.setUserId(AuthUtil.getUserId());
@@ -69,8 +91,35 @@
 				task.setCommunityCode("361102003027");
 				task.setUserId(null);
 			}
+			if (AuthUtil.getUserRole().equals("wgy")) {
+				task.setUserId(AuthUtil.getUserId());
+			}
 			// 非民警角色
 			List<TaskVO> taskVOS = baseMapper.selectTaskPage(page, task);
+			return page.setRecords(taskVOS);
+		}
+	}
+
+	@Override
+	public IPage<TaskVO> getBailReportingPage(IPage<TaskVO> page, TaskVO task) {
+		Dept dept = deptService.getById(AuthUtil.getDeptId());
+		if (null != dept) {
+			task.setCommunityCode(dept.getRegionCode());
+		}
+		// 民警角色
+		if (AuthUtil.getUserRole().equals("mj")) {
+			task.setUserId(AuthUtil.getUserId());
+			return page.setRecords(baseMapper.selectTaskPageBy(page, task));
+		} else {
+			if (AuthUtil.getUserAccount().equals("18879306957")) {
+				task.setCommunityCode("361102003027");
+				task.setUserId(null);
+			}
+			if (AuthUtil.getUserRole().equals("wgy")) {
+				task.setUserId(AuthUtil.getUserId());
+			}
+			// 非民警角色
+			List<TaskVO> taskVOS = baseMapper.getBailReportingPage(page, task);
 			return page.setRecords(taskVOS);
 		}
 	}
@@ -121,6 +170,7 @@
 		LambdaQueryWrapper<TaskEntity> objectQueryWrapper = new LambdaQueryWrapper<>();
 		objectQueryWrapper.eq(TaskEntity::getCreateUser, AuthUtil.getUserId());
 		objectQueryWrapper.isNotNull(TaskEntity::getHouseCode);
+		objectQueryWrapper.eq(TaskEntity::getIsDeleted, 0);
 		objectQueryWrapper.in(TaskEntity::getReportType, 2, 3, 4, 5, 6);
 		if (StringUtils.isNotBlank(houseCode)) {
 			objectQueryWrapper.eq(TaskEntity::getHouseCode, houseCode);
@@ -142,6 +192,7 @@
 		taskVO.setUserId(roleType > 0 ? AuthUtil.getUserId() : null);
 		taskVO.setNeiCode(neiCode);
 		taskVO.setReportType(2);
+		taskVO.setIsDeleted(0);
 		// 标签事件
 		Integer bqsj = baseMapper.selectTaskCount(taskVO);
 		taskVO.setReportType(1);
@@ -181,4 +232,100 @@
 		objectObjectHashMap.put("periodicity", periodicity);
 		return objectObjectHashMap;
 	}
+
+	@Override
+	public Boolean removeTask(TaskEntity task) {
+
+		boolean update1 = update(Wrappers.<TaskEntity>lambdaUpdate()
+			.set(TaskEntity::getIsDeleted, 1)
+			.eq(TaskEntity::getId, task.getId()));
+		if (update1) {
+			if (task.getReportType().equals(1)) {
+				ITaskBailReportingEventService bean = SpringUtils.getBean(ITaskBailReportingEventService.class);
+				boolean update = bean.update(Wrappers.<TaskBailReportingEventEntity>lambdaUpdate()
+					.set(TaskBailReportingEventEntity::getIsDeleted, 1)
+					.eq(TaskBailReportingEventEntity::getTaskId, task.getId()));
+				return update;
+			} else if (task.getReportType().equals(2)) {
+				ITaskHotelReportingService bean = SpringUtils.getBean(ITaskHotelReportingService.class);
+				boolean update = bean.update(Wrappers.<TaskHotelReportingEntity>lambdaUpdate()
+					.set(TaskHotelReportingEntity::getIsDeleted, 1)
+					.eq(TaskHotelReportingEntity::getTaskId, task.getId()));
+				return update;
+			} else if (task.getReportType().equals(3)) {
+				ITaskLabelReportingEventService bean = SpringUtils.getBean(ITaskLabelReportingEventService.class);
+				boolean update = bean.update(Wrappers.<TaskLabelReportingEventEntity>lambdaUpdate()
+					.set(TaskLabelReportingEventEntity::getIsDeleted, 1)
+					.eq(TaskLabelReportingEventEntity::getTaskId, task.getId()));
+				return update;
+			} else if (task.getReportType().equals(4)) {
+				ITaskLabelReportingEventService bean = SpringUtils.getBean(ITaskLabelReportingEventService.class);
+				boolean update = bean.update(Wrappers.<TaskLabelReportingEventEntity>lambdaUpdate()
+					.set(TaskLabelReportingEventEntity::getIsDeleted, 1)
+					.eq(TaskLabelReportingEventEntity::getTaskId, task.getId()));
+				return update;
+			} else if (task.getReportType().equals(5)) {
+				ITaskLabelReportingEventService bean = SpringUtils.getBean(ITaskLabelReportingEventService.class);
+				boolean update = bean.update(Wrappers.<TaskLabelReportingEventEntity>lambdaUpdate()
+					.set(TaskLabelReportingEventEntity::getIsDeleted, 1)
+					.eq(TaskLabelReportingEventEntity::getTaskId, task.getId()));
+				return update;
+			} else if (task.getReportType().equals(6)) {
+				ITaskCampusReportingEventService bean = SpringUtils.getBean(ITaskCampusReportingEventService.class);
+				boolean update = bean.update(Wrappers.<TaskCampusReportingEventEntity>lambdaUpdate()
+					.set(TaskCampusReportingEventEntity::getIsDeleted, 1)
+					.eq(TaskCampusReportingEventEntity::getTaskId, task.getId()));
+				return update;
+			}
+		}
+
+		return update1;
+	}
+
+	/**
+	 * 根据类型创建任务
+	 * @param reportType 任务/事件类型
+	 * @param color 参数
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean createTaskJob(Integer reportType, String color) {
+		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);
+			}
+		}
+		return flag;
+	}
 }

--
Gitblit v1.9.3