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) { public static String getName(String code) {
GenderEnum[] genderEnums = values(); GenderEnum[] genderEnums = values();
for (GenderEnum genderEnum : genderEnums) { for (GenderEnum genderEnum : genderEnums) {
if (genderEnum.getCode() == code) { if (genderEnum.getCode().equals(code)) {
return genderEnum.getName(); 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(); // Map<String, String> requestHeaders = getHeadersFromRequest();
log.info("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders); log.debug("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders);
if (requestHeaders != null && requestHeaders.size() > 0) { if (requestHeaders != null && requestHeaders.size() > 0) {
for (Map.Entry<String, String> kv : requestHeaders.entrySet()) { 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.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -17,7 +18,8 @@ import java.io.Serializable;
public class HouseMemberResultDTO implements Serializable { public class HouseMemberResultDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ExcelProperty(value = {"序号","序号"},index = 0) @ColumnWidth(value = 7)
@ExcelProperty(value = "序号",index = 0)
private Integer num; private Integer num;
@ExcelProperty(value = {"房屋信息","所属组织"},index = 1) @ExcelProperty(value = {"房屋信息","所属组织"},index = 1)
@ -85,103 +87,103 @@ public class HouseMemberResultDTO implements Serializable {
/** /**
* 姓名 * 姓名
*/ */
@ExcelProperty(value = {"实际居住人息","姓名"},index = 13) @ExcelProperty(value = {"实际居住人息","姓名"},index = 13)
private String name; private String name;
/** /**
* 性别 * 性别
*/ */
@ExcelProperty(value = {"实际居住人息","性别"},index = 14) @ExcelProperty(value = {"实际居住人息","性别"},index = 14)
private String gender; private String gender;
/** /**
* 手机号 * 手机号
*/ */
@ExcelProperty(value = {"实际居住人息","手机号"},index = 15) @ExcelProperty(value = {"实际居住人息","手机号"},index = 15)
private String mobile; private String mobile;
/** /**
* 身份证号 * 身份证号
*/ */
@ExcelProperty(value = {"实际居住人息","身份证号"},index = 16) @ExcelProperty(value = {"实际居住人息","身份证号"},index = 16)
private String idCard; private String idCard;
/** /**
* 出生日期 * 出生日期
*/ */
@ExcelProperty(value = {"实际居住人息","出生日期"},index = 17) @ExcelProperty(value = {"实际居住人息","出生日期"},index = 17)
private String birthday; private String birthday;
/** /**
* 户籍所在地 * 户籍所在地
*/ */
@ExcelProperty(value = {"实际居住人息","户籍所在地"},index = 18) @ExcelProperty(value = {"实际居住人息","户籍所在地"},index = 18)
private String hjszd; private String hjszd;
/** /**
* 与户主关系字典表 * 与户主关系字典表
*/ */
@ExcelProperty(value = {"实际居住人息","与户主关系"},index = 19) @ExcelProperty(value = {"实际居住人息","与户主关系"},index = 19)
private String yhzgx; private String yhzgx;
/** /**
* 是否党员 * 是否党员
*/ */
@ExcelProperty(value = {"实际居住人息","是否党员"},index = 20) @ExcelProperty(value = {"实际居住人息","是否党员"},index = 20)
private String isParty; private String isParty;
/** /**
* 是否租户 * 是否租户
*/ */
@ExcelProperty(value = {"实际居住人息","是否租户"},index = 21) @ExcelProperty(value = {"实际居住人息","是否租户"},index = 21)
private String isTenant; private String isTenant;
/** /**
* 是否流动人口 * 是否流动人口
*/ */
@ExcelProperty(value = {"实际居住人息","是否流动人口"},index = 22) @ExcelProperty(value = {"实际居住人息","是否流动人口"},index = 22)
private String isFloating; private String isFloating;
/** /**
* 工作单位 * 工作单位
*/ */
@ExcelProperty(value = {"实际居住人息","工作单位"},index = 23) @ExcelProperty(value = {"实际居住人息","工作单位"},index = 23)
private String gzdw; private String gzdw;
/** /**
* 民族字典表 * 民族字典表
*/ */
@ExcelProperty(value = {"实际居住人息","民族"},index = 24) @ExcelProperty(value = {"实际居住人息","民族"},index = 24)
private String mz; private String mz;
/** /**
* 籍贯 * 籍贯
*/ */
@ExcelProperty(value = {"实际居住人息","籍贯"},index = 25) @ExcelProperty(value = {"实际居住人息","籍贯"},index = 25)
private String jg; private String jg;
/** /**
* 婚姻状况字典表 * 婚姻状况字典表
*/ */
@ExcelProperty(value = {"实际居住人息","婚姻状况"},index = 26) @ExcelProperty(value = {"实际居住人息","婚姻状况"},index = 26)
private String hyzk; private String hyzk;
/** /**
* 文化程度字典表 * 文化程度字典表
*/ */
@ExcelProperty(value = {"实际居住人息","文化程度"},index = 27) @ExcelProperty(value = {"实际居住人息","文化程度"},index = 27)
private String culture; private String culture;
/** /**
* 宗教信仰 * 宗教信仰
*/ */
@ExcelProperty(value = {"实际居住人息","宗教信仰"},index = 28) @ExcelProperty(value = {"实际居住人息","宗教信仰"},index = 28)
private String faith; private String faith;
/** /**
* 备注 * 备注
*/ */
@ExcelProperty(value = {"实际居住人息","备注"},index = 29) @ExcelProperty(value = {"实际居住人息","备注"},index = 29)
private String remarks; 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.feign.EpmetUserOpenFeignClient;
import com.epmet.service.HouseService; import com.epmet.service.HouseService;
import com.epmet.util.ExcelPoiUtils; import com.epmet.util.ExcelPoiUtils;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -62,6 +65,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeUnit;
/** /**
@ -343,11 +347,6 @@ public class HouseController implements ResultDataResolver {
ExcelWriter excelWriter = null; ExcelWriter excelWriter = null;
try { 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(); WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景设置为红色 // 背景设置为红色
@ -355,21 +354,32 @@ public class HouseController implements ResultDataResolver {
WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); 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(); FreezeAndFilter writeHandler = new FreezeAndFilter();
writeHandler.rowSplit = 2; writeHandler.rowSplit = 2;
ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false); ExcelFillCellMergeStrategy mergeStrategy = new ExcelFillCellMergeStrategy(2,mergeRowArr,false);
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(mergeStrategy) WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1")
.registerWriteHandler(horizontalCellStyleStrategy) .head(HouseMemberResultDTO.class)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .registerWriteHandler(mergeStrategy)
.registerWriteHandler(writeHandler) .registerWriteHandler(writeHandler)
.build(); .build();
PageData<HouseMemberResultDTO> dataList = null; PageData<HouseMemberResultDTO> dataList = null;
Cache<String,Boolean> haveSearchCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED).expireAfterWrite(NumConstant.THIRTY, TimeUnit.MINUTES).build();
do { do {
dataList = houseService.getHouseUser(tokenDto,formDTO); dataList = houseService.getHouseUser(tokenDto,formDTO,haveSearchCache);
System.out.println("====:"+JSON.toJSONString(dataList));
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
excelWriter.write(dataList.getList(), writeSheet); excelWriter.write(dataList.getList(), writeSheet);
formDTO.setPageSize(formDTO.getPageSize()+1); if (CollectionUtils.isEmpty(dataList.getList())){
}while (dataList != null && dataList.getTotal() == formDTO.getPageSize()); break;
}
}while (dataList.getTotal() == formDTO.getPageSize());
//获取导出配置 //获取导出配置
} catch (EpmetException e) { } 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.commons.tools.utils.Result;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.google.common.cache.Cache;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
@ -36,6 +37,7 @@ import java.util.Set;
*/ */
public interface HouseService { public interface HouseService {
void addHouse(String customerId, IcHouseAddFormDTO formDTO); void addHouse(String customerId, IcHouseAddFormDTO formDTO);
@ -100,7 +102,8 @@ public interface HouseService {
* desc:条件获取房和家庭成员 * desc:条件获取房和家庭成员
* @param tokenDto * @param tokenDto
* @param formDTO * @param formDTO
* @param haveSearchCache
* @return * @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.EasyExcel;
import com.alibaba.excel.ExcelReader; import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet; 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.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
@ -175,14 +176,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
pids = getPids(formDTO.getAgencyId()); pids = getPids(formDTO.getAgencyId());
} }
formDTO.setPids(pids); formDTO.setPids(pids);
PageInfo<IcHouseListResultDTO> pageInfo = null; PageInfo<IcHouseListResultDTO> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage())
if (formDTO.getIsPage()){
pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage())
.doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO)); .doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO));
}else{
List<IcHouseListResultDTO> resultDTOS = icHouseDao.searchHouseByPage(formDTO);
pageInfo = new PageInfo<>(resultDTOS,resultDTOS.size());
}
List<IcHouseListResultDTO> records = pageInfo.getList(); List<IcHouseListResultDTO> records = pageInfo.getList();
records.forEach(item->{ records.forEach(item->{
@ -214,10 +210,17 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
public void exportBuildinginfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception { public void exportBuildinginfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception {
//如果类型是house 查房屋 //如果类型是house 查房屋
//导出房屋 //导出房屋
List<IcHouseListResultDTO> list = new ArrayList<>();
do {
PageData<IcHouseListResultDTO> icHouseExcels = getHouseList(formDTO); 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"); TemplateExportParams templatePath = new TemplateExportParams("excel/house_export.xlsx");
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("maplist",icHouseExcels.getList()); map.put("maplist", list);
ExcelPoiUtils.exportExcel(templatePath ,map,"房屋信息录入表",response); ExcelPoiUtils.exportExcel(templatePath ,map,"房屋信息录入表",response);
} }
@ -474,14 +477,15 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
icBuildingService.update(icBuildingDTO); icBuildingService.update(icBuildingDTO);
} }
} }
Cache<String,Integer> exportNumCacheMap = CacheBuilder.newBuilder().build(); Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.SECONDS).build();
@Override @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(); RentTenantDataFormDTO resiParam = new RentTenantDataFormDTO();
resiParam.setCustomerId(tokenDto.getCustomerId()); resiParam.setCustomerId(tokenDto.getCustomerId());
resiParam.setAgencyId(formDTO.getAgencyId()); resiParam.setAgencyId(formDTO.getAgencyId());
resiParam.setGridId(formDTO.getGridId()); resiParam.setGridId(formDTO.getGridId());
resiParam.setPageSize(NumConstant.ONE_THOUSAND); resiParam.setPageSize(NumConstant.ONE_THOUSAND);
resiParam.setIsPage(false);
//查询级别 默认按照小区去查 //查询级别 默认按照小区去查
int searchLevel = 0; int searchLevel = 0;
@ -502,8 +506,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
PageData<HouseMemberResultDTO> result = new PageData<>(resultList,houseData.getList().size()); PageData<HouseMemberResultDTO> result = new PageData<>(resultList,houseData.getList().size());
int finalSearchLevel = searchLevel; int finalSearchLevel = searchLevel;
AtomicInteger num = new AtomicInteger((formDTO.getPageNo()-1) * formDTO.getPageSize()); 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()); resiParam.setNeighborHoodId(o.getNeighborHoodId());
if (finalSearchLevel == 1){ if (finalSearchLevel == 1){
resiParam.setBuildingId(o.getBuildingId()); resiParam.setBuildingId(o.getBuildingId());
@ -511,12 +516,19 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
if (finalSearchLevel == 2){ if (finalSearchLevel == 2){
resiParam.setHouseId(o.getHouseId()); resiParam.setHouseId(o.getHouseId());
} }
getHouseMembers(resiParam, memberMap); this.getHouseMembers(resiParam, memberMap,haveSearchCache);
List<HouseIcResiUserResultDTO.HouseMemberResultDTO> members = memberMap.getIfPresent(o.getHouseId()); 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; return;
} }
int n = num.incrementAndGet(); //有住户 房屋信息是重复的
members.forEach(m->{ members.forEach(m->{
HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class); HouseMemberResultDTO resultDTO = ConvertUtils.sourceToTarget(m, HouseMemberResultDTO.class);
resultDTO.setNum(n); resultDTO.setNum(n);
@ -538,20 +550,36 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return result; 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; List<HouseIcResiUserResultDTO> memberListTemp = null;
resiParam.setPageNo(NumConstant.ONE);
do { do {
Result<List<HouseIcResiUserResultDTO>> memberResult = epmetUserOpenFeignClient.getHouseMemberList(resiParam); Result<List<HouseIcResiUserResultDTO>> memberResult = epmetUserOpenFeignClient.getHouseMemberList(resiParam);
log.debug("=======查询居民:"+ resiParam.getPageNo()+",size:"+resiParam.getPageSize()+",result:"+memberResult.getData().size());
if (!memberResult.success()) { if (!memberResult.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用user服务失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "调用user服务失败");
} }
memberListTemp = memberResult.getData(); memberListTemp = memberResult.getData();
log.debug("=======查询居民结果:"+ JSON.toJSONString(memberListTemp));
if (CollectionUtils.isEmpty(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())); 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"'> <if test='level == "grid"'>
AND c.GRID_ID = #{id} AND c.GRID_ID = #{id}
</if> </if>
<if test="gridId != null and gridId != ''">
AND c.GRID_ID = #{gridId}
</if>
<if test='level == "neighborHood"'> <if test='level == "neighborHood"'>
AND c.id = #{id} AND c.id = #{id}
</if> </if>
<if test="neighborHoodId != null and neighborHoodId != ''">
AND a.NEIGHBOR_HOOD_ID = #{neighborHoodId}
</if>
<if test='level == "building"'> <if test='level == "building"'>
AND b.id = #{id} AND b.id = #{id}
</if> </if>
<if test="buildingId != null and buildingId != ''">
AND a.BUILDING_ID = #{buildingId}
</if>
<if test="rentFlag != null and rentFlag.trim() != ''"> <if test="rentFlag != null and rentFlag.trim() != ''">
AND a.RENT_FLAG = #{rentFlag} AND a.RENT_FLAG = #{rentFlag}
</if> </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 }) @NotBlank(message = "FormCode必填", groups = { QueryByLabelAndCustomerIdForForm.class })
private String formCode; private String formCode;
/**
* 列名单纯的列名如果是扩展字段则 需要给columnNum赋值
*/
@NotBlank(message = "OptionsLabel必填", groups = { QueryByLabelAndCustomerIdForForm.class }) @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 com.epmet.service.IcFormItemOptionsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.tags.form.InputTag;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.IntUnaryOperator;
/** /**
@ -115,9 +113,10 @@ public class IcFormItemOptionsController {
ValidatorUtils.validateEntity(input, IcFormOptionsQueryFormDTO.QueryByLabelAndCustomerIdForForm.class); ValidatorUtils.validateEntity(input, IcFormOptionsQueryFormDTO.QueryByLabelAndCustomerIdForForm.class);
String customerId = input.getCustomerId(); String customerId = input.getCustomerId();
String formCode = input.getFormCode(); 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); 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 * 使用item相关条件查询options
* @param customerId * @param customerId
* @param formCode * @param formCode
* @param label * @param columnName
* @param columnNum
* @return * @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 @Override
public List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String label) { public List<IcFormItemOptionsDTO> getOptionsByItemConditions(String customerId, String formCode, String columnName, Integer columnNum) {
// 查询item // 查询item
LambdaQueryWrapper<IcFormItemEntity> formItemQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<IcFormItemEntity> formItemQuery = new LambdaQueryWrapper<>();
formItemQuery.eq(IcFormItemEntity::getCustomerId, customerId); formItemQuery.eq(IcFormItemEntity::getCustomerId, customerId)
formItemQuery.eq(IcFormItemEntity::getFormCode, formCode); .eq(IcFormItemEntity::getFormCode, formCode)
formItemQuery.eq(IcFormItemEntity::getLabel, label); .eq(IcFormItemEntity::getColumnName, columnName)
.eq(columnNum != null,IcFormItemEntity::getColumnNum,columnNum);
IcFormItemEntity item = icFormItemDao.selectOne(formItemQuery); IcFormItemEntity item = icFormItemDao.selectOne(formItemQuery);
if (item == null) { 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 lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -75,6 +76,11 @@ public class HouseIcResiUserResultDTO implements Serializable {
*/ */
private List<HouseMemberResultDTO> houseMemberList; private List<HouseMemberResultDTO> houseMemberList;
/**
* 屋内的居民
*/
private LinkedHashMap<String,Object> houseMemberList2;
@Data @Data
public static class HouseMemberResultDTO implements Serializable { 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(); IcFormOptionsQueryFormDTO optionsQuery = new IcFormOptionsQueryFormDTO();
optionsQuery.setCustomerId(customerId); optionsQuery.setCustomerId(customerId);
optionsQuery.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); optionsQuery.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode());
optionsQuery.setLabel("志愿者类别"); optionsQuery.setColumnName("VOLUNTEER_CATEGORY");
List<IcFormItemOptionsDTO> categorieDtos = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsQuery), List<IcFormItemOptionsDTO> categorieDtos = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsQuery),
ServiceConstant.OPER_CUSTOMIZE_SERVER, ServiceConstant.OPER_CUSTOMIZE_SERVER,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
@ -1819,7 +1819,72 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
Page<HouseIcResiUserResultDTO> listPage = PageHelper Page<HouseIcResiUserResultDTO> listPage = PageHelper
.startPage(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getIsPage()) .startPage(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getIsPage())
.doSelectPage(()->baseDao.getResiUser(formDTO)); .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(); 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(); IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO();
optionsForm.setCustomerId(customerId); optionsForm.setCustomerId(customerId);
optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode());
optionsForm.setLabel("志愿者类别"); optionsForm.setColumnName("VOLUNTEER_CATEGORY");
String errorMsg = "【志愿者分布】查询志愿者图例失败"; String errorMsg = "【志愿者分布】查询志愿者图例失败";
List<IcFormItemOptionsDTO> options = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsForm), 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"/> <result column="remarks" property="remarks"/>
</collection> </collection>
</resultMap> </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 id="add">
insert into ${tableName} insert into ${tableName}
( (

Loading…
Cancel
Save