From 77fea47f1fa683f9a0356df3d2328e2bb68b28cf Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 18 Jan 2024 17:56:22 +0800
Subject: [PATCH] 数据过滤调整

---
 src/main/java/org/springblade/modules/task/service/impl/ECallEventServiceImpl.java           |   12 
 src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.java                         |    5 
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java                      |    5 
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.java                        |    3 
 src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.xml                 |   12 +
 src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.java                     |    5 
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java            |    4 
 src/main/java/org/springblade/modules/grid/mapper/GridMapper.java                            |    5 
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml                     |   14 +
 src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java         |   12 
 src/main/java/org/springblade/modules/task/mapper/TaskMapper.java                            |   11 +
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml                           |   14 +
 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java                          |    4 
 src/main/java/org/springblade/modules/grid/service/impl/GridPatrolRecordServiceImpl.java     |    8 
 src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java               |   12 
 src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java                  |    5 
 src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml                          |   14 +
 src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml                             |   14 +
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.java                          |    5 
 src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.java                     |    5 
 src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml                             |   27 ++
 src/main/java/org/springblade/modules/grid/service/impl/GridWorkLogServiceImpl.java          |   13 -
 src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java       |   12 
 src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java             |   14 +
 src/main/java/org/springblade/common/cache/SysCache.java                                     |   52 +++++
 src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java           |   12 
 src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java              |   15 -
 src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java                    |    5 
 src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java                 |   19 -
 src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java         |   12 
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java               |   12 
 src/main/java/org/springblade/modules/system/service/IRegionService.java                     |    7 
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.java                    |    4 
 src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml                      |   14 +
 src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.java                |    4 
 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml                           |   14 +
 src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml                   |   16 +
 src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml                     |   16 +
 src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java                 |    9 
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml                       |   14 +
 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml                         |    6 
 src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.xml                      |   14 +
 src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java |    9 
 src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml             |   14 +
 44 files changed, 355 insertions(+), 148 deletions(-)

diff --git a/src/main/java/org/springblade/common/cache/SysCache.java b/src/main/java/org/springblade/common/cache/SysCache.java
index 1c64e0d..c98fa56 100644
--- a/src/main/java/org/springblade/common/cache/SysCache.java
+++ b/src/main/java/org/springblade/common/cache/SysCache.java
@@ -16,7 +16,9 @@
  */
 package org.springblade.common.cache;
 
+import org.apache.logging.log4j.util.Strings;
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.modules.system.entity.*;
@@ -42,6 +44,8 @@
 	private static final String DEPT_NAMES_ID = "deptNames:id:";
 	private static final String DEPT_CHILD_ID = "deptChild:id:";
 	private static final String DEPT_CHILDIDS_ID = "deptChildIds:id:";
+	private static final String REGION_CHILD_CODE = "regionChild:code:";
+	private static final String REGION_CHILDCODES_CODE = "regionChildCodes:code:";
 	private static final String POST_ID = "post:id:";
 	private static final String POST_NAME = "post:name:";
 	private static final String POST_NAME_FUZZY = "post:nameFuzzy:";
@@ -61,6 +65,7 @@
 	private static final IDeptService deptService;
 	private static final IPostService postService;
 	private static final IRoleService roleService;
+	private static final IRegionService regionService;
 	private static final ITenantService tenantService;
 	private static final ITenantPackageService tenantPackageService;
 
@@ -69,6 +74,7 @@
 		deptService = SpringUtil.getBean(IDeptService.class);
 		postService = SpringUtil.getBean(IPostService.class);
 		roleService = SpringUtil.getBean(IRoleService.class);
+		regionService = SpringUtil.getBean(IRegionService.class);
 		tenantService = SpringUtil.getBean(ITenantService.class);
 		tenantPackageService = SpringUtil.getBean(ITenantPackageService.class);
 	}
@@ -314,4 +320,50 @@
 		return CacheUtil.get(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, () -> tenantPackageService.getById(tenant.getPackageId()), Boolean.FALSE);
 	}
 
+	/**
+	 * 获取下级所有区域code
+	 *
+	 * @return regionCode
+	 */
+	public static List<String> getRegionChildCodesByDeptId(String deptId) {
+		List<String> list = new ArrayList<>();
+		// 查询对应的区域编号code
+		Dept dept = deptService.getById(deptId);
+		if (null!=dept && !Strings.isBlank(dept.getRegionCode()) && !AuthUtil.isAdministrator()){
+			list = getRegionChildCodes(dept.getRegionCode());
+		}
+		return list;
+	}
+
+	/**
+	 * 获取下级所有区域code
+	 *
+	 * @return regionCode
+	 */
+	public static List<String> getRegionChildCodes(String regionCode) {
+		if (regionCode == null) {
+			return null;
+		}
+		List<String> regionCodeList = CacheUtil.get(SYS_CACHE, REGION_CHILDCODES_CODE, regionCode, List.class);
+		if (regionCodeList == null) {
+			regionCodeList = new ArrayList<>();
+			List<Region> deptChild = getRegionChild(regionCode);
+			if (deptChild != null) {
+				List<String> collect = deptChild.stream().map(Region::getCode).collect(Collectors.toList());
+				regionCodeList.addAll(collect);
+			}
+//			regionCodeList.add(regionCode);
+			CacheUtil.put(SYS_CACHE, REGION_CHILDCODES_CODE, regionCode, regionCodeList);
+		}
+		return regionCodeList;
+	}
+
+	/**
+	 * 获取下级区域
+	 * @param regionCode
+	 * @return
+	 */
+	private static List<Region> getRegionChild(String regionCode) {
+		return CacheUtil.get(SYS_CACHE, REGION_CHILD_CODE, regionCode, () -> regionService.getRegionChild(regionCode));
+	}
 }
diff --git a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
index efd3f61..bef8d61 100644
--- a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
+++ b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.java
@@ -38,7 +38,10 @@
 	 * @param community
 	 * @return
 	 */
-	List<CommunityVO> selectCommunityPage(IPage page,@Param("community") CommunityVO community);
+	List<CommunityVO> selectCommunityPage(IPage page,
+										  @Param("community") CommunityVO community,
+										  @Param("regionChildCodesList") List<String> regionChildCodesList,
+										  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 查询个人社区编号集合
diff --git a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
index 7d14b62..852a534 100644
--- a/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
+++ b/src/main/java/org/springblade/modules/community/mapper/CommunityMapper.xml
@@ -38,12 +38,22 @@
         <if test="community.streetCode !=null and community.streetCode!=''">
             and jc.street_code like concat('%',#{community.streetCode},'%')
         </if>
-        <if test="community.regionCode !=null and community.regionCode !=''">
-            and jc.code like concat('%',#{community.regionCode},'%')
-        </if>
         <if test="community.townName !=null and community.townName !=''">
             and br.town_name like concat('%',#{community.townName},'%')
         </if>
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jc.code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jc.code in ('')
+                </otherwise>
+            </choose>
+        </if>
     </select>
 
     <!--自定义分页列表查询-->
diff --git a/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java b/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
index a93bfd4..71bb2db 100644
--- a/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
+++ b/src/main/java/org/springblade/modules/community/service/impl/CommunityServiceImpl.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.community.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.cache.SysCache;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.community.entity.CommunityEntity;
 import org.springblade.modules.community.vo.CommunityVO;
@@ -39,16 +40,11 @@
 @Service
 public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, CommunityEntity> implements ICommunityService {
 
-	@Autowired
-	private IDeptService deptService;
-
 	@Override
 	public IPage<CommunityVO> selectCommunityPage(IPage<CommunityVO> page, CommunityVO community) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			community.setRegionCode(dept.getRegionCode());
-		}
-		return page.setRecords(baseMapper.selectCommunityPage(page, community));
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		return page.setRecords(baseMapper.selectCommunityPage(page, community,regionChildCodesList,isAdministrator));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
index 8a195c9..1eb2bbe 100644
--- a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
+++ b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.java
@@ -40,7 +40,10 @@
 	 * @param district
 	 * @return
 	 */
-	List<DistrictVO> selectDistrictPage(IPage page,@Param("district") DistrictVO district);
+	List<DistrictVO> selectDistrictPage(IPage page,
+										@Param("district") DistrictVO district,
+										@Param("regionChildCodesList") List<String> regionChildCodesList,
+										@Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 获取小区树
diff --git a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
index ebabc2d..baeeace 100644
--- a/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
+++ b/src/main/java/org/springblade/modules/district/mapper/DistrictMapper.xml
@@ -39,8 +39,18 @@
         <if test="district.townStreetName !=null and district.townStreetName !=''">
             and br.town_name like concat('%',#{district.townStreetName},'%')
         </if>
-        <if test="district.regionCode !=null and district.regionCode !=''">
-            and jd.community_code like concat('%',#{district.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jd.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jd.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
     </select>
 
@@ -51,7 +61,7 @@
         parent_code as parentId,
         name,
         remark aoiCode
-        FROM blade_region where district_code = '361102'
+        FROM blade_region where district_code = '361102000000'
         union all
         (
         select
diff --git a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java b/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
index 8c8e791..b25ec07 100644
--- a/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
+++ b/src/main/java/org/springblade/modules/district/service/impl/DistrictServiceImpl.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.district.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.node.TreeIntegerNode;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.common.utils.NodeTreeUtil;
@@ -51,16 +52,11 @@
 	@Autowired
 	private IGridService gridService;
 
-	@Autowired
-	private IDeptService deptService;
-
 	@Override
 	public IPage<DistrictVO> selectDistrictPage(IPage<DistrictVO> page, DistrictVO district) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			district.setRegionCode(dept.getRegionCode());
-		}
-		List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district);
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		List<DistrictVO> districtVOS = baseMapper.selectDistrictPage(page, district,regionChildCodesList,isAdministrator);
 		// 遍历
 		for (DistrictVO districtVO : districtVOS) {
 			// 设置对应的网格名称
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
index 1b944a1..a6476f5 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -45,7 +45,10 @@
 	 * @param grid
 	 * @return
 	 */
-	List<GridVO> selectGridPage(IPage page,@Param("grid") GridVO grid);
+	List<GridVO> selectGridPage(IPage page,
+								@Param("grid") GridVO grid,
+								@Param("regionChildCodesList") List<String> regionChildCodesList,
+								@Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 根据地址编号查询网格数据
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
index c10d128..d859087 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -22,8 +22,18 @@
         <if test="grid.principalPhone!=null and grid.principalPhone!=''">
             and jg.principal_phone like concat('%',#{grid.principalPhone},'%')
         </if>
-        <if test="grid.regionCode != null and grid.regionCode !='' ">
-            and jg.community_code like concat('%',#{grid.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
         <if test="grid.communityName != null and grid.communityName !='' ">
             and br.name like concat('%',#{grid.communityName},'%')
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.java
index 5cbc3ac..26d9479 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.java
@@ -39,7 +39,9 @@
 	 * @return
 	 */
 	List<GridPatrolRecordVO> selectGridPatrolRecordPage(IPage page,
-														@Param("gridPatrolRecord") GridPatrolRecordVO gridPatrolRecord);
+														@Param("gridPatrolRecord") GridPatrolRecordVO gridPatrolRecord,
+														@Param("regionChildCodesList") List<String> regionChildCodesList,
+														@Param("isAdministrator") Integer isAdministrator);
 
 
 }
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.xml
index 1c28ced..52ae597 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridPatrolRecordMapper.xml
@@ -18,10 +18,16 @@
     </resultMap>
 
     <!--自定义分页查询-->
-    <select id="selectGridPatrolRecordPage" resultMap="gridPatrolRecordResultMap">
-        select * from jczz_grid_patrol_record where is_deleted = 0
+    <select id="selectGridPatrolRecordPage" resultType="org.springblade.modules.grid.vo.GridPatrolRecordVO">
+        select jgpr.* from jczz_grid_patrol_record jgpr
+        LEFT JOIN blade_user bu on bu.id = jgpr.create_user and bu.is_deleted = 0
+        LEFT JOIN blade_dept bd on bd.id = bu.dept_id and bd.is_deleted = 0
+        where jgpr.is_deleted = 0
         <if test="gridPatrolRecord.name!=null and gridPatrolRecord.name!=''">
-            and name like concat('%',#{gridPatrolRecord.name},'%')
+            and jgpr.name like concat('%',#{gridPatrolRecord.name},'%')
+        </if>
+        <if test="gridPatrolRecord.context!=null and gridPatrolRecord.context!=''">
+            and jgpr.context like concat('%',#{gridPatrolRecord.context},'%')
         </if>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.java
index ac3f42a..55441ef 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.java
@@ -38,7 +38,10 @@
 	 * @param gridWorkLog
 	 * @return
 	 */
-	List<GridWorkLogVO> selectGridWorkLogPage(IPage page,@Param("gridWorkLog") GridWorkLogVO gridWorkLog);
+	List<GridWorkLogVO> selectGridWorkLogPage(IPage page,
+											  @Param("gridWorkLog") GridWorkLogVO gridWorkLog,
+											  @Param("regionChildCodesList") List<String> regionChildCodesList,
+											  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 走访日志数量统计
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
index be9278d..bbc4929 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridWorkLogMapper.xml
@@ -49,8 +49,18 @@
         <if test="gridWorkLog.neiName!=null and gridWorkLog.neiName!=''">
             and jda.nei_name like concat('%',#{gridWorkLog.neiName},'%')
         </if>
-        <if test="gridWorkLog.regionCode!=null and gridWorkLog.regionCode!=''">
-            and jg.community_code like concat('%',#{gridWorkLog.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.java b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.java
index b8fe153..aecce21 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.java
@@ -40,7 +40,10 @@
 	 * @param gridman
 	 * @return
 	 */
-	List<GridmanVO> selectGridmanPage(IPage page,@Param("gridman") GridmanVO gridman);
+	List<GridmanVO> selectGridmanPage(IPage page,
+									  @Param("gridman") GridmanVO gridman,
+									  @Param("regionChildCodesList") List<String> regionChildCodesList,
+									  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 网格员查询
diff --git a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
index 3c2cc94..0f3c3bb 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridmanMapper.xml
@@ -46,8 +46,18 @@
         <if test="gridman.townName!=null and gridman.townName!=''">
             and br.town_name like concat('%',#{gridman.townName},'%')
         </if>
-        <if test="gridman.regionCode != null and gridman.regionCode !='' ">
-            and jg.community_code like concat('%',#{gridman.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridPatrolRecordServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridPatrolRecordServiceImpl.java
index 1f43703..db06bae 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridPatrolRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridPatrolRecordServiceImpl.java
@@ -17,6 +17,8 @@
 package org.springblade.modules.grid.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.cache.SysCache;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.grid.entity.GridPatrolRecordEntity;
 import org.springblade.modules.grid.vo.GridPatrolRecordVO;
 import org.springblade.modules.grid.mapper.GridPatrolRecordMapper;
@@ -24,6 +26,8 @@
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 网格巡查记录表 服务实现类
@@ -43,7 +47,9 @@
 	 */
 	@Override
 	public IPage<GridPatrolRecordVO> selectGridPatrolRecordPage(IPage<GridPatrolRecordVO> page, GridPatrolRecordVO gridPatrolRecord) {
-		return page.setRecords(baseMapper.selectGridPatrolRecordPage(page, gridPatrolRecord));
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		return page.setRecords(baseMapper.selectGridPatrolRecordPage(page, gridPatrolRecord,regionChildCodesList,isAdministrator));
 	}
 
 
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
index a21006d..bd2e154 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
@@ -65,11 +66,9 @@
 
 	@Override
 	public IPage<GridVO> selectGridPage(IPage<GridVO> page, GridVO grid) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			grid.setRegionCode(dept.getRegionCode());
-		}
-		return page.setRecords(baseMapper.selectGridPage(page, grid));
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		return page.setRecords(baseMapper.selectGridPage(page, grid,regionChildCodesList,isAdministrator));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridWorkLogServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridWorkLogServiceImpl.java
index e33c2aa..ef07937 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridWorkLogServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridWorkLogServiceImpl.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.grid.entity.GridWorkLogEntity;
@@ -45,20 +46,14 @@
 @Service
 public class GridWorkLogServiceImpl extends ServiceImpl<GridWorkLogMapper, GridWorkLogEntity> implements IGridWorkLogService {
 
-
-	@Autowired
-	private IDeptService deptService;
-
 	@Override
 	public IPage<GridWorkLogVO> selectGridWorkLogPage(IPage<GridWorkLogVO> page, GridWorkLogVO gridWorkLog) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			gridWorkLog.setRegionCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		if (!Strings.isBlank(gridWorkLog.getRoleName()) && gridWorkLog.getRoleName().equals("网格员")){
 			gridWorkLog.setGridId(getGridId());
 		}
-		return page.setRecords(baseMapper.selectGridWorkLogPage(page, gridWorkLog));
+		return page.setRecords(baseMapper.selectGridWorkLogPage(page, gridWorkLog,regionChildCodesList,isAdministrator));
 	}
 	/**
 	 * 获取网格员id
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
index e277f60..319c1e0 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.logging.log4j.util.Strings;
 import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
+import org.springblade.common.cache.SysCache;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.grid.entity.GridEntity;
@@ -60,19 +61,11 @@
 	@Autowired
 	private IGridService gridService;
 
-	@Autowired
-	private IRegionService regionService;
-
-	@Autowired
-	private IDeptService deptService;
-
 	@Override
 	public IPage<GridmanVO> selectGridmanPage(IPage<GridmanVO> page, GridmanVO gridman) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			gridman.setRegionCode(dept.getRegionCode());
-		}
-		return page.setRecords(baseMapper.selectGridmanPage(page, gridman));
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		return page.setRecords(baseMapper.selectGridmanPage(page, gridman,regionChildCodesList,isAdministrator));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
index faae9e3..a04b877 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
@@ -44,7 +44,10 @@
 	 * @param house
 	 * @return
 	 */
-	List<HouseVO> selectHousePage(IPage page, HouseVO house);
+	List<HouseVO> selectHousePage(IPage page,
+								  @Param("house") HouseVO house,
+								  @Param("regionChildCodesList") List<String> regionChildCodesList,
+								  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 房屋自定义详情查询
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
index 0ab811e..c52dad2 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -171,8 +171,18 @@
             <if test="house.unit != null  and house.unit != ''">and jh.unit = #{house.unit}</if>
             <if test="house.room != null  and house.room != ''">and jh.room = #{house.room}</if>
             <if test="house.buildingNo != null ">and jh.building_no = #{house.buildingNo}</if>
-            <if test="house.regionCode != null and house.regionCode !='' ">
-                and jg.community_code like concat('%',#{house.regionCode},'%')
+            <if test="isAdministrator==2">
+                <choose>
+                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                        and jg.community_code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and jg.community_code in ('')
+                    </otherwise>
+                </choose>
             </if>
             <if test="house.parentId != null ">
                 and jh.house_code in (
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.java b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.java
index f724c45..c9c4628 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.java
@@ -44,7 +44,9 @@
 	 */
 	List<HouseRentalTenantVO> selectHouseRentalPage(IPage page,
 													@Param("vo") HouseRentalTenantVO houseRental,
-													@Param("list") List<String> list);
+													@Param("list") List<String> list,
+													@Param("regionChildCodesList") List<String> regionChildCodesList,
+													@Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 查询房屋出租情况
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
index 5489c0c..4e624b9 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -126,8 +126,18 @@
         <if test="vo.startTime != null and vo.startTime != '' and vo.endTime != null and vo.endTime != '' ">
             AND jhr.create_time BETWEEN #{vo.startTime} and #{vo.endTime}
         </if>
-        <if test="vo.regionCode!=null and vo.regionCode!=''">
-            and jg.community_code like concat('%',#{vo.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
         <include refid="filterHouseGrid"/>
         order by jhr.create_time desc,jhr.id desc
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java
index b06f2d6..1b504c3 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java
@@ -43,7 +43,10 @@
 	 * @param household
 	 * @return
 	 */
-	List<HouseholdVO> selectHouseholdPage(IPage page,@Param("household") HouseholdVO household);
+	List<HouseholdVO> selectHouseholdPage(IPage page,
+										  @Param("household") HouseholdVO household,
+										  @Param("regionChildCodesList") List<String> regionChildCodesList,
+										  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 获取全部
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
index f3a918f..3d91c55 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
@@ -211,8 +211,18 @@
             <if test="household.startTime != null and household.startTime != '' and household.endTime != null and household.endTime != '' ">
                 AND jh.create_time BETWEEN #{household.startTime} and #{household.endTime}
             </if>
-            <if test="household.regionCode!=null and household.regionCode!=''">
-                and jg.community_code like concat(#{household.regionCode},'%')
+            <if test="isAdministrator==2">
+                <choose>
+                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                        and jg.community_code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and jg.community_code in ('')
+                    </otherwise>
+                </choose>
             </if>
             <if test="household.building!=null and household.building!=''">
                 and jhs.building like concat(#{household.building},'%')
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java
index f5b1151..6c5c0bd 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.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.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.grid.service.IGridService;
@@ -63,9 +64,6 @@
 	@Autowired
 	private IGridService gridService;
 
-	@Autowired
-	private IDeptService deptService;
-
 	/**
 	 * 自定义分页查询
 	 * @param page
@@ -74,10 +72,8 @@
 	 */
 	@Override
 	public IPage<HouseRentalTenantVO> selectHouseRentalPage(IPage<HouseRentalTenantVO> page, HouseRentalTenantVO houseRental) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			houseRental.setRegionCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		List<String> list = new ArrayList<>();
 		if (null!=houseRental.getRoleName() && !houseRental.getRoleName().equals("")){
 			if (houseRental.getRoleName().equals("网格员")){
@@ -90,7 +86,7 @@
 				houseRental.setAuditStatus(2);
 			}
 		}
-		List<HouseRentalTenantVO> houseRentalTenantVOS = baseMapper.selectHouseRentalPage(page, houseRental, list);
+		List<HouseRentalTenantVO> houseRentalTenantVOS = baseMapper.selectHouseRentalPage(page, houseRental, list,regionChildCodesList,isAdministrator);
 		for (HouseRentalTenantVO houseRentalTenantVO : houseRentalTenantVOS) {
 			if(houseRentalTenantVO.getStatus().equals(1)){
 				houseRentalTenantVO.setStatus(30);
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
index 9d99598..172ca6b 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -22,6 +22,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.utils.IdUtils;
 import org.springblade.common.utils.NodeTreeUtil;
 import org.springblade.common.utils.SpringUtils;
@@ -80,9 +81,6 @@
 	private IGridRangeService gridRangeService;
 
 	@Autowired
-	private IDeptService deptService;
-
-	@Autowired
 	private IUserService userService;
 
 	@Autowired
@@ -90,11 +88,9 @@
 
 	@Override
 	public IPage<HouseVO> selectHousePage(IPage<HouseVO> page, HouseVO house) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null != dept) {
-			house.setRegionCode(dept.getRegionCode());
-		}
-		List<HouseVO> houseVOS = baseMapper.selectHousePage(page, house);
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		List<HouseVO> houseVOS = baseMapper.selectHousePage(page, house,regionChildCodesList,isAdministrator);
 		// 遍历查询网格
 //		for (HouseVO houseVO : houseVOS) {
 //			// 设置对应的网格名称
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
index 4a895f8..fea8dc3 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -70,20 +71,15 @@
 	private IUserService userService;
 
 	@Autowired
-	private IDeptService deptService;
-
-	@Autowired
 	private IPlaceService placeService;
 
 	@Override
 	public IPage<HouseholdVO> selectHouseholdPage(IPage<HouseholdVO> page, HouseholdVO household) {
 		StopWatch stopWatch = new StopWatch();
 		stopWatch.start();
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			household.setRegionCode(dept.getRegionCode());
-		}
-		List<HouseholdVO> householdVOS = baseMapper.selectHouseholdPage(page, household);
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		List<HouseholdVO> householdVOS = baseMapper.selectHouseholdPage(page, household,regionChildCodesList,isAdministrator);
 		stopWatch.stop();
 		System.out.println("selectHouseholdPage:" + stopWatch.getTotalTimeMillis());
 		return page.setRecords(householdVOS);
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
index 71537e5..4069571 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -43,7 +43,9 @@
 	 */
 	List<PlaceVO> selectPlacePage(IPage page,
 								  @Param("place") PlaceVO place,
-								  @Param("houseCodeList") List<String> houseCodeList);
+								  @Param("houseCodeList") List<String> houseCodeList,
+								  @Param("regionChildCodesList") List<String> regionChildCodesList,
+								  @Param("isAdministrator") Integer isAdministrator);
 
 	/**
 	 * 查询场所集合信息
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
index 677dbb5..dd8d62d 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -71,8 +71,18 @@
         <if test="place.isPerfect==2">
             and jp.status = 2
         </if>
-        <if test="place.regionCode != null and place.regionCode !='' ">
-            and jg.community_code like concat('%',#{place.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
         order by jp.create_time desc,jp.id desc
     </select>
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index c67ac45..cf2480e 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -21,6 +21,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.node.TreeStringNode;
 import org.springblade.common.utils.IdUtils;
 import org.springblade.core.mp.support.Condition;
@@ -91,9 +92,6 @@
 	private IGridmanService gridmanService;
 
 	@Autowired
-	private IDeptService deptService;
-
-	@Autowired
 	private GridMapper gridMapper;
 
 	@Autowired
@@ -107,10 +105,8 @@
 	 */
 	@Override
 	public IPage<PlaceVO> selectPlacePage(IPage<PlaceVO> page, PlaceVO place) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			place.setRegionCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		List<String> list = new ArrayList<>();
 		if (null!=place.getRoleName() && !place.getRoleName().equals("")){
 			if (place.getRoleName().equals("网格员")){
@@ -118,7 +114,7 @@
 				list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
 			}
 		}
-		List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place, list);
+		List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place, list,regionChildCodesList,isAdministrator);
 		// 遍历
 		for (PlaceVO placeVO : placeVOS) {
 			// 设置对应的网格名称
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
index aabedc1..1da8e49 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java
@@ -63,8 +63,7 @@
 
 	/**
 	 * 树列表
-	 * @param parentCode
-	 * @param regionCode
+	 * @param region
 	 * @return
 	 */
 	@MapKey(value = "id")
diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
index 0f22ccd..5d9b55e 100644
--- a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml
@@ -119,7 +119,7 @@
         name
         FROM blade_region
         where 1=1
-        and district_code = '361102'
+        and district_code = '361102000000'
         <if test="region.parentCode!=null and region.parentCode!=''">
             and parent_code = #{region.parentCode}
         </if>
@@ -134,7 +134,7 @@
         code as id,
         parent_code as parentId,
         name
-        FROM blade_region where district_code = '361102'
+        FROM blade_region where district_code = '361102000000'
         and region_level = 4
         <if test="regionCode!=null  and regionCode!=''">
             and code = #{regionCode}
@@ -144,7 +144,7 @@
         code as id,
         parent_code as parentId,
         name
-        FROM blade_region where district_code = '361102'
+        FROM blade_region where district_code = '361102000000'
         and region_level = 4
         <if test="regionCode!=null  and regionCode!=''">
             and parent_code = #{regionCode}
diff --git a/src/main/java/org/springblade/modules/system/service/IRegionService.java b/src/main/java/org/springblade/modules/system/service/IRegionService.java
index 8416d79..cc25d59 100644
--- a/src/main/java/org/springblade/modules/system/service/IRegionService.java
+++ b/src/main/java/org/springblade/modules/system/service/IRegionService.java
@@ -109,4 +109,11 @@
 	 * 区划数据处理
 	 */
     void regionDataHandle();
+
+	/**
+	 * 查询下级区域
+	 * @param regionCode
+	 * @return
+	 */
+	List<Region> getRegionChild(String regionCode);
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
index 2f33745..f2f3053 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java
@@ -155,8 +155,8 @@
 		String regionCode = null;
 		if (null != dept) {
 			regionCode = dept.getRegionCode();
-			if (StringUtils.isNotBlank(regionCode) && regionCode.equals("3611")) {
-				regionCode = "361102";
+			if (StringUtils.isNotBlank(regionCode) && regionCode.equals("361100000000")) {
+				regionCode = "361102000000";
 			}
 		}
 		return NodeTreeUtil.getStringNodeTree(baseMapper.getTownTree(regionCode));
@@ -214,4 +214,14 @@
 		}
 		region.setAncestors(Strings.join(list, ','));
 	}
+
+	/**
+	 * 查询下级区域
+	 * @param regionCode
+	 * @return
+	 */
+	@Override
+	public List<Region> getRegionChild(String regionCode) {
+		return baseMapper.selectList(Wrappers.<Region>query().lambda().like(Region::getAncestors, regionCode));
+	}
 }
diff --git a/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.java b/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.java
index 0bb7b4d..c44b70f 100644
--- a/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.java
@@ -39,7 +39,10 @@
 	 * @param eCallEvent
 	 * @return
 	 */
-	List<ECallEventVO> selectECallEventPage(IPage page,@Param("eCallEvent") ECallEventVO eCallEvent);
+	List<ECallEventVO> selectECallEventPage(IPage page,
+											@Param("eCallEvent") ECallEventVO eCallEvent,
+											@Param("regionChildCodesList") List<String> regionChildCodesList,
+											@Param("isAdministrator") Integer isAdministrator);
 
 
 }
diff --git a/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.xml b/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.xml
index 2f2b67d..00783bf 100644
--- a/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/EcCallEventMapper.xml
@@ -42,8 +42,18 @@
         <if test="eCallEvent.realName!=null and eCallEvent.realName!=''">
             and jece.real_name like concat('%',#{eCallEvent.realName},'%')
         </if>
-        <if test="eCallEvent.regionCode!=null and eCallEvent.regionCode!=''">
-            and jece.community_code like concat('%',#{eCallEvent.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jece.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jece.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
         <if test="eCallEvent.communityName!=null and eCallEvent.communityName!=''">
             and br.name like concat('%',#{eCallEvent.communityName},'%')
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
index d14893f..fb1a047 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.task.entity.TaskEntity;
 import org.springblade.modules.task.vo.TaskVO;
 
@@ -38,9 +39,15 @@
 	 * @param task
 	 * @return
 	 */
-	List<TaskVO> selectTaskPage(IPage page, TaskVO task);
+	List<TaskVO> selectTaskPage(IPage page,
+								@Param("task") TaskVO task,
+								@Param("regionChildCodesList") List<String> regionChildCodesList,
+								@Param("isAdministrator") Integer isAdministrator);
 
-	List<TaskVO> selectTaskPageBy(IPage page, TaskVO task);
+	List<TaskVO> selectTaskPageBy(IPage page,
+								  @Param("task") TaskVO task,
+								  @Param("regionChildCodesList") List<String> regionChildCodesList,
+								  @Param("isAdministrator") Integer isAdministrator);
 
 	Integer selectTaskCount(TaskVO task);
 
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
index 57d4cb4..96da614 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
@@ -63,8 +63,18 @@
                 LEFT JOIN jczz_gridman jgm ON jg.id = jgm.grid_id
                 WHERE
                 jg.is_deleted = 0
-                <if test="task.communityCode != null and task.communityCode != ''">
-                    and jg.community_code = #{task.communityCode}
+                <if test="isAdministrator==2">
+                    <choose>
+                        <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                            and jg.community_code in
+                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                                #{code}
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            and jg.community_code in ('')
+                        </otherwise>
+                    </choose>
                 </if>
                 AND jgm.user_id = #{task.userId} )
             </if>
@@ -208,6 +218,19 @@
             <if test="task.userId != null and task.userId != ''">
                 AND jc.res_police_user_id = #{task.userId}
             </if>
+            <if test="isAdministrator==2">
+                <choose>
+                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                        and jc.code in
+                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                            #{code}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and jc.code in ('')
+                    </otherwise>
+                </choose>
+            </if>
         </where>
     </select>
 
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
index a8118ba..cc589dd 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.java
@@ -43,7 +43,9 @@
 	 */
 	List<TaskReportForRepairsVO> selectTaskReportForRepairsPage(IPage page,
 																@Param("vo") TaskReportForRepairsVO taskReportForRepairs,
-																@Param("list") List<String> list);
+																@Param("list") List<String> list,
+																@Param("regionChildCodesList") List<String> regionChildCodesList,
+																@Param("isAdministrator") Integer isAdministrator);
 
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
index 87b7aff..264404e 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskReportForRepairsMapper.xml
@@ -187,8 +187,18 @@
         <if test="vo.startTime != null and vo.startTime != '' and vo.endTime != null and vo.endTime != '' ">
             AND jtrfr.create_time BETWEEN #{vo.startTime} and #{vo.endTime}
         </if>
-        <if test="vo.regionCode != null and vo.regionCode !='' ">
-            and jg.community_code like concat(#{vo.regionCode},'%')
+        <if test="isAdministrator==2">
+            <choose>
+                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
+                    and jg.community_code in
+                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
+                        #{code}
+                    </foreach>
+                </when>
+                <otherwise>
+                    and jg.community_code in ('')
+                </otherwise>
+            </choose>
         </if>
         <if test="vo.roleName!=null and vo.roleName!=''">
             <if test="vo.roleName=='网格员'">
diff --git a/src/main/java/org/springblade/modules/task/service/impl/ECallEventServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/ECallEventServiceImpl.java
index 17ce3ed..40b9930 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/ECallEventServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/ECallEventServiceImpl.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.logging.log4j.util.Strings;
+import org.springblade.common.cache.SysCache;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.system.entity.Dept;
 import org.springblade.modules.system.service.IDeptService;
@@ -40,16 +41,11 @@
 @Service
 public class ECallEventServiceImpl extends ServiceImpl<EcCallEventMapper, ECallEventEntity> implements IECallEventService {
 
-	@Autowired
-	private IDeptService deptService;
-
 	@Override
 	public IPage<ECallEventVO> selectECallEventPage(IPage<ECallEventVO> page, ECallEventVO eCallEvent) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null!=dept){
-			eCallEvent.setRegionCode(dept.getRegionCode());
-		}
-		return page.setRecords(baseMapper.selectECallEventPage(page, eCallEvent));
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
+		return page.setRecords(baseMapper.selectECallEventPage(page, eCallEvent,regionChildCodesList,isAdministrator));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
index f0afb84..141dca5 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.task.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.common.cache.SysCache;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.grid.entity.GridmanEntity;
@@ -65,10 +66,8 @@
 	 */
 	@Override
 	public IPage<TaskReportForRepairsVO> selectTaskReportForRepairsPage(IPage<TaskReportForRepairsVO> page, TaskReportForRepairsVO taskReportForRepairs) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null != dept) {
-			taskReportForRepairs.setRegionCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		taskReportForRepairs.setConfirmUserId(AuthUtil.getUserId());
 		List<String> list = new ArrayList<>();
 		if (null != taskReportForRepairs.getRoleName() && !taskReportForRepairs.getRoleName().equals("")) {
@@ -80,7 +79,7 @@
 				taskReportForRepairs.setConfirmUserId(null);
 			}
 		}
-		return page.setRecords(baseMapper.selectTaskReportForRepairsPage(page, taskReportForRepairs, list));
+		return page.setRecords(baseMapper.selectTaskReportForRepairsPage(page, taskReportForRepairs, list,regionChildCodesList,isAdministrator));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
index 4e8a432..2cd0cd4 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -25,6 +25,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import liquibase.pro.packaged.W;
 import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.cache.SysCache;
 import org.springblade.common.constant.DictConstant;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -92,14 +93,12 @@
 
 	@Override
 	public IPage<TaskVO> selectTaskPage(IPage<TaskVO> page, TaskVO task) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null != dept) {
-			task.setCommunityCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		// 民警角色
 		if (AuthUtil.getUserRole().equals("mj")) {
 			task.setUserId(AuthUtil.getUserId());
-			return page.setRecords(baseMapper.selectTaskPageBy(page, task));
+			return page.setRecords(baseMapper.selectTaskPageBy(page, task,regionChildCodesList,isAdministrator));
 		} else {
 			if (AuthUtil.getUserAccount().equals("18879306957")) {
 				task.setCommunityCode("361102003027");
@@ -109,21 +108,19 @@
 				task.setUserId(AuthUtil.getUserId());
 			}
 			// 非民警角色
-			List<TaskVO> taskVOS = baseMapper.selectTaskPage(page, task);
+			List<TaskVO> taskVOS = baseMapper.selectTaskPage(page, task,regionChildCodesList,isAdministrator);
 			return page.setRecords(taskVOS);
 		}
 	}
 
 	@Override
 	public IPage<TaskVO> getBailReportingPage(IPage<TaskVO> page, TaskVO task) {
-		Dept dept = deptService.getById(AuthUtil.getDeptId());
-		if (null != dept) {
-			task.setCommunityCode(dept.getRegionCode());
-		}
+		List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+		Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
 		// 民警角色
 		if (AuthUtil.getUserRole().equals("mj")) {
 			task.setUserId(AuthUtil.getUserId());
-			return page.setRecords(baseMapper.selectTaskPageBy(page, task));
+			return page.setRecords(baseMapper.selectTaskPageBy(page, task,regionChildCodesList,isAdministrator));
 		} else {
 			if (AuthUtil.getUserAccount().equals("18879306957")) {
 				task.setCommunityCode("361102003027");

--
Gitblit v1.9.3