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> src/main/java/org/springblade/common/node/TreeNode.java
@@ -32,7 +32,7 @@ private String name; /** * 地址类型 * 地址类型 1:小区 2:非小区 */ private Integer addressType; 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); } } 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 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); /** * 查询房屋及出租详情信息 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; } 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<>(); 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") src/main/java/org/springblade/modules/house/vo/HouseParam.java
New file @@ -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; } src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -58,6 +58,12 @@ * 门牌地址编码 */ @ApiModelProperty(value = "门牌地址编码") private String houseCode; /** * 楼栋编码 */ @ApiModelProperty(value = "楼栋编码") private String buildingCode; /** * 场所负责人(关联用户表信息) 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: