From 7ae166b2542e7ed439af6f00dd58f38eef2f7c3e Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 06 Jan 2024 20:08:30 +0800
Subject: [PATCH] 新增住户查询(可以按标签查询)

---
 src/main/java/org/springblade/modules/house/controller/HouseholdController.java               |   11 +++
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java                       |    7 ++
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml                        |  114 +++++++++++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/property/controller/PropertyCompanyScoreController.java |    4 
 src/main/java/org/springblade/modules/house/service/IHouseholdService.java                    |    7 ++
 src/main/java/org/springblade/modules/house/service/impl/HouseholdServiceImpl.java            |   21 +++++++
 6 files changed, 159 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
index de98b81..8392379 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
@@ -108,6 +108,17 @@
 		return R.data(pages);
 	}
 
+
+	/**
+	 * 住户列表查询
+	 * @param household
+	 * @return
+	 */
+	@GetMapping("/selectHouseholdList")
+	public R selectHouseholdList(HouseholdVO household) {
+		return R.data(householdService.selectHouseholdList(household));
+	}
+
 	/**
 	 * 住户 新增
 	 */
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 7a526d1..317679b 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.java
@@ -114,5 +114,10 @@
 	 */
     List<HouseholdEntity> getNotInsertUserHousehold();
 
-
+	/**
+	 * 住户列表查询
+	 * @param household
+	 * @return
+	 */
+	List<HouseholdVO> selectHouseholdList(@Param("household")HouseholdVO household);
 }
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 093f42d..0276218 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
@@ -174,7 +174,7 @@
         LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
         LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
         LEFT JOIN jczz_grid_range jgr on jgr.house_code=jda.address_code
-        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id
+        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0
         <where>
             <if test="household.userId!=null">
                 AND jg.id IN ( SELECT DISTINCT jgm.grid_id FROM jczz_gridman jgm WHERE jgm.user_id = #{household.userId}
@@ -273,7 +273,7 @@
         LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
         LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
         LEFT JOIN jczz_grid_range jgr on jgr.house_code=jda.address_code
-        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id
+        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0
         <where>
             <if test="household.userId!=null">
                 AND jg.id IN ( SELECT DISTINCT jgm.grid_id FROM jczz_gridman jgm WHERE jgm.user_id = #{household.userId}
@@ -602,4 +602,114 @@
         and length(jh.name)&lt;=12
     </select>
 
+    <!--关联标签-->
+    <resultMap id="householdPageAndLabelMaps" type="org.springblade.modules.house.vo.HouseholdVO" autoMapping="true">
+        <id property="id" column="id"/>
+        <collection property="householdLabelList" javaType="java.util.List"
+                    ofType="org.springblade.modules.house.vo.HouseholdLabelVO" autoMapping="true">
+            <id property="id" column="cid"/>
+            <result property="houseCode" column="houseCodes"/>
+        </collection>
+    </resultMap>
+
+    <!--住户列表查询(关联标签)-->
+    <select id="selectHouseholdList" resultMap="householdPageAndLabelMaps">
+        SELECT
+        jh.id,
+        jh.house_code,
+        jh.NAME,
+        jh.phone_number,
+        jh.associated_user_id,
+        jh.role_type,
+        jh.associated_user_name,
+        jh.relationship,
+        jh.is_primary_contact,
+        jh.residential_status,
+        jh.birthday,
+        jh.id_card,
+        jh.hkmt_pass,
+        jh.passport,
+        ifnull( jh.gender, CASE WHEN substring( jh.id_card, 17, 1 )% 2 = 1 THEN 1 ELSE 0 END ) AS gender,
+        jh.ethnicity,
+        jh.education,
+        jh.hukou_registration,
+        jh.work_status,
+        employer,
+        jh.marital_status,
+        jh.card_number,
+        jh.other_contact,
+        jh.current_address,
+        jh.disability_cert,
+        jh.party_ember,
+        jh.create_user,
+        jh.create_time,
+        jh.update_user,
+        jh.update_time,
+        jh.confirm_flag,
+        jh.remark,
+        jhs.district_name aoiName,
+        concat( jhs.building, " ", unit, " ", room ) AS address,
+        jda.town_street_name AS townStreetName,
+        jda.nei_name AS neiName,
+        jg.grid_name,
+        juhl.id as cid,juhl.house_code as houseCodes,juhl.label_id,juhl.label_name,juhl.color
+        FROM
+        jczz_household jh
+        LEFT JOIN jczz_house jhs ON jh.house_code = jhs.house_code and jhs.is_deleted = 0
+        LEFT JOIN jczz_doorplate_address jda ON jda.address_code = jh.house_code
+        LEFT JOIN jczz_grid_range jgr on jgr.house_code=jda.address_code
+        LEFT JOIN jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0
+        LEFT JOIN jczz_user_house_label juhl on juhl.house_code = jda.address_code and lable_type=1
+        <where>
+            <if test="household.userId!=null">
+                AND jg.id IN ( SELECT DISTINCT jgm.grid_id FROM jczz_gridman jgm WHERE jgm.user_id = #{household.userId}
+                )
+            </if>
+            <if test="household.name!=null and household.name !=''">
+                and jh.name like concat('%',#{household.name},'%')
+            </if>
+            <if test="household.houseCode!=null and household.houseCode !=''">
+                and jh.house_code = #{household.houseCode}
+            </if>
+            <if test="household.phoneNumber!=null and household.phoneNumber !=''">
+                and jh.phone_number like concat('%',#{household.phoneNumber},'%')
+            </if>
+            <if test="household.idCard!=null and household.idCard !=''">
+                and jh.id_card like concat('%',#{household.idCard},'%')
+            </if>
+            <if test="household.aoiName!=null and household.aoiName !=''">
+                and jhs.district_name like concat('%',#{household.aoiName},'%')
+            </if>
+            <if test="household.confirmFlag != null ">
+                and jh.confirm_flag = #{household.confirmFlag}
+            </if>
+            <if test="household.townStreetName!=null and household.townStreetName!=''">
+                and jda.town_street_name like concat('%',#{household.townStreetName},'%')
+            </if>
+            <if test="household.neiName!=null and household.neiName!=''">
+                and jda.nei_name like concat('%',#{household.neiName},'%')
+            </if>
+            <if test="household.housingRentalId != null ">
+                and jh.housing_rental_id = #{household.housingRentalId}
+            </if>
+            <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>
+            <if test="household.id!=null and household.id!=''">
+                and jh.id = #{household.id}
+            </if>
+            <if test="household.labelId!=null">
+                and juhl.label_id = #{household.labelId}
+            </if>
+            <if test="household.searchKey!=null and household.searchKey!=''">
+                and CONCAT(jh.name,jh.phone_number) like CONCAT ('%', #{household.searchKey},'%')
+            </if>
+            and jh.is_deleted = 0
+            order by jh.create_time desc
+        </where>
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
index d20b6a7..fa15745 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseholdService.java
@@ -97,4 +97,11 @@
     boolean removeHousehold(String ids);
 
 	List<HouseholdVO> getAllHouseHold(HouseholdVO household);
+
+	/**
+	 * 住户列表查询
+	 * @param household
+	 * @return
+	 */
+	List<HouseholdVO> selectHouseholdList(HouseholdVO household);
 }
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 013a059..91130ae 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
@@ -50,6 +50,7 @@
 import org.springframework.util.StopWatch;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 住户 服务实现类
@@ -452,4 +453,24 @@
 	public List<HouseholdVO> getAllHouseHold(HouseholdVO household) {
 		return  baseMapper.getAllHouseHold(household);
 	}
+
+	/**
+	 * 住户列表查询
+	 * @param household
+	 * @return
+	 */
+	@Override
+	public List<HouseholdVO> selectHouseholdList(HouseholdVO household) {
+		List<HouseholdVO> householdVOS = baseMapper.selectHouseholdList(household);
+		// 遍历
+		for (HouseholdVO householdVO : householdVOS) {
+			if (householdVO.getHouseholdLabelList().size()>0){
+				List<String> labelNameList = householdVO.getHouseholdLabelList().stream().map(householdLabelVO -> householdLabelVO.getLabelName())
+					.collect(Collectors.toList());
+				householdVO.setLabelName(String.join(",",labelNameList));
+			}
+		}
+		// 返回
+		return  householdVOS;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyScoreController.java b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyScoreController.java
index 1d79897..73f9019 100644
--- a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyScoreController.java
+++ b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyScoreController.java
@@ -37,9 +37,9 @@
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入propertyCompanyScore")
-	public R<PropertyCompanyScoreVO> detail(PropertyCompanyScoreEntity propertyCompanyScore) {
+	public R<PropertyCompanyScoreEntity> detail(PropertyCompanyScoreEntity propertyCompanyScore) {
 		PropertyCompanyScoreEntity detail = propertyCompanyScoreService.getOne(Condition.getQueryWrapper(propertyCompanyScore));
-		return R.data(PropertyCompanyScoreWrapper.build().entityVO(detail));
+		return R.data(detail);
 	}
 	/**
 	 * 物业公司评分表 分页

--
Gitblit v1.9.3