罗元桥
2021-10-14 25af58aee8358a3396f119aadca1db6b99b1e94f
Merge branch 'lyq' into 'test'

Lyq

See merge request root/zhihuishequ!243
14个文件已修改
14个文件已添加
1615 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java 525 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java
New file
@@ -0,0 +1,4 @@
package com.panzhihua.common.model.dtos.community.building;
public class BuildingDto {
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java
New file
@@ -0,0 +1,31 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 添加楼栋户室请求参数
 */
@Data
@ApiModel("添加楼栋户室请求参数")
public class AddBuildingHouseDto {
    @ApiModelProperty("楼栋id")
    private Long id;
    @ApiModelProperty("单元号")
    private String unitNo;
    @ApiModelProperty("门牌号")
    private String houseNo;
    @ApiModelProperty("楼层数")
    private Integer floorNum;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 分页查询楼栋列表请求参数
 */
@Data
@ApiModel("分页查询楼栋列表请求参数")
public class AddBuildingUnitDto {
    @ApiModelProperty("楼栋id")
    private Long id;
    @ApiModelProperty("单元号")
    private String unitNo;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java
New file
@@ -0,0 +1,36 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 删除楼栋户室人员关系请求参数
 */
@Data
@ApiModel("删除楼栋户室人员关系请求参数")
public class DeleteBuildingHousePopulationDto {
    @ApiModelProperty("房屋id")
    private Long houseId;
    @ApiModelProperty("人员类型(1.业主 2.居住人)")
    private Integer type;
    @ApiModelProperty("人员id")
    private Long populationId;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
    /**
     * 人员类型(1.业主 2.居住人)
     */
    public interface type{
        int yz = 1;
        int jzr = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 修改楼栋户室请求参数
 */
@Data
@ApiModel("修改楼栋户室请求参数")
public class EditBuildingHouseDto {
    @ApiModelProperty("房屋id")
    private Long houseId;
    @ApiModelProperty("门牌号")
    private String houseNo;
    @ApiModelProperty("楼层数")
    private Integer floorNum;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 分页查询楼栋列表请求参数
 */
@Data
@ApiModel("分页查询楼栋列表请求参数")
public class EditBuildingUnitDto {
    @ApiModelProperty("楼栋id")
    private Long id;
    @ApiModelProperty("原单元号")
    private String oldUnitNo;
    @ApiModelProperty("新单元号")
    private String newUnitNo;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 分页查询楼栋列表请求参数
 */
@Data
@ApiModel("分页查询楼栋列表请求参数")
public class PageBuildingListDto {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
    @ApiModelProperty("关键词")
    private String keyWord;
    @ApiModelProperty("小区id")
    private Long villageId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.common.model.dtos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 分页查询楼栋单元下房屋列表请求参数
 */
@Data
@ApiModel("分页查询楼栋单元下房屋列表请求参数")
public class PageBuildingUnitHouseListDto {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "社区id", hidden = true)
    private Long communityId;
    @ApiModelProperty("单元号")
    private String unit;
    @ApiModelProperty("楼栋id")
    private Long id;
    private Long villageId;
    private String floor;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java
New file
@@ -0,0 +1,9 @@
package com.panzhihua.common.model.vos.community.building;
import lombok.Data;
@Data
public class BuildingVO {
    private String label;
    private String value;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.vos.community.building.admin;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 楼栋详情返回参数
 */
@Data
@ApiModel("楼栋详情返回参数")
public class BuildingDetailAdminVo {
    @ApiModelProperty("楼栋主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("街路巷")
    private String alley;
    @ApiModelProperty("街路巷号")
    private String doorNum;
    @ApiModelProperty("楼栋号")
    private String name;
    @ApiModelProperty("小区名称")
    private String villageName;
    @ApiModelProperty("小区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long villageId;
    @ApiModelProperty("房屋总户数")
    private Integer houseNum;
    @ApiModelProperty("自住房屋数量")
    private Integer liveTotal;
    @ApiModelProperty("出租房屋数量")
    private Integer leaseTotal;
    @ApiModelProperty("空置房屋数量")
    private Integer vacantNum;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.vos.community.building.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 楼栋列表表头统计返回参数
 */
@Data
@ApiModel("楼栋列表表头统计返回参数")
public class BuildingListHeaderStatisticsAdminVo {
    @ApiModelProperty("楼栋数")
    private Integer buildNum;
    @ApiModelProperty("总户数")
    private Integer houseNum;
    @ApiModelProperty("居民人数")
    private Integer populationNum;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.common.model.vos.community.building.admin;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author lyq
 * 楼栋单元下房屋列表返回参数
 */
@Data
@ApiModel("楼栋单元下房屋列表返回参数")
public class BuildingUnitHouseListAdminVo {
    @ApiModelProperty("楼栋单元下房屋列表")
    private List<ComMngVillageBuildingHouseVO> houseList;
    @ApiModelProperty("房屋总户数")
    private Integer houseNum = 0;
    @ApiModelProperty("自住房屋数量")
    private Integer liveTotal = 0;
    @ApiModelProperty("出租房屋数量")
    private Integer leaseTotal = 0;
    @ApiModelProperty("空置房屋数量")
    private Integer vacantNum = 0;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.vos.community.building.admin;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author lyq
 * 分页查询楼栋列表返回参数
 */
@Data
@ApiModel("分页查询楼栋列表返回参数")
public class PageBuildingListAdminVo {
    @ApiModelProperty("楼栋主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("街路巷")
    private String alley;
    @ApiModelProperty("楼栋号")
    private String name;
    @ApiModelProperty("小区名称")
    private String villageName;
    @ApiModelProperty("小区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long villageId;
    @ApiModelProperty("单元数")
    private Integer unitTotal;
    @ApiModelProperty("楼层数")
    private Integer buildFloorSum;
    @ApiModelProperty("总户数")
    private Integer houseNum;
    @ApiModelProperty("居民人数")
    private Integer populationNum;
    @ApiModelProperty("门牌号")
    private String doorNum;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java
@@ -21,7 +21,7 @@
    @ApiModelProperty("户室号")
    private String houseNo;
    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
    @ApiModelProperty("房屋状态(1.自住 2.租住 3.空置 4.其他)")
    private Integer status;
    @ApiModelProperty("在住居民数")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
@@ -72,4 +72,6 @@
    @ApiModelProperty(value = "纬度")
    private String lat;
    @ApiModelProperty(value = "政治面貌文字描述")
    private String outlook;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -4,6 +4,7 @@
import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
import com.panzhihua.common.model.dtos.community.cluster.admin.*;
import com.panzhihua.common.model.dtos.property.CommonPage;
@@ -6635,4 +6636,101 @@
     */
    @GetMapping("/common/data/population/house/user/detail")
    public R detailHousesUser(@RequestParam("id") Long id);
    /**
     * 社区后台-分页查询楼栋列表
     * @param pageBuildingListDto   请求参数
     * @return  楼栋列表
     */
    @PostMapping("/building/page/admin/")
    R pageBuildingAdmin(@RequestBody PageBuildingListDto pageBuildingListDto);
    /**
     * 社区后台-查询楼栋列表表头统计数据
     * @param communityId   社区id
     * @return  楼栋列表表头统计数据
     */
    @GetMapping("/building/header/statistics/")
    R buildingListHeaderStatisticsAdmin(@RequestParam("communityId") Long communityId);
    /**
     * 社区后台-查询楼栋详情
     * @param id    楼栋id
     * @return  楼栋详情
     */
    @GetMapping("/building/detail/admin/")
    R detailBuildAdmin(@RequestParam("id") Long id);
    /**
     * 查询楼栋下单元列表
     * @param id    楼栋id
     * @return  单元列表
     */
    @GetMapping("/building/unit/list/admin")
    R buildingUnitListAdmin(@RequestParam("id") Long id);
    /**
     * 查询楼栋单元下房屋列表
     * @param unitHouseListDto    请求参数
     * @return  单元列表
     */
    @PostMapping("/building/unit/house/list/admin")
    R buildingUnitHouseListAdmin(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto);
    /**
     * 查询楼栋单元下房屋详情
     * @param houseId   房屋id
     * @param communityId   社区id
     * @return  房屋详情
     */
    @GetMapping("/building/unit/house/detail/admin")
    R unitHouseDetailAdmin(@RequestParam("houseId") Long houseId,@RequestParam("communityId") Long communityId);
    /**
     * 查询社区下小区列表
     * @param communityId   社区id
     * @return  小区列表
     */
    @GetMapping("/building/village/list/admin")
    R buildingVillageListAdmin(@RequestParam("communityId") Long communityId);
    /**
     * 添加楼栋下单元
     * @param addBuildingUnitDto  请求参数
     * @return  添加结果
     */
    @PostMapping("/building/unit/add/admin")
    R addBuildingUnitAdmin(@RequestBody AddBuildingUnitDto addBuildingUnitDto);
    /**
     * 修改楼栋下单元
     * @param editBuildingUnitDto  请求参数
     * @return  修改结果
     */
    @PostMapping("/building/unit/edit/admin")
    R editBuildingUnitAdmin(@RequestBody EditBuildingUnitDto editBuildingUnitDto);
    /**
     * 添加户室
     * @param addBuildingHouseDto    请求参数
     * @return  添加结果
     */
    @PostMapping("/building/house/add/admin")
    R addBuildingHouseAdmin(@RequestBody AddBuildingHouseDto addBuildingHouseDto);
    /**
     * 修改户室
     * @param editBuildingHouseDto   请求参数
     * @return  修改结果
     */
    @PostMapping("/building/house/edit/admin")
    R editBuildingHouseAdmin(@RequestBody EditBuildingHouseDto editBuildingHouseDto);
    /**
     * 删除户室下人员关联信息
     * @param housePopulationDto    请求参数
     * @return  删除结果
     */
    @PostMapping("/building/house/population/delete/admin")
    R deleteBuildingHousePopulationAdmin(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -4,12 +4,17 @@
import java.io.InputStream;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import com.panzhihua.common.model.vos.community.ComMngVillageVO;
import com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.BuildingUnitHouseListAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
@@ -27,7 +32,7 @@
 * @date 2021/6/10 12:34
 */
@Slf4j
@Api(tags = {"社区管理"})
@Api(tags = {"楼栋管理"})
@RestController
@RequestMapping("/building")
public class BuildingApi extends BaseController {
@@ -35,11 +40,9 @@
    @Resource
    private CommunityService communityService;
    @ApiOperation(value = "excel导入楼栋信息")
    @ApiOperation(value = "excel导入楼栋信息--注:以前的接口,不需要对接")
    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
        // String fileName = file.getOriginalFilename();
        // log.info("传入文件名字【{}】", fileName);
    public R downloadPopulationTemplate(@RequestParam MultipartFile file) {
        InputStream inputStream;
        try {
            inputStream = file.getInputStream();
@@ -52,4 +55,121 @@
        }
        return R.ok();
    }
    @ApiOperation(value = "分页查询楼栋列表", response = PageBuildingListAdminVo.class)
    @PostMapping("/page")
    public R page(@RequestBody PageBuildingListDto pageBuildingListDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        pageBuildingListDto.setCommunityId(communityId);
        return communityService.pageBuildingAdmin(pageBuildingListDto);
    }
    @ApiOperation(value = "楼栋列表表头统计", response = BuildingListHeaderStatisticsAdminVo.class)
    @GetMapping("/header/statistics")
    public R headerStatistics() {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.buildingListHeaderStatisticsAdmin(communityId);
    }
    @ApiOperation(value = "楼栋详情", response = BuildingDetailAdminVo.class)
    @GetMapping("/detail")
    public R detail(@RequestParam("id") Long id) {
        return communityService.detailBuildAdmin(id);
    }
    @ApiOperation(value = "查询楼栋下单元列表", response = ComMngVillageBuildingVO.class)
    @GetMapping("/unit/list")
    public R unitList(@RequestParam("id") Long id) {
        return communityService.buildingUnitListAdmin(id);
    }
    @ApiOperation(value = "查询单元下房屋列表", response = BuildingUnitHouseListAdminVo.class)
    @PostMapping("/unit/house/list")
    public R unitHouseList(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto) {
        return communityService.buildingUnitHouseListAdmin(unitHouseListDto);
    }
    @ApiOperation(value = "查询房屋详情", response = ComMngVillageBuildingHouseDetailVO.class)
    @GetMapping("/unit/house/detail")
    public R unitHouseDetail(@RequestParam("houseId") Long houseId) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.unitHouseDetailAdmin(houseId,communityId);
    }
    @ApiOperation(value = "查询小区列表", response = ComMngVillageVO.class)
    @GetMapping("/village/list")
    public R villageList() {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.buildingVillageListAdmin(communityId);
    }
    @ApiOperation(value = "添加单元")
    @PostMapping("/add/unit")
    public R addUnit(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        addBuildingUnitDto.setCommunityId(communityId);
        if(addBuildingUnitDto.getId() == null || addBuildingUnitDto.getUnitNo() == null){
            return R.fail("参数有误");
        }
        return communityService.addBuildingUnitAdmin(addBuildingUnitDto);
    }
    @ApiOperation(value = "修改单元")
    @PostMapping("/edit/unit")
    public R editUnit(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        editBuildingUnitDto.setCommunityId(communityId);
        if(editBuildingUnitDto.getId() == null || editBuildingUnitDto.getOldUnitNo() == null || editBuildingUnitDto.getNewUnitNo() == null){
            return R.fail("参数有误");
        }
        return communityService.editBuildingUnitAdmin(editBuildingUnitDto);
    }
    @ApiOperation(value = "添加户室")
    @PostMapping("/add/house")
    public R addHouse(@RequestBody AddBuildingHouseDto addBuildingHouseDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        addBuildingHouseDto.setCommunityId(communityId);
        if(addBuildingHouseDto.getId() == null || addBuildingHouseDto.getHouseNo() == null || addBuildingHouseDto.getUnitNo() == null){
            return R.fail("参数有误");
        }
        return communityService.addBuildingHouseAdmin(addBuildingHouseDto);
    }
    @ApiOperation(value = "修改户室")
    @PostMapping("/edit/house")
    public R editHouse(@RequestBody EditBuildingHouseDto editBuildingHouseDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        editBuildingHouseDto.setCommunityId(communityId);
        if(editBuildingHouseDto.getHouseId() == null || editBuildingHouseDto.getHouseNo() == null){
            return R.fail("参数有误");
        }
        return communityService.editBuildingHouseAdmin(editBuildingHouseDto);
    }
    @ApiOperation(value = "删除户室下人员")
    @PostMapping("/delete/population")
    public R deletePopulation(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        housePopulationDto.setCommunityId(communityId);
        if(housePopulationDto.getHouseId() == null || housePopulationDto.getPopulationId() == null || housePopulationDto.getType() == null){
            return R.fail("参数有误");
        }
        return communityService.deleteBuildingHousePopulationAdmin(housePopulationDto);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java
@@ -4,6 +4,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import org.springframework.web.bind.annotation.*;
import com.panzhihua.common.model.vos.R;
@@ -18,7 +19,7 @@
 */
@Slf4j
@RestController
@RequestMapping("/building")
@RequestMapping("/building/")
public class BuildingApi {
    @Resource
@@ -27,7 +28,91 @@
    @PostMapping("/batchSave")
    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,
        @RequestParam("communityId") Long communityId) {
        return comActBuildingService.batchSaveBuilding(newVoList, communityId);
    }
    /**
     * 社区后台-分页查询楼栋列表
     * @param pageBuildingListDto   请求参数
     * @return  楼栋列表
     */
    @PostMapping("/page/admin")
    public R pageBuildingAdmin(@RequestBody PageBuildingListDto pageBuildingListDto) {
        return comActBuildingService.pageBuildingAdmin(pageBuildingListDto);
    }
    /**
     * 社区后台-查询楼栋列表表头统计数据
     * @param communityId   社区id
     * @return  楼栋列表表头统计数据
     */
    @GetMapping("/header/statistics/")
    public R buildingListHeaderStatisticsAdmin(@RequestParam("communityId") Long communityId) {
        return comActBuildingService.buildingListHeaderStatisticsAdmin(communityId);
    }
    /**
     * 社区后台-查询楼栋详情
     * @param id    楼栋id
     * @return  楼栋详情
     */
    @GetMapping("/detail/admin")
    public R detailBuildAdmin(@RequestParam("id") Long id) {
        return comActBuildingService.detailBuildAdmin(id);
    }
    /**
     * 查询楼栋下单元列表
     * @param id    楼栋id
     * @return  单元列表
     */
    @GetMapping("/unit/list/admin")
    public R buildingUnitListAdmin(@RequestParam("id") Long id) {
        return comActBuildingService.buildingUnitListAdmin(id);
    }
    /**
     * 查询楼栋单元下房屋列表
     * @param unitHouseListDto    请求参数
     * @return  单元列表
     */
    @PostMapping("/unit/house/list/admin")
    public R buildingUnitHouseListAdmin(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto) {
        return comActBuildingService.buildingUnitHouseListAdmin(unitHouseListDto);
    }
    @GetMapping("/unit/house/detail/admin")
    public R buildingUnitHouseDetailAdmin(@RequestParam("houseId") Long houseId,@RequestParam("communityId") Long communityId) {
        return comActBuildingService.buildingUnitHouseDetailAdmin(houseId,communityId);
    }
    @GetMapping("/village/list/admin")
    public R buildingVillageListAdmin(@RequestParam("communityId") Long communityId) {
        return comActBuildingService.buildingVillageListAdmin(communityId);
    }
    @PostMapping("/unit/add/admin")
    public R addBuildingUnitAdmin(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
        return comActBuildingService.addBuildingUnitAdmin(addBuildingUnitDto);
    }
    @PostMapping("/unit/edit/admin")
    public R editBuildingUnitAdmin(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
        return comActBuildingService.editBuildingUnitAdmin(editBuildingUnitDto);
    }
    @PostMapping("/house/add/admin")
    public R addBuildingHouseAdmin(@RequestBody AddBuildingHouseDto addBuildingHouseDto) {
        return comActBuildingService.addBuildingHouseAdmin(addBuildingHouseDto);
    }
    @PostMapping("/house/edit/admin")
    public R editBuildingHouseAdmin(@RequestBody EditBuildingHouseDto editBuildingHouseDto) {
        return comActBuildingService.editBuildingHouseAdmin(editBuildingHouseDto);
    }
    @PostMapping("/house/population/delete/admin")
    public R deleteBuildingHousePopulationAdmin(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto) {
        return comActBuildingService.deleteBuildingHousePopulationAdmin(housePopulationDto);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java
@@ -1,9 +1,23 @@
package com.panzhihua.service_community.dao;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingListDto;
import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingUnitHouseListDto;
import com.panzhihua.common.model.vos.community.ComMngVillageVO;
import com.panzhihua.common.model.vos.community.VillageVO;
import com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
import com.panzhihua.common.model.vos.grid.PopulationListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -23,4 +37,59 @@
    List<String> findByVillage(String ids);
    List<VillageVO> select(Long id);
    /**
     * 社区后台-分页查询楼栋列表
     *
     * @param pageBuildingListDto 请求参数
     * @return 楼栋列表
     */
    IPage<PageBuildingListAdminVo> pageBuildingAdmin(Page page, @Param(value = "pageBuildingListDto") PageBuildingListDto pageBuildingListDto);
    /**
     * 社区后台-查询楼栋列表表头统计数据
     *
     * @param communityId 社区id
     * @return 楼栋列表表头统计数据
     */
    BuildingListHeaderStatisticsAdminVo buildingListHeaderStatisticsAdmin(@Param(value = "communityId") Long communityId);
    /**
     * 社区后台-查询楼栋详情
     *
     * @param id 楼栋id
     * @return 楼栋详情
     */
    BuildingDetailAdminVo detailBuildAdmin(@Param(value = "id") Long id);
    /**
     * 查询楼栋下的单元列表
     * @param villageId    小区id
     * @param floor 楼栋号
     * @return  单元列表
     */
    List<ComMngVillageBuildingVO> buildingUnitList(@Param(value = "villageId") Long villageId, @Param(value = "floor") String floor);
    /**
     * 查询楼栋单元下房屋列表
     * @param unitHouseListDto 请求参数
     * @return  房屋列表
     */
    IPage<ComMngVillageBuildingHouseVO> getBuildingUnitHouseList(Page page, @Param(value = "pageBuildingListDto") PageBuildingUnitHouseListDto unitHouseListDto);
    /**
     * 查询楼栋单元下统计数据
     * @param villageId 小区id
     * @param floor 楼栋号
     * @param unit  单元号
     * @return  统计数据
     */
    Map<String,Object> getBuildingUnitHouseStatistics(@Param(value = "villageId") Long villageId, @Param(value = "floor") String floor, @Param(value = "unit") String unit);
    ComMngVillageBuildingHouseDetailVO buildingUnitHouseDetailAdmin(@Param("houseId") Long houseId);
    List<PopulationListVO> getGridVillageBuildingPopulationList(@Param("houseId") Long houseId,@Param("communityId") Long communityId,
                                                                @Param("relation") Integer relation, @Param("relationId") Integer relationId);
    List<ComMngVillageVO> buildingVillageListAdmin(@Param("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -597,4 +597,13 @@
     * 居民详情
     */
    ComMngPopulationDetailVO getById(Long id);
    /**
     * 修改实有人口绑定单元号
     * @param villageId 小区id
     * @param floor 楼栋号
     * @param oldUnitNo 原单元号
     * @param newUnitNo 新单元号
     */
    void updatePopulationUnit(@Param("villageId") Long villageId, @Param("floor") String floor,@Param("oldUnitNo") String oldUnitNo,@Param("newUnitNo") String newUnitNo);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -189,4 +189,19 @@
        + ",#{item.purpose},#{item.controlStatus},#{item.isEmpty},#{item.constructPurpose}"
        + ",#{item.constructArea},#{item.path},now())" + "    </foreach>" + " </script>")
    void insertAll(@Param("houseList") List<ComMngPopulationHouseDO> houseList);
    /**
     * 修改房屋关联单元号
     * @param villageId 小区id
     * @param floor 楼栋号
     * @param oldUnitNo 原单元号
     * @param newUnitNo 新单元号
     */
    void updateHouseUnit(@Param("villageId") Long villageId, @Param("floor") String floor,@Param("oldUnitNo") String oldUnitNo,@Param("newUnitNo") String newUnitNo);
    /**
     * 修改房屋关联单元号
     * @param houseList    需要修改的数据
     */
    void updateUnitAll(@Param("houseList") List<ComMngPopulationHouseDO> houseList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java
@@ -65,7 +65,7 @@
    private String houseNo;
    /**
     * 房屋状态(1.自住 2.租住 3.其他)
     * 房屋状态(1.自住 2.租住 3.空置 4.其他)
     */
    private Integer status;
@@ -123,6 +123,11 @@
     */
    private String path;
    /**
     * 楼层数
     */
    private Integer floorNum;
    @Override
    public String toString() {
        return "ComMngPopulationHouseDO{" + "id=" + id + ", streetId=" + streetId + ", address=" + address + ", code="
@@ -131,4 +136,14 @@
            + ", constructArea=" + constructArea + ", path=" + path + ", createAt=" + createAt + ", updateAt="
            + updateAt + "}";
    }
    /**
     * 房屋状态(1.自住 2.租住 3.空置 4.其他)
     */
    public interface status{
        int zizhu = 1;
        int zuzhu = 2;
        int kongzhi = 3;
        int qita = 4;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -41,7 +41,7 @@
    private Integer relation;
    /**
     * 人和房屋关系’ (1.自住2、租住)
     * 人和房屋关系’ (1.自住2、租住) 该字段类型改为(1.业主 2.业主家属 3.租户)
     */
    private Integer relationId;
@@ -91,10 +91,11 @@
    }
    /**
     * 人和房屋关系’ (1.自住2、租住)
     * 人和房屋关系’ (1.自住2、租住) 该字段类型改为(1.业主 2.业主家属 3.租户)
     */
    public interface relationId {
        int zizhu = 1;
        int zuzhu = 2;
        int zuhu = 3;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java
@@ -3,6 +3,7 @@
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
import com.panzhihua.service_community.model.dos.ComMngBuildingDO;
@@ -15,4 +16,53 @@
public interface ComActBuildingService extends IService<ComMngBuildingDO> {
    R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId);
    /**
     * 社区后台-分页查询楼栋列表
     * @param pageBuildingListDto   请求参数
     * @return  楼栋列表
     */
    R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto);
    /**
     * 社区后台-查询楼栋列表表头统计数据
     * @param communityId   社区id
     * @return  楼栋列表表头统计数据
     */
    R buildingListHeaderStatisticsAdmin(Long communityId);
    /**
     * 社区后台-查询楼栋详情
     * @param id    楼栋id
     * @return  楼栋详情
     */
    R detailBuildAdmin(Long id);
    /**
     * 查询楼栋下单元列表
     * @param id    楼栋id
     * @return  单元列表
     */
    R buildingUnitListAdmin(Long id);
    /**
     * 查询楼栋单元下房屋列表
     * @param unitHouseListDto    请求参数
     * @return  单元列表
     */
    R buildingUnitHouseListAdmin(PageBuildingUnitHouseListDto unitHouseListDto);
    R buildingUnitHouseDetailAdmin(Long houseId,Long communityId);
    R buildingVillageListAdmin(Long communityId);
    R addBuildingUnitAdmin(AddBuildingUnitDto addBuildingUnitDto);
    R editBuildingUnitAdmin(EditBuildingUnitDto editBuildingUnitDto);
    R addBuildingHouseAdmin(AddBuildingHouseDto addBuildingHouseDto);
    R editBuildingHouseAdmin(EditBuildingHouseDto editBuildingHouseDto);
    R deleteBuildingHousePopulationAdmin(DeleteBuildingHousePopulationDto housePopulationDto);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
@@ -1,11 +1,29 @@
package com.panzhihua.service_community.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.enums.PopulIsOksEnum;
import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
import com.panzhihua.common.model.dtos.community.building.admin.*;
import com.panzhihua.common.model.vos.community.ComMngVillageVO;
import com.panzhihua.common.model.vos.community.ComPopulationActVO;
import com.panzhihua.common.model.vos.community.building.admin.BuildingUnitHouseListAdminVo;
import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
import com.panzhihua.common.model.vos.grid.PopulationListVO;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -18,13 +36,6 @@
import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComActVillageDAO;
import com.panzhihua.service_community.dao.ComMngBuildingDAO;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComMngBuildingDO;
import com.panzhihua.service_community.model.dos.ComMngVillageDO;
import com.panzhihua.service_community.model.dos.GridBuildRelationDO;
import com.panzhihua.service_community.service.ComActBuildingService;
import com.panzhihua.service_community.service.GridBuildRelationService;
@@ -42,6 +53,12 @@
    private ComActDAO comActDAO;
    @Resource
    private GridBuildRelationService gridBuildRelationService;
    @Resource
    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
    @Resource
    private ComMngPopulationDAO comMngPopulationDAO;
    @Resource
    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
    @Override
    public R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId) {
@@ -112,4 +129,498 @@
        gridBuildRelation.setCreateAt(new Date());
        return gridBuildRelation;
    }
    /**
     * 社区后台-分页查询楼栋列表
     * @param pageBuildingListDto   请求参数
     * @return  楼栋列表
     */
    @Override
    public R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto){
        IPage<PageBuildingListAdminVo> pageBuildingList = this.baseMapper.pageBuildingAdmin(
                new Page(pageBuildingListDto.getPageNum(),pageBuildingListDto.getPageSize()),pageBuildingListDto);
        return R.ok(pageBuildingList);
    }
    /**
     * 社区后台-查询楼栋列表表头统计数据
     * @param communityId   社区id
     * @return  楼栋列表表头统计数据
     */
    @Override
    public R buildingListHeaderStatisticsAdmin(Long communityId){
        return R.ok(this.baseMapper.buildingListHeaderStatisticsAdmin(communityId));
    }
    /**
     * 社区后台-查询楼栋详情
     * @param id    楼栋id
     * @return  楼栋详情
     */
    @Override
    public R detailBuildAdmin(Long id){
        return R.ok(this.baseMapper.detailBuildAdmin(id));
    }
    /**
     * 查询楼栋下单元列表
     * @param id    楼栋id
     * @return  单元列表
     */
    @Override
    public R buildingUnitListAdmin(Long id){
        //查询该楼栋信息
        ComMngBuildingDO buildingDO = this.baseMapper.selectById(id);
        if(buildingDO == null){
            return R.fail("未查询到该楼栋信息");
        }
        List<ComMngVillageBuildingVO> buildList = new ArrayList<>();
        if(StringUtils.isNotEmpty(buildingDO.getName())){
            buildList = this.baseMapper.buildingUnitList(buildingDO.getVillageId(),buildingDO.getName());
            buildList.forEach(villageBuilding -> {
                if(StringUtils.isNotEmpty(villageBuilding.getFloor())){
                    if (!villageBuilding.getFloor().contains("栋")) {
                        villageBuilding.setFloorString(villageBuilding.getFloor() + "栋");
                    } else {
                        villageBuilding.setFloorString(villageBuilding.getFloor());
                    }
                }
                if(StringUtils.isNotEmpty(villageBuilding.getUnitNo())){
                    if (!villageBuilding.getUnitNo().contains("单元")) {
                        villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元");
                    } else {
                        villageBuilding.setUnitNoString(villageBuilding.getUnitNo());
                    }
                }
            });
        }
        return R.ok(buildList);
    }
    /**
     * 查询楼栋单元下房屋列表
     * @param unitHouseListDto    请求参数
     * @return  单元列表
     */
    @Override
    public R buildingUnitHouseListAdmin(PageBuildingUnitHouseListDto unitHouseListDto){
        BuildingUnitHouseListAdminVo houseListAdminVo = new BuildingUnitHouseListAdminVo();
        //查询该楼栋信息
        ComMngBuildingDO buildingDO = this.baseMapper.selectById(unitHouseListDto.getId());
        if(buildingDO == null){
            return R.fail("未查询到该楼栋信息");
        }
        unitHouseListDto.setVillageId(buildingDO.getVillageId());
        unitHouseListDto.setFloor(buildingDO.getName());
        List<ComMngVillageBuildingHouseVO> buildHouseList = new ArrayList<>();
        if(StringUtils.isNotEmpty(buildingDO.getName())){
            IPage<ComMngVillageBuildingHouseVO> buildingHousePage = this.baseMapper.getBuildingUnitHouseList(new Page(unitHouseListDto.getPageNum(),unitHouseListDto.getPageSize()),unitHouseListDto);
            buildingHousePage.getRecords().forEach(house -> {
                if(StringUtils.isEmpty(house.getBuildingNum())){
                    if(StringUtils.isNotEmpty(house.getHouseNo())){
                        boolean result = house.getHouseNo().matches("[0-9]+");
                        if (result) {// 该字段为纯数字
                            if (house.getHouseNo().length() == 4) {
                                house.setBuildingNum(house.getHouseNo().substring(0, 2).replaceAll("^(0+)", ""));
                            } else if (house.getHouseNo().length() == 3) {
                                house.setBuildingNum(house.getHouseNo().substring(0, 1).replaceAll("^(0+)", ""));
                            }
                        } else {
                            house.setBuildingNum("-");
                        }
                    } else {
                        house.setBuildingNum("-");
                    }
                }
            });
            buildHouseList = buildingHousePage.getRecords();
            //查询统计数据
            Map<String,Object> statisticsMap = this.baseMapper.getBuildingUnitHouseStatistics(buildingDO.getVillageId(),buildingDO.getName(),unitHouseListDto.getUnit());
            if(statisticsMap != null){
                houseListAdminVo.setHouseNum(Integer.parseInt(statisticsMap.get("houseNum").toString()));
                houseListAdminVo.setLiveTotal(Integer.parseInt(statisticsMap.get("liveTotal").toString()));
                houseListAdminVo.setLeaseTotal(Integer.parseInt(statisticsMap.get("leaseTotal").toString()));
                houseListAdminVo.setVacantNum(Integer.parseInt(statisticsMap.get("vacantNum").toString()));
            }
        }
        houseListAdminVo.setHouseList(buildHouseList);
        return R.ok(houseListAdminVo);
    }
    @Override
    public R buildingUnitHouseDetailAdmin(Long houseId,Long communityId){
        ComMngVillageBuildingHouseDetailVO buildingHouseDetailVO =
                this.baseMapper.buildingUnitHouseDetailAdmin(houseId);
        if (buildingHouseDetailVO != null) {
            // 转换楼层数
            String houseNo = buildingHouseDetailVO.getHouseNo();
            boolean result = houseNo.matches("[0-9]+");
            if (result) {// 该字段为纯数字
                if (houseNo.length() == 4) {
                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 2).replaceAll("^(0+)", ""));
                } else if (houseNo.length() == 3) {
                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 1).replaceAll("^(0+)", ""));
                }
            } else {
                buildingHouseDetailVO.setBuildingNum("-");
            }
            // 查询该房屋的户主信息
            List<PopulationListVO> householderList =
                    this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, null, 1);
            if (!householderList.isEmpty()) {
                householderList.forEach(householder -> {
                    if(householder.getPoliticalOutlook() != null){
                        householder.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(householder.getPoliticalOutlook()));
                    }else{
                        householder.setOutlook("暂无");
                    }
                    try {
                        Integer age = IdcardUtil.getAgeByIdCard(householder.getCardNo());
                        householder.setAge(age);
                    } catch (Exception e) {
                        log.error("身份证号码转换年龄失败,人员id:" + householder.getId());
                    }
                });
                buildingHouseDetailVO.setHouseholderList(householderList);
            }
            // 查询该房屋的住户信息
            List<PopulationListVO> populationList =
                    this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, null, null);
            if (!populationList.isEmpty()) {
                populationList.forEach(population -> {
                    if(population.getPoliticalOutlook() != null){
                        population.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
                    }else{
                        population.setOutlook("暂无");
                    }
                    try {
                        Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
                        population.setAge(age);
                    } catch (Exception e) {
                        log.error("身份证号码转换年龄失败,人员id:" + population.getId());
                    }
                });
                buildingHouseDetailVO.setPopulationList(populationList);
            }
        }
        return R.ok(buildingHouseDetailVO);
    }
    @Override
    public R buildingVillageListAdmin(Long communityId){
        List<ComMngVillageVO> villageList = this.baseMapper.buildingVillageListAdmin(communityId);
        villageList.forEach(village -> {
            if(StringUtils.isEmpty(village.getName())){
                village.setName(village.getAlley() + village.getHouseNum());
            }
        });
        return R.ok(villageList);
    }
    @Override
    public R addBuildingUnitAdmin(AddBuildingUnitDto addBuildingUnitDto){
        //查询该楼栋信息
        ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingUnitDto.getId());
        if(buildingDO == null){
            return R.fail("未查询到该楼栋信息");
        }
        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
                .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingUnitDto.getUnitNo()));
        if(count > 0){
            return R.fail("该单元号已存在");
        }
        //查询小区信息
        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
        if(villageDO != null){
            StringBuilder address = new StringBuilder();
            StringBuilder housePath = new StringBuilder();
            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingUnitDto.getCommunityId());
            if(populationActVO != null){
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
                if (StringUtils.isNotEmpty(buildingDO.getName())) {
                    address.append(buildingDO.getName()).append("栋");
                }
                if (StringUtils.isNotEmpty(addBuildingUnitDto.getUnitNo())) {
                    address.append(addBuildingUnitDto.getUnitNo()).append("单元");
                }
                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
            }
            ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
            populationHouseDO.setId(Snowflake.getId());
            populationHouseDO.setStreetId(buildingDO.getStreetId());
            populationHouseDO.setVillageId(buildingDO.getVillageId());
            populationHouseDO.setAlley(villageDO.getAlley());
            populationHouseDO.setHouseNum(villageDO.getHouseNum());
            populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
            populationHouseDO.setCommunityId(addBuildingUnitDto.getCommunityId());
            populationHouseDO.setFloor(buildingDO.getName());
            populationHouseDO.setUnitNo(addBuildingUnitDto.getUnitNo());
            populationHouseDO.setAddress(address.toString());
            populationHouseDO.setUpdateAt(new Date());
            populationHouseDO.setPath(housePath.toString());
            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
            comMngPopulationHouseDAO.insert(populationHouseDO);
        }else{
            return R.fail();
        }
        return R.ok();
    }
    @Override
    public R editBuildingUnitAdmin(EditBuildingUnitDto editBuildingUnitDto){
        //查询该楼栋信息
        ComMngBuildingDO buildingDO = this.baseMapper.selectById(editBuildingUnitDto.getId());
        if(buildingDO == null){
            return R.fail("未查询到该楼栋信息");
        }
        Integer oldCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
                .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
        if(oldCount <= 0){
            return R.fail("原单元号不存在");
        }
        Integer newCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
                .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getNewUnitNo()));
        if(newCount > 0){
            return R.fail("新单元号已存在");
        }
        //查询小区信息
        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
        if(villageDO != null){
            String unitString = editBuildingUnitDto.getNewUnitNo() + "单元";
            List<ComMngPopulationHouseDO> editHouseList = new ArrayList<>();
            //查询需要修改的房屋列表信息
            List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                    .eq(ComMngPopulationHouseDO::getVillageId,villageDO.getVillageId())
                    .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
                    .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
            houseList.forEach(house -> {
                ComMngPopulationHouseDO houseDO = new ComMngPopulationHouseDO();
                houseDO.setId(house.getId());
                houseDO.setAddress(house.getAddress().replace(house.getUnitNo() + "单元", unitString));
                houseDO.setPath(house.getPath().replace(house.getUnitNo() + "单元", unitString));
                houseDO.setUnitNo(editBuildingUnitDto.getNewUnitNo());
                editHouseList.add(houseDO);
            });
            List<ComMngPopulationDO> editPopulationList = new ArrayList<>();
            //查询需要修改的人口信息
            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda()
                    .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId())
                    .eq(ComMngPopulationDO::getFloor,buildingDO.getName())
                    .eq(ComMngPopulationDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
            populationList.forEach(population -> {
                ComMngPopulationDO populationDO = new ComMngPopulationDO();
                populationDO.setId(population.getId());
                populationDO.setAddress(population.getAddress().replace(population.getUnitNo() + "单元", unitString));
                populationDO.setUnitNo(editBuildingUnitDto.getNewUnitNo());
                editPopulationList.add(populationDO);
            });
            if(!editHouseList.isEmpty()){
                comMngPopulationHouseDAO.updateUnitAll(editHouseList);
            }
            if(!editPopulationList.isEmpty()){
                comMngPopulationDAO.updateAll(editPopulationList);
            }
        }else{
            return R.fail();
        }
        return R.ok();
    }
    @Override
    public R addBuildingHouseAdmin(AddBuildingHouseDto addBuildingHouseDto){
        //查询该楼栋信息
        ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingHouseDto.getId());
        if(buildingDO == null){
            return R.fail("未查询到该楼栋信息");
        }
        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
                .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingHouseDto.getUnitNo())
                .eq(ComMngPopulationHouseDO::getHouseNo,addBuildingHouseDto.getHouseNo()));
        if(count > 0){
            return R.fail("该房间已存在");
        }
        //查询小区信息
        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
        if(villageDO != null){
            StringBuilder address = new StringBuilder();
            StringBuilder housePath = new StringBuilder();
            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingHouseDto.getCommunityId());
            if(populationActVO != null){
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
                if (StringUtils.isNotEmpty(buildingDO.getName())) {
                    address.append(buildingDO.getName()).append("栋");
                }
                if (StringUtils.isNotEmpty(addBuildingHouseDto.getUnitNo())) {
                    address.append(addBuildingHouseDto.getUnitNo()).append("单元");
                }
                if (StringUtils.isNotEmpty(addBuildingHouseDto.getHouseNo())) {
                    address.append(addBuildingHouseDto.getHouseNo()).append("号");
                }
                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
            }
            ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
            populationHouseDO.setId(Snowflake.getId());
            populationHouseDO.setStreetId(buildingDO.getStreetId());
            populationHouseDO.setVillageId(buildingDO.getVillageId());
            populationHouseDO.setAlley(villageDO.getAlley());
            populationHouseDO.setHouseNum(villageDO.getHouseNum());
            populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
            populationHouseDO.setCommunityId(addBuildingHouseDto.getCommunityId());
            populationHouseDO.setFloor(buildingDO.getName());
            populationHouseDO.setUnitNo(addBuildingHouseDto.getUnitNo());
            populationHouseDO.setHouseNo(addBuildingHouseDto.getHouseNo());
            populationHouseDO.setFloorNum(addBuildingHouseDto.getFloorNum());
            populationHouseDO.setAddress(address.toString());
            populationHouseDO.setUpdateAt(new Date());
            populationHouseDO.setPath(housePath.toString());
            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
            comMngPopulationHouseDAO.insert(populationHouseDO);
        }else{
            return R.fail();
        }
        return R.ok();
    }
    @Override
    public R editBuildingHouseAdmin(EditBuildingHouseDto editBuildingHouseDto){
        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(editBuildingHouseDto.getHouseId());
        if(houseDO == null){
            return R.fail("未查询到该户室");
        }
        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                .eq(ComMngPopulationHouseDO::getVillageId,houseDO.getVillageId())
                .eq(ComMngPopulationHouseDO::getFloor,houseDO.getFloor())
                .eq(ComMngPopulationHouseDO::getUnitNo,houseDO.getUnitNo())
                .eq(ComMngPopulationHouseDO::getHouseNo,editBuildingHouseDto.getHouseNo()));
        if(count > 0){
            return R.fail("该房间已存在");
        }
        //查询小区信息
        ComMngVillageDO villageDO = comActVillageDAO.selectById(houseDO.getVillageId());
        if(villageDO != null){
            StringBuilder address = new StringBuilder();
            StringBuilder housePath = new StringBuilder();
            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(editBuildingHouseDto.getCommunityId());
            if(populationActVO != null){
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
                if (StringUtils.isNotEmpty(houseDO.getFloor())) {
                    address.append(houseDO.getFloor()).append("栋");
                }
                if (StringUtils.isNotEmpty(houseDO.getUnitNo())) {
                    address.append(houseDO.getUnitNo()).append("单元");
                }
                if (StringUtils.isNotEmpty(editBuildingHouseDto.getHouseNo())) {
                    address.append(editBuildingHouseDto.getHouseNo()).append("号");
                }
                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
                houseDO.setAddress(address.toString());
                houseDO.setPath(housePath.toString());
            }
            List<ComMngPopulationDO> editPopulationList = new ArrayList<>();
            //查询需要修改的人口信息
            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda()
                    .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId())
                    .eq(ComMngPopulationDO::getFloor,houseDO.getFloor())
                    .eq(ComMngPopulationDO::getUnitNo,houseDO.getUnitNo())
                    .eq(ComMngPopulationDO::getHouseNo,houseDO.getHouseNo()));
            populationList.forEach(population -> {
                ComMngPopulationDO populationDO = new ComMngPopulationDO();
                populationDO.setId(population.getId());
                populationDO.setAddress(address.toString());
                populationDO.setHouseNo(editBuildingHouseDto.getHouseNo());
                editPopulationList.add(populationDO);
            });
            houseDO.setHouseNo(editBuildingHouseDto.getHouseNo());
            houseDO.setFloorNum(editBuildingHouseDto.getFloorNum());
            comMngPopulationHouseDAO.updateById(houseDO);
            if(!editPopulationList.isEmpty()){
                comMngPopulationDAO.updateAll(editPopulationList);
            }
        }else{
            return R.fail();
        }
        return R.ok();
    }
    @Override
    public R deleteBuildingHousePopulationAdmin(DeleteBuildingHousePopulationDto housePopulationDto){
        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(housePopulationDto.getHouseId());
        if(houseDO == null){
            return R.fail("未查询到该户室");
        }
        if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.yz)){
            ComMngPopulationHouseUserDO houseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
                    .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId()));
            if(houseUserDO != null){
                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zuzhu);
                houseUserDO.setUpdateAt(new Date());
                comMngPopulationHouseUserDAO.updateById(houseUserDO);
            }
        }else if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.jzr)){
            //清理人员和房屋关联关系
            comMngPopulationHouseUserDAO.delete(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
                    .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId()));
            //查询该房屋是否还有人居住
            Integer count = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()));
            if(count <= 0){
                houseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
                comMngPopulationHouseDAO.updateById(houseDO);
            }else{
                //查询该房屋的居住人中是否还有租住的人
                Integer zCount = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                        .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
                        .eq(ComMngPopulationHouseUserDO::getRelationId,ComMngPopulationHouseUserDO.relationId.zuhu));
                if(zCount <= 0){
                    houseDO.setStatus(ComMngPopulationHouseDO.status.zizhu);
                    comMngPopulationHouseDAO.updateById(houseDO);
                }
            }
        }
        return R.ok();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml
@@ -54,4 +54,154 @@
        select t.village_id as villageId,t.name as villageName,t1.id,t1.name  from com_mng_village t left join com_mng_building t1 on t.village_id = t1.village_id where t.community_id=#{id} and t1.id is not null
    </select>
    <select id="pageBuildingAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
        SELECT
            cmb.id,
            cmv.village_id,
            cmv.alley,
            cmb.`name`,
            cmv.`name` AS villageName,
            cmv.house_num as doorNum,
            cmb.unit_total,
            cmb.build_floor_sum,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name`) as houseNum,
            (select count(id) from com_mng_population where village_id = cmb.village_id and floor = cmb.`name`) as populationNum
        FROM
            com_mng_building AS cmb
            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
            <where>
                <if test="pageBuildingListDto.communityId != null">
                    and cmb.act_id = #{pageBuildingListDto.communityId}
                </if>
                <if test="pageBuildingListDto.villageId != null">
                    and cmb.village_id = #{pageBuildingListDto.villageId}
                </if>
                <if test="pageBuildingListDto.keyWord != null and pageBuildingListDto.keyWord != &quot;&quot;">
                    and cmv.alley like concat(#{pageBuildingListDto.keyWord},'%')
                </if>
            </where>
        order by cmb.create_at desc
    </select>
    <select id="buildingListHeaderStatisticsAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo">
        SELECT count( id ) AS buildNum,( SELECT count( id ) FROM com_mng_population_house WHERE community_id = cmb.act_id ) AS houseNum,
        ( SELECT count( id ) FROM com_mng_population_community_tags WHERE community_id = cmb.act_id ) AS populationNum
        FROM
            com_mng_building AS cmb
        WHERE
            cmb.act_id = #{communityId}
    </select>
    <select id="detailBuildAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo">
        SELECT
            cmb.id,
            cmv.alley,
            cmv.house_num AS doorNum,
            cmb.`name`,
            cmv.`name` AS village,
            cmv.village_id,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name`) as houseNum,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` and `status` = 1) as liveTotal,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` and `status` = 2) as leaseTotal,
            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` and `status` = 3) as vacantNum
        FROM
            com_mng_building AS cmb
            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
            where cmb.id = #{id}
    </select>
    <select id="buildingUnitList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO">
        SELECT DISTINCT
            village_id,
            floor,
            unit_no
        FROM
            com_mng_population_house AS cmph
        WHERE
            village_id = #{villageId} and floor = #{floor}
    </select>
    <select id="getBuildingUnitHouseList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO">
        SELECT id, floor, unit_no, house_no, `status`,floor_num as buildingNum,
        ( SELECT count( id ) FROM com_mng_population_house_user WHERE house_id = cmph.id ) AS userNum
        FROM
            com_mng_population_house AS cmph
        where cmph.village_id = #{pageBuildingListDto.villageId}
         and cmph.floor = #{pageBuildingListDto.floor}
          and cmph.unit_no = #{pageBuildingListDto.unit}
          and cmph.house_no is not null
          order by floor_num asc
    </select>
    <select id="getBuildingUnitHouseStatistics" resultType="Map">
        SELECT
            count( id ) as houseNum,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 1) as liveTotal,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 2) as leaseTotal,
            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 3) as vacantNum
        FROM
            com_mng_population_house
        WHERE
            village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null
    </select>
    <select id="buildingUnitHouseDetailAdmin" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO">
        SELECT
            cmph.id,
            cmv.`name` AS villageName,
            cmph.floor,
            cmph.unit_no,
            cmph.house_no,
            cmph.address,
            cmph.`status`,
            cmv.lat,
            cmv.lng
        FROM
            com_mng_population_house AS cmph
            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id
        WHERE
            cmph.id = #{houseId}
    </select>
    <select id="getGridVillageBuildingPopulationList" resultType="com.panzhihua.common.model.vos.grid.PopulationListVO">
        SELECT
            cmp.id,
            cmphu.id AS housePopulationId,
            cmp.sex,
            cmp.`name`,
            IFNULL( cmp.phone, '暂无' ) AS phone,
            cmp.card_no,
            cmpct.label,
            cmp.address,
            cmp.nation,
            cmphu.create_at,
            cmp.political_outlook
        FROM
            com_mng_population_house_user AS cmphu
            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmphu.popul_id
            LEFT JOIN com_mng_population_community_tags AS cmpct ON cmp.id = cmpct.population_id and community_id = #{communityId}
        WHERE
            cmphu.house_id = #{houseId}
        <if test='relation != null '>
           AND cmphu.relation = #{relation}
        </if>
        <if test='relationId != null '>
           AND cmphu.relation_id = #{relationId}
        </if>
        group by id
    </select>
    <select id="buildingVillageListAdmin" resultType="com.panzhihua.common.model.vos.community.ComMngVillageVO">
        SELECT
            village_id,
            alley,
            house_num,
            `name`
        FROM
            com_mng_village
        WHERE
            community_id = #{communityId}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml
@@ -601,4 +601,8 @@
        AND e.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}
        </if>
    </select>
    <update id="updatePopulationUnit">
        update com_mng_population set unit_no = #{newUnitNo} where village_id = #{villageId} and floor = #{floor} and unit_no = #{oldUnitNo}
    </update>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml
New file
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComMngPopulationHouseDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO">
        <id column="id" property="id" />
        <result column="street_id" property="streetId" />
        <result column="community_id" property="communityId" />
        <result column="village_id" property="villageId" />
        <result column="alley" property="alley" />
        <result column="house_num" property="houseNum" />
        <result column="unit_no" property="unitNo" />
        <result column="floor" property="floor" />
        <result column="house_no" property="houseNo" />
        <result column="code" property="code" />
        <result column="address" property="address" />
        <result column="status" property="status" />
        <result column="purpose" property="purpose" />
        <result column="control_status" property="controlStatus" />
        <result column="is_empty" property="isEmpty" />
        <result column="construct_purpose" property="constructPurpose" />
        <result column="construct_area" property="constructArea" />
        <result column="path" property="path" />
        <result column="create_at" property="createAt" />
        <result column="update_at" property="updateAt" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, street_id, community_id, village_id, alley, house_num, unit_no, floor, house_no, code, address, status, purpose, control_status, is_empty, construct_purpose, construct_area, path, create_at, update_at
    </sql>
    <update id="updateHouseUnit">
        update com_mng_population_house set unit_no = #{newUnitNo} where village_id = #{villageId} and floor = #{floor} and unit_no = #{oldUnitNo}
    </update>
    <update id="updateUnitAll" parameterType="java.util.List">
        <foreach collection="houseList" item="item" index="index" separator=";">
            update com_mng_population_house
            <set>
                <if test="item.address != null and item.address != &quot;&quot;">
                    `address` = #{item.address},
                </if>
                <if test="item.path != null and item.path != &quot;&quot;">
                    `path` = #{item.path},
                </if>
                <if test="item.unitNo != null and item.unitNo != &quot;&quot;">
                    `unit_no` = #{item.unitNo},
                </if>
                `update_at` = NOW()
            </set>
            WHERE `id` = #{item.id}
        </foreach>
    </update>
</mapper>