diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RHZKStatisticsResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RHZKStatisticsResultDTO.java new file mode 100644 index 0000000000..5cdd7fc1dd --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RHZKStatisticsResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author zxc + * @DateTime 2022/11/16 09:15 + */ +@Data +public class RHZKStatisticsResultDTO implements Serializable { + private static final long serialVersionUID = 6493812449146476415L; + + private Integer userTotal = NumConstant.ZERO; + + /** + * 人户一致,人在户不在,户在人不在, + * 为空的 暂不清楚 + */ + private Integer rhyzUserTotal = NumConstant.ZERO; + private BigDecimal rhyzUserRatio = NumConstant.ZERO_DECIMAL; + private Integer rzhbzUserTotal = NumConstant.ZERO; + private BigDecimal rzhbzUserRatio = NumConstant.ZERO_DECIMAL; + private Integer hzrzUserTotal = NumConstant.ZERO; + private BigDecimal hzrzUserRatio = NumConstant.ZERO_DECIMAL; + private Integer zbqcUserTotal = NumConstant.ZERO; + private BigDecimal zbqcUserRatio = NumConstant.ZERO_DECIMAL; + + @JsonIgnore + private Integer total; + @JsonIgnore + private String rhzk; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java index a51390f16f..b146f047cd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java @@ -108,4 +108,13 @@ public interface UserConstant { * 居民信息 子表中的主表id */ String IC_RESI_USER = "IC_RESI_USER"; + + /** + * 人户一致,人在户不在,户在人不在, + * 为空的 暂不清楚 + */ + String R_H_Y_Z = "rhyz"; + String R_Z_H_B_Z = "rzhbz"; + String H_Z_R_B_Z = "hzrbz"; + String Z_B_Q_C = ""; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 429585d104..a7eb0af5e8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -1465,4 +1465,15 @@ public class IcResiUserController implements ResultDataResolver { return new Result().ok(icResiUserService.getIcResiUserInfo(userId)); } + /** + * @Description 人户状况统计查询 + * @param tokenDto + * @Author zxc + * @Date 2022/11/16 09:22 + */ + @PostMapping("rhzk") + public Result renHuCondition(@LoginUser TokenDto tokenDto){ + return new Result().ok(icResiUserService.renHuCondition(tokenDto)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 8caa220af2..b96b595ac1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -439,4 +439,6 @@ public interface IcResiUserDao extends BaseDao { * @Date 2022/10/24 15:47 */ ResiAndLocalResiResultDTO getResiCount(@Param("agencyId")String agencyId,@Param("idCard")String idCard,@Param("customerId")String customerId); + + List getUserByRenHu(@Param("agencyId")String agencyId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 246f87a15d..7bf36c3ecb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -525,4 +525,13 @@ public interface IcResiUserService extends BaseService { IcResiUserInfoCache getIcResiUserInfo(String userId); void epidemicPreventionExport(EpidemicPreventionFormDTO formDTO, HttpServletResponse response) throws IOException; + + /** + * @Description 人户状况统计查询 + * @param tokenDto + * @Author zxc + * @Date 2022/11/16 09:22 + */ + RHZKStatisticsResultDTO renHuCondition(TokenDto tokenDto); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 414ddcaa80..2618c0cea7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -3630,4 +3630,61 @@ public class IcResiUserServiceImpl extends BaseServiceImpl userByRenHu = baseDao.getUserByRenHu(staffInfo.getAgencyId()); + RHZKStatisticsResultDTO r = new RHZKStatisticsResultDTO(); + if (CollectionUtils.isEmpty(userByRenHu)){ + return r; + } + r.setUserTotal(userByRenHu.stream().collect(Collectors.summingInt(RHZKStatisticsResultDTO::getTotal))); + userByRenHu.forEach(u -> { + switch (u.getRhzk()){ + case UserConstant.R_H_Y_Z: + r.setRhyzUserTotal(u.getTotal()); + r.setRhyzUserRatio(getRatio(r.getUserTotal(),u.getTotal())); + break; + case UserConstant.R_Z_H_B_Z: + r.setRzhbzUserTotal(u.getTotal()); + r.setRzhbzUserRatio(getRatio(r.getUserTotal(),u.getTotal())); + break; + case UserConstant.H_Z_R_B_Z: + r.setHzrzUserTotal(u.getTotal()); + r.setHzrzUserRatio(getRatio(r.getUserTotal(),u.getTotal())); + break; + case UserConstant.Z_B_Q_C: + r.setZbqcUserTotal(u.getTotal()); + r.setZbqcUserRatio(getRatio(r.getUserTotal(),u.getTotal())); + break; + default: + break; + } + }); + return r; + } + + /** + * @Description + * @param total 总人数 + * @param fz 分子人数 + * @Author zxc + * @Date 2022/11/16 10:12 + */ + public BigDecimal getRatio(Integer total,Integer fz){ + BigDecimal totalBig = new BigDecimal(total); + BigDecimal fzBig = new BigDecimal(fz); + return fzBig.multiply(NumConstant.ONE_HUNDRED_DECIMAL).divide(totalBig, NumConstant.TWO, BigDecimal.ROUND_HALF_UP); + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 9c48f39c2f..22704d92d8 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1402,4 +1402,20 @@ AND ID_CARD = #{idCard} + + +