diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java new file mode 100644 index 0000000000..208353f318 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.util.List; + +/** + * desc:房屋和房屋成员返回结果类 + * + * @author: LiuJanJun + * @date: 2022/5/9 1:58 下午 + * @version: 1.0 + */ +@Data +public class HouseMemberResultDTO extends PageFormDTO { + private static final long serialVersionUID = 4574743024782401136L; + + private String agencyName; + private String gridName; + private String neighborHoodName; + private String buildingName; + private String unitName; + /** + * 门牌号 + */ + private String doorName; + /** + * 房屋类型,1楼房,2平房,3别墅 + */ + private String houseType; + + /** + * 家庭成员 + */ + public static List memberList; + + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseMemberResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseMemberResultDTO.java new file mode 100644 index 0000000000..6879feb43d --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseMemberResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 用户基础信息 + * @Author yinzuomei + * @Date 2021/11/1 10:34 上午 + */ +@Data +public class IcHouseMemberResultDTO implements Serializable { + private static final long serialVersionUID = 5621052927788129250L; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + /** + * 备注 + */ + private String remarks; + + +} + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 3e625e88c2..ae3fb5b413 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -18,6 +18,10 @@ package com.epmet.controller; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.MaskResponse; import com.epmet.commons.tools.aop.NoRepeatSubmit; @@ -28,7 +32,9 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.*; @@ -45,6 +51,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -306,4 +313,47 @@ public class HouseController implements ResultDataResolver { return new Result(); } + /** + * desc: 导出一户一档 + * + * @param tokenDto + * @param formDTO + * @param response + * @return void + * @author LiuJanJun + * @date 2022/5/9 1:42 下午 + */ + @NoRepeatSubmit + @RequestMapping(value = "/exportHouseUser") + public void exportHouseUser(@LoginUser TokenDto tokenDto, @RequestBody IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception { + //效验数据 + LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(tokenDto, "【查询房屋】查询当前staff所在组织信息失败"); + formDTO.setAgencyId(loginUserDetail.getAgencyId()); + ValidatorUtils.validateEntity(formDTO); + + ExcelWriter excelWriter = null; + try { + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("一户一档信息.xlsx", response)) + .registerWriteHandler(new FreezeAndFilter()) + .build(); + + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + List dataList = null; + do { + dataList = houseService.getHouseUser(tokenDto,formDTO); + + }while (dataList != null && dataList.size() == formDTO.getPageSize()); + //获取导出配置 + + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "text/htm1; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 3ef5b4ca2a..506ac2e30b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -18,6 +18,7 @@ package com.epmet.service; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -94,4 +95,12 @@ public interface HouseService { * @date 2022/5/6 08:50 */ void updateSort(UpdateSortFormDTO formDTO); + + /** + * desc:条件获取房和家庭成员 + * @param tokenDto + * @param formDTO + * @return + */ + List getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 2c2101e5b3..b992ca9c00 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -16,6 +16,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; @@ -29,7 +30,6 @@ import com.epmet.enums.HousePurposeEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.model.HouseInfoModel; import com.epmet.model.ImportHouseInfoListener; import com.epmet.redis.IcHouseRedis; @@ -70,12 +70,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { @Resource private IcBuildingDao icBuildingDao; @Resource - private IcBuildingUnitDao icBuildingUnitDao; - @Resource private IcHouseDao icHouseDao; @Autowired - private GovOrgOpenFeignClient govOrgOpenFeignClient; - @Autowired private IcHouseRedis icHouseRedis; @Autowired private AgencyService agencyservice; @@ -475,6 +471,17 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { } } + @Override + public List getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO) { + PageData houseList = this.getHouseList(formDTO); + List memberResultDTOS = ConvertUtils.sourceToTarget(houseList.getList(), HouseMemberResultDTO.class); + memberResultDTOS.parallelStream().forEach(o ->{ + RentTenantDataFormDTO userResiInfoListFormDTO = new RentTenantDataFormDTO(); + epmetUserOpenFeignClient.getHouseMemberList(userResiInfoListFormDTO); + }); + return memberResultDTOS; + } + /** * @Author sun * @Description 【人房】房屋、居民统计列表数据 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RentTenantDataFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RentTenantDataFormDTO.java index c79bf3e596..ae6986765a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RentTenantDataFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/RentTenantDataFormDTO.java @@ -1,24 +1,52 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; import javax.validation.constraints.NotBlank; -import java.io.Serializable; /** - * 租客,房东信息 + * desc:居民信息查询条件 * * @author zhy * @date 2022/4/26 10:54 */ @Data -public class RentTenantDataFormDTO implements Serializable { - private static final long serialVersionUID = 9156247659994638103L; +public class RentTenantDataFormDTO extends PageFormDTO { - @NotBlank(message = "userId不能为空") + private static final long serialVersionUID = 803398545727377361L; + + public interface RentTenantDataForm{} + + @NotBlank(message = "userId不能为空", groups = RentTenantDataForm.class) private String userId; - @NotBlank(message = "tokenDto获取customerId不能为空") + @NotBlank(message = "tokenDto获取customerId不能为空", groups = RentTenantDataForm.class) private String customerId; + /** + * 组织Id + */ + private String agencyId; + + /** + * 网格Id + */ + private String gridId; + + /** + * 小区ID + */ + private String neighborHoodId; + + /** + * 楼栋ID + */ + private String buildingId; + + /** + * 房间ID + */ + private String houseId; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBaseResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBaseResultDTO.java new file mode 100644 index 0000000000..f54ad0cfe4 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBaseResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 用户基础信息 + * @Author yinzuomei + * @Date 2021/11/1 10:34 上午 + */ +@Data +public class IcResiUserBaseResultDTO implements Serializable { + private static final long serialVersionUID = 5621052927788129250L; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + /** + * 备注 + */ + private String remarks; + + +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserPageResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserPageResultDTO.java deleted file mode 100644 index 0c5f5ab0bf..0000000000 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserPageResultDTO.java +++ /dev/null @@ -1,173 +0,0 @@ -package com.epmet.dto.result; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @Description TODO - * @Author yinzuomei - * @Date 2021/11/1 10:34 上午 - */ -@Data -public class IcResiUserPageResultDTO implements Serializable { - private static final long serialVersionUID = 5621052927788129250L; - private String icResiUserId; - private String gridId; - private String gridName; - /** - * 所属小区ID - */ - private String villageId; - private String vallageName; - - - /** - * 所属楼宇Id - */ - private String buildId; - private String buildName; - - /** - * 单元id - */ - private String unitId; - private String unitName; - - /** - * 所属家庭Id - */ - private String homeId; - private String homeName; - - /** - * 姓名 - */ - private String name; - - /** - * 手机号 - */ - private String mobile; - - /** - * 性别 - */ - private String gender; - - /** - * 身份证号 - */ - private String idCard; - - /** - * 出生日期 - */ - private String birthday; - - /** - * 备注 - */ - private String remarks; - - /** - * 是否党员 - */ - private Boolean isParty; - - /** - * 是否低保户 - */ - private Boolean isDbh; - - /** - * 是否保障房 - */ - private Boolean isEnsureHouse; - - /** - * 是否失业 - */ - private Boolean isUnemployed; - - /** - * 是否育龄妇女 - */ - private Boolean isYlfn; - - /** - * 是否退役军人 - */ - private Boolean isVeterans; - - /** - * 是否统战人员 - */ - private Boolean isUnitedFront; - - /** - * 是否信访人员 - */ - private Boolean isXfry; - - /** - * 是否志愿者 - */ - private Boolean isVolunteer; - - /** - * 是否老年人 - */ - private Boolean isOldPeople; - - /** - * 是否空巢 - */ - private Boolean isKc; - - /** - * 是否失独 - */ - private Boolean isSd; - - /** - * 是否失能 - */ - private Boolean isSn; - - /** - * 是否失智 - */ - private Boolean isSz; - - /** - * 是否残疾 - */ - private Boolean isCj; - - /** - * 是否大病 - */ - private Boolean isDb; - - /** - * 是否慢病 - */ - private Boolean isMb; - - /** - * 是否特殊人群 - */ - private Boolean isSpecial; - - - // 以下属性都需要单独处理,不是直接取数据库的字段 - private String demandCategoryIds; - - private String demandName; - - /** - * 房屋类型,1楼房,2平房,3别墅 - */ - private String houseType;} - diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 78aa5f8181..1bd57957c1 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -740,4 +740,12 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/icresiuser/userchartlist") Result> userChartList(@RequestBody UserChartFormDTO userDTO); + + /** + * desc:条件获取房屋成员信息 + * @param formDTO + * @return + */ + @PostMapping("/epmetuser/icresiuser/getHouseMemberList") + Result> getHouseMemberList(@RequestBody RentTenantDataFormDTO formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index aa0cb1e7f9..0231dce7b5 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -543,4 +543,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "userChartList", userDTO); } + @Override + public Result> getHouseMemberList(RentTenantDataFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getHouseMemberList", formDTO); + } + } 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 1b923f19d5..97b9ded9a1 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 @@ -270,7 +270,7 @@ public class IcResiUserController implements ResultDataResolver { */ @PostMapping("rent/getrentresiuserinfo") public Result getRentResiUserInfo(@RequestBody RentTenantDataFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); + ValidatorUtils.validateEntity(formDTO, RentTenantDataFormDTO.RentTenantDataForm.class); return new Result().ok(icResiUserService.getRentResiUserInfo(formDTO)); } @@ -1001,19 +1001,8 @@ public class IcResiUserController implements ResultDataResolver { List r = icResiUserService.listHomeUserBrief(houseId, customerId); return new Result().ok(r); } -// @PostMapping("test-async") -// public Result testAsync(HttpServletRequest request) { -//// tl.set("wxz"); -// executorService.submit(() -> { -// try { -// Thread.sleep(500l); -// log.info("[我是子线程]:" + EpmetRequestHolder.getHeader("app")); -// System.out.println("---"); -// } catch (InterruptedException e) { -// log.error("method exception", e); -// } -// icResiUserImportService.testAsync(); -// }); -// return new Result(); -// } + @PostMapping("getHouseMemberList") + Result> getHouseMemberList(@RequestBody RentTenantDataFormDTO formDTO) { + return new Result().ok(icResiUserService.getHouseMemberList(formDTO)); + } } 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 6de40fe9fa..32878e0bde 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 @@ -159,11 +159,11 @@ public interface IcResiUserDao extends BaseDao { @Param("tableName") String tableName, @Param("userId") String userId); /** - * @Author sun - * @Description 查询居民信息 - **/ - IcResiUserDTO getResiUser(IcResiUserDTO dto); - + * desc:根据身份证号获取居民信息 + * @param idCard + * @param customerId + * @return + */ IcResiUserDTO getResiUserByIdCard(@Param("idCard") String idCard,@Param("customerId") String customerId); /** 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 698156282f..51d71b72f0 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 @@ -319,4 +319,10 @@ public interface IcResiUserService extends BaseService { */ String updateImage(TokenDto tokenDto, RentTenantFormDTO formDTO); + /** + * desc:条件获取居民基础信息 + * @param formDTO + * @return + */ + List getHouseMemberList(RentTenantDataFormDTO formDTO); } 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 96793a6db8..f48398684e 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 @@ -208,10 +208,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getHouseMemberList(RentTenantDataFormDTO formDTO) { + String pids = ""; + //根据pid 获取居民 信息 + if (StringUtils.isNotBlank(formDTO.getGridId())){ + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getGridId()); + if (gridInfo == null){ + log.warn("getHouseMemberList gridId:{} is not exist",formDTO.getGridId()); + return null; + } + pids = gridInfo.getPids().concat(StrConstant.COLON).concat(formDTO.getGridId()); + } + if (StringUtils.isNotBlank(formDTO.getAgencyId())){ + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); + if (agencyInfo == null){ + log.warn("getHouseMemberList agencyId:{} is not exist",formDTO.getAgencyId()); + return null; + } + pids = agencyInfo.getPids().concat(StrConstant.COLON).concat(formDTO.getAgencyId()); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcResiUserEntity::getCustomerId,formDTO.getCustomerId()) + .eq(StringUtils.isNotBlank(formDTO.getAgencyId()),IcResiUserEntity::getCustomerId,formDTO.getCustomerId()) + .eq(StringUtils.isNotBlank(formDTO.getCustomerId()),IcResiUserEntity::getCustomerId,formDTO.getCustomerId()) + ; + /*PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getIsPage()) + .doSelectPage(()->baseDao.getResiUser())*/ + return null; + } + } 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 1645f09bdf..8b35a19c85 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 @@ -363,19 +363,6 @@ AND IC_RESI_USER = #{userId} -