From f37e7e5c00cb8196ff978f8eac2aab3fe9465b0d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 03 Nov 2023 10:04:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml             |   71 +++++++++----
 src/main/java/org/springblade/modules/place/entity/PlaceEntity.java                                  |    6 +
 src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java         |    7 
 src/main/java/org/springblade/common/node/TreeNode.java                                              |    2 
 src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java                            |    5 +
 src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java                              |    5 +
 src/main/resources/application-prod.yml                                                              |    4 
 src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java |  130 ++++++++++++++++++++-----
 src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java    |   17 ++-
 pom.xml                                                                                              |    2 
 src/main/java/org/springblade/modules/house/vo/HouseParam.java                                       |   29 +++++
 11 files changed, 213 insertions(+), 65 deletions(-)

diff --git a/pom.xml b/pom.xml
index dc99a61..e74cf1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <version>3.0.1.RELEASE</version>
 
     <properties>
-        <bladex.project.id>blade-api</bladex.project.id>
+        <bladex.project.id>jczz</bladex.project.id>
         <bladex.project.version>3.0.1.RELEASE</bladex.project.version>
 
         <java.version>1.8</java.version>
diff --git a/src/main/java/org/springblade/common/node/TreeNode.java b/src/main/java/org/springblade/common/node/TreeNode.java
index 7f24824..9e5c8f2 100644
--- a/src/main/java/org/springblade/common/node/TreeNode.java
+++ b/src/main/java/org/springblade/common/node/TreeNode.java
@@ -32,7 +32,7 @@
 	private String name;
 
 	/**
-	 * 地址类型
+	 * 地址类型 1:小区  2:非小区
 	 */
 	private Integer addressType;
 
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
index 6fc23bd..4743f59 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java
@@ -32,6 +32,7 @@
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
 import org.springblade.modules.doorplateAddress.wrapper.DoorplateAddressWrapper;
+import org.springblade.modules.house.vo.HouseParam;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -137,14 +138,12 @@
 
 	/**
 	 * 获取楼盘相关集合数据
-	 * @param name 名称
-	 * @param code 编号
-	 * @param type 类型 1:社区  2:小区  3:楼栋  4:户室
+	 * @param houseParam
 	 * @return
 	 */
 	@GetMapping("/getHousesList")
-	public R getHousesList(String name,String code,Integer type,Integer addressType) {
-		return R.data(doorplateAddressService.getHousesList(name,code,type,addressType));
+	public R getHousesList(HouseParam houseParam) {
+		return R.data(doorplateAddressService.getHousesList(houseParam));
 	}
 
 	/**
@@ -157,12 +156,16 @@
 		return R.data(doorplateAddressService.getHouseRentInfo(code));
 	}
 
+	/**
+	 * 获取门牌地址树集合信息
+	 * @param code
+	 * @param type
+	 * @return
+	 */
 	@GetMapping("/getDoorplateAddressList")
 	public R<List<DoorplateAddressVOTree>> getDoorplateAddressList(String code, String type){
 		List<DoorplateAddressVOTree> list = doorplateAddressService.getDoorplateAddressList(code,type);
 		return R.data(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 f5a81fd..71bf634 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -20,7 +20,7 @@
 
     <!--根据社区名称查询小区集合-->
     <select id="getDistrictList" resultType="org.springblade.common.node.TreeNode" >
-        select aoi_code as id,aoi_name as name from jczz_doorplate_address
+        select aoi_code as id,aoi_name as name,1 as addressType from jczz_doorplate_address
         where 1=1
         and aoi_name !=''
         and aoi_code !=''
@@ -33,7 +33,7 @@
         group by aoi_code,aoi_name
         union all
         (
-        select aoi_code as id,sub_aoi as name from jczz_doorplate_address
+        select aoi_code as id,sub_aoi as name,1 as addressType from jczz_doorplate_address
         where 1=1
         and aoi_code !=''
         and sub_aoi != ''
@@ -47,7 +47,7 @@
         )
         union all
         (
-        select nei_code as id,'自建房/商铺' as name from jczz_doorplate_address
+        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!=''">
@@ -60,36 +60,60 @@
         )
     </select>
 
-    <!--根据小区名称查询楼栋集合-->
+    <!--根据小区名称查询楼栋/商铺集合-->
     <select id="getBuildingList" resultType="org.springblade.common.node.TreeNode" >
-        select building_code as id,building_name as name,1 as addressType from jczz_doorplate_address
-        where 1=1
-        and aoi_code = #{code}
-        and building_code !=''
-        and building_name !=''
-        group by building_code,building_name
-        order by building_name
+        (
+            select building_code as id,building_name as name,1 as addressType from jczz_doorplate_address
+            where 1=1
+            and aoi_code = #{code}
+            and building_code !=''
+            and building_name !=''
+            and doorplate_type = '户室牌'
+            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 = #{code}
+            and building_name is null
+            and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
+        )
     </select>
 
     <!--查询户室及住户相关信息,单元中包含住户-->
     <select id="getUnitHouseholdList" resultType="org.springblade.modules.doorplateAddress.vo.FuncNode" >
-        select
-        jda.unit_code unitCode,jda.floor,jda.house_name as houseNo,jda.address_code addressCode,
-        jh.name as realName,jh.role_type as roleType
-        from jczz_doorplate_address jda
-        left join
-			(select house_code,name,role_type from jczz_household where role_type = '业主') jh
-		on jda.address_code = jh.house_code
-        where 1=1 and floor != '' and house_name != ''
-        and building_code = #{code}
+        (
+            select
+            jda.unit_code unitCode,jda.floor,jda.house_name as houseNo,jda.address_code addressCode,
+            jh.name as realName,jh.role_type as roleType,1 as addressType
+            from jczz_doorplate_address jda
+            left join
+                (select house_code,name,role_type from jczz_household where role_type = '业主') jh
+            on jda.address_code = jh.house_code
+            where 1=1
+            and floor != ''
+            and house_name != ''
+            and doorplate_type = '户室牌'
+            and building_code = #{code}
+        )
+        union all
+        (
+            select address_code as unitCode,doorplate_name as floor,'' as houseNo,address_code as addressCode,
+            '' as realName,'' as roleType,2 as addressType
+            from jczz_doorplate_address
+            where 1=1
+            and building_code = #{code}
+            and building_name != ''
+            and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
+        )
     </select>
 
     <!--先查询门牌信息-->
     <select id="getDoorplateAddressDetailByCode" resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO">
         select * from jczz_doorplate_address where address_code = #{code}
     </select>
-
-
 
     <select id="getTownStreetVOTreeList"
             resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree">
@@ -107,8 +131,8 @@
         and street_ru_code is not null and street_ru_code !=''
         and street_ru_name is not null and street_ru_name !=''
         GROUP BY street_ru_code,street_ru_name
-
     </select>
+
     <select id="getDistrictVOTreeList"
             resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree">
         SELECT aoi_code as code,aoi_name as name
@@ -118,6 +142,7 @@
         and aoi_name is not null and aoi_name !=''
        GROUP BY aoi_code,aoi_name
     </select>
+
     <select id="getBuildingVOTreeList"
             resultType="org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree">
         SELECT building_code as code,building_name as name
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
index a846902..7a28aa9 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -21,6 +21,7 @@
 import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
 import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVO;
+import org.springblade.modules.house.vo.HouseParam;
 
 import java.util.List;
 
@@ -51,12 +52,10 @@
 
 	/**
 	 * 获取楼盘相关集合数据
-	 * @param name 名称
-	 * @param code 编号
-	 * @param type 类型 1:社区  2:小区  3:楼栋  4:户室
+	 * @param houseParam
 	 * @return
 	 */
-    Object getHousesList(String name, String code, Integer type,Integer addressType);
+    Object getHousesList(HouseParam houseParam);
 
 	/**
 	 * 查询房屋及出租详情信息
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 4f2e462..7c2927b 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
@@ -20,6 +20,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.poi.hssf.record.DVALRecord;
+import org.jetbrains.annotations.NotNull;
 import org.springblade.common.node.TreeNode;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -33,6 +35,7 @@
 import org.springblade.modules.house.service.IHouseRentalService;
 import org.springblade.modules.house.service.IHouseholdLabelService;
 import org.springblade.modules.house.service.IHouseholdService;
+import org.springblade.modules.house.vo.HouseParam;
 import org.springblade.modules.house.vo.HouseRentalVO;
 import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.place.service.IPlaceService;
@@ -116,43 +119,102 @@
 
 	/**
 	 * 获取楼盘相关集合数据
-	 * @param name 名称
-	 * @param code 编号
-	 * @param type 类型 1:社区  2:小区  3:楼栋  4:户室
+	 * @param houseParam
 	 * @return
 	 */
 	@Override
-	public Object getHousesList(String name, String code, Integer type,Integer addressType) {
+	public Object getHousesList(HouseParam houseParam) {
 		List<TreeNode> list = new ArrayList<>();
+		Map<String, Object> map = new HashMap<>(2);
 		// 查小区,场所
-		if (type==1){
+		if (houseParam.getType()==1){
 			// 根据社区名称查询小区集合
-			list  = baseMapper.getDistrictList(name,code);
+			list  = baseMapper.getDistrictList(houseParam.getName(),houseParam.getCode());
 		}
 		// 查楼栋,街路巷
-		if (type==2){
-			// 判断 code 长度,如果 code 长度大于 12 则为小区查楼栋,否则则按社区查街路巷
-			if (code.length()>12){
-				// 根据社区名称查询楼栋集合
-				list = baseMapper.getBuildingList(name, code);
-			}else {
-				// 查询街路巷
-				list = baseMapper.getStreetRuList(name, code);
-			}
+		if (houseParam.getType()==2){
+			return getBuildLevelData(houseParam,map);
 		}
 		// 查户室
-		if (type==3){
-			// 判断地址类型
-			if (addressType==1) {
-				// 查询户室及住户相关信息,单元中包含住户
-				return getUnitHouseholdList(name, code);
-			}
-			if (addressType==2) {
-				// 根据街路巷编号查询街路巷门牌名称集合
-				return baseMapper.getDoorplateNameList(name,code);
-			}
+		if (houseParam.getType()==3){
+			return getHouseLevelData(houseParam, map);
 		}
 		return list;
+	}
+
+	/**
+	 * 查询户室级别数据
+	 * @param houseParam
+	 * @param map
+	 * @return
+	 */
+	private Map<String, Object> getHouseLevelData(HouseParam houseParam, Map<String, Object> map) {
+		// 判断地址类型
+		if (houseParam.getAddressType()==1) {
+			List<FuncNode> aoiList = new ArrayList<>();
+			List<FuncNode> shopList = new ArrayList<>();
+			// 查询户室及住户相关信息,单元中包含住户,或者和单元平级的 商铺
+			List<FuncNode> householdList = getUnitHouseholdList(houseParam.getName(), houseParam.getCode());
+			// 遍历
+			if (householdList.size()>0){
+				for (FuncNode funcNode : householdList) {
+					if (funcNode.getAddressType()==1){
+						aoiList.add(funcNode);
+					}
+					if (funcNode.getAddressType()==2){
+						shopList.add(funcNode);
+					}
+				}
+			}
+			map.put("aoiList",aoiList);
+			map.put("shopList",shopList);
+			// 返回
+			return map;
+		}else{
+			// 根据街路巷编号查询街路巷门牌名称集合
+			List<FuncNode> doorplateNameList = baseMapper.getDoorplateNameList(houseParam.getName(), houseParam.getCode());
+			map.put("aoiList",new ArrayList<>());
+			map.put("shopList",doorplateNameList);
+			// 返回
+			return map;
+		}
+	}
+
+	/**
+	 * 获取楼栋层级数据
+	 * @param houseParam
+	 * @param map
+	 * @return
+	 */
+	private Object getBuildLevelData(HouseParam houseParam,Map<String, Object> map) {
+		// 判断 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());
+			if (list.size()>0){
+				for (TreeNode treeNode : list) {
+					if (treeNode.getAddressType()==1){
+						aoiList.add(treeNode);
+					}
+					if (treeNode.getAddressType()==2){
+						shopList.add(treeNode);
+					}
+				}
+			}
+			map.put("aoiList",aoiList);
+			map.put("shopList",shopList);
+			// 返回
+			return map;
+		}else {
+			// 查询街路巷
+			List<TreeNode> list  = baseMapper.getStreetRuList(houseParam.getName(),houseParam.getCode());
+			map.put("aoiList",new ArrayList<>());
+			map.put("shopList",list);
+			// 返回
+			return map;
+		}
 	}
 
 	/**
@@ -165,21 +227,35 @@
 		List<FuncNode> list = new ArrayList<>();
 		// 查询户室及住户相关信息,单元中包含住户
 		List<FuncNode> funcNodes  = baseMapper.getUnitHouseholdList(name,code);
+		// 遍历
+		List<FuncNode> aoiNodes  = new ArrayList<>();
+		List<FuncNode> shopNodes  = new ArrayList<>();
+		for (FuncNode funcNode : funcNodes) {
+			if (funcNode.getAddressType()==1){
+				aoiNodes.add(funcNode);
+			}
+			if (funcNode.getAddressType()==2){
+				shopNodes.add(funcNode);
+			}
+		}
 		// 处理,先按单元分组,再按楼层分组
-		if (funcNodes.size()>0){
-			Map<String, List<FuncNode>> listMap = funcNodes.stream().collect(Collectors.groupingBy(FuncNode::getFloor));
+		if (aoiNodes.size()>0){
+			Map<String, List<FuncNode>> listMap = aoiNodes.stream().collect(Collectors.groupingBy(FuncNode::getFloor));
 			List<FuncNode> funcNodeList  = new ArrayList<>();
 			listMap.forEach((s, temps) -> {
 				FuncNode funcNode = new FuncNode();
 				funcNode.setFloor(s);
 				funcNode.setChildren(temps);
+				funcNode.setAddressType(1);
 				funcNodeList.add(funcNode);
 			});
 			FuncNode funcNode = new FuncNode();
 			funcNode.setUnitName("一单元");
 			funcNode.setChildren(funcNodeList);
+			funcNode.setAddressType(1);
 			list.add(funcNode);
 		}
+		list.addAll(shopNodes);
 		// 返回
 		return list;
 	}
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java b/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
index 6d961f1..38b0b48 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
@@ -49,6 +49,11 @@
 	private String residentialStatus;
 
 	/**
+	 * 地址类型 1:小区  2:非小区
+	 */
+	private Integer addressType;
+
+	/**
 	 * 子孙节点
 	 */
 	private List<FuncNode> children = new ArrayList<>();
diff --git a/src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java b/src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java
index 078fa15..d588352 100644
--- a/src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java
+++ b/src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java
@@ -97,6 +97,11 @@
 	@ApiModelProperty(value = "租房用途 1:仓库 2:办公 3:商用  4:居住")
 	private Integer rentalUse;
 	/**
+	 * 审核状态 0: 待审核 1: 审核通过 2: 审核不通过
+	 */
+	@ApiModelProperty(value = "审核状态 0: 待审核 1: 审核通过 2: 审核不通过")
+	private Integer auditStatus;
+	/**
 	 * 合同附件URL
 	 */
 	@ApiModelProperty(value = "合同附件URL")
diff --git a/src/main/java/org/springblade/modules/house/vo/HouseParam.java b/src/main/java/org/springblade/modules/house/vo/HouseParam.java
new file mode 100644
index 0000000..6067aed
--- /dev/null
+++ b/src/main/java/org/springblade/modules/house/vo/HouseParam.java
@@ -0,0 +1,29 @@
+package org.springblade.modules.house.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class HouseParam implements Serializable {
+
+	/**
+	 * 分类
+	 */
+	private Integer type;
+
+	/**
+	 * 名称
+	 */
+	private String name;
+
+	/**
+	 * 编号
+	 */
+	private String code;
+
+	/**
+	 * 地址类型 1:小区  2:非小区
+	 */
+	private Integer addressType;
+}
diff --git a/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java b/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
index a1e723a..af18982 100644
--- a/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
+++ b/src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -58,6 +58,12 @@
 	 * 门牌地址编码
 	 */
 	@ApiModelProperty(value = "门牌地址编码")
+	private String houseCode;
+
+	/**
+	 * 楼栋编码
+	 */
+	@ApiModelProperty(value = "楼栋编码")
 	private String buildingCode;
 	/**
 	 * 场所负责人(关联用户表信息)
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index fab7885..de331c1 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -14,9 +14,9 @@
     #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
     #  commandTimeout: 5000
   datasource:
-    url: jdbc:mysql://localhost:3306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://172.16.50.240:3306/jczz?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
     username: root
-    password: root
+    password: 1qaz@WSX3edc
 
 #第三方登陆
 social:

--
Gitblit v1.9.3