From 01cf8140ee6ea6a98ff12d5ef973b050fbf75bf1 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Sat, 16 Mar 2024 15:23:02 +0800
Subject: [PATCH] 场所添加字段+从业人员添加字段

---
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  143 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 104 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
index f8ef660..96bf11a 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.constant.DictConstant;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.common.param.CommonParamSet;
@@ -63,6 +64,8 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -142,7 +145,7 @@
 					}
 					if (roleName.equals("民警")) {
 						// 查询对应的社区编号
-						communityList = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+						communityList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId());
 					}
 				}
 				// 查询街道
@@ -536,8 +539,7 @@
 			});
 			// 排序
 			sortUnit(tempList, list);
-//			List<FuncNode> sortList = tempList.stream().sorted(Comparator.comparing(X -> X.getUnitName())).collect(Collectors.toList());
-//			list.addAll(sortList);
+
 		}
 	}
 
@@ -564,13 +566,43 @@
 				} else if (funcNode.getUnitName().contains("六")) {
 					funcNode.setSort(6);
 				} else {
-					funcNode.setSort(1);
+					if (!containsNumber(funcNode.getUnitName())) {
+						funcNode.setSort(1);
+					}else {
+						funcNode.setSort(getNumber(funcNode.getUnitName()));
+					}
 				}
 			}
 			// 排序
 			List<FuncNode> sortList = tempList.stream().sorted(Comparator.comparing(X -> X.getSort())).collect(Collectors.toList());
 			list.addAll(sortList);
 		}
+	}
+
+	/**
+	 * 判断是否包含数字
+	 * @param str
+	 * @return
+	 */
+	public static boolean containsNumber(String str) {
+		Pattern pattern = Pattern.compile(".*\\d+.*");
+		Matcher matcher = pattern.matcher(str);
+		return matcher.matches();
+	}
+
+	/**
+	 * 取出字符串中的数字
+	 * @param str
+	 * @return
+	 */
+	public static int getNumber(String str){
+		StringBuilder sb = new StringBuilder();
+		for (char c : str.toCharArray()) {
+			if (Character.isDigit(c)) {
+				sb.append(c);
+			}
+		}
+		return Integer.parseInt(sb.toString());
 	}
 
 	/**
@@ -712,9 +744,9 @@
 	 * @return
 	 */
 	@Override
-	public Object houseDataHandle() {
+	public Object houseDataHandle(String townName) {
 		// 处理房屋数据
-		handleHouseData();
+		handleHouseData(townName);
 
 		return null;
 	}
@@ -722,41 +754,52 @@
 	/**
 	 * 处理房屋数据
 	 */
-	private void handleHouseData() {
-		// 查询所有户室数据(未入库的)
-		List<DoorplateAddressEntity> list = baseMapper.getHouseList();
-		// 需要新增的房屋 list
-		List<HouseEntity> houseList = new ArrayList<>();
-		// 处理户室数据
-		for (DoorplateAddressEntity doorplateAddressEntity : list) {
-			// 查询是否已存在,存在就插入,不存在则插入
-			QueryWrapper<HouseEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("house_code", doorplateAddressEntity.getAddressCode())
-				.eq("is_deleted", 0);
-			HouseEntity one = houseService.getOne(wrapper);
-			if (null == one) {
-				HouseEntity houseEntity = new HouseEntity();
-				houseEntity.setHouseCode(doorplateAddressEntity.getAddressCode());
-				houseEntity.setDistrictCode(doorplateAddressEntity.getAoiCode());
-				houseEntity.setDistrictName(doorplateAddressEntity.getAoiName());
-				houseEntity.setHouseName(doorplateAddressEntity.getAddressName());
-				houseEntity.setFloor(doorplateAddressEntity.getFloor());
-				houseEntity.setBuilding(doorplateAddressEntity.getBuildingName());
-				houseEntity.setUnit(doorplateAddressEntity.getUnitName());
-				houseEntity.setRoom(doorplateAddressEntity.getHouseName());
-				houseEntity.setBuildingNo(doorplateAddressEntity.getBuildingCode());
-				houseEntity.setCreateUser(AuthUtil.getUserId().toString());
-				houseEntity.setCreateTime(new Date());
-				houseEntity.setUpdateUser(AuthUtil.getUserId().toString());
-				houseEntity.setUpdateTime(new Date());
-				// 设置来源 1:地址总表  2:国控采集
-				houseEntity.setSource(1);
-				// 加入集合
-				houseList.add(houseEntity);
+	private void handleHouseData(String townName) {
+		// 查询总数
+		Integer count = baseMapper.getNotHouseListCount(townName);
+		if (count>0) {
+			int num = count/1000;
+			for (int i = 0; i <= num+1; i++) {
+				// 查询所有户室数据(未入库的)
+				List<DoorplateAddressEntity> list = baseMapper.getHouseList(townName);
+				// 需要新增的房屋 list
+				List<HouseEntity> houseList = new ArrayList<>();
+				// 处理户室数据
+				for (DoorplateAddressEntity doorplateAddressEntity : list) {
+					// 查询是否已存在,存在就插入,不存在则插入
+					QueryWrapper<HouseEntity> wrapper = new QueryWrapper<>();
+					wrapper.eq("house_code", doorplateAddressEntity.getAddressCode())
+						.eq("is_deleted", 0);
+					HouseEntity one = houseService.getOne(wrapper);
+					if (null == one) {
+						HouseEntity houseEntity = new HouseEntity();
+						houseEntity.setHouseCode(doorplateAddressEntity.getAddressCode());
+						houseEntity.setDistrictCode(doorplateAddressEntity.getAoiCode());
+						houseEntity.setDistrictName(doorplateAddressEntity.getAoiName());
+						houseEntity.setLng(doorplateAddressEntity.getX());
+						houseEntity.setLat(doorplateAddressEntity.getY());
+						houseEntity.setHouseName(doorplateAddressEntity.getAddressName());
+						houseEntity.setAddress(doorplateAddressEntity.getAddressName());
+						houseEntity.setFloor(doorplateAddressEntity.getFloor());
+						houseEntity.setBuilding(doorplateAddressEntity.getBuildingName());
+						houseEntity.setUnit(doorplateAddressEntity.getUnitName());
+						houseEntity.setRoom(doorplateAddressEntity.getHouseName());
+						houseEntity.setBuildingNo(doorplateAddressEntity.getBuildingCode());
+						houseEntity.setCreateUser(AuthUtil.getUserId().toString());
+						houseEntity.setCreateTime(new Date());
+						houseEntity.setUpdateUser(AuthUtil.getUserId().toString());
+						houseEntity.setUpdateTime(new Date());
+						// 设置来源 1:地址总表  2:国控采集
+						houseEntity.setSource(1);
+						// 加入集合
+						houseList.add(houseEntity);
+					}
+				}
+				// 批量插入
+				houseService.saveBatch(houseList);
 			}
 		}
-		// 批量插入
-		houseService.saveBatch(houseList);
+
 	}
 
 	/**
@@ -790,6 +833,16 @@
 				// 加入集合
 				districtService.save(districtEntity);
 //				aoiList.add(districtEntity);
+			}else {
+				// 更新
+				one.setCommunityCode(addressEntity.getNeiCode());
+				one.setAoiCode(addressEntity.getAoiCode());
+				one.setName(addressEntity.getAoiName());
+				one.setAddress(addressEntity.getAddressName());
+				one.setLng(addressEntity.getX());
+				one.setLat(addressEntity.getY());
+				// 加入集合
+				districtService.updateById(one);
 			}
 		}
 		// 批量插入
@@ -827,6 +880,8 @@
 					placeEntity.setStatus(1);
 					// 默认为非九小场所
 					placeEntity.setIsNine(2);
+					// 默认为现场采集
+					placeEntity.setIsScene(1);
 					// 加入集合
 //					placeList.add(placeEntity);
 					// 保存
@@ -956,4 +1011,14 @@
 			commonParamSet.getIsAdministrator()
 			);
 	}
+
+	/**
+	 * 通过小区id 查询楼栋编码
+	 * @param districtId
+	 * @return
+	 */
+	@Override
+	public 	List<DoorplateAddressVO>  getHouseBuildingCode(String districtId) {
+		return baseMapper.getHouseBuildingCode(districtId);
+	}
 }

--
Gitblit v1.9.3