From 82e222ae8a60afd3d0237b4f987f8c850834dad5 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 11 Nov 2023 19:16:51 +0800
Subject: [PATCH] 行政区,楼盘数据过滤,报事报修添加任务房屋地址编码

---
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   71 +++++++++++++++++------
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java            |   32 ++++++----
 src/main/java/org/springblade/modules/task/service/impl/TaskReportForRepairsServiceImpl.java         |    5 +
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |   40 +++++++++++--
 src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml                             |    7 +
 src/main/java/org/springblade/modules/house/service/impl/HouseRentalServiceImpl.java                 |    5 +
 src/main/java/org/springblade/modules/house/vo/HouseParam.java                                       |    5 +
 7 files changed, 123 insertions(+), 42 deletions(-)

diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
index 862b178..8b05626 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -26,6 +26,7 @@
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
 import org.springblade.modules.doorplateAddress.vo.FuncNode;
+import org.springblade.modules.house.vo.HouseParam;
 
 import java.util.List;
 
@@ -49,32 +50,36 @@
 
 
 	/**
-	 * 查询区域数据
+	 * 查询街道数据
 	 * @return
 	 */
-    List<TreeNode> getRegionListByGroupTwon();
+    List<TreeNode> getRegionListByGroupTwon(@Param("houseParam") HouseParam houseParam,
+											@Param("list") List<String> list);
 
 	/**
-	 * 查询区域数据
+	 * 查询社区数据
 	 * @return
 	 */
-    List<TreeNode> getRegionListByGroupNei();
+    List<TreeNode> getRegionListByGroupNei(@Param("houseParam") HouseParam houseParam,
+										   @Param("list") List<String> list);
 
 	/**
 	 * 根据社区名称查询小区集合
-	 * @param name
-	 * @param code
+	 * @param houseParam
+	 * @param list
 	 * @return
 	 */
-    List<TreeNode> getDistrictList(@Param("name") String name,@Param("code") String code);
+    List<TreeNode> getDistrictList(@Param("houseParam") HouseParam houseParam,
+								   @Param("list") List<String> list);
 
 	/**
 	 * 根据社区名称查询楼栋集合
-	 * @param name
-	 * @param code
+	 * @param houseParam
+	 * @param list
 	 * @return
 	 */
-	List<TreeNode> getBuildingList(@Param("name") String name,@Param("code") String code);
+	List<TreeNode> getBuildingList(@Param("houseParam") HouseParam houseParam,
+								   @Param("list") List<String> list);
 
 	/**
 	 *  查询户室及住户相关信息,单元中包含住户
@@ -104,11 +109,12 @@
 
 	/**
 	 * 查询街路巷
-	 * @param name
-	 * @param code
+	 * @param houseParam
+	 * @param list
 	 * @return
 	 */
-	List<TreeNode> getStreetRuList(@Param("name") String name,@Param("code") String code);
+	List<TreeNode> getStreetRuList(@Param("houseParam") HouseParam houseParam,
+								   @Param("list") List<String> list);
 
 	/**
 	 * 根据街路巷编号查询街路巷门牌名称集合
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 fecf829..a04fcaa 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -2,6 +2,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.modules.doorplateAddress.mapper.DoorplateAddressMapper">
 
+    <!--过滤网格数据-->
+    <sql id="filterHouseGrid">
+        <if test="houseParam.roleName!=null and houseParam.roleName!=''">
+            <if test="houseParam.roleName=='网格员'">
+                <choose>
+                    <when test="list != null and list.size()>0">
+                        and address_code in
+                        <foreach collection="list" item="houseCode" separator ="," open="("  close=")">
+                            #{houseCode}
+                        </foreach>
+                    </when>
+                    <otherwise>
+                        and address_code in ('')
+                    </otherwise>
+                </choose>
+            </if>
+        </if>
+    </sql>
+
     <!--门牌地址详情查询-->
     <resultMap id="doorplateAddressDetailMap" type="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO"
                autoMapping="true">
@@ -22,12 +41,18 @@
 
     <!--查询区域数据-街道-->
     <select id="getRegionListByGroupTwon" resultType="org.springblade.common.node.TreeNode" >
-        select town_street_code as id,town_street_name as name from jczz_doorplate_address group by town_street_code,town_street_name
+        select town_street_code as id,town_street_name as name from jczz_doorplate_address
+        where 1=1
+        <include refid="filterHouseGrid"/>
+        group by town_street_code,town_street_name
     </select>
 
     <!--查询区域数据-社区-->
     <select id="getRegionListByGroupNei" resultType="org.springblade.common.node.TreeNode" >
-        select nei_code as id,nei_name as name,town_street_code as parentId from jczz_doorplate_address group by nei_code,nei_name,town_street_code
+        select nei_code as id,nei_name as name,town_street_code as parentId from jczz_doorplate_address
+        where 1=1
+        <include refid="filterHouseGrid"/>
+        group by nei_code,nei_name,town_street_code
     </select>
 
     <!--根据社区名称查询小区集合-->
@@ -36,12 +61,13 @@
         where 1=1
         and aoi_name !=''
         and aoi_code !=''
-        <if test="name != null and name!=''">
-            and nei_name = #{name}
+        <if test="houseParam.name != null and houseParam.name!=''">
+            and nei_name = #{houseParam.name}
         </if>
-        <if test="code != null and code!=''">
-            and nei_code = #{code}
+        <if test="houseParam.code != null and houseParam.code!=''">
+            and nei_code = #{houseParam.code}
         </if>
+        <include refid="filterHouseGrid"/>
         group by aoi_code,aoi_name
         union all
         (
@@ -49,12 +75,13 @@
         where 1=1
         and aoi_code !=''
         and sub_aoi != ''
-        <if test="name != null and name!=''">
-            and nei_name = #{name}
+        <if test="houseParam.name != null and houseParam.name!=''">
+            and nei_name = #{houseParam.name}
         </if>
-        <if test="code != null and code!=''">
-            and nei_code = #{code}
+        <if test="houseParam.code != null and houseParam.code!=''">
+            and nei_code = #{houseParam.code}
         </if>
+        <include refid="filterHouseGrid"/>
         group by aoi_code,sub_aoi
         )
         union all
@@ -62,12 +89,13 @@
         select nei_code as id,'自建房/商铺' as name,2 as addressType from jczz_doorplate_address
         where 1=1
         and aoi_code is null
-        <if test="name != null and name!=''">
-            and nei_name = #{name}
+        <if test="houseParam.name != null and houseParam.name!=''">
+            and nei_name = #{houseParam.name}
         </if>
-        <if test="code != null and code!=''">
-            and nei_code = #{code}
+        <if test="houseParam.code != null and houseParam.code!=''">
+            and nei_code = #{houseParam.code}
         </if>
+        <include refid="filterHouseGrid"/>
         group by nei_code
         )
     </select>
@@ -77,9 +105,10 @@
         (
             select building_code as id,ifnull(building_name,'1栋') as name,1 as addressType from jczz_doorplate_address
             where 1=1
-            and aoi_code = #{code}
+            and aoi_code = #{houseParam.code}
             and building_code !=''
             and doorplate_type = '户室牌'
+            <include refid="filterHouseGrid"/>
             group by building_code,building_name
             order by building_name
         )
@@ -87,9 +116,10 @@
         (
             select address_code as id,doorplate_name as name,2 as addressType from jczz_doorplate_address
             where 1=1
-            and aoi_code = #{code}
+            and aoi_code = #{houseParam.code}
             and building_name is null
             and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
+            <include refid="filterHouseGrid"/>
         )
     </select>
 
@@ -170,12 +200,13 @@
         select street_ru_code as id,street_ru_name as name,3 as addressType from jczz_doorplate_address
         where 1=1
         and aoi_code is null
-        <if test="name != null and name!=''">
-            and nei_name = #{name}
+        <if test="houseParam.name != null and houseParam.name!=''">
+            and nei_name = #{houseParam.name}
         </if>
-        <if test="code != null and code!=''">
-            and nei_code = #{code}
+        <if test="houseParam.code != null and houseParam.code!=''">
+            and nei_code = #{houseParam.code}
         </if>
+        <include refid="filterHouseGrid"/>
         group by street_ru_code,street_ru_name
     </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 dadb38f..166e487 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -29,6 +29,7 @@
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
 import org.springblade.modules.doorplateAddress.vo.FuncNode;
+import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.house.service.IHouseRentalService;
 import org.springblade.modules.house.service.IHouseholdService;
 import org.springblade.modules.house.vo.HouseParam;
@@ -59,6 +60,9 @@
 	@Autowired
 	private IHouseRentalService houseRentalService;
 
+	@Autowired
+	private IGridService gridService;
+
 
 	@Override
 	public IPage<DoorplateAddressVO> selectDoorplateAddressPage(IPage<DoorplateAddressVO> page, DoorplateAddressVO doorplateAddress) {
@@ -73,14 +77,23 @@
 	 */
 	@Override
 	public Object getFuncList(Integer type,String roleName) {
+		HouseParam houseParam = new HouseParam();
+		List<String> stringList = new ArrayList<>();
+		if (null!=roleName && !roleName.equals("")){
+			houseParam.setRoleName(roleName);
+			if (roleName.equals("网格员")){
+				// 查询对应的房屋地址code
+				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+			}
+		}
 		List<TreeNode> list = new ArrayList<>();
 		if (null!=type) {
 			// 如果是网格管理员,系统管理员
 			if (type==1){
 				// 查询街道
-				List<TreeNode> townList = baseMapper.getRegionListByGroupTwon();
+				List<TreeNode> townList = baseMapper.getRegionListByGroupTwon(houseParam,stringList);
 				// 查询社区
-				List<TreeNode> neiList = baseMapper.getRegionListByGroupNei();
+				List<TreeNode> neiList = baseMapper.getRegionListByGroupNei(houseParam,stringList);
 				// 遍历
 				for (TreeNode treeNode : townList) {
 					// 遍历
@@ -91,7 +104,7 @@
 						}
 					}
 				}
-				// 查询区域数据,当前只有西市街道数据
+				// 查询区域数据
 				return townList;
 			}
 			// 如果是居民
@@ -170,10 +183,17 @@
 	public Object getHousesList(HouseParam houseParam) {
 		List<TreeNode> list = new ArrayList<>();
 		Map<String, Object> map = new HashMap<>(2);
+		List<String> stringList = new ArrayList<>();
+		if (null!=houseParam.getRoleName() && !houseParam.getRoleName().equals("")){
+			if (houseParam.getRoleName().equals("网格员")){
+				// 查询对应的房屋地址code
+				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+			}
+		}
 		// 查小区,场所
 		if (houseParam.getType()==1){
 			// 根据社区名称查询小区集合
-			list  = baseMapper.getDistrictList(houseParam.getName(),houseParam.getCode());
+			list  = baseMapper.getDistrictList(houseParam,stringList);
 		}
 		// 查楼栋,街路巷
 		if (houseParam.getType()==2){
@@ -231,12 +251,20 @@
 	 * @return
 	 */
 	private Object getBuildLevelData(HouseParam houseParam,Map<String, Object> map) {
+		List<String> stringList = new ArrayList<>();
+		if (null!=houseParam.getRoleName() && !houseParam.getRoleName().equals("")){
+			if (houseParam.getRoleName().equals("网格员")){
+				// 查询对应的房屋地址code
+				stringList = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
+			}
+		}
 		// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋/商铺,否则则按社区查街路巷
 		if (houseParam.getCode().length()>12){
 			List<TreeNode> aoiList = new ArrayList<>();
 			List<TreeNode> shopList = new ArrayList<>();
 			// 根据社区名称查询楼栋或者商铺的集合
-			List<TreeNode> list = baseMapper.getBuildingList(houseParam.getName(),houseParam.getCode());
+
+			List<TreeNode> list = baseMapper.getBuildingList(houseParam,stringList);
 			// 排序  StringUtils.getDigits(X.getName()) 取出数字排序
 			List<TreeNode> sortList = list.stream().sorted(Comparator.comparing(X -> StringUtils.getDigits(X.getName()))).collect(Collectors.toList());
 			if (list.size()>0){
@@ -255,7 +283,7 @@
 			return map;
 		}else {
 			// 查询街路巷
-			List<TreeNode> list  = baseMapper.getStreetRuList(houseParam.getName(),houseParam.getCode());
+			List<TreeNode> list  = baseMapper.getStreetRuList(houseParam,stringList);
 			map.put("aoiList",new ArrayList<>());
 			map.put("shopList",list);
 			// 返回
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 0b432d0..93129d7 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseRentalMapper.xml
@@ -50,8 +50,11 @@
         ) b ON b.housing_rental_id = jhr.id
         WHERE jhr.is_deleted = 0
         <if test="vo.auditStatus != null and vo.auditStatus != ''">
-            <if test="vo.auditStatus ==0 || vo.auditStatus ==1">
-                AND jhr.audit_status  = #{vo.auditStatus}
+            <if test="vo.auditStatus ==1">
+                AND jhr.audit_status  = 1
+            </if>
+            <if test="vo.auditStatus ==2">
+                AND jhr.audit_status  = 0
             </if>
             <if test="vo.auditStatus ==10">
                 AND date_format(jhr.due_time,'%Y-%m-%d')&gt;= date_format(now(),'%Y-%m-%d')
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 292a0f8..3afaee9 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
@@ -70,6 +70,11 @@
 				list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
 			}
 		}
+		if (null!=houseRental.getAuditStatus()){
+			if (houseRental.getAuditStatus()==0){
+				houseRental.setAuditStatus(2);
+			}
+		}
 		return page.setRecords(baseMapper.selectHouseRentalPage(page, houseRental,list));
 	}
 
diff --git a/src/main/java/org/springblade/modules/house/vo/HouseParam.java b/src/main/java/org/springblade/modules/house/vo/HouseParam.java
index 6067aed..6482744 100644
--- a/src/main/java/org/springblade/modules/house/vo/HouseParam.java
+++ b/src/main/java/org/springblade/modules/house/vo/HouseParam.java
@@ -26,4 +26,9 @@
 	 * 地址类型 1:小区  2:非小区
 	 */
 	private Integer addressType;
+
+	/**
+	 * 角色名称
+	 */
+	private String roleName;
 }
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 7a6d25c..f2282e4 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
@@ -88,10 +88,13 @@
 		boolean flag = false;
 		// 任务新增
 		TaskEntity taskEntity = new TaskEntity();
-		taskEntity.setName("报事报修"+ System.currentTimeMillis());
+		taskEntity.setName(taskReportForRepairs.getRealName() + "报修");
 		taskEntity.setStatus(1);
 		taskEntity.setType(1);
 		taskEntity.setFrequency(3);
+		if (null!=taskReportForRepairs.getAddressCode() && !taskReportForRepairs.getAddressCode().equals("")){
+			taskEntity.setHouseCode(taskReportForRepairs.getAddressCode());
+		}
 		// 新增
 		boolean save = taskService.save(taskEntity);
 		if (save){

--
Gitblit v1.9.3