From 5b3d586afb62ff00137e79546ba981cccc193d99 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 17 Nov 2021 18:14:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E9=A1=B9=E7=9B=B4=E6=8E=A5=E4=BB=8E=E5=8F=82=E6=95=B0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AE=A2=E6=88=B7id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/IcFormController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index f6f52d00c2..dee3afb8ec 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -180,16 +180,15 @@ public class IcFormController { /** * @description item列表 * - * @param tokenDto * @param formDto * @return * @author wxz * @date 2021.10.28 15:19:59 */ @PostMapping("items") - public Result> listItems(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto) { + public Result> listItems(@RequestBody CustomerFormQueryDTO formDto) { ValidatorUtils.validateEntity(formDto, CustomerFormQueryDTO.GetFormInfoGroup.class); - List rst = icFormService.listItems(tokenDto.getCustomerId(), formDto.getFormCode()); + List rst = icFormService.listItems(formDto.getCustomerId(), formDto.getFormCode()); return new Result>().ok(rst); } } From 4a52bf11c8eb0f1c26015486edf7fa16eb82e37c Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 17 Nov 2021 18:46:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B0=83=E6=95=B41?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/security/user/LoginUserUtil.java | 13 --- .../service/impl/ResiGroupServiceImpl.java | 2 +- .../controller/IcResiUserController.java | 94 ++++++++++++++----- ...bleEnums.java => IcResiUserTableEnum.java} | 15 ++- .../service/IcResiUserImportService.java | 6 +- .../com/epmet/service/IcResiUserService.java | 9 ++ .../impl/IcResiUserImportServiceImpl.java | 73 +++++--------- .../service/impl/IcResiUserServiceImpl.java | 26 ++++- 8 files changed, 143 insertions(+), 95 deletions(-) rename epmet-user/epmet-user-server/src/main/java/com/epmet/enums/{IcResiUserTableEnums.java => IcResiUserTableEnum.java} (90%) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java index bb5e6f7b5d..70307f6551 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java @@ -6,7 +6,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; -import java.util.Enumeration; import java.util.List; /** @@ -35,18 +34,6 @@ public class LoginUserUtil { return userId; } - /** - * 查询登录用户的客户Id - * @return - */ - public String getCurrentCustomerId() { - HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); - if (request == null) { - return null; - } - return request.getHeader(AppClientConstant.CUSTOMER_ID); - } - /** * 登录用户的App头信息 * @return diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index ee2f844d04..0b6ecd84b0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -380,7 +380,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl getGroupLeaderUserInfo(String groupId) { - String customerId = loginUserUtil.getCurrentCustomerId(); + String customerId = loginUserUtil.getLoginUserCustomerId(); //群主名称需要调用feign查询 // ResiGroupEntity resiGroupEntity = baseDao.selectById(groupId); // if (null == resiGroupEntity) { 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 a6263f508f..073df83da5 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 @@ -46,7 +46,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.enums.IcResiUserTableEnums; +import com.epmet.enums.IcResiUserTableEnum; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.feign.OssFeignClient; import com.epmet.service.IcResiUserImportService; @@ -70,6 +70,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** @@ -83,6 +84,8 @@ import java.util.concurrent.atomic.AtomicInteger; @RequestMapping("icresiuser") public class IcResiUserController { private static final String BASE_TABLE_NAME = "ic_resi_user"; + //todo 枚举吧 + private static final String IC_RESI_FORM_CODE = "resi_base_info"; /** * 居民上传临时目录 @@ -257,8 +260,8 @@ public class IcResiUserController { workbook.write(getOutputStream("居民基本信息.xls", response)); } - @RequestMapping(value = "/exportExcel") - public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { + @RequestMapping(value = "/exportExcel3") + public void exportExcelByEasyExcel3(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); String staffOrgPath = null; @@ -280,7 +283,7 @@ public class IcResiUserController { ExcelWriter excelWriter = EasyExcel.write(getOutputStream("居民基本信息.xlsx", response)).withTemplate(file).build(); FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); - IcResiUserTableEnums tableEnums = IcResiUserTableEnums.getObjectByTableName(BASE_TABLE_NAME); + IcResiUserTableEnum tableEnums = IcResiUserTableEnum.getObjectByTableName(BASE_TABLE_NAME); WriteSheet fistSheet = EasyExcel.writerSheet(tableEnums.getSheetNo()).build(); pageFormDTO.setPageSize(NumConstant.FIVE_HUNDRED); @@ -325,7 +328,7 @@ public class IcResiUserController { if (resiChildMap.keySet().size() < pageFormDTO.getPageSize()) { stopSearchSet.add(tableName); } - tableEnums = IcResiUserTableEnums.getObjectByTableName(tableName); + tableEnums = IcResiUserTableEnum.getObjectByTableName(tableName); if (tableEnums == null) { continue; } @@ -346,6 +349,68 @@ public class IcResiUserController { excelWriter.finish(); } + @RequestMapping(value = "/exportExcel") + public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { + //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); + String staffOrgPath = null; + if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { + staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); + } else { + staffOrgPath = staffInfoCacheResult.getAgencyId(); + } + pageFormDTO.setCustomerId(customerId); + pageFormDTO.setPageFlag(false); + + List resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE); + Map> otherSheetItems = resiFormAllItems.stream() + .collect(Collectors.groupingBy(FormItemResult::getTableName, Collectors.toMap(FormItemResult::getColumnName, o -> o))); + + //获取模版文件 + File file = getExportTemplateFile(customerId); + ExcelWriter excelWriter = null; + try { + excelWriter = EasyExcel.write(getOutputStream("居民基本信息.xlsx", response)).withTemplate(file).build(); + + pageFormDTO.setPageSize(NumConstant.FIVE_HUNDRED); + pageFormDTO.setPageNo(NumConstant.ONE); + //子表是否停止查询 + Set stopSearchSet = new HashSet<>(); + Map childTableWriteSheetMap = new HashMap<>(); + + //表数据写入 + //通过枚举获取相关表并按照sheetNo排序 + List resiTableList = Arrays.stream(IcResiUserTableEnum.values()).sorted(Comparator.comparing(IcResiUserTableEnum::getSheetNo)).collect(Collectors.toList()); + for (IcResiUserTableEnum tableEnum : resiTableList) { + String tableName = tableEnum.getTableName(); + pageFormDTO.setPageNo(NumConstant.ONE); + //循环一次 写入每个sheet + do { + Map itemMap1 = otherSheetItems.get(tableName); + Map> resiChildMap = icResiUserService.getDataForExport(itemMap1, tableName, pageFormDTO, staffInfoCacheResult.getAgencyId(), staffOrgPath); + //如果 返回的条数小于每页显示的数 则退出查询 + if (resiChildMap.keySet().size() < pageFormDTO.getPageSize()) { + stopSearchSet.add(tableName); + } + //构建新的sheet + WriteSheet childWriteSheet = childTableWriteSheetMap.getOrDefault(tableName,EasyExcel.writerSheet(tableEnum.getSheetNo()).build()); + childTableWriteSheetMap.put(tableName, childWriteSheet); + //写入数据 + excelWriter.fill(new FillWrapper("t" + (tableEnum.getSheetNo() + NumConstant.ONE), resiChildMap.values()), childWriteSheet); + pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE); + //重置数据 + resiChildMap.clear(); + //如果包含则说明子表的数据 已经查询完毕 无需再继续查询了 + } while (!stopSearchSet.contains(tableName)); + } + + } finally { + if (excelWriter != null){ + excelWriter.finish(); + } + } + } + /** * desc:根据客户id 下载模版文件 如果不存在则返回null * @@ -450,7 +515,7 @@ public class IcResiUserController { */ @NoRepeatSubmit @PostMapping("importExcel") - public void importExcelByEasyExcel(@RequestPart("file") MultipartFile file, HttpServletResponse response) { + public void importExcelByEasyExcel(@RequestHeader("customerId") String customerId,@RequestPart("file") MultipartFile file, HttpServletResponse response) { if (file.isEmpty()) { throw new RenException("请上传文件"); } @@ -467,7 +532,8 @@ public class IcResiUserController { savePath = IC_RESI_UPLOAD_DIR.resolve(fileName); IOUtils.copy(file.getInputStream(), new FileOutputStream(savePath.toString())); - icResiUserImportService.importIcResiInfoFromExcel(savePath.toString(), response); + List formItemList = icResiUserService.listFormItems(customerId,IC_RESI_FORM_CODE); + icResiUserImportService.importIcResiInfoFromExcel(formItemList, savePath.toString(), response); } catch (IOException e) { String errorMsg = ExceptionUtils.getErrorStackTrace(e); log.error("【导入居民信息失败】导入失败:{}", errorMsg); @@ -525,20 +591,6 @@ public class IcResiUserController { if (resultForm == null || !resultForm.success() || resultForm.getData() == null) { throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); } - System.out.println(JSON.toJSONString(resultForm.getData())); - return resultForm.getData(); - } - - @NotNull - private List getResiFormAllItems(String customerId) { - CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO(); - queryDTO.setFormCode("resi_base_info"); - queryDTO.setCustomerId(customerId); - Result> resultForm = operCustomizeOpenFeignClient.listItems(queryDTO); - if (resultForm == null || !resultForm.success() || resultForm.getData() == null) { - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); - } - System.out.println(JSON.toJSONString(resultForm.getData())); return resultForm.getData(); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnums.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java similarity index 90% rename from epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnums.java rename to epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java index c03d5649c3..eb4ecd977e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnums.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java @@ -1,7 +1,6 @@ package com.epmet.enums; import lombok.AllArgsConstructor; -import lombok.Data; /** * @Description 描述 @@ -10,7 +9,7 @@ import lombok.Data; * @Version 1.0 */ @AllArgsConstructor -public enum IcResiUserTableEnums { +public enum IcResiUserTableEnum { IC_RESI_USER("ic_resi_user","社区居民基本信息录入表", 0, 3, null), IC_PARTY_MEMBER("ic_party_member","党员信息录入表", 1, 2, "IS_PARTY"), @@ -21,24 +20,24 @@ public enum IcResiUserTableEnums { IC_VOLUNTEER("ic_volunteer","志愿者信息录入表", 6, 3, "IS_VOLUNTEER"), IC_OLD_PEOPLE("ic_old_people","老年人信息录入表", 7, 2, "IS_OLD_PEOPLE"), IC_SPECIAL("ic_special","特殊人群信息录入表", 8, 3, "IS_SPECIAL"); - + private String tableName; private String tableComment; private int sheetNo; private int headRowNo; private String mainTableFlagColumnName; - public static IcResiUserTableEnums getObjectByTableName(String tableName) { - for (IcResiUserTableEnums i : IcResiUserTableEnums.values()) { + public static IcResiUserTableEnum getObjectByTableName(String tableName) { + for (IcResiUserTableEnum i : IcResiUserTableEnum.values()) { if (i.tableName.equals(tableName)) { return i; } } return null; } - - - + + + public String getTableName() { return tableName; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java index ba4d0c9458..7f3d0bdca0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java @@ -1,7 +1,9 @@ package com.epmet.service; +import com.epmet.dto.result.FormItemResult; + import javax.servlet.http.HttpServletResponse; -import java.io.IOException; +import java.util.List; /** *@Description 居民信息导入service @@ -10,5 +12,5 @@ import java.io.IOException; */ public interface IcResiUserImportService { - void importIcResiInfoFromExcel(String excelPathName, HttpServletResponse response); + void importIcResiInfoFromExcel(List formItemList, String excelPathName, HttpServletResponse response); } 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 45ff713e63..d18d47d1b3 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 @@ -129,4 +129,13 @@ public interface IcResiUserService extends BaseService { * @Date 2021/11/5 14:40 */ Map> getHomeUserCategoryCount(String buildId); + + /** + * desc:根据formCode 获取标单项 + * + * @param customerId + * @param formCode + * @return + */ + List listFormItems(String customerId, String formCode); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index eeaa8c03e7..12931809a9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -13,23 +13,20 @@ import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.security.user.LoginUserUtil; -import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiUserDao; import com.epmet.dto.*; import com.epmet.dto.form.AgencyIdFormDTO; -import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.OptionDTO; import com.epmet.entity.IcResiUserEntity; -import com.epmet.enums.IcResiUserTableEnums; +import com.epmet.enums.IcResiUserTableEnum; 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.service.IcResiUserImportService; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -61,9 +58,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res public static final ThreadLocal>> errorRows = new ThreadLocal<>(); public static final ThreadLocal>> skipedRows = new ThreadLocal<>(); - // 导入数字赋能平台居民信息form_code - public static final String IMPORT_IC_RESI_FORM_CODE = "resi_base_info"; - @Autowired private LoginUserUtil loginUserUtil; @@ -76,9 +70,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; - @Autowired - private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; - @Autowired private IcResiUserDao icResiUserDao; @@ -164,7 +155,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @return */ @Override - public void importIcResiInfoFromExcel(String excelPathName, HttpServletResponse response) { + public void importIcResiInfoFromExcel(List formItemList, String excelPathName, HttpServletResponse response) { String loginUserId = loginUserUtil.getLoginUserId(); String loginUserApp = loginUserUtil.getLoginUserApp(); String loginUserClient = loginUserUtil.getLoginUserClient(); @@ -185,17 +176,17 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res initThreadLocalRowsStorage(); // 上传主表信息 - importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(), - currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName()); + importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER.getSheetNo(), IcResiUserTableEnum.IC_RESI_USER.getHeadRowNo(), + currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnum.IC_RESI_USER.getTableName()); // 上传附表信息 - for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) { - if (sheet == IcResiUserTableEnums.IC_RESI_USER) { + for (IcResiUserTableEnum sheet : IcResiUserTableEnum.values()) { + if (sheet == IcResiUserTableEnum.IC_RESI_USER) { continue; } try { - importIcResiExtraInfoFromExcel(excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); + importIcResiExtraInfoFromExcel(formItemList, excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); } catch (Exception e) { String errorMsg = ExceptionUtils.getErrorStackTrace(e); log.error("导入IC居民附加信息【{}】错误:{}", sheet.getTableComment(), errorMsg); @@ -228,13 +219,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res */ private void initThreadLocalRowsStorage() { Map> skipedRowsMap = new LinkedHashMap<>(); - for (IcResiUserTableEnums e : IcResiUserTableEnums.values()) { + for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) { skipedRowsMap.put(e.getTableName(), new LinkedList<>()); } skipedRows.set(skipedRowsMap); Map> errorRowsMap = new LinkedHashMap<>(); - for (IcResiUserTableEnums e : IcResiUserTableEnums.values()) { + for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) { errorRowsMap.put(e.getTableName(), new LinkedList<>()); } errorRows.set(errorRowsMap); @@ -242,6 +233,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res /** * excel导入居民基本信息 + * + * @param formItemList * @param sheetNo * @param headRowNumber * @param currUserAgencyId @@ -249,7 +242,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param currentUserId * @return */ - private Object importIcResiBaseInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, + private Object importIcResiBaseInfoFromExcel(List formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, String tableName) { DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); //EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); @@ -260,17 +253,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Map> headers = mergeHead(headList); - // 查询form相关信息 - List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); - // 清洗表头数据 - Map abandonedHeaders = washHeaders(headers, customerItems); + Map abandonedHeaders = washHeaders(headers, formItemList); //合并多级表头 HashMap> combinedHeaders = combineHeaders(headers); // 得到客户配置item数据 - Map formItemMap = customerItems.stream().collect( + Map formItemMap = formItemList.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); String label = formItem.getLabel(); @@ -291,6 +281,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res /** * excel导入居民附加信息 + * + * @param formItemList * @param excelPathName * @param sheetNo * @param headRowNumber @@ -299,7 +291,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param targetTableName 要插入哪一个表 * @return */ - private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, + private Object importIcResiExtraInfoFromExcel(List formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, String targetTableName, String customerId) { DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); @@ -309,17 +301,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Map> headers = mergeHead(headList); - // 查询form相关信息 - List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); - // 清洗表头数据 - Map abandonedHeaders = washHeaders(headers, customerItems); + Map abandonedHeaders = washHeaders(headers, formItemList); //合并多级表头 HashMap> combinedHeaders = combineHeaders(headers); // 得到客户配置item数据 - Map formItemMap = customerItems.stream().collect( + Map formItemMap = formItemList.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); String label = formItem.getLabel(); @@ -364,7 +353,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnAndValues.put("AGENCY_ID", currUserAgencyId); columnAndValues.put("PIDS", currUserAgencyPids); - columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); + columnAndValues.put("CUSTOMER_ID", loginUserUtil.getLoginUserCustomerId()); columnAndValues.put("UPDATED_BY", currentUserId); @@ -407,7 +396,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res errorRow.setName(columnAndValues.get("NAME")); errorRow.setErrorInfo(errorMsg); errorRow.setTableName(tableName); - errorRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(errorRow); + errorRows.get().get(IcResiUserTableEnum.IC_RESI_USER.getTableName()).add(errorRow); } finally { columnAndValues.clear(); } @@ -465,14 +454,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res //} columnAndValues.put("IC_RESI_USER", icResiId); - columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); + columnAndValues.put("CUSTOMER_ID", loginUserUtil.getLoginUserCustomerId()); columnAndValues.put("UPDATED_BY", currentUserId); // 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误 columnAndValues = removeNeedlessColumns(columnAndValues); // 更新主表的人员类型及更新时间 - updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); + updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnum.getObjectByTableName(targetTableName)), icResiId); // 验证附加信息是否存在 List> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName); @@ -597,18 +586,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } } - /** - * 根据formCode查询该form的item列表 - * @param formCode - * @return - */ - private List listFormItems(String formCode) { - CustomerFormQueryDTO form = new CustomerFormQueryDTO(); - form.setFormCode(formCode); - Result> result = operCustomizeOpenFeignClient.listItems(form); - return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); - } - /** * @description 合并头 * @@ -904,7 +881,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param icResiUserTableEnum * @param resiUserId */ - private void updateMainTableResiTypeFlag(IcResiUserTableEnums icResiUserTableEnum, String resiUserId) { + private void updateMainTableResiTypeFlag(IcResiUserTableEnum icResiUserTableEnum, String resiUserId) { HashMap map = new HashMap<>(); map.put(icResiUserTableEnum.getMainTableFlagColumnName(), true); icResiUserDao.upTable("ic_resi_user", resiUserId, map); @@ -928,7 +905,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res list.addAll(entry.getValue()); } - list.forEach(row -> {row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment());}); + list.forEach(row -> {row.setSheetName(IcResiUserTableEnum.getObjectByTableName(row.tableName).getTableComment());}); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的列表","导入失败列表(没有数据说明全部成功)"), ErrorRow.class, list); 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 9019364f4d..c953563c81 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 @@ -24,12 +24,15 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; 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.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.GenderEnum; import com.epmet.commons.tools.enums.HouseTypeEnum; import com.epmet.commons.tools.enums.RelationshipEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; @@ -44,7 +47,10 @@ import com.epmet.constant.IcPlatformConstant; import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; -import com.epmet.dto.*; +import com.epmet.dto.CustomerAgencyDTO; +import com.epmet.dto.IcHouseDTO; +import com.epmet.dto.IcNeighborHoodDTO; +import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; @@ -76,7 +82,7 @@ import java.util.stream.Collectors; */ @Slf4j @Service -public class IcResiUserServiceImpl extends BaseServiceImpl implements IcResiUserService { +public class IcResiUserServiceImpl extends BaseServiceImpl implements IcResiUserService, ResultDataResolver { @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; @Autowired @@ -799,4 +805,20 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> getHomeUserCategoryCount(String buildId) { return baseDao.getHomeUserCategoryCount(buildId); } + + /** + * 根据formCode查询该form的item列表 + * + * @param customerId + * @param formCode + * @return + */ + @Override + public List listFormItems(String customerId, String formCode) { + CustomerFormQueryDTO form = new CustomerFormQueryDTO(); + form.setFormCode(formCode); + form.setCustomerId(customerId); + Result> result = operCustomizeOpenFeignClient.listItems(form); + return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "查询表单相关信息失败"); + } }