From 47712cc6cd4d52fcd1dde44e2a400ccbb9c6ae7a Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 12 Apr 2024 15:20:49 +0800
Subject: [PATCH] 民警网格区域查询合并,网格员区域树查询修改,解决不显示网格问题

---
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  190 +++++++++++++++++++++++++++-------------------
 1 files changed, 111 insertions(+), 79 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 60ff672..b7e0012 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
@@ -48,6 +48,7 @@
 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.grid.vo.GridVO;
 import org.springblade.modules.house.entity.HouseEntity;
 import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.service.IHouseRentalService;
@@ -129,53 +130,57 @@
 	/**
 	 * 根据角色获取功能集合数据
 	 *
-	 * @param type     1:查社区  2:查房屋和场所(居民角色)
-	 * @param roleName
+	 * @param type     1:查社区  2:查房屋和场所(居民角色)--2024/04/10  弃用
+	 * @param roleNames --2024/04/10  弃用
 	 * @return
 	 */
 	@Override
-	public Object getFuncList(Integer type, String roleName) {
+	public Object getFuncList(Integer type, String roleNames) {
 		HouseParam houseParam = new HouseParam();
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		List<String> stringList = new ArrayList<>();
 		List<String> communityList = new ArrayList<>();
 		List<TreeStringNode> list = new ArrayList<>();
-		if (null != type) {
-			// 如果是网格管理员,系统管理员,民警
-			if (type == 1) {
-				if (null != roleName && !roleName.equals("")) {
-					houseParam.setRoleName(roleName);
-					if (roleName.equals("网格员") && !userId.equals("1726859808689696770")) {
-						// 查询对应的网格code
-						stringList = gridService.getGridListByUserId(AuthUtil.getUserId());
-					}
-					if (roleName.equals("民警")) {
-						// 查询对应的社区编号
-						communityList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
-					}
-				}
-				// 查询街道
-				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
-				// 查询社区
-				List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam, stringList, communityList);
+		// 获取请求头中的角色别名
+		String roleName = SpringUtils.getRequestParam("roleName");
+		// 如果是网格管理员,系统管理员,民警,无诈场所采集
+		if (roleName.equals("admin") ||
+			roleName.equals("wzcj") ||
+			roleName.equals("wgy") ||
+			roleName.equals("mj"))
+		{
+			houseParam.setRoleName(roleName);
+			if ((roleName.equals("wgy") || roleName.equals("wzcj"))
+				&& !userId.equals("1726859808689696770")) {
+				// 查询对应的网格code
+//				stringList = gridService.getGridListByUserId(AuthUtil.getUserId());
+				stringList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
+			}
+			if (roleName.equals("mj")) {
+				// 查询对应的社区编号
+				communityList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
+			}
+			// 查询街道
+			List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
+			// 查询社区
+			List<TreeStringNode> neiList = baseMapper.getRegionListByGroupNei(houseParam, stringList, communityList);
+			// 遍历
+			for (TreeStringNode treeNode : townList) {
 				// 遍历
-				for (TreeStringNode treeNode : townList) {
-					// 遍历
-					for (TreeStringNode node : neiList) {
-						if (treeNode.getId().equals(node.getParentId())) {
-							node.setHasChildren(false);
-							treeNode.getChildren().add(node);
-						}
+				for (TreeStringNode node : neiList) {
+					if (treeNode.getId().equals(node.getParentId())) {
+						node.setHasChildren(false);
+						treeNode.getChildren().add(node);
 					}
 				}
-				// 查询区域数据
-				return townList;
 			}
-			// 如果是居民
-			if (type == 2 || type == 3) {
-				return getInhabitantInfo(list);
-			}
+			// 查询区域数据
+			return townList;
+		}
+		// 如果是居民
+		if (roleName.equals("inhabitant")) {
+			return getInhabitantInfo(list);
 		}
 		return list;
 	}
@@ -225,7 +230,7 @@
 			list.add(houseNode);
 
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -243,7 +248,7 @@
 		}
 		if (placeNodeList.size() > 0) {
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -263,23 +268,27 @@
 	public Object getHousesList(HouseParam houseParam) {
 		List<TreeStringNode> list = new ArrayList<>();
 		Map<String, Object> map = new HashMap<>(2);
+		String roleName = SpringUtils.getRequestParam("roleName");
+		if (!Strings.isBlank(roleName)){
+			houseParam.setRoleName(roleName);
+		}
 		// 获取网格员对应的地址编号集合
-		List<String> stringList = getHouseCodeList(houseParam);
+		List<String> addressCodeList = getHouseCodeList(houseParam);
 		List<String> communityCodeList = getCommunityCodeList(houseParam);
 		// 获取网格员对应的网格信息
 		getGridInfoByGridman(houseParam);
 		// 查小区,场所
 		if (houseParam.getType() == 1) {
 			// 根据社区名称查询小区集合
-			list = baseMapper.getDistrictList(houseParam, stringList, communityCodeList);
+			list = baseMapper.getDistrictList(houseParam, addressCodeList, communityCodeList);
 		}
 		// 查楼栋,街路巷
 		if (houseParam.getType() == 2) {
-			return getBuildLevelData(houseParam, map);
+			return getBuildLevelData(houseParam,addressCodeList, map);
 		}
 		// 查户室
 		if (houseParam.getType() == 3) {
-			return getHouseLevelData(houseParam, map);
+			return getHouseLevelData(houseParam,addressCodeList, map);
 		}
 		return list;
 	}
@@ -290,22 +299,19 @@
 	 * @param houseParam
 	 */
 	private void getGridInfoByGridman(HouseParam houseParam) {
-		if (houseParam.getRoleName().equals("网格员")) {
-			QueryWrapper<GridmanEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("is_deleted", 0)
-				.eq("user_id", AuthUtil.getUserId());
-			List<GridmanEntity> list = gridmanService.list(wrapper);
-			if (list.size() > 0) {
-				GridmanEntity gridmanEntity = list.get(0);
-				GridEntity gridEntity = gridService.getById(gridmanEntity.getGridId());
-				// 查询居委会
-				Region region = regionService.getById(gridEntity.getCommunityCode());
-				if (null != region) {
-					houseParam.setCommunityName(region.getName());
-				}
-				if (!Strings.isBlank(gridEntity.getGridName())) {
-					houseParam.setGridName(gridEntity.getGridName());
-				}
+		if (houseParam.getRoleName().equals("wgy")) {
+			if (Strings.isBlank(houseParam.getRoleName())){
+				houseParam.setRoleName(SpringUtils.getRequestParam("roleName"));
+			}
+			// 查询网格员的网格编号集合
+			List<String> gridCodeList
+				= SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
+			String communityCode = SpringUtils.getRequestParam("communityCode");
+			List<GridVO> list = gridService.getGridListByComAndList(communityCode,gridCodeList);
+			if (list.size()>0){
+				GridVO grid = list.get(0);
+				houseParam.setCommunityName(grid.getCommunityName());
+				houseParam.setGridName(grid.getGridName());
 			}
 		}
 	}
@@ -317,8 +323,7 @@
 	 * @param map
 	 * @return
 	 */
-	private Map<String, Object> getHouseLevelData(HouseParam houseParam, Map<String, Object> map) {
-		List<String> stringList = getHouseCodeList(houseParam);
+	private Map<String, Object> getHouseLevelData(HouseParam houseParam, List<String> stringList,Map<String, Object> map) {
 		// 判断地址类型
 		if (houseParam.getAddressType() == 1) {
 			List<FuncNode> aoiList = new ArrayList<>();
@@ -391,7 +396,7 @@
 	 * @param map
 	 * @return
 	 */
-	private Object getBuildLevelData(HouseParam houseParam, Map<String, Object> map) {
+	private Object getBuildLevelData(HouseParam houseParam,List<String> stringList, Map<String, Object> map) {
 		if (houseParam.getAddressType() == 4) {
 			// 获取网格员对应的网格信息
 			getGridInfoByGridman(houseParam);
@@ -402,7 +407,6 @@
 			// 返回
 			return map;
 		} else {
-			List<String> stringList = getHouseCodeList(houseParam);
 			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
 			if (houseParam.getCode().length() > 12) {
 				List<TreeStringNode> aoiList = new ArrayList<>();
@@ -621,9 +625,15 @@
 	 * @return
 	 */
 	@Override
-	public Object getHouseRentInfo(String code) {
-		// 先查询门牌信息
-		DoorplateAddressVO doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
+	public Object getHouseRentInfo(String code,Long houseId) {
+		DoorplateAddressVO doorplateAddressDetailVO = new DoorplateAddressVO();
+		if (Strings.isBlank(code) && null!=houseId) {
+			// 先查询门牌信息
+			doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByHouseId(houseId);
+		}else {
+			// 先查询门牌信息
+			doorplateAddressDetailVO = baseMapper.getDoorplateAddressDetailByCode(code);
+		}
 		if (null != doorplateAddressDetailVO) {
 			// 查询房屋出租情况
 			List<HouseRentalVO> houseRentalVOS = houseRentalService.getHouseRentalListByCode(code);
@@ -704,6 +714,10 @@
 	 */
 	@Override
 	public List<DoorplateAddressVOTree> getHouseTree(HouseParam houseParam) {
+		String roleName = SpringUtils.getRequestParam("roleName");
+		if (!Strings.isBlank(roleName)){
+			houseParam.setRoleName(roleName);
+		}
 		List<String> stringList = getHouseCodeList(houseParam);
 		// 根据社区居委会编号获取对应的小区/楼栋/单元/户室
 		return NodeTreeUtil.getAddressNodeTree(baseMapper.getHouseTree(houseParam, stringList));
@@ -716,16 +730,22 @@
 	 * @return
 	 */
 	private List<String> getHouseCodeList(HouseParam houseParam) {
-		List<String> stringList = new ArrayList<>();
+		List<String> addressCodeList = new ArrayList<>();
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
-			if (houseParam.getRoleName().equals("网格员") && !userId.equals("1726859808689696770")) {
+			if ((houseParam.getRoleName().equals("wgy") || houseParam.getRoleName().equals("wzcj"))
+				&& !userId.equals("1726859808689696770")) {
+				// 先取对应网格员对应的网格编号集合
+				List<String> gridCodeList
+					= SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
 				// 查询对应的房屋地址code
-				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
+//				addressCodeList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),null);
+				addressCodeList =
+					gridService.getAddressCodeListByGridCodeList(SpringUtils.getRequestParam("communityCode"),gridCodeList);
 			}
 		}
-		return stringList;
+		return addressCodeList;
 	}
 
 	/**
@@ -739,9 +759,9 @@
 		String userId = AuthUtil.getUserId().toString();
 		houseParam.setUserId(userId);
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
-			if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
+			if (houseParam.getRoleName().equals("mj") && !userId.equals("1726859808689696770")) {
 				// 查询对应社区编号集合
-				stringList = SysCache.getPoliceRegionChildCodesByDeptId(AuthUtil.getDeptId(),null);
+				stringList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,houseParam.getRoleName());
 			}
 		}
 		return stringList;
@@ -973,21 +993,33 @@
 		if (null != doorplateAddressVO) {
 			// 不限制
 			doorplateAddressVO.setIsJur(1);
-			if (!Strings.isBlank(doorplateAddress.getRoleName())) {
+			String roleName = SpringUtils.getRequestParam("roleName");
+			if (!Strings.isBlank(roleName)) {
 				// 判断是否有权限
-				if (doorplateAddress.getRoleName().equals("网格员")) {
-					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
-					if (list.size() == 0) {
-						// 无权限
-						doorplateAddressVO.setIsJur(2);
-					} else {
-						doorplateAddressVO.setIsJur(1);
+				if (roleName.equals("wgy") || roleName.equals("wzcj")) {
+					// 无权限
+					doorplateAddressVO.setIsJur(2);
+//					list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId(),doorplateAddress.getAddressCode());
+					list = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
+					if (null != list && list.size() > 0) {
+						List<String> arrayList = new ArrayList<>();
+						for (String gridCode : list) {
+							if (gridCode.length()>12) {
+								arrayList.add(gridCode.substring(0, gridCode.length() - 2));
+							}else {
+								arrayList.add(gridCode);
+							}
+						}
+						boolean contains = arrayList.contains(doorplateAddressVO.getNeiCode());
+						if (contains) {
+							doorplateAddressVO.setIsJur(1);
+						}
 					}
-				} else if (doorplateAddress.getRoleName().equals("民警")) {
+				}else if (roleName.equals("mj")) {
 					// 无权限
 					doorplateAddressVO.setIsJur(2);
 					// 查询对应的社区code
-					list = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+					list = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),null,roleName);
 					if (null != list && list.size() > 0) {
 						boolean contains = list.contains(doorplateAddressVO.getNeiCode());
 						if (contains) {

--
Gitblit v1.9.3