guoshilong
2023-11-03 f37e7e5c00cb8196ff978f8eac2aab3fe9465b0d
Merge remote-tracking branch 'origin/master'
10 files modified
1 files added
278 ■■■■ changed files
pom.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/node/TreeNode.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/controller/DoorplateAddressController.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 71 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java 130 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/entity/HouseRentalEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/vo/HouseParam.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java 6 ●●●●● patch | view | raw | blame | history
src/main/resources/application-prod.yml 4 ●●●● patch | view | raw | blame | history
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: