From 180905ee0e0fd86ff59d7aae19fd49d8618bd95b Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Tue, 06 Feb 2024 08:51:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   97 ++++++++++++++++++++++++++++----
 src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java                         |   10 +++
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java                       |   10 ++
 src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml                                     |    8 ++
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |   30 +++++----
 src/main/java/org/springblade/modules/grid/mapper/GridMapper.java                                    |    7 ++
 src/main/java/org/springblade/modules/grid/service/IGridService.java                                 |    7 ++
 7 files changed, 141 insertions(+), 28 deletions(-)

diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index 31c77b0..4208aa7 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -21,6 +21,8 @@
         </if>
     </sql>
 
+
+
     <!--过滤社区数据-->
     <sql id="filterCommunity">
         <if test="houseParam.roleName!=null and houseParam.roleName!=''">
@@ -39,6 +41,7 @@
             </if>
         </if>
     </sql>
+
 
     <!--门牌地址详情查询-->
     <resultMap id="doorplateAddressDetailMap" type="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO"
@@ -68,27 +71,95 @@
 
 
     <!--查询区域数据-街道-->
-    <select id="getRegionListByGroupTwon" resultType="org.springblade.common.node.TreeStringNode" >
-        select town_street_code as id,town_street_name as name from jczz_doorplate_address
-        where 1=1
-        <if test="houseParam.userId!=null and houseParam.userId!='' and houseParam.userId=='1726859808689696770'">
-            and nei_name = '万达社区居民委员会'
+<!--    <select id="getRegionListByGroupTwon" resultType="org.springblade.common.node.TreeStringNode" >-->
+<!--        select town_street_code as id,town_street_name as name from jczz_doorplate_address-->
+<!--        where 1=1-->
+<!--        <if test="houseParam.userId!=null and houseParam.userId!='' and houseParam.userId=='1726859808689696770'">-->
+<!--            and nei_name = '万达社区居民委员会'-->
+<!--        </if>-->
+<!--        <include refid="filterHouseGrid"/>-->
+<!--        <include refid="filterCommunity"/>-->
+<!--        group by town_street_code,town_street_name-->
+<!--    </select>-->
+
+    <!--过滤网格数据-->
+    <sql id="filterHouseGridByTownOrCommunity">
+        <if test="houseParam.roleName!=null and houseParam.roleName!='' and houseParam.roleName!='系统管理员'">
+            <choose>
+                <when test="houseParam.roleName=='网格员' and houseParam.userId!='1726859808689696770'">
+                    <choose>
+                        <when test="list != null and list.size()>0">
+                            and jg.grid_code in
+                            <foreach collection="list" item="gridCode" separator ="," open="("  close=")">
+                                #{gridCode}
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            and jg.grid_code in ('')
+                        </otherwise>
+                    </choose>
+                </when>
+                <otherwise>
+                    and jg.grid_code in ('')
+                </otherwise>
+            </choose>
         </if>
-        <include refid="filterHouseGrid"/>
-        <include refid="filterCommunity"/>
-        group by town_street_code,town_street_name
+    </sql>
+
+    <!--查询区域数据-街道-->
+    <select id="getRegionListByGroupTwon" resultType="org.springblade.common.node.TreeStringNode" >
+        select br.town_code as id,br.town_name as name from jczz_grid jg
+        left join blade_region br on jg.community_code = br.code
+        where jg.is_deleted = 0
+        <if test="houseParam.userId!=null and houseParam.userId!='' and houseParam.userId=='1726859808689696770'">
+            and br.name = '万达社区居民委员会'
+        </if>
+        <include refid="filterHouseGridByTownOrCommunity"/>
+        union
+        select br.town_code as id,br.town_name as name from jczz_police_affairs_grid jpag
+        left join blade_region br on jpag.community_code = br.code
+        where jpag.is_deleted = 0
+        <include refid="filterCommunityByTownOrCommunity"/>
     </select>
+
+    <!--过滤社区数据-->
+    <sql id="filterCommunityByTownOrCommunity">
+        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
+            <choose>
+                <when test="houseParam.roleName=='民警' and houseParam.userId!='1726859808689696770'">
+                    <choose>
+                        <when test="communityList != null and communityList.size()>0">
+                            and br.code in
+                            <foreach collection="communityList" item="code" separator ="," open="("  close=")">
+                                #{code}
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            and br.code in ('')
+                        </otherwise>
+                    </choose>
+                </when>
+                <otherwise>
+                    and br.code in ('')
+                </otherwise>
+            </choose>
+        </if>
+    </sql>
 
     <!--查询区域数据-社区-->
     <select id="getRegionListByGroupNei" resultType="org.springblade.common.node.TreeStringNode" >
-        select nei_code as id,nei_name as name,town_street_code as parentId from jczz_doorplate_address
-        where 1=1
+        select br.village_code as id,br.village_name as name,br.town_code as parentId from jczz_grid jg
+        left join blade_region br on jg.community_code = br.code
+        where jg.is_deleted = 0
         <if test="houseParam.userId!=null and houseParam.userId!='' and houseParam.userId=='1726859808689696770'">
             and nei_name = '万达社区居民委员会'
         </if>
-        <include refid="filterHouseGrid"/>
-        <include refid="filterCommunity"/>
-        group by nei_code,nei_name,town_street_code
+        <include refid="filterHouseGridByTownOrCommunity"/>
+        union
+        select br.village_code as id,br.village_name as name,br.town_code as parentId from jczz_police_affairs_grid jpag
+        left join blade_region br on jpag.community_code = br.code
+        where jpag.is_deleted = 0
+        <include refid="filterCommunityByTownOrCommunity"/>
     </select>
 
     <!--根据社区名称查询小区集合-->
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 b7f2a0d..ab71455 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
@@ -54,6 +54,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.service.IPoliceAffairsGridService;
 import org.springblade.modules.system.entity.Region;
 import org.springblade.modules.system.service.IRegionService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -105,6 +106,9 @@
 	@Autowired
 	private ICommunityService communityService;
 
+	@Autowired
+	private IPoliceAffairsGridService policeAffairsGridService;
+
 
 	@Override
 	public IPage<DoorplateAddressVO> selectDoorplateAddressPage(IPage<DoorplateAddressVO> page, DoorplateAddressVO doorplateAddress) {
@@ -125,21 +129,21 @@
 		houseParam.setUserId(userId);
 		List<String> stringList = new ArrayList<>();
 		List<String> communityList = new ArrayList<>();
-		if (null != roleName && !roleName.equals("")) {
-			houseParam.setRoleName(roleName);
-			if (roleName.equals("网格员") && !userId.equals("1726859808689696770")) {
-				// 查询对应的房屋地址code
-				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
-			}
-			if (roleName.equals("民警")) {
-				// 查询对应的社区编号
-				communityList = communityService.getCommunityCodeListByUserId(AuthUtil.getUserId());
-			}
-		}
 		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 = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+					}
+				}
 				// 查询街道
 				List<TreeStringNode> townList = baseMapper.getRegionListByGroupTwon(houseParam, stringList, communityList);
 				// 查询社区
@@ -695,7 +699,7 @@
 		if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
 			if (houseParam.getRoleName().equals("民警") && !userId.equals("1726859808689696770")) {
 				// 查询对应的房屋地址code
-				stringList = communityService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+				stringList = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
 			}
 		}
 		return stringList;
@@ -888,7 +892,7 @@
 					// 无权限
 					one.setIsJur(2);
 					// 查询对应的社区code
-					list = communityService.getCommunityCodeListByUserId(AuthUtil.getUserId());
+					list = policeAffairsGridService.getCommunityCodeListByUserId(AuthUtil.getUserId());
 					if (null!=list && list.size()>0){
 						boolean contains = list.contains(one.getNeiCode());
 						if (contains) {
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 4438105..b3222f5 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -129,4 +129,11 @@
 	 */
     GridEntity getGridByNames(@Param("gridName") String gridName,
 							  @Param("communityName")  String communityName);
+
+	/**
+	 * 查询用户对应的网格
+	 * @param userId
+	 * @return
+	 */
+    List<String> getGridListByUserId(@Param("userId") String userId);
 }
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 41466b7..e0f2c90 100644
--- a/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
+++ b/src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -192,4 +192,12 @@
         and br.name = #{communityName}
     </select>
 
+    <!--查询用户对应的网格-->
+    <select id="getGridListByUserId" resultType="java.lang.String">
+        select jg.grid_code from jczz_grid jg
+        left join jczz_gridman jgm on jgm.grid_code = jg.grid_code and jgm.is_deleted = 0
+        where jg.is_deleted = 0
+        and jgm.user_id = #{userId}
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/grid/service/IGridService.java b/src/main/java/org/springblade/modules/grid/service/IGridService.java
index fc93d44..9eb72a8 100644
--- a/src/main/java/org/springblade/modules/grid/service/IGridService.java
+++ b/src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -132,4 +132,11 @@
 	 * @return
 	 */
     GridEntity getGridByNames(String gridName, String communityName);
+
+	/**
+	 * 查询用户对应的网格
+	 * @param userId
+	 * @return
+	 */
+	List<String> getGridListByUserId(Long userId);
 }
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 b79702d..bd25f92 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
@@ -336,4 +336,14 @@
 	public GridEntity getGridByNames(String gridName, String communityName) {
 		return baseMapper.getGridByNames(gridName,communityName);
 	}
+
+	/**
+	 * 查询用户对应的网格
+	 * @param userId
+	 * @return
+	 */
+	@Override
+	public List<String> getGridListByUserId(Long userId) {
+		return baseMapper.getGridListByUserId(userId.toString());
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index e309a8a..9003153 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -748,8 +748,14 @@
 					list.remove(deptPcs.getId().toString());
 					user.setDeptId(String.join(",",list));
 				}
-				if (!user.getDeptId().contains(dept.getId().toString())) {
-					user.setDeptId(user.getDeptId() + "," + dept.getId());
+				// 删完后可能就没了
+				if (!Strings.isBlank(user.getDeptId())) {
+					if (!user.getDeptId().contains(dept.getId().toString())) {
+						user.setDeptId(user.getDeptId() + "," + dept.getId());
+					}
+				}else {
+					// 删完后的
+					user.setDeptId(dept.getId().toString());
 				}
 			}else {
 				if (!user.getDeptId().contains(dept.getId().toString())) {

--
Gitblit v1.9.3