From a3dd50443d28d587f49a041b3b1286fbaa5c2ef4 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 12 Apr 2024 09:55:57 +0800
Subject: [PATCH] 网格员查询调整

---
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  109 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 68 insertions(+), 41 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 f6bc461..f4b356b 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;
@@ -247,7 +248,7 @@
 		}
 		if (placeNodeList.size() > 0) {
 			TreeStringNode placeNode = new TreeStringNode();
-			placeNode.setName("场所");
+			placeNode.setName("经营场所");
 			placeNode.setId("2");
 			placeNode.setHasChildren(true);
 			placeNode.setChildren(placeNodeList);
@@ -267,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;
 	}
@@ -294,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());
 			}
 		}
 	}
@@ -321,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<>();
@@ -395,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);
@@ -406,7 +407,6 @@
 			// 返回
 			return map;
 		} else {
-			List<String> stringList = getHouseCodeList(houseParam);
 			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
 			if (houseParam.getCode().length() > 12) {
 				List<TreeStringNode> aoiList = new ArrayList<>();
@@ -625,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);
@@ -708,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));
@@ -720,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;
 	}
 
 	/**
@@ -743,7 +759,7 @@
 		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);
 			}
@@ -980,15 +996,26 @@
 			String roleName = SpringUtils.getRequestParam("roleName");
 			if (!Strings.isBlank(roleName)) {
 				// 判断是否有权限
-				if (roleName.equals("wgy")) {
-					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 (roleName.equals("mj")) {
+				}else if (roleName.equals("mj")) {
 					// 无权限
 					doorplateAddressVO.setIsJur(2);
 					// 查询对应的社区code

--
Gitblit v1.9.3