huanghongfa
2021-05-22 b500fcb5f25d0f1f0e31304fd1fa340e84360f3a
实有人口优化
12个文件已修改
5个文件已添加
490 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CascadeHouseDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -125,7 +125,7 @@
                        vo.setBirthday(year + "-" + month + "-" + day);
                    }
                    //设置用户年龄
                    vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
//                    vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
                    //获取用户性别
                    int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
                    if(sex%2 == 1){
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CascadeHouseDTO.java
New file
@@ -0,0 +1,22 @@
package com.panzhihua.common.model.dtos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * 房屋级联选择请求参数
 */
@Data
@ApiModel("房屋级联选择请求参数")
public class CascadeHouseDTO implements Serializable {
    @ApiModelProperty(value="级别(1.街路巷 2.门牌号 3.楼排号 4.单元号 5.户室)")
    private Integer level = 1;
    @ApiModelProperty(value="名称")
    private String name;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java
New file
@@ -0,0 +1,76 @@
package com.panzhihua.common.model.dtos.community;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import com.panzhihua.common.model.helper.sensitive.Sensitive;
import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PutGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
 * 实有人口编辑请求参数
 */
@Data
@ApiModel("实有人口编辑请求参数")
public class ComMngPopulationEditDTO implements Serializable {
    @ApiModelProperty("实有人口id")
    private Long id;
    @ApiModelProperty("姓名")
    @NotBlank(groups = {PutGroup.class},message = "姓名不可为空")
    private String name;
    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
    @NotBlank(groups = {PutGroup.class},message = "政治面貌不可为空")
    private Integer politicalOutlook;
    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
    @NotBlank(groups = {PutGroup.class},message = "是否租住不可为空")
    private Integer isRent;
    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
    @NotBlank(groups = {PutGroup.class},message = "与户主关系不可为空")
    private Integer relation;
    @ApiModelProperty("联系方式")
    @NotBlank(groups = {PutGroup.class},message = "联系方式不可为空")
    @EncryptDecryptField
    private String phone;
    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
    @NotBlank(groups = {PutGroup.class},message = "文化程度不可为空")
    private Integer cultureLevel;
    @ApiModelProperty("婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)")
    @NotBlank(groups = {PutGroup.class},message = "婚姻状况不可为空")
    private Integer marriage;
    @ApiModelProperty("工作单位")
    @NotBlank(groups = {PutGroup.class},message = "工作单位不可为空")
    private String workCompany;
    @ApiModelProperty("外地or本地(1.本地  2.外地)")
    @NotBlank(groups = {PutGroup.class},message = "外地/本地不可为空")
    private Integer outOrLocal;
    @ApiModelProperty("户口所在地")
    @NotBlank(groups = {PutGroup.class},message = "户口所在地不可为空")
    private String censusRegister;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
    private String label;
    @ApiModelProperty("房屋信息请求参数")
    private List<ComMngPopulationHouseEditDTO> houseEditDTOList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.model.dtos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * 实有人口编辑请求参数
 */
@Data
@ApiModel("实有人口房屋编辑请求参数")
public class ComMngPopulationHouseEditDTO implements Serializable {
    @ApiModelProperty("实有房屋id")
    private Long id;
    @ApiModelProperty(value = "是否是居住地(1.是 2.否)")
    private Integer isResidence;
    /**
     * 是否是居住地(1.是 2.否)
     */
    public interface isResidence{
        int yes = 1;
        int no = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java
New file
@@ -0,0 +1,46 @@
package com.panzhihua.common.model.vos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("级联菜单返回参数")
public class ComMngCascadeHouseVO {
    /**
     * 房屋id
     */
    @ApiModelProperty("房屋id")
    private Long houseId;
    /**
     * 街路巷
     */
    @ApiModelProperty("街路巷")
    private String alley;
    /**
     * 门牌号
     */
    @ApiModelProperty("门牌号")
    private String houseNum;
    /**
     * 楼排号
     */
    @ApiModelProperty("楼排号")
    private String floor;
    /**
     *单元号
     */
    @ApiModelProperty("单元号")
    private String unitNo;
    /**
     *户室(房间号)
     */
    @ApiModelProperty("户室(房间号)")
    private String houseNo;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.common.model.vos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 实有人口统计返回参数
 */
@Data
@ApiModel("实有人口统计返回参数")
public class ComMngPopulationTotalVO {
    /**
     * 人口总数
     */
    @ApiModelProperty("人口总数")
    private Long populationTotal;
    /**
     * 本地人口
     */
    @ApiModelProperty("本地人口")
    private Integer localTotal;
    /**
     * 外地人口
     */
    @ApiModelProperty("外地人口")
    private Integer outTotal;
    /**
     * 特殊群体
     */
    @ApiModelProperty("特殊群体")
    private Integer specialTotal;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2181,11 +2181,11 @@
    /**
     * 编辑实有人口
     * @param editComMngPopulationVO
     * @param populationEditDTO
     * @return
     */
    @PostMapping("/common/data/population/edit")
    R editPopulation(@RequestBody EditComMngPopulationVO editComMngPopulationVO, @RequestParam("communityId") Long communityId);
    R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO, @RequestParam("communityId") Long communityId);
    /**
     * 微心愿删除
@@ -2461,4 +2461,20 @@
     */
    @PostMapping("/common/data/population/edit/electronicArchives")
    R editUserElectronicFile(@RequestBody UserElectronicFileVO userElectronicFileVO);
    /**
     * 实有人口统计
     * @param communityId   社区id
     * @return  统计结果
     */
    @PostMapping("/common/data/population/statistics")
    R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId);
    /**
     * 查询房屋级联菜单
     * @param cascadeHouseDTO   请求参数
     * @return  菜单列表
     */
    @PostMapping("/common/data/population/cascade/list")
    R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -11,11 +11,14 @@
import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
import com.panzhihua.common.enums.PopulSexEnum;
import com.panzhihua.common.listen.ComMngPopulationServeExcelListen;
import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngPopulationExcelVo;
import com.panzhihua.common.model.vos.community.ComMngPopulationTotalVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.common.model.vos.community.EditComMngPopulationVO;
import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
@@ -74,6 +77,14 @@
        return communityService.pagePopulation(comMngPopulationVO);
    }
    @ApiOperation(value = "实有人口统计接口", response = ComMngPopulationTotalVO.class)
    @PostMapping("/statistics")
    public R getPopulationTotalByAdmin() {
        //获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.getPopulationTotalByAdmin(communityId);
    }
    @ApiOperation(value = "excel导入实有人口")
    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
@@ -95,9 +106,9 @@
    @ApiOperation(value = "编辑实有人口")
    @PostMapping(value = "/edit")
    public R editPopulationInfo(@RequestBody EditComMngPopulationVO editComMngPopulationVO){
    public R editPopulationInfo(@RequestBody ComMngPopulationEditDTO populationEditDTO){
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return communityService.editPopulation(editComMngPopulationVO,loginUserInfo.getCommunityId());
        return communityService.editPopulation(populationEditDTO,loginUserInfo.getCommunityId());
    }
    @ApiOperation(value = "实有人口详情", response = ComMngPopulationVO.class)
@@ -374,4 +385,10 @@
    public R editPopulation(@RequestBody UserElectronicFileVO userElectronicFileVO){
        return communityService.editUserElectronicFile(userElectronicFileVO);
    }
    @ApiOperation(value = "房屋级联菜单查询")
    @PostMapping("/cascade/list")
    public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO){
        return communityService.getCascadeHouseAddress(cascadeHouseDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -39,6 +39,8 @@
    private ComMngProvinceService comMngProvinceService;
    @Resource
    private ComMngPopulationService comMngPopulationService;
    @Resource
    private ComMngPopulationHouseService comMngPopulationHouseService;
    /**
@@ -354,12 +356,12 @@
    /**
     * 编辑实有人口
     * @param editComMngPopulationVO
     * @param populationEditDTO
     * @return
     */
    @PostMapping("/population/edit")
    R editPopulation(@RequestBody EditComMngPopulationVO editComMngPopulationVO,@RequestParam("communityId") Long communityId){
        return comMngPopulationService.editPopulation(editComMngPopulationVO, communityId);
    R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,@RequestParam("communityId") Long communityId) throws Exception{
        return comMngPopulationService.editPopulation(populationEditDTO, communityId);
    }
    /**
@@ -392,4 +394,24 @@
        return comMngPopulationService.editUserElectronicFile(userElectronicFileVO);
    }
    /**
     * 实有人口统计
     * @param communityId   社区id
     * @return  统计结果
     */
    @PostMapping("/population/Statistics")
    public R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId) {
        return comMngPopulationService.getPopulationTotalByAdmin(communityId);
    }
    /**
     * 查询房屋级联菜单
     * @param cascadeHouseDTO   请求参数
     * @return  菜单列表
     */
    @PostMapping("/population/cascade/list")
    public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO){
        return comMngPopulationHouseService.getCascadeHouseAddress(cascadeHouseDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -7,6 +7,7 @@
import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
import com.panzhihua.common.model.vos.area.AreaAddressVO;
import com.panzhihua.common.model.vos.community.ComActMessageVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationTotalVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.common.model.vos.community.PageComActMessageVO;
import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
@@ -223,4 +224,11 @@
            "(select district_name from com_mng_struct_area_district where district_adcode = #{districtCode}) as district" +
            "</script>")
    AreaAddressVO getAreaAddress(@Param("provinceCode") String provinceCode,@Param("cityCode") String cityCode,@Param("districtCode") String districtCode);
    @Select("select count(id) as populationTotal " +
            ",(select count(id) from com_mng_population where act_id = #{communityId} and out_or_local = 1) as localTotal " +
            ",(select count(id) from com_mng_population where act_id = #{communityId} and out_or_local = 2) as outTotal " +
            ",(select count(id) from com_mng_population where act_id = #{communityId} and label is null) as specialTotal " +
            " from com_mng_population as cmp where act_id = #{communityId}")
    ComMngPopulationTotalVO getPopulationTotalByAdmin(@Param("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.common.model.vos.community.ComMngCascadeHouseVO;
import com.panzhihua.common.model.vos.user.ComMngHouseVo;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
import org.apache.ibatis.annotations.Mapper;
@@ -22,4 +23,14 @@
            " where cmphu.popul_id = #{populId}")
    List<ComMngHouseVo> getPopulHouseListByPopulId(@Param("populId")Long populId);
    @Select("<script> " +
            "select id,alley from com_mng_population_house" +
            "<if test='name != null and name != &quot;&quot;'>" +
            "and c.alley = #{name}" +
            " </if> " +
            " </script>")
    List<ComMngCascadeHouseVO> getHouseLevelByAlley(@Param("name") String name);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
 * @auther lyq
@@ -12,4 +14,7 @@
@Mapper
public interface ComMngPopulationHouseUserDAO extends BaseMapper<ComMngPopulationHouseUserDO> {
    @Select("delete from com_mng_population_house_user where popul_id = #{populationId}")
    void deletePopulationHouseByUserId(@Param("populationId") Long populationId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
@@ -160,26 +160,6 @@
    private String birthday;
    /**
     * 房屋状态(1.自住 2.租住 3.其他)
     */
    private Integer houseStatus;
    /**
     * 房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)
     */
    private Integer housePurpose;
    /**
     * 管控状态(1.常规 2.关注 3.管控)
     */
    private Integer controlStatus;
    /**
     * 是否是居住地(1.是 2.否)
     */
    private Integer isResidence;
    /**
     * 居住地房屋id
     */
    private Long houseId;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
@@ -1,6 +1,8 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
/**
@@ -10,4 +12,11 @@
 */
public interface ComMngPopulationHouseService extends IService<ComMngPopulationHouseDO> {
    /**
     * 查询房屋级联菜单
     * @param cascadeHouseDTO   请求参数
     * @return  菜单列表
     */
    R getCascadeHouseAddress(CascadeHouseDTO cascadeHouseDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -1,6 +1,7 @@
package com.panzhihua.service_community.service;
import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
import com.panzhihua.common.model.vos.R;
@@ -103,11 +104,11 @@
    /**
     * 编辑实有人口
     * @param editComMngPopulationVO
     * @param populationEditDTO
     * @param communityId
     * @return
     */
    R editPopulation(EditComMngPopulationVO editComMngPopulationVO, Long communityId);
    R editPopulation(ComMngPopulationEditDTO populationEditDTO, Long communityId) throws Exception;
    /**
     * 分页查询特殊群体
@@ -136,4 +137,11 @@
     * @return
     */
    R editUserElectronicFile(UserElectronicFileVO userElectronicFileVO);
    /**
     * 实有人口统计
     * @param communityId   社区id
     * @return  统计结果
     */
    R getPopulationTotalByAdmin(Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
@@ -1,11 +1,20 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngCascadeHouseVO;
import com.panzhihua.service_community.dao.ComMngPopulationHouseDAO;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
import com.panzhihua.service_community.service.ComMngPopulationHouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
/**
 * @auther lyq
@@ -16,4 +25,34 @@
@Service
public class ComMngPopulationHouseServiceImpl extends ServiceImpl<ComMngPopulationHouseDAO, ComMngPopulationHouseDO> implements ComMngPopulationHouseService {
    /**
     * 查询房屋级联菜单
     * @param cascadeHouseDTO   请求参数
     * @return  菜单列表
     */
    @Override
    public R getCascadeHouseAddress(CascadeHouseDTO cascadeHouseDTO){
        List<ComMngCascadeHouseVO> cascadeHouseVOList = new ArrayList<>();
        switch (cascadeHouseDTO.getLevel()){
            case 1:
                cascadeHouseVOList = this.baseMapper.getHouseLevelByAlley(cascadeHouseDTO.getName());
                cascadeHouseVOList = cascadeHouseVOList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getAlley()))), ArrayList::new));
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            default:
                break;
        }
        return R.ok(cascadeHouseVOList);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -9,20 +9,20 @@
import com.google.common.collect.Lists;
import com.panzhihua.common.enums.PopulIsOksEnum;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.dtos.community.PageComActDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.area.AreaAddressVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.common.utlis.AgeUtils;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.PayUtil;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
import com.panzhihua.service_community.service.ComMngPopulationService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
@@ -40,9 +40,7 @@
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -64,6 +62,8 @@
    private ComMngCarDAO comMngCarDAO;
    @Resource
    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
    @Resource
    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
    @Value("${domain.aesKey:}")
    private String aesKey;
@@ -136,6 +136,10 @@
        if (ObjectUtils.isEmpty(comMngPopulationDO)) {
            return R.fail("用户信息不存在");
        }
        if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄
            comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTime(comMngPopulationDO.getBirthday()));
        }
        ComMngPopulationVO comMngPopulationVO = new ComMngPopulationVO();
        BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO);
@@ -192,6 +196,13 @@
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComMngPopulationVO> iPage = populationDAO.pagePopulation(page, comMngPopulationVO);
        if(!iPage.getRecords().isEmpty()){
            iPage.getRecords().forEach(populDO -> {
                if(StringUtils.isNotEmpty(populDO.getBirthday())){
                    populDO.setAge(AgeUtils.getAgeFromBirthTime(populDO.getBirthday()));
                }
            });
        }
        return R.ok(iPage);
    }
@@ -545,46 +556,60 @@
    }
    @Override
    public R editPopulation(EditComMngPopulationVO vo, Long communityId) {
        ComActDO comActDO = comActDAO.selectById(communityId);
    public R editPopulation(ComMngPopulationEditDTO vo, Long communityId) throws Exception{
        ComMngPopulationDO populationDO = populationDAO.selectById(vo.getId());
        if(populationDO==null){
            return R.fail();
        }
        String cardNo = populationDO.getCardNo();
        BeanUtils.copyProperties(vo,populationDO);
        try {
            //TODO 修改拦截器时候需要维护加密操作
            if(!cardNo.equals(vo.getCardNo())){//判断是否修改身份证号码
                //判断要修改的身份证号码是否已存在
                ComMngPopulationDO cardNoDO = populationDAO.selectOne(new QueryWrapper<ComMngPopulationDO>()
                        .lambda().eq(ComMngPopulationDO::getCardNo,vo.getCardNo()));
                if(cardNoDO != null){
                    return R.fail("您输入的身份证已存在,请重新输入");
                }
                populationDO.setCardNo(AESUtil.encrypt128(vo.getCardNo(), aesKey));
            }else{
                populationDO.setCardNo(AESUtil.encrypt128(cardNo, aesKey));
            }
        populationDO.setCardNo(null);
            populationDO.setPhone(AESUtil.encrypt128(vo.getPhone(), aesKey));
        } catch (Exception e) {
            e.printStackTrace();
            return R.fail();
        }
        ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley",vo.getRoad()).eq("house_num",vo.getDoorNo()).eq("community_id",communityId));
        if (comMngVillageDO == null) {
            return R.fail("街道巷:" + vo.getRoad() + vo.getDoorNo() + "不存在!");
//            throw new ServiceException("街道巷:" + vo.getRoad() + "不存在!");
        }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        ComActDO comActDO = comActDAO.selectById(communityId);
        if(comActDO != null){
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        }
        //清除用户房屋居住信息
        comMngPopulationHouseUserDAO.deletePopulationHouseByUserId(vo.getId());
        //更新用户的房屋信息
        Long houseId = null;
        List<ComMngPopulationHouseUserDO> populationHouseUserDOList = new ArrayList<>();
        if(!vo.getHouseEditDTOList().isEmpty()){
            for (ComMngPopulationHouseEditDTO houseEditDto:vo.getHouseEditDTOList()) {
                ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
                populationHouseUserDO.setPopulId(populationDO.getId());
                populationHouseUserDO.setHouseId(houseEditDto.getId());
                if(houseEditDto.getIsResidence().equals(ComMngPopulationHouseEditDTO.isResidence.yes)){
                    houseId = houseEditDto.getId();//居住地
                }
                populationHouseUserDOList.add(populationHouseUserDO);
            }
        }
        comMngPopulationHouseUserService.saveBatch(populationHouseUserDOList);
        if(houseId != null){//居住地更新
            ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(houseId);
            if(houseDO != null){
                populationDO.setRoad(houseDO.getAlley());
                populationDO.setDoorNo(houseDO.getHouseNum());
                populationDO.setFloor(houseDO.getFloor());
                populationDO.setUnitNo(houseDO.getUnitNo());
                populationDO.setHouseNo(houseDO.getHouseNo());
                ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().lambda()
                        .eq(ComMngVillageDO::getAlley,houseDO.getAlley()).eq(ComMngVillageDO::getHouseNum,houseDO.getHouseNum())
                        .eq(ComMngVillageDO::getCommunityId,communityId));
                if (comMngVillageDO != null) {
                    populationDO.setVillageId(comMngVillageDO.getVillageId());
        if(!StringUtils.isEmpty(comMngVillageDO.getGroupAt())){
            populationDO.setVillageName(comMngVillageDO.getGroupAt());
        }
                }
            }
        }
        populationDO.setUpdateAt(new Date());
//        this.updateById(populationDO);
        if(populationDAO.updateById(populationDO) > 0){
            return R.ok();
        }else{
@@ -649,4 +674,19 @@
         populationDAO.updateSysUserElectronicFile(userElectronicFileVO);
        return R.ok();
    }
    /**
     * 实有人口统计
     * @param communityId   社区id
     * @return  统计结果
     */
    @Override
    public R getPopulationTotalByAdmin(Long communityId){
        return R.ok(this.baseMapper.getPopulationTotalByAdmin(communityId));
    }
    public static void main(String[] args) {
//        List<ComMngPopulationHouseUserDO> distinctClass = populationHouseUserDOList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getPopulId() + ";" + o.getHouseId() + ";" + o.getId() + ";" + o.getRelation()))), ArrayList::new));
    }
}