diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListForExportFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListForExportFormDTO.java new file mode 100644 index 0000000000..fb95fc9dd1 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListForExportFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 不分页,导出查询 + * @Author yinzuomei + * @Date 2021/11/1 3:33 下午 + */ +@Data +public class ListForExportFormDTO implements Serializable { + @NotBlank(message = "formCode不能为空", groups = IcResiUserPageFormDTO.AddUserInternalGroup.class) + private String formCode; + + @NotBlank(message = "customerId不能为空", groups = IcResiUserPageFormDTO.AddUserInternalGroup.class) + private String customerId; + /** + * 表对应的字段及值 + */ + private List conditions; +} + 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 e00e092d1b..0198fd403b 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 @@ -35,10 +35,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IcResiUserDTO; -import com.epmet.dto.form.CustomerFormQueryDTO; -import com.epmet.dto.form.IcResiDetailFormDTO; -import com.epmet.dto.form.IcResiUserFormDTO; -import com.epmet.dto.form.IcResiUserPageFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormGroupDTO; import com.epmet.dto.result.FormItem; @@ -303,4 +300,10 @@ public class IcResiUserController { ValidatorUtils.validateEntity(pageFormDTO,IcResiDetailFormDTO.AddUserInternalGroup.class); return new Result().ok(icResiUserService.queryIcResiDetail(pageFormDTO)); } + + @PostMapping("list-for-export") + public Result>> queryListForExport(@RequestHeader(required = false) String customerId,@RequestBody ListForExportFormDTO formDTO){ + formDTO.setCustomerId(customerId); + return new Result>>().ok(icResiUserService.queryListForExport(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 ab959cb80a..0f40d25f08 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 @@ -73,4 +73,9 @@ public interface IcResiUserDao extends BaseDao { * @date 2021/10/28 11:19 上午 */ List> selectSubTableRecords(@Param("icResiUserId") String icResiUserId,@Param("tableName") String tableName); + + List> selectListResiMapForExport(@Param("customerId") String customerId, + @Param("formCode")String formCode, + @Param("conditions")List conditions, + @Param("subTables")List subTables); } \ No newline at end of file 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 e1e7713c61..3e2e7270fa 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 @@ -24,6 +24,7 @@ import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.IcResiDetailFormDTO; import com.epmet.dto.form.IcResiUserFormDTO; import com.epmet.dto.form.IcResiUserPageFormDTO; +import com.epmet.dto.form.ListForExportFormDTO; import com.epmet.entity.IcResiUserEntity; import java.util.List; @@ -119,4 +120,6 @@ public interface IcResiUserService extends BaseService { * @date 2021/10/28 10:29 上午 */ Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO); + + List> queryListForExport(ListForExportFormDTO formDTO); } \ No newline at end of file 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 d212421d81..97eb862afe 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 @@ -35,10 +35,7 @@ import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.IcResiUserDTO; -import com.epmet.dto.form.CustomerFormQueryDTO; -import com.epmet.dto.form.IcResiDetailFormDTO; -import com.epmet.dto.form.IcResiUserFormDTO; -import com.epmet.dto.form.IcResiUserPageFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.AllGridsByUserIdResultDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.IcFormResColumnDTO; @@ -381,4 +378,88 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> queryListForExport(ListForExportFormDTO formDTO) { + // 查询列表展示项需要用到哪些子表 + CustomerFormQueryDTO queryDTO1=new CustomerFormQueryDTO(); + queryDTO1.setCustomerId(formDTO.getCustomerId()); + queryDTO1.setFormCode(formDTO.getFormCode()); + Result> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1); + List subTables =subTablesRes.success()&&!CollectionUtils.isEmpty(subTablesRes.getData())?subTablesRes.getData():new ArrayList<>(); + List> list=baseDao.selectListResiMapForExport(formDTO.getCustomerId(), + formDTO.getFormCode(), + formDTO.getConditions(), + subTables); + //查询网格名称 + List gridIds = new ArrayList<>(); + Set houseIds = new HashSet<>(); + for (Map map : list) { + log.warn(JSON.toJSONString(map)); + if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) { + gridIds.add(map.get(UserConstant.GRID_ID).toString()); + } + if (map.containsKey("HOME_ID") && null != map.get("HOME_ID") && StringUtils.isNotBlank(map.get("HOME_ID").toString())) { + houseIds.add(map.get("HOME_ID").toString()); + } + } + Result> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds); + List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + + //查询房子名称 + Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds); + List houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>(); + Map houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity())); + for (Map resultMap : list) { + String gridIdValue = null != resultMap.get(UserConstant.GRID_ID) ? resultMap.get(UserConstant.GRID_ID).toString() : StrConstant.EPMETY_STR; + resultMap.put("GRID_ID_VALUE", gridIdValue); + if (null != gridInfoMap && gridInfoMap.containsKey(gridIdValue) && null != gridInfoMap.get(gridIdValue)) { + //GRID_NAME + resultMap.put(UserConstant.GRID_ID, gridInfoMap.get(gridIdValue).getGridName()); + } + + String homeId = null != resultMap.get("HOME_ID") ? resultMap.get("HOME_ID").toString() : StrConstant.EPMETY_STR; + resultMap.put("HOME_ID_VALUE", homeId); + if (null != houseInfoMap && houseInfoMap.containsKey(homeId) && null != houseInfoMap.get(homeId)) { + HouseInfoDTO houseInfoDTO = houseInfoMap.get(homeId); + String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR; + resultMap.put("BUILD_NAME", buildName); + + String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR; + resultMap.put("VILLAGE_NAME", neighBorName); + + String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR; + resultMap.put("UNIT_NAME", unitName); + + String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR; + resultMap.put("DOOR_NAME", doorName); + + String houseType = StringUtils.isNotBlank(houseInfoDTO.getHouseType()) ? houseInfoDTO.getHouseType() : StrConstant.EPMETY_STR; + //房屋类型,1楼房,2平房,3别墅 + resultMap.put(UserConstant.HOUSE_TYPE_KEY, ""); + if (HouseTypeEnum.LOUFANG.getCode().equals(houseType)) { + resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.LOUFANG.getName()); + } else if (HouseTypeEnum.PINGFANG.getCode().equals(houseType)) { + resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.PINGFANG.getName()); + } else if (HouseTypeEnum.BIESHU.getCode().equals(houseType)) { + resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.BIESHU.getName()); + } + + resultMap.put("HOME_ID", neighBorName.concat(buildName).concat(unitName).concat(doorName)); + } + + if (resultMap.containsKey(UserConstant.GENDER)) { + String genderValue = null != resultMap.get(UserConstant.GENDER) ? resultMap.get(UserConstant.GENDER).toString() : StrConstant.EPMETY_STR; + if (GenderEnum.MAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.MAN.getName()); + } else if (GenderEnum.WOMAN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.WOMAN.getName()); + } else if (GenderEnum.UN_KNOWN.getCode().equals(genderValue)) { + resultMap.put(UserConstant.GENDER, GenderEnum.UN_KNOWN.getName()); + } + } + } + return list; + } } \ No newline at end of file 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 c3d73a3fe1..90d4b25c3d 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 @@ -90,4 +90,45 @@ group by IC_RESI_USER.id order by ic_resi_user.CREATED_TIME desc + + \ No newline at end of file