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 |  159 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 156 insertions(+), 3 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 dcc4d94..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,28 +16,39 @@
  */
 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;
@@ -50,6 +61,8 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * 场所整改任务表 服务实现类
@@ -93,7 +106,7 @@
 			StringBuilder builder = new StringBuilder("");
 			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationVO.getPatrolRecordVOList();
 			for (int i = 0; i < patrolRecordVOList.size(); i++) {
-				if(patrolRecordVOList.get(i).getState().equals(0)){
+				if (patrolRecordVOList.get(i).getState().equals(0)) {
 					builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
 				}
 			}
@@ -130,7 +143,7 @@
 			.set(TaskEntity::getRemark, taskPlaceRectification.getReasonFailure())
 			.eq(TaskEntity::getId, taskPlaceRectification.getTaskId()));
 		// 更新任务详情状态
-		if(taskPlaceRectification.getStatus().equals(2)){
+		if (taskPlaceRectification.getStatus().equals(2)) {
 			taskPlaceRectification.setRectificationFlag(2);
 		}
 		boolean b1 = updateById(taskPlaceRectification);
@@ -188,7 +201,7 @@
 			StringBuilder builder = new StringBuilder("");
 			List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationExcel.getPatrolRecordVOList();
 			for (int i = 0; i < patrolRecordVOList.size(); i++) {
-				if(patrolRecordVOList.get(i).getState().equals(0)){
+				if (patrolRecordVOList.get(i).getState().equals(0)) {
 					builder.append(i + 1).append(" : ").append(patrolRecordVOList.get(i).getItemsName()).append("; ");
 				}
 			}
@@ -196,4 +209,144 @@
 		}
 		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