Browse Source

导出一房一档信息

dev
jianjun 3 years ago
parent
commit
ebc038f89c
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/GenderEnum.java
  2. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java
  3. 38
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java
  4. 34
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  5. 5
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  6. 66
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  7. 9
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  8. 10
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java
  9. 7
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java
  10. 5
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java
  11. 9
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java
  12. 6
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseIcResiUserResultDTO.java
  13. 67
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  14. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java
  15. 31
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/GenderEnum.java

@ -19,7 +19,7 @@ public enum GenderEnum {
public static String getName(String code) {
GenderEnum[] genderEnums = values();
for (GenderEnum genderEnum : genderEnums) {
if (genderEnum.getCode() == code) {
if (genderEnum.getCode().equals(code)) {
return genderEnum.getName();
}
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java

@ -25,7 +25,7 @@ public class EpmetBaseRequestInterceptor implements RequestInterceptor {
// Map<String, String> requestHeaders = getHeadersFromRequest();
log.info("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders);
log.debug("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders);
if (requestHeaders != null && requestHeaders.size() > 0) {
for (Map.Entry<String, String> kv : requestHeaders.entrySet()) {

38
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseMemberResultDTO.java

@ -2,6 +2,7 @@ package com.epmet.dto.result;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.io.Serializable;
@ -17,7 +18,8 @@ import java.io.Serializable;
public class HouseMemberResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty(value = {"序号","序号"},index = 0)
@ColumnWidth(value = 7)
@ExcelProperty(value = "序号",index = 0)
private Integer num;
@ExcelProperty(value = {"房屋信息","所属组织"},index = 1)
@ -85,103 +87,103 @@ public class HouseMemberResultDTO implements Serializable {
/**
* 姓名
*/
@ExcelProperty(value = {"实际居住人息","姓名"},index = 13)
@ExcelProperty(value = {"实际居住人息","姓名"},index = 13)
private String name;
/**
* 性别
*/
@ExcelProperty(value = {"实际居住人息","性别"},index = 14)
@ExcelProperty(value = {"实际居住人息","性别"},index = 14)
private String gender;
/**
* 手机号
*/
@ExcelProperty(value = {"实际居住人息","手机号"},index = 15)
@ExcelProperty(value = {"实际居住人息","手机号"},index = 15)
private String mobile;
/**
* 身份证号
*/
@ExcelProperty(value = {"实际居住人息","身份证号"},index = 16)
@ExcelProperty(value = {"实际居住人息","身份证号"},index = 16)
private String idCard;
/**
* 出生日期
*/
@ExcelProperty(value = {"实际居住人息","出生日期"},index = 17)
@ExcelProperty(value = {"实际居住人息","出生日期"},index = 17)
private String birthday;
/**
* 户籍所在地
*/
@ExcelProperty(value = {"实际居住人息","户籍所在地"},index = 18)
@ExcelProperty(value = {"实际居住人息","户籍所在地"},index = 18)
private String hjszd;
/**
* 与户主关系字典表
*/
@ExcelProperty(value = {"实际居住人息","与户主关系"},index = 19)
@ExcelProperty(value = {"实际居住人息","与户主关系"},index = 19)
private String yhzgx;
/**
* 是否党员
*/
@ExcelProperty(value = {"实际居住人息","是否党员"},index = 20)
@ExcelProperty(value = {"实际居住人息","是否党员"},index = 20)
private String isParty;
/**
* 是否租户
*/
@ExcelProperty(value = {"实际居住人息","是否租户"},index = 21)
@ExcelProperty(value = {"实际居住人息","是否租户"},index = 21)
private String isTenant;
/**
* 是否流动人口
*/
@ExcelProperty(value = {"实际居住人息","是否流动人口"},index = 22)
@ExcelProperty(value = {"实际居住人息","是否流动人口"},index = 22)
private String isFloating;
/**
* 工作单位
*/
@ExcelProperty(value = {"实际居住人息","工作单位"},index = 23)
@ExcelProperty(value = {"实际居住人息","工作单位"},index = 23)
private String gzdw;
/**
* 民族字典表
*/
@ExcelProperty(value = {"实际居住人息","民族"},index = 24)
@ExcelProperty(value = {"实际居住人息","民族"},index = 24)
private String mz;
/**
* 籍贯
*/
@ExcelProperty(value = {"实际居住人息","籍贯"},index = 25)
@ExcelProperty(value = {"实际居住人息","籍贯"},index = 25)
private String jg;
/**
* 婚姻状况字典表
*/
@ExcelProperty(value = {"实际居住人息","婚姻状况"},index = 26)
@ExcelProperty(value = {"实际居住人息","婚姻状况"},index = 26)
private String hyzk;
/**
* 文化程度字典表
*/
@ExcelProperty(value = {"实际居住人息","文化程度"},index = 27)
@ExcelProperty(value = {"实际居住人息","文化程度"},index = 27)
private String culture;
/**
* 宗教信仰
*/
@ExcelProperty(value = {"实际居住人息","宗教信仰"},index = 28)
@ExcelProperty(value = {"实际居住人息","宗教信仰"},index = 28)
private String faith;
/**
* 备注
*/
@ExcelProperty(value = {"实际居住人息","备注"},index = 29)
@ExcelProperty(value = {"实际居住人息","备注"},index = 29)
private String remarks;

34
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -47,11 +47,14 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.service.HouseService;
import com.epmet.util.ExcelPoiUtils;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -62,6 +65,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
@ -343,11 +347,6 @@ public class HouseController implements ResultDataResolver {
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("一户一档信息.xlsx", response), HouseMemberResultDTO.class)
.registerWriteHandler(new FreezeAndFilter())
.build();
int[] mergeRowArr = new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12};
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景设置为红色
@ -355,21 +354,32 @@ public class HouseController implements ResultDataResolver {
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("一户一档信息.xlsx", response))
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.build();
int[] mergeRowArr = new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12};
FreezeAndFilter writeHandler = new FreezeAndFilter();
writeHandler.rowSplit = 2;
ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false);
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(mergeStrategy)
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1")
.head(HouseMemberResultDTO.class)
.registerWriteHandler(mergeStrategy)
.registerWriteHandler(writeHandler)
.build();
PageData<HouseMemberResultDTO> dataList = null;
Cache<String,Boolean> haveSearchCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED).expireAfterWrite(NumConstant.THIRTY, TimeUnit.MINUTES).build();
do {
dataList = houseService.getHouseUser(tokenDto,formDTO);
System.out.println("====:"+JSON.toJSONString(dataList));
dataList = houseService.getHouseUser(tokenDto,formDTO,haveSearchCache);
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(dataList.getList(), writeSheet);
formDTO.setPageSize(formDTO.getPageSize()+1);
}while (dataList != null && dataList.getTotal() == formDTO.getPageSize());
if (CollectionUtils.isEmpty(dataList.getList())){
break;
}
}while (dataList.getTotal() == formDTO.getPageSize());
//获取导出配置
} catch (EpmetException e) {

5
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -22,6 +22,7 @@ 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.*;
import com.google.common.cache.Cache;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
@ -36,6 +37,7 @@ import java.util.Set;
*/
public interface HouseService {
void addHouse(String customerId, IcHouseAddFormDTO formDTO);
@ -100,7 +102,8 @@ public interface HouseService {
* desc:条件获取房和家庭成员
* @param tokenDto
* @param formDTO
* @param haveSearchCache
* @return
*/
PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO);
PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO, Cache<String, Boolean> haveSearchCache);
}

66
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
@ -175,14 +176,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
pids = getPids(formDTO.getAgencyId());
}
formDTO.setPids(pids);
PageInfo<IcHouseListResultDTO> pageInfo = null;
if (formDTO.getIsPage()){
pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage())
PageInfo<IcHouseListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage())
.doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO));
}else{
List<IcHouseListResultDTO> resultDTOS = icHouseDao.searchHouseByPage(formDTO);
pageInfo = new PageInfo<>(resultDTOS,resultDTOS.size());
}
List<IcHouseListResultDTO> records = pageInfo.getList();
records.forEach(item->{
@ -214,10 +210,17 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
public void exportBuildinginfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception {
//如果类型是house 查房屋
//导出房屋
List<IcHouseListResultDTO> list = new ArrayList<>();
do {
PageData<IcHouseListResultDTO> icHouseExcels = getHouseList(formDTO);
if (CollectionUtils.isEmpty(icHouseExcels.getList())){
break;
}
list.addAll(icHouseExcels.getList());
}while (list.size() == formDTO.getPageSize());
TemplateExportParams templatePath = new TemplateExportParams("excel/house_export.xlsx");
Map<String,Object> map = new HashMap<>();
map.put("maplist",icHouseExcels.getList());
map.put("maplist", list);
ExcelPoiUtils.exportExcel(templatePath ,map,"房屋信息录入表",response);
}
@ -474,14 +477,15 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
icBuildingService.update(icBuildingDTO);
}
}
Cache<String,Integer> exportNumCacheMap = CacheBuilder.newBuilder().build();
Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.SECONDS).build();
@Override
public PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO) {
public PageData<HouseMemberResultDTO> getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO, Cache<String, Boolean> haveSearchCache) {
RentTenantDataFormDTO resiParam = new RentTenantDataFormDTO();
resiParam.setCustomerId(tokenDto.getCustomerId());
resiParam.setAgencyId(formDTO.getAgencyId());
resiParam.setGridId(formDTO.getGridId());
resiParam.setPageSize(NumConstant.ONE_THOUSAND);
resiParam.setIsPage(false);
//查询级别 默认按照小区去查
int searchLevel = 0;
@ -502,8 +506,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
PageData<HouseMemberResultDTO> result = new PageData<>(resultList,houseData.getList().size());
int finalSearchLevel = searchLevel;
AtomicInteger num = new AtomicInteger((formDTO.getPageNo()-1) * formDTO.getPageSize());
Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.SECONDS).build();
resultDTOS.parallelStream().forEach(o ->{
resultDTOS.stream().forEach(o ->{
resiParam.setNeighborHoodId(o.getNeighborHoodId());
if (finalSearchLevel == 1){
resiParam.setBuildingId(o.getBuildingId());
@ -511,12 +516,19 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
if (finalSearchLevel == 2){
resiParam.setHouseId(o.getHouseId());
}
getHouseMembers(resiParam, memberMap);
this.getHouseMembers(resiParam, memberMap,haveSearchCache);
List<HouseIcResiUserResultDTO.HouseMemberResultDTO> members = memberMap.getIfPresent(o.getHouseId());
if (members == null){
int n = num.incrementAndGet();
//没有住户 则直接写房屋
if (CollectionUtils.isEmpty(members)){
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(o, HouseMemberResultDTO.class);
resultDTO.setNum(n);
resultList.add(resultDTO);
return;
}
int n = num.incrementAndGet();
//有住户 房屋信息是重复的
members.forEach(m->{
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class);
resultDTO.setNum(n);
@ -538,20 +550,36 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return result;
}
public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache<String, List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap) {
/**
* desc:分情况获取 房屋内居民
* @param resiParam
* @param memberMap
* @param haveSearchCache
*/
public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache<String, List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap, Cache<String, Boolean> haveSearchCache) {
String searchKey = resiParam.getHouseId()+resiParam.getBuildingId()+resiParam.getNeighborHoodId()+resiParam.getAgencyId();
Boolean haveSearch = haveSearchCache.getIfPresent(searchKey);
if (haveSearch!= null && haveSearch){
return;
}
haveSearchCache.put(searchKey,true);
List<HouseIcResiUserResultDTO> memberListTemp = null;
resiParam.setPageNo(NumConstant.ONE);
do {
Result<List<HouseIcResiUserResultDTO>> memberResult = epmetUserOpenFeignClient.getHouseMemberList(resiParam);
log.debug("=======查询居民:"+ resiParam.getPageNo()+",size:"+resiParam.getPageSize()+",result:"+memberResult.getData().size());
if (!memberResult.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用user服务失败");
}
memberListTemp = memberResult.getData();
log.debug("=======查询居民结果:"+ JSON.toJSONString(memberListTemp));
if (CollectionUtils.isEmpty(memberListTemp)) {
continue;
break;
}
resiParam.setPageSize(resiParam.getPageSize()+1);
resiParam.setPageNo(resiParam.getPageNo()+1);
memberListTemp.parallelStream().forEach(h -> memberMap.put(h.getHomeId(), h.getHouseMemberList()));
} while (memberListTemp != null && memberListTemp.size() == resiParam.getPageSize());
} while (memberListTemp.size() == resiParam.getPageSize());
}
/**

9
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -131,12 +131,21 @@
<if test='level == "grid"'>
AND c.GRID_ID = #{id}
</if>
<if test="gridId != null and gridId != ''">
AND c.GRID_ID = #{gridId}
</if>
<if test='level == "neighborHood"'>
AND c.id = #{id}
</if>
<if test="neighborHoodId != null and neighborHoodId != ''">
AND a.NEIGHBOR_HOOD_ID = #{neighborHoodId}
</if>
<if test='level == "building"'>
AND b.id = #{id}
</if>
<if test="buildingId != null and buildingId != ''">
AND a.BUILDING_ID = #{buildingId}
</if>
<if test="rentFlag != null and rentFlag.trim() != ''">
AND a.RENT_FLAG = #{rentFlag}
</if>

10
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java

@ -21,7 +21,15 @@ public class IcFormOptionsQueryFormDTO {
@NotBlank(message = "FormCode必填", groups = { QueryByLabelAndCustomerIdForForm.class })
private String formCode;
/**
* 列名单纯的列名如果是扩展字段则 需要给columnNum赋值
*/
@NotBlank(message = "OptionsLabel必填", groups = { QueryByLabelAndCustomerIdForForm.class })
private String label;
private String columnName;
/**
* 列名数字
*/
private Integer columnNum;
}

7
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java

@ -31,12 +31,10 @@ import com.epmet.excel.IcFormItemOptionsExcel;
import com.epmet.service.IcFormItemOptionsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.tags.form.InputTag;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.function.IntUnaryOperator;
/**
@ -115,9 +113,10 @@ public class IcFormItemOptionsController {
ValidatorUtils.validateEntity(input, IcFormOptionsQueryFormDTO.QueryByLabelAndCustomerIdForForm.class);
String customerId = input.getCustomerId();
String formCode = input.getFormCode();
String label = input.getLabel();
String columnName = input.getColumnName();
Integer columnNum = input.getColumnNum();
List<IcFormItemOptionsDTO> r = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, label);
List<IcFormItemOptionsDTO> r = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, columnName, columnNum);
return new Result<List<IcFormItemOptionsDTO>>().ok(r);
}

5
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java

@ -105,8 +105,9 @@ public interface IcFormItemOptionsService extends BaseService<IcFormItemOptionsE
* 使用item相关条件查询options
* @param customerId
* @param formCode
* @param label
* @param columnName
* @param columnNum
* @return
*/
List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String label);
List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String columnName, Integer columnNum);
}

9
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java

@ -118,13 +118,14 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl<IcFormItemOpti
}
@Override
public List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String label) {
public List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String columnName, Integer columnNum) {
// 查询item
LambdaQueryWrapper<IcFormItemEntity> formItemQuery = new LambdaQueryWrapper<>();
formItemQuery.eq(IcFormItemEntity::getCustomerId, customerId);
formItemQuery.eq(IcFormItemEntity::getFormCode, formCode);
formItemQuery.eq(IcFormItemEntity::getLabel, label);
formItemQuery.eq(IcFormItemEntity::getCustomerId, customerId)
.eq(IcFormItemEntity::getFormCode, formCode)
.eq(IcFormItemEntity::getColumnName, columnName)
.eq(columnNum != null,IcFormItemEntity::getColumnNum,columnNum);
IcFormItemEntity item = icFormItemDao.selectOne(formItemQuery);
if (item == null) {

6
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseIcResiUserResultDTO.java

@ -20,6 +20,7 @@ package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List;
@ -75,6 +76,11 @@ public class HouseIcResiUserResultDTO implements Serializable {
*/
private List<HouseMemberResultDTO> houseMemberList;
/**
* 屋内的居民
*/
private LinkedHashMap<String,Object> houseMemberList2;
@Data
public static class HouseMemberResultDTO implements Serializable {

67
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -1486,7 +1486,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
IcFormOptionsQueryFormDTO optionsQuery = new IcFormOptionsQueryFormDTO();
optionsQuery.setCustomerId(customerId);
optionsQuery.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode());
optionsQuery.setLabel("志愿者类别");
optionsQuery.setColumnName("VOLUNTEER_CATEGORY");
List<IcFormItemOptionsDTO> categorieDtos = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsQuery),
ServiceConstant.OPER_CUSTOMIZE_SERVER,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
@ -1819,7 +1819,72 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Page<HouseIcResiUserResultDTO> listPage = PageHelper
.startPage(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getIsPage())
.doSelectPage(()->baseDao.getResiUser(formDTO));
//Result<List<OptionResultDTO>> relationshipResult = epmetAdminOpenFeignClient.getRelationshipOption();
//Result<List<OptionResultDTO>> educationResult = epmetAdminOpenFeignClient.getEducationOption();
//Result<List<OptionResultDTO>> nationResult = epmetAdminOpenFeignClient.getNationOption();
List<String> dictTypeList = Arrays.asList(DictTypeEnum.EDUCATION.getCode(), DictTypeEnum.RELATIONSHIP.getCode(), DictTypeEnum.NATION.getCode());
Map<String,Map<String, String>> dictResult = new HashMap<>();
dictTypeList.forEach(dict->{
Result<Map<String, String>> mapResult = epmetAdminOpenFeignClient.dictMap(dict);
if (mapResult!=null && mapResult.success()){
dictResult.put(dict,mapResult.getData());
}
});
Map<String, String> hyzkMap = getOptionMap(formDTO.getCustomerId(),"HYZK");
listPage.getResult().forEach(e->{
e.getHouseMemberList().parallelStream().forEach(o->{
if (StringUtils.isNotBlank(o.getIsParty())){
o.setIsParty(NumConstant.ZERO_STR.equals(o.getIsParty())?StrConstant.NO:StrConstant.YES);
}
if (StringUtils.isNotBlank(o.getGender())){
o.setGender(GenderEnum.getName(o.getGender()));
}
if (StringUtils.isNotBlank(o.getIsTenant())){
o.setIsTenant(NumConstant.ZERO_STR.equals(o.getIsTenant())?StrConstant.NO:StrConstant.YES);
}
if (StringUtils.isNotBlank(o.getIsFloating())){
o.setIsFloating(NumConstant.ZERO_STR.equals(o.getIsFloating())?StrConstant.NO:StrConstant.YES);
}
Map<String, String> mzMap = dictResult.get(DictTypeEnum.NATION.getCode());
Map<String, String> whcdMap = dictResult.get(DictTypeEnum.EDUCATION.getCode());
Map<String, String> yhzgxMap = dictResult.get(DictTypeEnum.RELATIONSHIP.getCode());
if (StringUtils.isNotBlank(o.getMz())) {
o.setMz(mzMap.get(o.getMz()));
}
if (StringUtils.isNotBlank(o.getCulture())) {
o.setCulture(whcdMap.get(o.getCulture()));
}
if (StringUtils.isNotBlank(o.getYhzgx())) {
o.setYhzgx(yhzgxMap.get(o.getYhzgx()));
}
if (StringUtils.isNotBlank(o.getHyzk())) {
o.setHyzk(hyzkMap.get(o.getHyzk()));
}
});
});
return listPage.getResult();
}
/**
* desc:根据字段值获取 options
* @param customerId
* @param columnName
* @return
*/
private Map<String, String> getOptionMap(String customerId,String columnName) {
IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO();
optionsForm.setCustomerId(customerId);
optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode());
optionsForm.setColumnName(columnName);
Result<List<IcFormItemOptionsDTO>> listResult = operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsForm);
if (!listResult.success()){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取item失败,"+listResult.getInternalMsg());
}
return listResult.getData().stream()
.collect(Collectors.toMap(IcFormItemOptionsDTO::getOptionValue, IcFormItemOptionsDTO::getOptionLabel, (o1, o2) -> o1));
}
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java

@ -69,7 +69,7 @@ public class VolunteerServiceImpl implements VolunteerService, ResultDataResolve
IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO();
optionsForm.setCustomerId(customerId);
optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode());
optionsForm.setLabel("志愿者类别");
optionsForm.setColumnName("VOLUNTEER_CATEGORY");
String errorMsg = "【志愿者分布】查询志愿者图例失败";
List<IcFormItemOptionsDTO> options = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsForm),

31
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -32,6 +32,37 @@
<result column="remarks" property="remarks"/>
</collection>
</resultMap>
<resultMap id="homeMemberList2" type="com.epmet.dto.result.HouseIcResiUserResultDTO">
<result column="customer_id" property="customerId"/>
<result column="agency_id" property="agencyId"/>
<result column="grid_id" property="gridId"/>
<result column="village_id" property="villageId"/>
<result column="build_id" property="buildId"/>
<result column="unit_id" property="unitId"/>
<result column="home_id" property="homeId"/>
<collection property="houseMemberList2" ofType="java.util.LinkedHashMap">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="mobile" property="mobile"/>
<result column="gender" property="gender"/>
<result column="id_card" property="idCard"/>
<result column="birthday" property="birthday"/>
<result column="hjszd" property="hjszd"/>
<result column="yhzgx" property="yhzgx"/>
<result column="is_party" property="isParty"/>
<result column="is_tenant" property="isTenant"/>
<result column="is_floating" property="isFloating"/>
<result column="gzdw" property="gzdw"/>
<result column="mz" property="mz"/>
<result column="jg" property="jg"/>
<result column="hyzk" property="hyzk"/>
<result column="culture" property="culture"/>
<result column="faith" property="faith"/>
<result column="remarks" property="remarks"/>
</collection>
</resultMap>
<insert id="add">
insert into ${tableName}
(

Loading…
Cancel
Save