From 96916fb34cdc4907a194d0bafae22a5e2bf378bf Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Tue, 02 Jul 2024 17:40:20 +0800
Subject: [PATCH] 获取楼盘相关集合数据查询调整(改成sql会导致内存溢出)
---
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml | 75 ++++++++++++++++++++++++-------------
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java | 5 +-
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java | 33 ++++++++++++++--
3 files changed, 80 insertions(+), 33 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 346da5d..196d931 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -69,7 +69,8 @@
/**
* 根据社区名称查询小区集合
* @param houseParam
- * @param list
+ * @param list 网格编号
+ * @param communityList 社区编号
* @return
*/
List<TreeStringNode> getDistrictList(@Param("houseParam") HouseParam houseParam,
@@ -79,7 +80,7 @@
/**
* 根据社区名称查询楼栋集合
* @param houseParam
- * @param list
+ * @param list 网格编号集合
* @return
*/
List<TreeStringNode> getBuildingList(@Param("houseParam") HouseParam houseParam,
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 7f251b8..48f095c 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,25 @@
</if>
</sql>
+ <!--过滤网格编号-->
+ <sql id="filterGrid">
+ <if test="houseParam.roleName!=null and houseParam.roleName!=''">
+ <if test="houseParam.roleName=='wgy' and houseParam.userId!='1726859808689696770'">
+ <choose>
+ <when test="list != null and list.size()>0">
+ and jgr.grid_code in
+ <foreach collection="list" item="gridCode" separator ="," open="(" close=")">
+ #{gridCode}
+ </foreach>
+ </when>
+ <otherwise>
+ and jgr.grid_code in ('')
+ </otherwise>
+ </choose>
+ </if>
+ </if>
+ </sql>
+
<!--过滤社区数据-->
@@ -189,9 +208,9 @@
<!--根据社区名称查询小区集合-->
<select id="getDistrictList" resultType="org.springblade.common.node.TreeStringNode" >
- select aoi_code as id,aoi_name as name,1 as addressType from jczz_doorplate_address
- where 1=1
- and aoi_name !=''
+ select aoi_code as id,aoi_name as name,1 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+ where aoi_name !=''
and aoi_code !=''
<if test="houseParam.name != null and houseParam.name!=''">
and nei_name = #{houseParam.name}
@@ -199,14 +218,14 @@
<if test="houseParam.code != null and houseParam.code!=''">
and nei_code = #{houseParam.code}
</if>
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
<include refid="filterCommunity"/>
group by aoi_code,aoi_name
union all
(
- select aoi_code as id,sub_aoi as name,1 as addressType from jczz_doorplate_address
- where 1=1
- and aoi_code !=''
+ select aoi_code as id,sub_aoi as name,1 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+ where aoi_code !=''
and aoi_name is null
and sub_aoi != ''
<if test="houseParam.name != null and houseParam.name!=''">
@@ -215,22 +234,22 @@
<if test="houseParam.code != null and houseParam.code!=''">
and nei_code = #{houseParam.code}
</if>
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
<include refid="filterCommunity"/>
group by aoi_code,sub_aoi
)
union all
(
- select nei_code as id,'自建房/商铺' as name,2 as addressType from jczz_doorplate_address
- where 1=1
- and aoi_code is null
+ select nei_code as id,'自建房/商铺' as name,2 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+ where aoi_code is null
<if test="houseParam.name != null and houseParam.name!=''">
and nei_name = #{houseParam.name}
</if>
<if test="houseParam.code != null and houseParam.code!=''">
and nei_code = #{houseParam.code}
</if>
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
<include refid="filterCommunity"/>
group by nei_code
)
@@ -252,23 +271,23 @@
<!--根据小区名称查询楼栋/商铺集合-->
<select id="getBuildingList" resultType="org.springblade.common.node.TreeStringNode" >
(
- select building_code as id,ifnull(building_name,'1栋') as name,1 as addressType from jczz_doorplate_address
- where 1=1
- and aoi_code = #{houseParam.code}
+ select building_code as id,ifnull(building_name,'1栋') as name,1 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+ where aoi_code = #{houseParam.code}
and building_code !=''
and doorplate_type = '户室牌'
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
group by building_code,building_name
order by building_name
)
union all
(
- select address_code as id,doorplate_name as name,2 as addressType from jczz_doorplate_address
- where 1=1
- and aoi_code = #{houseParam.code}
+ select address_code as id,doorplate_name as name,2 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
+ where aoi_code = #{houseParam.code}
and building_name is null
and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
)
</select>
@@ -291,6 +310,7 @@
juhl.id as cid,juhl.house_code,juhl.label_id,juhl.label_name,juhl.color,juhl.household_id,
juhlh.color as houseColor
from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
left join
(
SELECT house_code, NAME, relationship FROM jczz_household WHERE id in(
@@ -308,7 +328,7 @@
<if test="houseParam.searchKey!=null and houseParam.searchKey!=''">
and jh.name like concat('%',#{houseParam.searchKey},'%')
</if>
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
)
union all
(
@@ -317,13 +337,14 @@
juhl.id as cid,juhl.house_code,juhl.label_id,juhl.label_name,juhl.color,juhl.household_id,
juhlh.color as houseColor
from jczz_doorplate_address jda2
+ left join jczz_grid_range jgr on jda2.address_code = jgr.house_code
left join jczz_user_house_label juhl on juhl.house_code = jda2.address_code and juhl.lable_type=1
left join jczz_user_house_label juhlh on juhlh.house_code = jda2.address_code and juhlh.lable_type=2
where 1=1
and building_code = #{houseParam.code}
and building_name != ''
and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
)
</select>
@@ -372,7 +393,8 @@
<!--根据社区查询街路巷集合-->
<select id="getStreetRuList" resultType="org.springblade.common.node.TreeStringNode" >
- select street_ru_code as id,street_ru_name as name,3 as addressType from jczz_doorplate_address
+ select street_ru_code as id,street_ru_name as name,3 as addressType from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
where 1=1
and aoi_code is null
<if test="houseParam.name != null and houseParam.name!=''">
@@ -381,7 +403,7 @@
<if test="houseParam.code != null and houseParam.code!=''">
and nei_code = #{houseParam.code}
</if>
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
group by street_ru_code,street_ru_name
</select>
@@ -390,13 +412,14 @@
select address_code as addressCode,
IFNULL(CONCAT(doorplate_num,sub_door_plate_no), IF(doorplate_num IS NULL, sub_door_plate_no, doorplate_num)) as floor,
3 as addressType
- from jczz_doorplate_address
+ from jczz_doorplate_address jda
+ left join jczz_grid_range jgr on jda.address_code = jgr.house_code
where 1=1
and street_ru_code = #{houseParam.code}
and nei_code = #{houseParam.name}
and aoi_code is null
and doorplate_type = '中门牌'
- <include refid="filterHouseGrid"/>
+ <include refid="filterGrid"/>
order by doorplate_num,sub_door_plate_no
</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 9f14392..ceb1fb0 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
@@ -276,22 +276,23 @@
houseParam.setRoleName(roleName);
}
// 获取网格员对应的地址编号集合
- List<String> addressCodeList = getHouseCodeList(houseParam);
+// List<String> addressCodeList = getHouseCodeList(houseParam);
+ List<String> gridCodeList = getGridCodeList(houseParam);
List<String> communityCodeList = getCommunityCodeList(houseParam);
// 获取网格员对应的网格信息
- getGridInfoByGridman(houseParam);
+// getGridInfoByGridman(houseParam);
// 查小区,场所
if (houseParam.getType() == 1) {
// 根据社区名称查询小区集合
- list = baseMapper.getDistrictList(houseParam, addressCodeList, communityCodeList);
+ list = baseMapper.getDistrictList(houseParam, gridCodeList, communityCodeList);
}
// 查楼栋,街路巷
if (houseParam.getType() == 2) {
- return getBuildLevelData(houseParam, addressCodeList, map);
+ return getBuildLevelData(houseParam, gridCodeList, map);
}
// 查户室
if (houseParam.getType() == 3) {
- return getHouseLevelData(houseParam, addressCodeList, map);
+ return getHouseLevelData(houseParam, gridCodeList, map);
}
return list;
}
@@ -771,6 +772,28 @@
}
/**
+ * 根据角色获取网格编号集合
+ *
+ * @param houseParam
+ * @return
+ */
+ private List<String> getGridCodeList(HouseParam houseParam) {
+ List<String> gridCodeList = new ArrayList<>();
+ String userId = AuthUtil.getUserId().toString();
+ houseParam.setUserId(userId);
+ if (null != houseParam.getRoleName() && !houseParam.getRoleName().equals("")) {
+ if ((houseParam.getRoleName().equals("wgy") || houseParam.getRoleName().equals("wzcj"))
+ && !userId.equals("1726859808689696770")) {
+ // 查询对应社区编号集合
+ gridCodeList
+ = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(), null, houseParam.getRoleName());
+ }
+ }
+ // 返回
+ return gridCodeList;
+ }
+
+ /**
* 房屋数据处理
*
* @return
--
Gitblit v1.9.3