Browse Source

代码逻辑优化调整1

dev
jianjun 4 years ago
parent
commit
4a52bf11c8
  1. 13
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/user/LoginUserUtil.java
  2. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  3. 94
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  4. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnum.java
  5. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
  6. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  7. 73
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  8. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

13
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

2
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<ResiGroupDao, ResiGrou
* @Date 2020/3/30 15:07
**/
private Result<UserResiInfoResultDTO> getGroupLeaderUserInfo(String groupId) {
String customerId = loginUserUtil.getCurrentCustomerId();
String customerId = loginUserUtil.getLoginUserCustomerId();
//群主名称需要调用feign查询
// ResiGroupEntity resiGroupEntity = baseDao.selectById(groupId);
// if (null == resiGroupEntity) {

94
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<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE);
Map<String, Map<String, FormItemResult>> 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<String> stopSearchSet = new HashSet<>();
Map<String, WriteSheet> childTableWriteSheetMap = new HashMap<>();
//表数据写入
//通过枚举获取相关表并按照sheetNo排序
List<IcResiUserTableEnum> 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<String, FormItemResult> itemMap1 = otherSheetItems.get(tableName);
Map<String, Map<String, Object>> 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<FormItemResult> 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<FormItemResult> getResiFormAllItems(String customerId) {
CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO();
queryDTO.setFormCode("resi_base_info");
queryDTO.setCustomerId(customerId);
Result<List<FormItemResult>> 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();
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/enums/IcResiUserTableEnums.java → 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;

6
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<FormItemResult> formItemList, String excelPathName, HttpServletResponse response);
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -129,4 +129,13 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @Date 2021/11/5 14:40
*/
Map<String, Map<String, String>> getHomeUserCategoryCount(String buildId);
/**
* desc:根据formCode 获取标单项
*
* @param customerId
* @param formCode
* @return
*/
List<FormItemResult> listFormItems(String customerId, String formCode);
}

73
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<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>();
public static final ThreadLocal<Map<String, List<SkipedRow>>> 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<FormItemResult> 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<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>();
for (IcResiUserTableEnums e : IcResiUserTableEnums.values()) {
for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) {
skipedRowsMap.put(e.getTableName(), new LinkedList<>());
}
skipedRows.set(skipedRowsMap);
Map<String, List<ErrorRow>> 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<FormItemResult> 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<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息
List<FormItemResult> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE);
// 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
Map<Integer, String> abandonedHeaders = washHeaders(headers, formItemList);
//合并多级表头
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers);
// 得到客户配置item数据
Map<String, FormItemResult> formItemMap = customerItems.stream().collect(
Map<String, FormItemResult> 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<FormItemResult> 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<Integer, List<String>> headers = mergeHead(headList);
// 查询form相关信息
List<FormItemResult> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE);
// 清洗表头数据
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems);
Map<Integer, String> abandonedHeaders = washHeaders(headers, formItemList);
//合并多级表头
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers);
// 得到客户配置item数据
Map<String, FormItemResult> formItemMap = customerItems.stream().collect(
Map<String, FormItemResult> 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<Map<String, Object>> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName);
@ -597,18 +586,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
}
}
/**
* 根据formCode查询该form的item列表
* @param formCode
* @return
*/
private List<FormItemResult> listFormItems(String formCode) {
CustomerFormQueryDTO form = new CustomerFormQueryDTO();
form.setFormCode(formCode);
Result<List<FormItemResult>> 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<String, Boolean> 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);

26
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<IcResiUserDao, IcResiUserEntity> implements IcResiUserService {
public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResiUserEntity> implements IcResiUserService, ResultDataResolver {
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
@ -799,4 +805,20 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
public Map<String, Map<String, String>> getHomeUserCategoryCount(String buildId) {
return baseDao.getHomeUserCategoryCount(buildId);
}
/**
* 根据formCode查询该form的item列表
*
* @param customerId
* @param formCode
* @return
*/
@Override
public List<FormItemResult> listFormItems(String customerId, String formCode) {
CustomerFormQueryDTO form = new CustomerFormQueryDTO();
form.setFormCode(formCode);
form.setCustomerId(customerId);
Result<List<FormItemResult>> result = operCustomizeOpenFeignClient.listItems(form);
return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "查询表单相关信息失败");
}
}

Loading…
Cancel
Save