From 9f8f9d13c42ca8cdccbf351069082a5fdccef2e4 Mon Sep 17 00:00:00 2001
From: lin <sbla5888@163.com>
Date: Mon, 25 Mar 2024 17:30:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 110 insertions(+), 6 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 3c5fc89..cf4145e 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
@@ -29,6 +29,7 @@
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.backblast.entity.BackblastPubRecordEntity;
 import org.springblade.modules.category.dto.CategoryDTO;
 import org.springblade.modules.category.service.ICategoryService;
 import org.springblade.modules.community.entity.CommunityEntity;
@@ -42,7 +43,9 @@
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
 import org.springblade.modules.doorplateAddress.vo.FuncNode;
 import org.springblade.modules.grid.entity.GridEntity;
+import org.springblade.modules.grid.entity.GridRangeEntity;
 import org.springblade.modules.grid.entity.GridmanEntity;
+import org.springblade.modules.grid.service.IGridRangeService;
 import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.grid.service.IGridmanService;
 import org.springblade.modules.house.entity.HouseEntity;
@@ -59,6 +62,7 @@
 import org.springblade.modules.place.service.IPlaceExtService;
 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.Region;
 import org.springblade.modules.system.service.IRegionService;
@@ -718,7 +722,7 @@
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
 			if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
 				// 查询对应的房屋地址code
-				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
 			}
 		}
 		return stringList;
@@ -736,8 +740,8 @@
 		houseParam.setUserId(userId);
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
 			if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
-				// 查询对应的房屋地址code
-				stringList = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+				// 查询对应社区编号集合
+				stringList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId());
 			}
 		}
 		return stringList;
@@ -796,6 +800,21 @@
 						houseEntity.setUpdateTime(new Date());
 						// 设置来源 1:地址总表  2:国控采集
 						houseEntity.setSource(1);
+						// 根据位置设置网格,警格编号
+						String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() + ")'";
+						//点坐标解析网格
+						List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+						if (gridEntityList.size()>0){
+							GridEntity gridEntity = gridEntityList.get(0);
+							houseEntity.setGridId(gridEntity.getId());
+							houseEntity.setGridCode(gridEntity.getGridCode());
+						}
+						//点坐标解析警格
+						List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+						if (policeAffairsGridEntityList.size()>0){
+							PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+							houseEntity.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+						}
 						// 加入集合
 						houseList.add(houseEntity);
 					}
@@ -887,6 +906,21 @@
 				placeEntity.setIsNine(2);
 				// 默认为现场采集
 				placeEntity.setIsScene(1);
+				// 根据位置设置网格,警格编号
+				String point = "'POINT(" + addressEntity.getX() + " " + addressEntity.getY() + ")'";
+				//点坐标解析网格
+				List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+				if (gridEntityList.size()>0){
+					GridEntity gridEntity = gridEntityList.get(0);
+					placeEntity.setGridId(gridEntity.getId());
+					placeEntity.setGridCode(gridEntity.getGridCode());
+				}
+				//点坐标解析警格
+				List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+				if (policeAffairsGridEntityList.size()>0){
+					PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+					placeEntity.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+				}
 				// 加入集合
 //					placeList.add(placeEntity);
 				// 保存
@@ -942,9 +976,8 @@
 			if (!Strings.isBlank(doorplateAddress.getRoleName())) {
 				// 判断是否有权限
 				if (doorplateAddress.getRoleName().equals("网格员")) {
-					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
-					boolean contains = list.contains(doorplateAddress.getAddressCode());
-					if (list.size() == 0 || !contains) {
+					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
+					if (list.size() == 0) {
 						// 无权限
 						doorplateAddressVO.setIsJur(2);
 					} else {
@@ -1037,4 +1070,75 @@
 	public List<DoorplateAddressVO> getHouseBuildingCode(String districtId) {
 		return baseMapper.getHouseBuildingCode(districtId);
 	}
+
+	/**
+	 * 网格范围数据处理
+	 * @return
+	 */
+	@Override
+	public boolean gridRangeDataHandle(String townName,String communityName) {
+		// 查询未匹配的网格范围地址信息
+		// 查询总数
+		Integer count = baseMapper.getNotBindGridRangeDoorListCount(townName,communityName);
+		if (count > 0) {
+			IGridRangeService gridRangeService = SpringUtils.getBean(IGridRangeService.class);
+			int num = count / 1000;
+			for (int i = 0; i <= num + 1; i++) {
+				// 查询所有未匹配的网格范围地址数据
+				List<DoorplateAddressEntity> list = baseMapper.getNotBindGridRangeDoorList(townName,communityName);
+				// 需要新增的网格范围 list
+				List<GridRangeEntity> gridRangeEntityList = new ArrayList<>();
+				// 处理户室数据
+				for (DoorplateAddressEntity doorplateAddressEntity : list) {
+					// 查询是否已存在,存在就插入,不存在则插入
+					QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
+					wrapper.eq("house_code", doorplateAddressEntity.getAddressCode());
+					GridRangeEntity one = gridRangeService.getOne(wrapper);
+					if (null == one) {
+						// 设置网格
+						String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() + ")'";
+						//点坐标解析网格
+						List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+						if (gridEntityList.size()>0){
+							GridRangeEntity gridRangeEntity = new GridRangeEntity();
+							gridRangeEntity.setHouseCode(doorplateAddressEntity.getAddressCode());
+							gridRangeEntity.setDistrictCode(doorplateAddressEntity.getAoiCode());
+							gridRangeEntity.setBuilding(doorplateAddressEntity.getBuildingCode());
+							GridEntity gridEntity = gridEntityList.get(0);
+							gridRangeEntity.setGridId(gridEntity.getId());
+							gridRangeEntity.setGridCode(gridEntity.getGridCode());
+							// 加入集合
+							gridRangeEntityList.add(gridRangeEntity);
+						}
+					}
+				}
+				// 批量插入
+				gridRangeService.saveBatch(gridRangeEntityList);
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * 设置警格网格信息
+	 * @param doorplateAddressEntity
+	 */
+	public void setGridInfo(DoorplateAddressEntity doorplateAddressEntity,GridRangeEntity gridRangeEntity) {
+		// 根据位置设置网格,警格编号
+//		IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
+		String point = "'POINT(" + doorplateAddressEntity.getX() + " " + doorplateAddressEntity.getY() + ")'";
+		//点坐标解析网格
+		List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+		if (gridEntityList.size()>0){
+			GridEntity gridEntity = gridEntityList.get(0);
+			gridRangeEntity.setGridId(gridEntity.getId());
+			gridRangeEntity.setGridCode(gridEntity.getGridCode());
+		}
+//		//点坐标解析警格
+//		List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+//		if (policeAffairsGridEntityList.size()>0){
+//			PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+//			backblastPubRecord.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+//		}
+	}
 }

--
Gitblit v1.9.3