From 7bcd0d2d7510cb2ba67099cd768e1b2b6d047dc2 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 22 Feb 2024 17:16:27 +0800
Subject: [PATCH] 投票人员查询优化

---
 src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java |  288 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 272 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java b/src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java
index f5739a7..a2192b9 100644
--- a/src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java
@@ -16,40 +16,55 @@
  */
 package org.springblade.modules.taskPlaceRectification.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.common.cache.SysCache;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.BeanUtil;
-import org.springblade.modules.house.excel.HouseExcel;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
+import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService;
+import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.patrol.entity.PatrolRecord;
 import org.springblade.modules.patrol.service.IPatrolRecordService;
 import org.springblade.modules.patrol.vo.PatrolRecordVO;
-import org.springblade.modules.place.excel.NinePlaceExcel;
+import org.springblade.modules.place.entity.PlaceEntity;
+import org.springblade.modules.place.service.IPlaceService;
+import org.springblade.modules.place.vo.PlaceVO;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.system.entity.Region;
-import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDictBizService;
 import org.springblade.modules.system.service.IRegionService;
+import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.system.vo.RegionVO;
 import org.springblade.modules.task.entity.TaskEntity;
 import org.springblade.modules.task.service.ITaskService;
 import org.springblade.modules.taskPlaceRectification.dto.TaskPlaceRectificationDTO;
 import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
+import org.springblade.modules.taskPlaceRectification.excel.PlaceRectificationsExcel;
 import org.springblade.modules.taskPlaceRectification.excel.TaskPlaceRectificationExcel;
-import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
 import org.springblade.modules.taskPlaceRectification.mapper.TaskPlaceRectificationMapper;
 import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
 import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationsVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * 场所整改任务表 服务实现类
@@ -59,6 +74,9 @@
  */
 @Service
 public class TaskPlaceRectificationServiceImpl extends ServiceImpl<TaskPlaceRectificationMapper, TaskPlaceRectificationEntity> implements ITaskPlaceRectificationService {
+
+	@Autowired
+	private IDictBizService dictBizService;
 
 	@Override
 	public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationPage(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationVO taskPlaceRectification) {
@@ -86,14 +104,55 @@
 	@Override
 	public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationList(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationDTO taskPlaceRectificationDTO) {
 		// 数据过滤 todo
-		List<String> regionChildCodesList = new ArrayList<>();//SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
-		List<TaskPlaceRectificationVO> taskPlaceRectificationVOS = baseMapper.selectTaskPlaceRectificationList(page, taskPlaceRectificationDTO, regionChildCodesList, isAdministrator);
+		String roleName = SpringUtils.getRequestParam("roleName");
+		String communityCode = SpringUtils.getRequestParam("communityCode");
+		if (!Strings.isBlank(communityCode)){
+			// 校验社区编号是否合规
+			if(null!=SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
+				taskPlaceRectificationDTO.setCommunityCode(communityCode);
+			}
+		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		// 网格编号集合
+		List<String> gridCodeList = new ArrayList<>();
+		// 民警角色
+		if (!Strings.isBlank(roleName)){
+			taskPlaceRectificationDTO.setRoleName(roleName);
+			if(roleName.equals("mj")) {
+				regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
+			}
+			if (roleName.equals("wgy")) {
+				gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+			}
+		}
+		List<String> strings = new ArrayList<>();
+		if (null!=taskPlaceRectificationDTO.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",taskPlaceRectificationDTO.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(taskPlaceRectificationDTO.getNineType());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
+		List<TaskPlaceRectificationVO> taskPlaceRectificationVOS = baseMapper.selectTaskPlaceRectificationList(page,
+			taskPlaceRectificationDTO,
+			regionChildCodesList,
+			isAdministrator,
+			gridCodeList,
+			strings);
 		for (TaskPlaceRectificationVO taskPlaceRectificationVO : taskPlaceRectificationVOS) {
 			StringBuilder builder = new StringBuilder("");
 			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationVO.getPatrolRecordVOList();
 			for (int i = 0; i < patrolRecordVOList.size(); i++) {
-				builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
+				if (patrolRecordVOList.get(i).getState().equals(0)) {
+					builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
+				}
 			}
 			taskPlaceRectificationVO.setHiddenDanger(builder.toString());
 		}
@@ -128,6 +187,9 @@
 			.set(TaskEntity::getRemark, taskPlaceRectification.getReasonFailure())
 			.eq(TaskEntity::getId, taskPlaceRectification.getTaskId()));
 		// 更新任务详情状态
+		if (taskPlaceRectification.getStatus().equals(2)) {
+			taskPlaceRectification.setRectificationFlag(2);
+		}
 		boolean b1 = updateById(taskPlaceRectification);
 		return b1;
 	}
@@ -152,16 +214,61 @@
 
 	@Override
 	public List<TaskPlaceRectificationExcel> export(TaskPlaceRectificationsVO taskPlaceRectificationVO) {
-		// todo
-		List<String> regionChildCodesList = new ArrayList<>();//SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
-		List<TaskPlaceRectificationExcel> export = baseMapper.export(taskPlaceRectificationVO, regionChildCodesList, isAdministrator);
+		// 数据过滤 todo
+		String roleName = SpringUtils.getRequestParam("roleName");
+		String communityCode = SpringUtils.getRequestParam("communityCode");
+		if (!Strings.isBlank(communityCode)){
+			// 校验社区编号是否合规
+			if(null!=SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
+				taskPlaceRectificationVO.setCommunityCode(communityCode);
+			}
+		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		// 网格编号集合
+		List<String> gridCodeList = new ArrayList<>();
+		// 民警角色
+		if (!Strings.isBlank(roleName)){
+			taskPlaceRectificationVO.setRoleName(roleName);
+			if(roleName.equals("mj")) {
+				regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
+			}
+			if (roleName.equals("wgy")) {
+				gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+			}
+		}
+		List<String> strings = new ArrayList<>();
+		if (null!=taskPlaceRectificationVO.getNineType()){
+			QueryWrapper<DictBiz> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("is_deleted",0).eq("dict_key",taskPlaceRectificationVO.getNineType()).eq("code","nineType");
+			// 先查询当前
+			DictBiz one = dictBizService.getOne(queryWrapper);
+			// 查询本身和子集的key
+			List<DictBiz> list = dictBizService.getList("nineType", one.getId());
+			if (list.size()==0){
+				strings.add(taskPlaceRectificationVO.getNineType());
+			}else {
+				strings = list.stream().map(DictBiz::getDictKey).collect(Collectors.toList());
+			}
+		}
+		List<TaskPlaceRectificationExcel> export = baseMapper.export(
+			taskPlaceRectificationVO,
+			regionChildCodesList,
+			isAdministrator,
+			gridCodeList,
+			strings);
 		IDictBizService bean = SpringUtils.getBean(IDictBizService.class);
 		List<DictBiz> nineType = bean.list(Wrappers.<DictBiz>lambdaQuery().eq(DictBiz::getCode, "nineType").eq(DictBiz::getIsDeleted, 0));
 		for (TaskPlaceRectificationExcel taskPlaceRectificationExcel : export) {
 			for (DictBiz dictBiz : nineType) {
 				if (StringUtils.isNotBlank(taskPlaceRectificationExcel.getNineType()) && taskPlaceRectificationExcel.getNineType().equals(dictBiz.getDictKey())) {
-					taskPlaceRectificationExcel.setNineType(dictBiz.getDictValue());
+					if (taskPlaceRectificationExcel.getNineType().contains("10,11,12")) {
+						taskPlaceRectificationExcel.setNineType("小学校(幼儿园、校外培训机构)- " + dictBiz.getDictValue());
+					} else if (taskPlaceRectificationExcel.getNineType().contains("13,14,15")) {
+						taskPlaceRectificationExcel.setNineType("小医院(诊所、养老院)- " + dictBiz.getDictValue());
+					} else {
+						taskPlaceRectificationExcel.setNineType(dictBiz.getDictValue());
+					}
 				}
 			}
 			if (taskPlaceRectificationExcel.getRectificationFlag().equals(1)) {
@@ -177,10 +284,159 @@
 			StringBuilder builder = new StringBuilder("");
 			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationExcel.getPatrolRecordVOList();
 			for (int i = 0; i < patrolRecordVOList.size(); i++) {
-				builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
+				if (patrolRecordVOList.get(i).getState().equals(0)) {
+					builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
+				}
 			}
 			taskPlaceRectificationExcel.setHiddenDanger(builder.toString());
 		}
 		return export;
 	}
+
+
+	@Override
+	public void importPlaceRectifications(List<PlaceRectificationsExcel> data, Boolean isCovered) {
+		IPlaceService bean = SpringUtils.getBean(IPlaceService.class);
+		IUserService bean1 = SpringUtils.getBean(IUserService.class);
+		IDoorplateAddressService bean3 = SpringUtils.getBean(IDoorplateAddressService.class);
+		IPlaceService bean4 = SpringUtils.getBean(IPlaceService.class);
+		IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
+
+		List<String> objects = new ArrayList<>();
+		List<String> objects2 = new ArrayList<>();
+		List<String> objects3 = new ArrayList<>();
+		List<String> objects4 = new ArrayList<>();
+		int a = 0;
+		for (PlaceRectificationsExcel datum : data) {
+			a++;
+			System.out.println(a + "第几个:" + datum.getHouseCode());
+			String phone1 = getPhone(datum.getPrincipals());
+			String name = getName(datum.getPrincipals());
+			datum.setPrincipalPhone(phone1);
+			datum.setPrincipal(name);
+			// 1.判断场所是否存在
+			PlaceEntity one = bean.getOne(Wrappers.<PlaceEntity>lambdaQuery()
+				.eq(PlaceEntity::getHouseCode, datum.getHouseCode())
+				.eq(PlaceEntity::getIsDeleted, 0));
+			if (one == null) {
+				// 新增场所
+				DoorplateAddressEntity doorplateAddressEntity = bean3.getOne(Wrappers.<DoorplateAddressEntity>lambdaQuery()
+					.eq(DoorplateAddressEntity::getAddressCode, datum.getHouseCode()));
+				if (doorplateAddressEntity != null) {
+					objects.add(datum.getHouseCode());
+					continue;
+				} else {
+					PoliceAffairsGridEntity one1 = policeAffairsGridService.getOne(Wrappers.<PoliceAffairsGridEntity>lambdaQuery()
+						.like(PoliceAffairsGridEntity::getCommunityName, datum.getCommunityName()).last("limit 1"));
+					if (one1 == null) {
+						continue;
+					}
+					PlaceVO placeVO = new PlaceVO();
+					placeVO.setJwGridCode(one1.getJwGridCode());
+					placeVO.setHouseCode(datum.getHouseCode());
+					placeVO.setIsNine(1);
+					placeVO.setPrincipal(StringUtils.isBlank(datum.getPrincipal().trim()) ? "demo" : datum.getPrincipal().trim());
+					placeVO.setPrincipalPhone(datum.getPrincipalPhone());
+					placeVO.setRoleName("民警");
+					placeVO.setLocation(datum.getPlaceAddress());
+					placeVO.setSource(2);
+					placeVO.setIsScene(1);
+					placeVO.setIsNine(1);
+					placeVO.setPlaceName(datum.getPlaceName());
+					if (StringUtils.isNotBlank(datum.getNineType())) {
+						placeVO.setNineType(Integer.valueOf(datum.getNineType()));
+					}
+					Boolean aBoolean = bean4.addOrUpdate(placeVO);
+					objects2.add(datum.getHouseCode());
+					continue;
+				}
+			}
+			// 2.判断负责人电话是否存在
+			if (StringUtils.isBlank(datum.getPrincipalPhone())) {
+				objects4.add(datum.getHouseCode());
+				continue;
+			}
+			// 2.判断负责人是否存在
+			User one1 = bean1.getOne(Wrappers.<User>lambdaQuery()
+				.eq(User::getPhone, datum.getPrincipalPhone())
+				.eq(User::getIsDeleted, 0));
+			if (one1 == null) {
+				// 创建
+				User newUser = new User();
+				//如果用户不存在,则新增一个用户
+				newUser.setAccount(datum.getPrincipalPhone().trim());
+				newUser.setPhone(datum.getPrincipalPhone().trim());
+				newUser.setName(StringUtils.isBlank(datum.getPrincipal().trim()) ? "demo" : datum.getPrincipal().trim());
+				newUser.setRealName(StringUtils.isBlank(datum.getPrincipal().trim()) ? "demo" : datum.getPrincipal().trim());
+				// 社区群众部门
+				newUser.setDeptId("1727979636479037441");
+				// 目前暂定居民角色,
+				newUser.setRoleId("1717429059648606209");
+				//默认密码为 123456
+				newUser.setPassword("123456");
+				// 用户新增
+				boolean submit = bean1.submit(newUser);
+				// 3.更新场所负责人
+				one.setPrincipal(newUser.getRealName());
+				one.setPrincipalUserId(newUser.getId());
+				one.setPrincipalPhone(newUser.getPhone());
+				one.setLocation(datum.getAddressName());
+				one.setPlaceName(datum.getPlaceName());
+				one.setIsNine(1);
+				if (StringUtils.isNotBlank(datum.getNineType())) {
+					one.setNineType(Integer.valueOf(datum.getNineType()));
+				}
+				bean.updateById(one);
+			} else {
+				if (one == null) {
+					one = bean.getOne(Wrappers.<PlaceEntity>lambdaQuery()
+						.eq(PlaceEntity::getHouseCode, datum.getHouseCode())
+						.eq(PlaceEntity::getIsDeleted, 0));
+				}
+				// 3.更新场所负责人
+				one.setIsNine(1);
+				if (StringUtils.isNotBlank(datum.getNineType())) {
+					one.setNineType(Integer.valueOf(datum.getNineType()));
+				}
+				one.setPrincipal(one1.getRealName());
+				one.setPrincipalUserId(one1.getId());
+				one.setPrincipalPhone(one1.getPhone());
+				one.setLocation(datum.getAddressName());
+				one.setPlaceName(datum.getPlaceName());
+				bean.updateById(one);
+			}
+		}
+		System.out.println("没有数据:" + JSON.toJSONString(objects));
+		System.out.println("没有数据2:" + JSON.toJSONString(objects2));
+		System.out.println("没有数据3:" + JSON.toJSONString(objects3));
+		System.out.println("没有数据4:" + JSON.toJSONString(objects4));
+	}
+
+
+	private String getPhone(String text) {
+		if (StringUtils.isBlank(text)) {
+			return "";
+		}
+		Pattern pattern = Pattern.compile("1[3-9]\\d{9}");
+		Matcher matcher = pattern.matcher(text);
+
+		while (matcher.find()) {
+			return matcher.group();
+		}
+		return "";
+	}
+
+	private String getName(String text) {
+		if (StringUtils.isBlank(text)) {
+			return "";
+		}
+		// Pattern pattern = Pattern.compile("[\\\\u4e00-\\\\u9fa5]+");
+		// Matcher matcher = pattern.matcher(text);
+
+		String result = text.replaceAll("[^\\u4e00-\\u9fa5]", "");
+		// while (matcher.find()) {
+		// 	return matcher.group();
+		// }
+		return result;
+	}
 }

--
Gitblit v1.9.3