From 9217ec61bae4e02be35f26c84b4993d3d9f97d86 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 05 Feb 2024 17:34:24 +0800
Subject: [PATCH] 消防自查优化

---
 src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 215 insertions(+), 8 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 a406943..675e795 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,34 +16,53 @@
  */
 package org.springblade.modules.taskPlaceRectification.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.lettuce.core.ScriptOutputType;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 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.doorplateAddress.entity.DoorplateAddressEntity;
+import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService;
+import org.springblade.modules.house.excel.HouseExcel;
 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.entity.PlaceCheckEntity;
+import org.springblade.modules.place.entity.PlaceEntity;
+import org.springblade.modules.place.excel.NinePlaceExcel;
+import org.springblade.modules.place.service.IPlaceCheckService;
+import org.springblade.modules.place.service.IPlaceService;
 import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.system.entity.Region;
+import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IDeptService;
 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.TaskPlaceRectificationsVO;
 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;
 
 /**
  * 场所整改任务表 服务实现类
@@ -79,15 +98,17 @@
 	 */
 	@Override
 	public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationList(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationDTO taskPlaceRectificationDTO) {
-		// 数据过滤
+		// 数据过滤 todo
 		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
-		Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
+		Integer isAdministrator = AuthUtil.isAdministrator() == true ? 1 : 2;
 		List<TaskPlaceRectificationVO> taskPlaceRectificationVOS = baseMapper.selectTaskPlaceRectificationList(page, taskPlaceRectificationDTO, regionChildCodesList, isAdministrator);
 		for (TaskPlaceRectificationVO taskPlaceRectificationVO : taskPlaceRectificationVOS) {
 			StringBuilder builder = new StringBuilder("");
 			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationVO.getPatrolRecordVOList();
-			for (PatrolRecordVO patrolRecordVO : patrolRecordVOList) {
-				builder.append(patrolRecordVO.getItemsName()).append(";");
+			for (int i = 0; i < patrolRecordVOList.size(); i++) {
+				if (patrolRecordVOList.get(i).getState().equals(0)) {
+					builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
+				}
 			}
 			taskPlaceRectificationVO.setHiddenDanger(builder.toString());
 		}
@@ -119,16 +140,20 @@
 		ITaskService bean = SpringUtils.getBean(ITaskService.class);
 		boolean update = bean.update(Wrappers.<TaskEntity>lambdaUpdate()
 			.set(TaskEntity::getStatus, taskPlaceRectification.getStatus())
-			.set(TaskEntity::getRemark,taskPlaceRectification.getReasonFailure())
+			.set(TaskEntity::getRemark, taskPlaceRectification.getReasonFailure())
 			.eq(TaskEntity::getId, taskPlaceRectification.getTaskId()));
 		// 更新任务详情状态
+		if (taskPlaceRectification.getStatus().equals(2)) {
+			taskPlaceRectification.setRectificationFlag(2);
+		}
 		boolean b1 = updateById(taskPlaceRectification);
 		return b1;
 	}
 
 	@Override
-	public Object rectificationStatistics() {
-		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+	public Object rectificationStatistics(TaskPlaceRectificationVO taskPlaceRectification) {
+		// todo
+		List<String> regionChildCodesList = new ArrayList<>();//SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
 		Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
 		// 统计九小场所类型隐患统计
 		IRegionService bean = SpringUtils.getBean(IRegionService.class);
@@ -137,9 +162,191 @@
 			.eq(Region::getRegionLevel, 4));
 		List<RegionVO> copy = BeanUtil.copy(list, RegionVO.class);
 		for (RegionVO regionVO : copy) {
-			List<Map<String, Object>> nineTypeStatistics = baseMapper.getNineTypeStatistics(regionVO.getCode(),regionChildCodesList, isAdministrator);
+			List<Map<String, Object>> nineTypeStatistics = baseMapper.getNineTypeStatistics(regionVO.getCode(), regionChildCodesList, isAdministrator, taskPlaceRectification);
 			regionVO.setNineTypeStatistics(nineTypeStatistics);
 		}
 		return copy;
 	}
+
+	@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);
+		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())) {
+					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)) {
+				taskPlaceRectificationExcel.setRectificationFlag("否");
+			} else {
+				taskPlaceRectificationExcel.setRectificationFlag("是");
+			}
+			if (taskPlaceRectificationExcel.getRectificationNoticeFlag().equals(1)) {
+				taskPlaceRectificationExcel.setRectificationNoticeFlag("否");
+			} else {
+				taskPlaceRectificationExcel.setRectificationNoticeFlag("是");
+			}
+			StringBuilder builder = new StringBuilder("");
+			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationExcel.getPatrolRecordVOList();
+			for (int i = 0; i < patrolRecordVOList.size(); i++) {
+				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);
+		IPlaceCheckService bean2 = SpringUtils.getBean(IPlaceCheckService.class);
+		IDoorplateAddressService bean3 = SpringUtils.getBean(IDoorplateAddressService.class);
+		List<String> objects = new ArrayList<>();
+		for (PlaceRectificationsExcel datum : data) {
+			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 one1 = bean3.getOne(Wrappers.<DoorplateAddressEntity>lambdaQuery()
+					.eq(DoorplateAddressEntity::getAddressCode, datum.getHouseCode()));
+				if (one1 == null) {
+					objects.add(datum.getHouseCode());
+				}
+				PlaceCheckEntity placeCheckEntity = new PlaceCheckEntity();
+				String police = datum.getPolice();
+				String phone = getPhone(police);
+				if (StringUtils.isNotBlank(phone)) {
+					User one3 = bean1.getOne(Wrappers.<User>lambdaQuery()
+						.eq(User::getPhone, phone)
+						.eq(User::getIsDeleted, 0));
+					if (one3 != null) {
+						placeCheckEntity.setCreateUser(one3.getId());
+					}
+				}
+				// 4.保存检查表
+				placeCheckEntity.setHouseCode(datum.getHouseCode());
+				bean2.save(placeCheckEntity);
+				continue;
+			}
+			// 2.判断负责人电话是否存在
+			if (StringUtils.isBlank(datum.getPrincipalPhone())) {
+				one.setLocation(datum.getAddressName());
+				one.setPlaceName(datum.getPlaceName());
+				bean.updateById(one);
+
+				PlaceCheckEntity placeCheckEntity = new PlaceCheckEntity();
+				String police = datum.getPolice();
+				String phone = getPhone(police);
+				if (StringUtils.isNotBlank(phone)) {
+					User one3 = bean1.getOne(Wrappers.<User>lambdaQuery()
+						.eq(User::getPhone, phone)
+						.eq(User::getIsDeleted, 0));
+					if (one3 != null) {
+						placeCheckEntity.setCreateUser(one3.getId());
+					}
+				}
+				// 4.保存检查表
+				placeCheckEntity.setHouseCode(datum.getHouseCode());
+				bean2.save(placeCheckEntity);
+				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(datum.getPrincipal().trim());
+				newUser.setRealName(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());
+				bean.updateById(one);
+			} else {
+				// 3.更新场所负责人
+				one.setPrincipal(one1.getRealName());
+				one.setPrincipalUserId(one1.getId());
+				one.setPrincipalPhone(one1.getPhone());
+				one.setLocation(datum.getAddressName());
+				one.setPlaceName(datum.getPlaceName());
+				bean.updateById(one);
+			}
+			PlaceCheckEntity placeCheckEntity = new PlaceCheckEntity();
+			String police = datum.getPolice();
+			String phone = getPhone(police);
+			if (StringUtils.isNotBlank(phone)) {
+				User one3 = bean1.getOne(Wrappers.<User>lambdaQuery()
+					.eq(User::getPhone, phone)
+					.eq(User::getIsDeleted, 0));
+				if (one3 != null) {
+					placeCheckEntity.setCreateUser(one3.getId());
+				}
+			}
+			// 4.保存检查表
+			placeCheckEntity.setHouseCode(datum.getHouseCode());
+			bean2.save(placeCheckEntity);
+		}
+		System.out.println("没有数据:" + JSON.toJSONString(objects));
+	}
+
+
+	private String getPhone(String text) {
+		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) {
+		// 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