From d2deb8cbf598f51f0aef69b7e4b4067cd0402aed Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 2 Nov 2021 17:07:14 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=B1=85=E6=B0=91=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/EpmetAdminOpenFeignClient.java | 51 ++++ .../EpmetAdminOpenFeignClientFallback.java | 26 ++ .../epmet/feign/GovOrgOpenFeignClient.java | 60 ++++- .../GovOrgOpenFeignClientFallback.java | 35 ++- .../epmet/feign/EpmetUserOpenFeignClient.java | 4 + .../EpmetUserOpenFeignClientFallback.java | 6 + epmet-user/epmet-user-server/pom.xml | 5 + .../controller/IcResiUserController.java | 22 +- .../com/epmet/service/IcResiUserService.java | 3 +- .../service/impl/IcResiUserServiceImpl.java | 245 ++++++++++++++---- 10 files changed, 398 insertions(+), 59 deletions(-) diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java index 65b73cdad3..9faf6cabaf 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/EpmetAdminOpenFeignClient.java @@ -1,6 +1,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.CorsConfigResultDTO; import com.epmet.feign.fallback.EpmetAdminOpenFeignClientFallbackFactory; @@ -21,4 +22,54 @@ public interface EpmetAdminOpenFeignClient { */ @PostMapping("/sys/cors-config/list") Result> list(); + + /** + * @Description 文化程度 + * @Param + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 17:27 + */ + @PostMapping("/sys/dict/data/education") + Result> getEducationOption(); + + /** + * @Description 住房性质 + * @Param + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 17:27 + */ + @PostMapping("/sys/dict/data/house") + Result> getHouseOption(); + + /** + * @Description 民族 + * @Param + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 17:27 + */ + @PostMapping("/sys/dict/data/nation") + Result> getNationOption(); + + /** + * @Description 九小场所 + * @Param + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 17:27 + */ + @PostMapping("/sys/dict/data/ninesmallplaces") + Result> getNineSmallPlacesOption(); + + /** + * @Description 人员关系 + * @Param + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 17:27 + */ + @PostMapping("/sys/dict/data/relationship") + Result> getRelationshipOption(); } diff --git a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java index 69d8a45bbc..6ba1f8bee7 100644 --- a/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java +++ b/epmet-admin/epmet-admin-client/src/main/java/com/epmet/feign/fallback/EpmetAdminOpenFeignClientFallback.java @@ -1,6 +1,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.result.CorsConfigResultDTO; @@ -15,4 +16,29 @@ public class EpmetAdminOpenFeignClientFallback implements EpmetAdminOpenFeignCli public Result> list() { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "list", null); } + + @Override + public Result> getEducationOption() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getEducationOption", null); + } + + @Override + public Result> getHouseOption() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getHouseOption", null); + } + + @Override + public Result> getNationOption() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getNationOption", null); + } + + @Override + public Result> getNineSmallPlacesOption() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getNineSmallPlacesOption", null); + } + + @Override + public Result> getRelationshipOption() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getRelationshipOption", null); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 8abaab3de7..d7621bd88b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -1,10 +1,9 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.CustomerPartyBranchDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovOrgOpenFeignClientFallbackFactory; @@ -453,4 +452,59 @@ public interface GovOrgOpenFeignClient { @PostMapping(value = "/gov/org/house/queryListHouseInfo",consumes = MediaType.APPLICATION_JSON_VALUE) Result> queryListHouseInfo(@RequestBody Set houseIds); + + + + /** + * @Description 获取组织下网格选项 + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 14:02 + */ + @PostMapping("/gov/org/customergrid/gridoption") + Result> getGridOption(@RequestBody AgencyIdFormDTO formDTO); + + /** + * 获取网格下支部小组 + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/27 9:58 + */ + @PostMapping("/gov/org/customerpartybranch/branchoption") + Result> getBranchOption(@RequestBody CustomerPartyBranchDTO formDTO); + + /** + * @Description 获取小区内的楼栋 + * @Param dto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 14:46 + */ + @PostMapping("/gov/org/icbuilding/buildingoption") + Result> getBuildingOptions(IcBuildingDTO dto); + + /** + * @Description 获取楼栋内单元 + * @Param dto + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2021/10/26 14:46 + */ + @PostMapping("/gov/org/icbuildingunit/unitoption") + Result> getUnitOptions(IcBuildingUnitDTO dto); + + @PostMapping("/gov/org/ichouse/houseoption") + Result> getHouseOption(@RequestBody HouseFormDTO formDTO); + + /** + * @Description 获取网格下小区列表 + * @Param dto + * @Return {@link Result< List< OptionResultDTO>>} + * @Author zhaoqifeng + * @Date 2021/10/26 14:38 + */ + @PostMapping("/gov/org/icneighborhood/neighborhoodoption") + Result> getNeighborHoodOptions(IcNeighborHoodDTO dto); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 98d3d64927..7e53823382 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -1,11 +1,10 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.CustomerPartyBranchDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.GovOrgOpenFeignClient; @@ -276,6 +275,36 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "queryListHouseInfo", houseIds); } + @Override + public Result> getGridOption(AgencyIdFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridOption", formDTO); + } + + @Override + public Result> getBranchOption(CustomerPartyBranchDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getBranchOption", formDTO); + } + + @Override + public Result> getBuildingOptions(IcBuildingDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getBuildingOptions", dto); + } + + @Override + public Result> getUnitOptions(IcBuildingUnitDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getUnitOptions", dto); + } + + @Override + public Result> getHouseOption(HouseFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getHouseOption", formDTO); + } + + @Override + public Result> getNeighborHoodOptions(IcNeighborHoodDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getNeighborHoodOptions", dto); + } + @Override public Result selectPidsByGridId(String gridId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectPidsByGridId", gridId); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index cbec879b5b..47567c16f7 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; @@ -646,4 +647,7 @@ public interface EpmetUserOpenFeignClient { */ @GetMapping(value = "/epmetuser/user/queryUserClient/{userId}") Result queryUserClient(@PathVariable("userId") String userId); + + @PostMapping("/epmetuser/icresidemanddict/demandoption/demandoption") + Result> getDemandOptions(); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 183196dad8..c32f26501b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -1,6 +1,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; @@ -463,4 +464,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result queryUserClient(String userId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "queryUserClient", userId); } + + @Override + public Result> getDemandOptions() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getDemandOptions", null); + } } diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 0d8854d5ff..8b47abc5ee 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -13,6 +13,11 @@ jar + + com.epmet + epmet-admin-client + 2.0.0 + com.alibaba easyexcel 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 2f89248a3e..07a88ee80e 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 @@ -37,11 +37,9 @@ 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.*; -import com.epmet.dto.result.CustomerFormResultDTO; -import com.epmet.dto.result.FormGroupDTO; -import com.epmet.dto.result.FormItem; -import com.epmet.dto.result.HomeUserResultDTO; +import com.epmet.dto.result.*; import com.epmet.excel.IcResiUserExcel; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.service.IcResiUserService; import lombok.extern.slf4j.Slf4j; @@ -75,6 +73,8 @@ public class IcResiUserController { private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; @Autowired private IcResiUserService icResiUserService; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @GetMapping("page") public Result> page(@RequestParam Map params){ @@ -357,9 +357,17 @@ public class IcResiUserController { } @PostMapping("import/excel") - public Result importExcelByEasyExcel() { - Object header = icResiUserService.importExcel(); - return new Result().ok(header); + public Result importExcelByEasyExcel(@LoginUser TokenDto loginUser) { + + LoginUserDetailsFormDTO userForm = new LoginUserDetailsFormDTO(); + userForm.setApp(loginUser.getApp()); + userForm.setClient(loginUser.getClient()); + userForm.setUserId(loginUser.getUserId()); + + Result loginUserDetails = epmetUserOpenFeignClient.getLoginUserDetails(userForm); + + Object result = icResiUserService.importExcel(loginUserDetails.getData().getAgencyId()); + return new Result().ok(result); } } 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 cb1f9e748d..b442e4223f 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 @@ -27,6 +27,7 @@ import com.epmet.dto.form.IcResiUserFormDTO; import com.epmet.dto.form.IcResiUserPageFormDTO; import com.epmet.dto.result.HomeUserResultDTO; import com.epmet.entity.IcResiUserEntity; +import com.epmet.service.impl.IcResiUserServiceImpl; import java.util.List; import java.util.Map; @@ -130,5 +131,5 @@ public interface IcResiUserService extends BaseService { */ Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO); - Object importExcel(); + Object importExcel(String currUserAgencyId); } \ 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 587e34a03f..5cc8c10a05 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 @@ -27,6 +27,7 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.enums.GenderEnum; import com.epmet.commons.tools.enums.HouseTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -38,12 +39,13 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; -import com.epmet.dto.CustomerAgencyDTO; -import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.handler.DynamicEasyExcelListener; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.redis.IcResiUserRedis; @@ -81,9 +83,13 @@ public class IcResiUserServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -422,9 +428,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> headList = readListener.getHeadList(); List> dataList = readListener.getDataList(); @@ -455,11 +473,69 @@ public class IcResiUserServiceImpl extends BaseServiceImpl formItem) ); - HashMap> headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders); + Map headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders); + + // 持久化 + persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders); return headerColumnWrapper; } + /** + * 持久化 + * @param headerColumnWrapper 数据库列包装信息 + * @param dataRows 数据行集合 + * @param currUserAgencyId 当前用户的组织id + * @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 + */ + private void persist(Map headerColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel) { + for (Map row : dataRows) { + + for (Map.Entry columnWrapperEntry : headerColumnWrapper.entrySet()) { + + String itemId = columnWrapperEntry.getKey(); + ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); + if ("input".equals(columnWrapper.getItemType()) + || "textarea".equals(columnWrapper.getItemType()) + || "datepicker".equals(columnWrapper.getItemType()) + || "timerange".equals(columnWrapper.getItemType()) + ) { + + String cellContent = row.get(columnWrapper.getColIndexs().get(0)); + columnWrapper.setCellContent(cellContent); + columnWrapper.setColValue(cellContent); + + } else if ("select".equals(columnWrapper.getItemType()) + || "radio".equals(columnWrapper.getItemType())){ + + String optionSourceType = columnWrapper.getOptionSourceType(); + // 取单元格的内容 + String cellContent = row.get(columnWrapper.getColIndexs().get(0)); + columnWrapper.setCellContent(cellContent); + + if ("local".equals(optionSourceType)) { + // 根据单元格内容,取到指定的option + Map options = columnWrapper.getOptions(); + String colValue = options.get(cellContent); + columnWrapper.setColValue(colValue); + } else { + // remote类型 + + Map options = listRemoteOptions(headerColumnWrapper, columnWrapper.getOptionSourceValue(), currUserAgencyId); + String colValue = options.get(cellContent); + columnWrapper.setColValue(colValue); + } + } else if ("checkbox".equals(columnWrapper.getItemType())) { + String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel); + columnWrapper.setColValue(checkBoxColValue); + } + + + + } + } + } + /** * @description 合并头 * @@ -509,9 +585,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { - // - //}); } /** @@ -521,9 +594,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> integrate(Map formItemMap, Map> combinedHeaders, + private Map integrate(Map formItemMap, Map> combinedHeaders, List> datas, Map abandonedHeaders) { - HashMap> data = new HashMap<>(); + +// HashMap> tables = new HashMap<>(); + Map columns = new HashMap<>(combinedHeaders.size()); for (Map.Entry> entry : combinedHeaders.entrySet()) { String combinedHeader = entry.getKey(); @@ -539,49 +614,41 @@ public class IcResiUserServiceImpl extends BaseServiceImpl options = listRemoteOptions(item.getOptionSourceValue()); - columnWrapper.setOptions(options); - } else { - Map options = item.getOptions().stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue)); - columnWrapper.setOptions(options); - } - - /*switch (item.getItemType()) { - case "input": - case "textarea": - case "datepicker": - case "timerange": - //输入性的 - break; - case "checkbox": - break; - }*/ + columnWrapper.setOptionSourceType(item.getOptionSourceType()); + columnWrapper.setOptionSourceValue(item.getOptionSourceValue()); + columnWrapper.setOptions(item.getOptions().stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue))); + columns.put(item.getItemId(), columnWrapper); } - return data; + return columns; } /** * 获取checkbox列值 - * @param options - * @param writedColIdxs - * @param abandonedHeaders + * @param columnWrapper 数据库列包装信息,每一列跳数据对应数据库的一个列 + * @param dataRow 数据行,每一条都是一行中的一个单元格 + * @param checkboxOptions 复选框的选项。k: 列号, value: checkboxlabel中文 * @return */ - private String getCheckBoxColValue(List options, List writedColIdxs, Map abandonedHeaders) { - - Map optionMap = options.stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue)); - - List optionValues = writedColIdxs.stream().map(i -> { - String optionName = abandonedHeaders.get(i); - return optionMap.get(optionName); + private String getCheckBoxColValue(ColumnWrapper columnWrapper, Map dataRow, Map checkboxOptions) { + + Map options = columnWrapper.getOptions(); + List colIndexs = columnWrapper.getColIndexs(); + + List optionValues = colIndexs.stream().filter(i -> { + String cellContent = dataRow.get(i); + if (StringUtils.isNotBlank(cellContent) && cellContent.equals("是")) return true; + return false; + }).map(i -> { + String checkboxOptionLabel = checkboxOptions.get(i); + return options.get(checkboxOptionLabel); }).collect(Collectors.toList()); return String.join(",", optionValues); @@ -589,12 +656,86 @@ public class IcResiUserServiceImpl extends BaseServiceImpl listRemoteOptions(String uri) { + private Map listRemoteOptions(Map columnWrappers, String fullUri, String currUserAgencyId) { + String pureUri = null; + String cascadeItemId = null; + String cascadeItemColumnValue = null; + + if (fullUri.indexOf("?") != -1) { + String[] uriParts = fullUri.split("\\?"); + pureUri = uriParts[0]; + cascadeItemId = uriParts[1]; + + // 根据uri上的id,找到关联的itemid,从而找到关联的item的值 + ColumnWrapper cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); + cascadeItemColumnValue = cascadeItemColumnWrapper.getColValue(); + } else { + pureUri = fullUri; + } - return null; + List options = null; + + switch (pureUri) { + case "/epmetuser/icresidemanddict/demandoption": + options = getResultDataOrThrowsException(epmetUserOpenFeignClient.getDemandOptions(), ServiceConstant.EPMET_USER_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/customergrid/gridoption": + AgencyIdFormDTO form = new AgencyIdFormDTO(); + form.setAgencyId(currUserAgencyId); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getGridOption(form), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/customerpartybranch/branchoption": + + CustomerPartyBranchDTO bform = new CustomerPartyBranchDTO(); + bform.setGridId(cascadeItemColumnValue); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getBranchOption(bform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/icbuilding/buildingoption": + IcBuildingDTO buildingform = new IcBuildingDTO(); + buildingform.setNeighborHoodId(cascadeItemColumnValue); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getBuildingOptions(buildingform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/icbuildingunit/unitoption": + IcBuildingUnitDTO buForm = new IcBuildingUnitDTO(); + buForm.setBuildingId(cascadeItemColumnValue); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getUnitOptions(buForm), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/ichouse/houseoption": + HouseFormDTO hform = new HouseFormDTO(); + hform.setUnitId(cascadeItemColumnValue); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getHouseOption(hform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/gov/org/icneighborhood/neighborhoodoption": + IcNeighborHoodDTO nform = new IcNeighborHoodDTO(); + nform.setAgencyId(currUserAgencyId); + nform.setGridId(cascadeItemId); + options = getResultDataOrThrowsException(govOrgOpenFeignClient.getNeighborHoodOptions(nform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/sys/dict/data/education": + options = getResultDataOrThrowsException(adminOpenFeignClient.getEducationOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/sys/dict/data/house": + options = getResultDataOrThrowsException(adminOpenFeignClient.getHouseOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/sys/dict/data/nation": + options = getResultDataOrThrowsException(adminOpenFeignClient.getNationOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/sys/dict/data/ninesmallplaces": + options = getResultDataOrThrowsException(adminOpenFeignClient.getNineSmallPlacesOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + case "/sys/dict/data/relationship": + options = getResultDataOrThrowsException(adminOpenFeignClient.getRelationshipOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); + break; + + } + + if (options == null) return null; + + return options.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); // 通用api调用,无法实现 /*if (!uri.startsWith("/api")) uri = "/api".concat(uri); @@ -711,11 +852,25 @@ public class IcResiUserServiceImpl extends BaseServiceImpl colIndexs; //private List colContents; + // 单元格内容 + private String cellContent; + // 数据库中列的值 private String colValue; // key:label,value:value private Map options; + + /** + * 选项来源,REMOTE;LOCAL;如果是动态加载的下拉框或者CHECKBOX等的情况下使用。URL:接口获取(LABEL,VALUE);JSON:直接从JSON中取 + */ + private String optionSourceType; + + /** + * 来源地址,REMOTE才有,固定格式;如果OPTIONS_SOURCE是URL,则此处填写要调用的接口的URL相对路径,例如:/API/GOV/ORG/XXXX。此处不应设置参数,若需要参数应当完全由后端,通过TOKEN信息来获取 + */ + private String optionSourceValue; } } \ No newline at end of file From 6ab79e6c526f2e52191e2b948f8dc48873202495 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 2 Nov 2021 18:27:50 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=AF=BC=E5=87=BA=20=E5=B1=85=E6=B0=91?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data-statistical-server/pom.xml | 16 ++++- .../epmet-demo/epmet-demo-server/pom.xml | 16 ++++- epmet-user/epmet-user-server/pom.xml | 16 ++++- .../java/com/epmet/constant/UserConstant.java | 2 + .../controller/IcResiUserController.java | 27 +++----- .../com/epmet/service/IcResiUserService.java | 13 +++- .../service/impl/IcResiUserServiceImpl.java | 59 ++++++++++++++++-- .../main/resources/excel/ic_resi_info_cid.xls | Bin 79872 -> 79872 bytes 8 files changed, 121 insertions(+), 28 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index cf2f0f200b..687c01b462 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -97,7 +97,21 @@ com.alibaba easyexcel - 2.2.6 + 2.2.10 + + + poi + org.apache.poi + + + poi-ooxml + org.apache.poi + + + poi-ooxml-schemas + org.apache.poi + + io.github.wnjustdoit diff --git a/epmet-module/epmet-demo/epmet-demo-server/pom.xml b/epmet-module/epmet-demo/epmet-demo-server/pom.xml index 8ef89773a9..4f6c0b6021 100644 --- a/epmet-module/epmet-demo/epmet-demo-server/pom.xml +++ b/epmet-module/epmet-demo/epmet-demo-server/pom.xml @@ -16,7 +16,21 @@ com.alibaba easyexcel - 2.2.6 + 2.2.10 + + + poi + org.apache.poi + + + poi-ooxml + org.apache.poi + + + poi-ooxml-schemas + org.apache.poi + + com.epmet diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 0d8854d5ff..cbf241f718 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -16,7 +16,21 @@ com.alibaba easyexcel - 2.2.6 + 2.2.10 + + + poi + org.apache.poi + + + poi-ooxml + org.apache.poi + + + poi-ooxml-schemas + org.apache.poi + + com.epmet diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java index 69046a3f84..31d86dadf7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java @@ -101,4 +101,6 @@ public interface UserConstant { String GRID_ID="GRID_ID"; String GENDER="GENDER"; String HOUSE_TYPE_KEY="HOUSE_TYPE"; + String HOME_ID = "HOME_ID"; + } 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 f93c505efb..1f61e9f683 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 @@ -331,7 +331,7 @@ public class IcResiUserController { pageFormDTO.setPageFlag(false); //PageData> mapPageData = icResiUserService.pageResiMap(pageFormDTO); //List> list = mapPageData.getList(); - List> list = icResiUserService.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions()); + List> list = icResiUserService.getDataForExport(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions()); //list = (List>)JSON.parse("[{\"IS_BDHJ\":\"1\",\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest2\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":null,\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":null,\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":null,\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"},{\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":\"心理咨询\",\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":\"2021-10-28 00:00:00\",\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":\"10180002\",\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"}]"); log.info("list:{}", JSON.toJSONString(list)); @@ -350,30 +350,18 @@ public class IcResiUserController { if (item.getChildGroup() != null){ if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { sheetMap.put( n.incrementAndGet(),mapData); - System.out.println(n.get()); } } }); - for (FormGroupDTO group : resiFormItems.getGroupList()) { - - } - - - Workbook workbook = ExcelExportUtil.exportExcel(sheetMap, params); + workbook.setActiveSheet(0); + //header + String fileName = "居民信息.xls"; response.setHeader("content-Type", "application/vnd.ms-excel"); - response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("居民信息.xls", "UTF-8")); + response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8")); workbook.write(response.getOutputStream()); - - /* //方式1 通过mv导出 - ModelAndView mv = new ModelAndView(new EasypoiTemplateExcelView()); - mv.addObject(TemplateExcelConstants.FILE_NAME, "继续追踪导出详情-")); - mv.addObject(TemplateExcelConstants.PARAMS, new TemplateExportParams(templatePath)); - mv.addObject(TemplateExcelConstants.MAP_DATA, mapData); - return mv;*/ - } @PostMapping("import/excel") @@ -383,8 +371,9 @@ public class IcResiUserController { } @PostMapping("test") - public Result>> test(@LoginUser TokenDto tokenDto,@RequestBody DynamicQueryFormDTO formDTO){ - formDTO.setCustomerId(tokenDto.getCustomerId()); + public Result>> test(@RequestBody DynamicQueryFormDTO formDTO){ + formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); + //formDTO.setCustomerId(tokenDto.getCustomerId()); return new Result>>().ok(icResiUserService.dynamicQuery(formDTO.getCustomerId(), formDTO.getFormCode(), formDTO.getResultTableName(), 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 cefe0c0e88..0dea424f07 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 @@ -133,4 +133,15 @@ public interface IcResiUserService extends BaseService { String formCode, String resultTableName, List conditions); -} \ No newline at end of file + + /** + * desc:条件导出 + * @param customerId + * @param formCode + * @param baseTableName + * @param conditions + * @return + */ + List> getDataForExport(String customerId, String formCode, String baseTableName, List conditions); + +} 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 b71e120176..69990f2d9d 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 @@ -39,6 +39,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -322,8 +323,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds); @@ -342,7 +343,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl options; } + + /** + * desc:动态查询 某表的所有字段值 + * @param customerId + * @param formCode + * @param resultTableName + * @param conditions + * @return + */ + @Override public List> dynamicQuery(String customerId, String formCode, String resultTableName, @@ -732,4 +743,42 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> getDataForExport(String customerId, String formCode, String baseTableName, List conditions) { + List> mapList = this.dynamicQuery(customerId, formCode, baseTableName, conditions); + mapList.parallelStream().forEach(map -> { + Object gridId = map.get(UserConstant.GRID_ID); + if (gridId != null) { + CustomerGridFormDTO formDTO = new CustomerGridFormDTO(); + formDTO.setGridId(gridId.toString()); + Result gridInfoRes = govOrgOpenFeignClient.getGridBaseInfoByGridId(formDTO); + if (gridInfoRes != null && gridInfoRes.success() && gridInfoRes.getData() != null) { + map.put(UserConstant.GRID_ID, gridInfoRes.getData().getGridName()); + } + } + Object homeId = map.get(UserConstant.HOME_ID); + if (homeId != null) { + HashSet houseIds = new HashSet<>(); + houseIds.add(homeId.toString()); + Result> houseInfoRes = govOrgOpenFeignClient.queryListHouseInfo(houseIds); + if (houseInfoRes != null && houseInfoRes.success() && CollectionUtils.isNotEmpty(houseInfoRes.getData())){ + HouseInfoDTO houseInfoDTO = houseInfoRes.getData().get(NumConstant.ZERO); + map.put("VILLAGE_NAME", houseInfoDTO.getNeighborHoodName()); + map.put("BUILD_NAME", houseInfoDTO.getBuildingName()); + map.put("HOME_ID", houseInfoDTO.getDoorName()); + } + } + }); + return mapList; + } +} diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls index b6a67b92057a4a34c4e65381aaa929e24b3f3344..59747c941454bd35a0341ab329df5c96eeb52a43 100644 GIT binary patch delta 7366 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 wNQ Date: Tue, 2 Nov 2021 22:51:39 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=B1=85=E6=B0=91=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AE=8C=E5=96=84=EF=BC=8C=E5=B7=B2=E7=BB=8F=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E4=B8=AD=E6=96=87=E5=B9=B6=E4=B8=94=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E6=88=90db=E6=89=80=E9=9C=80=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E4=B8=8B=E4=B8=80=E6=AD=A5=EF=BC=8C=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E6=88=90sql=EF=BC=8C=E5=B9=B6=E4=B8=94=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=95=B0=E6=8D=AE=E7=9A=84=E5=AE=8C=E6=95=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 7 ++- .../com/epmet/service/IcResiUserService.java | 2 +- .../service/impl/IcResiUserServiceImpl.java | 58 ++++++++++++------- 3 files changed, 43 insertions(+), 24 deletions(-) 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 da8c7a99eb..42f32d5d53 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 @@ -376,6 +376,11 @@ public class IcResiUserController { } + /** + * excel导入居民基本信息 + * @param loginUser + * @return + */ @PostMapping("import/excel") public Result importExcelByEasyExcel(@LoginUser TokenDto loginUser) { @@ -386,7 +391,7 @@ public class IcResiUserController { Result loginUserDetails = epmetUserOpenFeignClient.getLoginUserDetails(userForm); - Object result = icResiUserService.importExcel(loginUserDetails.getData().getAgencyId()); + Object result = icResiUserService.importIcResiInfoFromExcel(loginUserDetails.getData().getAgencyId()); return new Result().ok(result); } 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 3cb0adcff7..bac64e47b3 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 @@ -128,7 +128,7 @@ public interface IcResiUserService extends BaseService { */ Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO); - Object importExcel(String currUserAgencyId); + Object importIcResiInfoFromExcel(String currUserAgencyId); List> dynamicQuery(String customerId, String formCode, 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 24a3c6f1d7..ec98e3346d 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 @@ -428,8 +428,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders); // 持久化 - persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders); + persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, customerItems.get(0).getTableName()); return headerColumnWrapper; } @@ -488,12 +488,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl headerColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel) { + private void persist(Map headerColumnWrapper, List> dataRows, + String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, String tableName) { for (Map row : dataRows) { + // 当前行的列们 +// List columnsOfCurrRow = new ArrayList<>(); + + List columnNames = new ArrayList<>(); + List columnValues = new ArrayList<>(); + for (Map.Entry columnWrapperEntry : headerColumnWrapper.entrySet()) { - String itemId = columnWrapperEntry.getKey(); ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); if ("input".equals(columnWrapper.getItemType()) || "textarea".equals(columnWrapper.getItemType()) @@ -512,7 +518,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl options = columnWrapper.getOptions(); @@ -529,10 +537,17 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> combineHeaders(Map> headers) { - HashMap> itemAndColIndexs = new HashMap<>(); + HashMap> itemAndColIndexs = new LinkedHashMap<>(); headers.forEach((k, v) -> { String tempKey = String.join(":", v); @@ -561,7 +576,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl v = entry.getValue(); int lastPartIndex = v.size() - 1; String lastValuePart = v.get(lastPartIndex); - if (itemLabels.indexOf(lastValuePart) == -1) { + if (!itemLabels.contains(lastValuePart)) { // 该部分为options,它的上一级是item,那么去掉options这一级 v.remove(lastPartIndex); abandonedHeaders.put(colIdx, lastValuePart); @@ -598,7 +613,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> datas, Map abandonedHeaders) { // HashMap> tables = new HashMap<>(); - Map columns = new HashMap<>(combinedHeaders.size()); + Map columns = new LinkedHashMap<>(combinedHeaders.size()); for (Map.Entry> entry : combinedHeaders.entrySet()) { String combinedHeader = entry.getKey(); @@ -662,7 +677,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl listRemoteOptions(Map columnWrappers, String fullUri, String currUserAgencyId) { String pureUri = null; String cascadeItemId = null; - String cascadeItemColumnValue = null; + ColumnWrapper cascadeItemColumnWrapper = null; if (fullUri.indexOf("?") != -1) { String[] uriParts = fullUri.split("\\?"); @@ -670,8 +685,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl Date: Tue, 2 Nov 2021 22:57:12 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=86=B2=E7=AA=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IcResiUserServiceImpl.java | 14 -------------- 1 file changed, 14 deletions(-) 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 5c1b8cfa8e..b572a781e4 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 @@ -535,21 +535,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl Date: Wed, 3 Nov 2021 09:57:01 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 2 +- .../main/resources/excel/ic_resi_info_cid.xls | Bin 79872 -> 79872 bytes 2 files changed, 1 insertion(+), 1 deletion(-) 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 edbe7fcbd0..eacd60c613 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 @@ -349,7 +349,7 @@ public class IcResiUserController { resiFormItems.getItemList().forEach(item->{ if (item.getChildGroup() != null){ if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { - sheetMap.put( n.incrementAndGet(),mapData); + sheetMap.put(n.incrementAndGet() ,mapData); } } }); diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls index 59747c941454bd35a0341ab329df5c96eeb52a43..f40d8555313a62e7fad26213612b328a689d55a9 100644 GIT binary patch delta 137 zcmZqpz|!!6Wy32bM&`+{nL;M3GfRMRIxGL?I_8y*yy^`4Y3dAC4C)MOA?lk=T%YH% zurV-jPnO>-#mCGb#=yY9$iNJQVq(+#)fpu=$8Y8-nJm3oP*|3MpMe=92T}oo%*-Ga doh--ZvaxTM(O{gz%*vpl`EJJcz1ob Date: Wed, 3 Nov 2021 12:50:41 +0800 Subject: [PATCH 6/6] =?UTF-8?q?neighbourHoodId=20=E6=94=B9neighborHoodId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-org-server/src/main/resources/mapper/IcHouseDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 22aea14603..3dc145833a 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 @@ -118,7 +118,7 @@ a.OWNER_ID_CARD as ownerIdCard, a.ID as houseId, - c.ID as neighbourHoodId, + c.ID as neighborHoodId, b.ID as buildingId, a.BUILDING_UNIT_ID as unitNumKey, a.HOUSE_TYPE as houseTypeKey,