diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/GenderEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/GenderEnum.java index 5604377ed5..0ebbe0c3e3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/GenderEnum.java +++ b/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(); } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java index 2cfa8ea3ad..f7eb3a778d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/EpmetBaseRequestInterceptor.java +++ b/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 requestHeaders = getHeadersFromRequest(); - log.info("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders); + log.debug("EpmetBaseRequestInterceptor#apply#inheritableAdditionalHeaders:" + requestHeaders); if (requestHeaders != null && requestHeaders.size() > 0) { for (Map.Entry kv : requestHeaders.entrySet()) { @@ -59,4 +59,4 @@ public class EpmetBaseRequestInterceptor implements RequestInterceptor { return headers; } -} \ No newline at end of file +} 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 index cdf2e7855f..66bfdfa4ad 100644 --- 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 @@ -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; 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 233aec7c13..1a5fcdb3fb 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 @@ -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 dataList = null; + Cache 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) { @@ -380,7 +390,7 @@ public class HouseController implements ResultDataResolver { Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); printWriter.write(JSON.toJSONString(result)); printWriter.close(); - }finally { + } finally { if (excelWriter != null){ excelWriter.finish(); } 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 48d88c38f3..39d3ec1b24 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 @@ -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 getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO); + PageData getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO, Cache haveSearchCache); } 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 25862ead97..c4bd04db15 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 @@ -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 pageInfo = null; - if (formDTO.getIsPage()){ - pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage()) + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(),formDTO.getIsPage()) .doSelectPageInfo(() -> icHouseDao.searchHouseByPage(formDTO)); - }else{ - List resultDTOS = icHouseDao.searchHouseByPage(formDTO); - pageInfo = new PageInfo<>(resultDTOS,resultDTOS.size()); - } + List 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 查房屋 //导出房屋 - PageData icHouseExcels = getHouseList(formDTO); + List list = new ArrayList<>(); + do { + PageData 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 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 exportNumCacheMap = CacheBuilder.newBuilder().build(); + Cache> memberMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.SECONDS).build(); @Override - public PageData getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO) { + public PageData getHouseUser(TokenDto tokenDto, IcHouseListFormDTO formDTO, Cache 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 result = new PageData<>(resultList,houseData.getList().size()); int finalSearchLevel = searchLevel; AtomicInteger num = new AtomicInteger((formDTO.getPageNo()-1) * formDTO.getPageSize()); - Cache> 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 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> memberMap) { + /** + * desc:分情况获取 房屋内居民 + * @param resiParam + * @param memberMap + * @param haveSearchCache + */ + public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache> memberMap, Cache 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 memberListTemp = null; + resiParam.setPageNo(NumConstant.ONE); do { Result> 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()); } /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 14ad186898..a32acff97f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -131,12 +131,21 @@ AND c.GRID_ID = #{id} + + AND c.GRID_ID = #{gridId} + AND c.id = #{id} + + AND a.NEIGHBOR_HOOD_ID = #{neighborHoodId} + AND b.id = #{id} + + AND a.BUILDING_ID = #{buildingId} + AND a.RENT_FLAG = #{rentFlag} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java index f7fa5bb1da..8ec7ed10c2 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormOptionsQueryFormDTO.java @@ -12,16 +12,24 @@ import javax.validation.constraints.NotBlank; */ @Data public class IcFormOptionsQueryFormDTO { - + public interface QueryByLabelAndCustomerIdForForm {} - + @NotBlank(message = "客户ID必填", groups = { QueryByLabelAndCustomerIdForForm.class }) private String customerId; @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; + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java index ed22604272..d794955eef 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemOptionsController.java +++ b/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; /** @@ -48,7 +46,7 @@ import java.util.function.IntUnaryOperator; @RestController @RequestMapping("icformitemoptions") public class IcFormItemOptionsController { - + @Autowired private IcFormItemOptionsService icFormItemOptionsService; @@ -115,11 +113,12 @@ 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 r = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, label); + List r = icFormItemOptionsService.getOptionsByItemConditions(customerId, formCode, columnName, columnNum); return new Result>().ok(r); } - -} \ No newline at end of file + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java index 7423f85289..8dd3193e6d 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemOptionsService.java @@ -105,8 +105,9 @@ public interface IcFormItemOptionsService extends BaseService getOptionsByItemConditions(String customerId, String formCode, String label); -} \ No newline at end of file + List getOptionsByItemConditions(String customerId, String formCode, String columnName, Integer columnNum); +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java index 970845cbee..f176182cf9 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemOptionsServiceImpl.java @@ -53,7 +53,7 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -118,19 +118,20 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl getOptionsByItemConditions(String customerId, String formCode, String label) { + public List getOptionsByItemConditions(String customerId, String formCode, String columnName, Integer columnNum) { // 查询item LambdaQueryWrapper 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) { return new ArrayList<>(); } - + // 通过item查询options LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(IcFormItemOptionsEntity::getItemId, item.getId()); @@ -143,4 +144,4 @@ public class IcFormItemOptionsServiceImpl extends BaseServiceImpl houseMemberList; + /** + * 屋内的居民 + */ + private LinkedHashMap houseMemberList2; + @Data public static class HouseMemberResultDTO implements Serializable { 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 4a40748907..8f169aa7e5 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 @@ -1486,7 +1486,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl categorieDtos = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsQuery), ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), @@ -1819,7 +1819,72 @@ public class IcResiUserServiceImpl extends BaseServiceImpl listPage = PageHelper .startPage(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getIsPage()) .doSelectPage(()->baseDao.getResiUser(formDTO)); + //Result> relationshipResult = epmetAdminOpenFeignClient.getRelationshipOption(); + //Result> educationResult = epmetAdminOpenFeignClient.getEducationOption(); + //Result> nationResult = epmetAdminOpenFeignClient.getNationOption(); + List dictTypeList = Arrays.asList(DictTypeEnum.EDUCATION.getCode(), DictTypeEnum.RELATIONSHIP.getCode(), DictTypeEnum.NATION.getCode()); + Map> dictResult = new HashMap<>(); + dictTypeList.forEach(dict->{ + Result> mapResult = epmetAdminOpenFeignClient.dictMap(dict); + if (mapResult!=null && mapResult.success()){ + dictResult.put(dict,mapResult.getData()); + } + }); + + Map 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 mzMap = dictResult.get(DictTypeEnum.NATION.getCode()); + Map whcdMap = dictResult.get(DictTypeEnum.EDUCATION.getCode()); + Map 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 getOptionMap(String customerId,String columnName) { + IcFormOptionsQueryFormDTO optionsForm = new IcFormOptionsQueryFormDTO(); + optionsForm.setCustomerId(customerId); + optionsForm.setFormCode(IcFormCodeEnum.RESI_BASE_INFO.getCode()); + optionsForm.setColumnName(columnName); + Result> 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)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java index 1272b57629..99a4817aa7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java +++ b/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 options = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listOptionsByItemConditions(optionsForm), 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 4378ed3c3e..4e35245c8d 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 @@ -32,6 +32,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into ${tableName} (