|
@ -60,7 +60,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
// 错误和跳过excel行暂存
|
|
|
// 错误和跳过excel行暂存
|
|
|
public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>(); |
|
|
public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>(); |
|
|
public static final ThreadLocal<Map<String, List<SkipedRow>>> skipedRows = 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 |
|
|
@Autowired |
|
|
private LoginUserUtil loginUserUtil; |
|
|
private LoginUserUtil loginUserUtil; |
|
|
|
|
|
|
|
@ -75,7 +78,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; |
|
|
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; |
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
private IcResiUserDao icResiUserDao; |
|
|
private IcResiUserDao icResiUserDao; |
|
|
|
|
|
|
|
@ -92,7 +95,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
private String columnName; |
|
|
private String columnName; |
|
|
private String itemType; |
|
|
private String itemType; |
|
|
private String itemId; |
|
|
private String itemId; |
|
|
|
|
|
|
|
|
// 是否必填
|
|
|
// 是否必填
|
|
|
private Integer required; |
|
|
private Integer required; |
|
|
private List<Integer> colIndexs; |
|
|
private List<Integer> colIndexs; |
|
@ -115,7 +118,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
*/ |
|
|
*/ |
|
|
private String optionSourceValue; |
|
|
private String optionSourceValue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 错误行信息 |
|
|
* 错误行信息 |
|
|
*/ |
|
|
*/ |
|
@ -124,9 +127,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
|
@Excel(name = "工作表", width = 30) |
|
|
@Excel(name = "工作表", width = 30) |
|
|
private String sheetName; |
|
|
private String sheetName; |
|
|
|
|
|
|
|
|
private String tableName; |
|
|
private String tableName; |
|
|
|
|
|
|
|
|
@Excel(name = "身份证号", width = 40) |
|
|
@Excel(name = "身份证号", width = 40) |
|
|
private String idCard; |
|
|
private String idCard; |
|
|
|
|
|
|
|
@ -142,9 +145,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
|
@Excel(name = "工作表") |
|
|
@Excel(name = "工作表") |
|
|
private String sheetName; |
|
|
private String sheetName; |
|
|
|
|
|
|
|
|
private String tableName; |
|
|
private String tableName; |
|
|
|
|
|
|
|
|
@Excel(name = "身份证号") |
|
|
@Excel(name = "身份证号") |
|
|
private String idCard; |
|
|
private String idCard; |
|
|
|
|
|
|
|
@ -182,15 +185,15 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
initThreadLocalRowsStorage(); |
|
|
initThreadLocalRowsStorage(); |
|
|
|
|
|
|
|
|
// 上传主表信息
|
|
|
// 上传主表信息
|
|
|
importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(), |
|
|
importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(), |
|
|
currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName()); |
|
|
currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName()); |
|
|
|
|
|
|
|
|
// 上传附表信息
|
|
|
// 上传附表信息
|
|
|
for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) { |
|
|
for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) { |
|
|
if (sheet == IcResiUserTableEnums.IC_RESI_USER) { |
|
|
if (sheet == IcResiUserTableEnums.IC_RESI_USER) { |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
importIcResiExtraInfoFromExcel(excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); |
|
|
importIcResiExtraInfoFromExcel(excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
@ -205,7 +208,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
|
String errors = JSON.toJSONString(errorRows.get()); |
|
|
String errors = JSON.toJSONString(errorRows.get()); |
|
|
//String skipeds = JSON.toJSONString(skipedRows.get());
|
|
|
//String skipeds = JSON.toJSONString(skipedRows.get());
|
|
|
|
|
|
|
|
|
log.error(errors); |
|
|
log.error(errors); |
|
|
//log.error(skipeds);
|
|
|
//log.error(skipeds);
|
|
|
|
|
|
|
|
@ -257,7 +260,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
// 查询form相关信息
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); |
|
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
// 清洗表头数据
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
@ -306,7 +309,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
// 查询form相关信息
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); |
|
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
// 清洗表头数据
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
@ -361,27 +364,34 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
columnAndValues.put("AGENCY_ID", currUserAgencyId); |
|
|
columnAndValues.put("AGENCY_ID", currUserAgencyId); |
|
|
columnAndValues.put("PIDS", currUserAgencyPids); |
|
|
columnAndValues.put("PIDS", currUserAgencyPids); |
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
|
|
|
|
|
|
|
|
// 验证居民信息是否存在
|
|
|
// 验证居民信息是否存在
|
|
|
String idCard = columnAndValues.get("ID_CARD"); |
|
|
String idCard = columnAndValues.get("ID_CARD"); |
|
|
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); |
|
|
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); |
|
|
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); |
|
|
|
|
|
IcResiUserEntity resiBaseInfo = icResiUserDao.selectOne(idCardQuery); |
|
|
|
|
|
|
|
|
if (icResiUserDao.selectCount(idCardQuery) > 0) { |
|
|
if (resiBaseInfo != null) { |
|
|
//log.info("身份证号为【{}】的居民信息已存在,跳过导入", idCard);
|
|
|
icResiUserDao.upTable(tableName, resiBaseInfo.getId(), columnAndValues); |
|
|
SkipedRow skipedRow = new SkipedRow(); |
|
|
} else { |
|
|
skipedRow.setName(columnAndValues.get("NAME")); |
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
skipedRow.setIdCard(idCard); |
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
skipedRow.setInfo("身份证号已存在,跳过导入"); |
|
|
icResiUserDao.add(tableName, columnAndValues); |
|
|
skipedRow.setTableName(tableName); |
|
|
|
|
|
skipedRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(skipedRow); |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
icResiUserDao.add(tableName, columnAndValues); |
|
|
//if (icResiUserDao.selectCount(idCardQuery) > 0) {
|
|
|
|
|
|
// //log.info("身份证号为【{}】的居民信息已存在,跳过导入", idCard);
|
|
|
|
|
|
// SkipedRow skipedRow = new SkipedRow();
|
|
|
|
|
|
// skipedRow.setName(columnAndValues.get("NAME"));
|
|
|
|
|
|
// skipedRow.setIdCard(idCard);
|
|
|
|
|
|
// skipedRow.setInfo("身份证号已存在,跳过导入");
|
|
|
|
|
|
// skipedRow.setTableName(tableName);
|
|
|
|
|
|
// skipedRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(skipedRow);
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
String errorMsg; |
|
|
String errorMsg; |
|
|
if (e instanceof RenException) { |
|
|
if (e instanceof RenException) { |
|
@ -416,7 +426,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
String currentUserId, String targetTableName, String customerId) { |
|
|
String currentUserId, String targetTableName, String customerId) { |
|
|
|
|
|
|
|
|
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); |
|
|
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); |
|
|
|
|
|
|
|
|
// 遍历每一行,将行内容转化为
|
|
|
// 遍历每一行,将行内容转化为
|
|
|
for (Map<Integer, String> row : dataRows) { |
|
|
for (Map<Integer, String> row : dataRows) { |
|
|
|
|
|
|
|
@ -440,32 +450,42 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
|
String icResiId = icResiUserBaseInfo.getId(); |
|
|
String icResiId = icResiUserBaseInfo.getId(); |
|
|
|
|
|
|
|
|
// 验证党员信息是否存在
|
|
|
//if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) {
|
|
|
if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) { |
|
|
// log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName);
|
|
|
log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName); |
|
|
//
|
|
|
|
|
|
// SkipedRow skipedRow = new SkipedRow();
|
|
|
SkipedRow skipedRow = new SkipedRow(); |
|
|
// skipedRow.setName(columnAndValues.get("NAME"));
|
|
|
skipedRow.setName(columnAndValues.get("NAME")); |
|
|
// skipedRow.setIdCard(columnAndValues.get("ID_CARD"));
|
|
|
skipedRow.setIdCard(columnAndValues.get("ID_CARD")); |
|
|
// skipedRow.setInfo("信息已存在,跳过导入");
|
|
|
skipedRow.setInfo("信息已存在,跳过导入"); |
|
|
// skipedRow.setTableName(targetTableName);
|
|
|
skipedRow.setTableName(targetTableName); |
|
|
// skipedRows.get().get(targetTableName).add(skipedRow);
|
|
|
skipedRows.get().get(targetTableName).add(skipedRow); |
|
|
//
|
|
|
|
|
|
// continue;
|
|
|
continue; |
|
|
//}
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
columnAndValues.put("IC_RESI_USER", icResiId); |
|
|
columnAndValues.put("IC_RESI_USER", icResiId); |
|
|
|
|
|
|
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误
|
|
|
columnAndValues = removeNeedlessColumns(columnAndValues); |
|
|
columnAndValues = removeNeedlessColumns(columnAndValues); |
|
|
|
|
|
|
|
|
icResiUserDao.add(targetTableName, columnAndValues); |
|
|
// 更新主表的人员类型及更新时间
|
|
|
|
|
|
|
|
|
updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); |
|
|
updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); |
|
|
|
|
|
|
|
|
|
|
|
// 验证附加信息是否存在
|
|
|
|
|
|
List<Map<String, Object>> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName); |
|
|
|
|
|
if (CollectionUtils.isNotEmpty(subInfos)) { |
|
|
|
|
|
Map<String, Object> subInfo = subInfos.get(0); |
|
|
|
|
|
// 附加信息存在,更新附加表内容
|
|
|
|
|
|
icResiUserDao.upTable(targetTableName, subInfo.get("ID").toString(), columnAndValues); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 新增附加表信息
|
|
|
|
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
|
|
icResiUserDao.add(targetTableName, columnAndValues); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
String errorMsg; |
|
|
String errorMsg; |
|
|
if (e instanceof RenException) { |
|
|
if (e instanceof RenException) { |
|
@ -474,7 +494,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
errorMsg = "未知系统错误"; |
|
|
errorMsg = "未知系统错误"; |
|
|
log.error(ExceptionUtils.getErrorStackTrace(e)); |
|
|
log.error(ExceptionUtils.getErrorStackTrace(e)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
ErrorRow errorRow = new ErrorRow(); |
|
|
ErrorRow errorRow = new ErrorRow(); |
|
|
errorRow.setName(columnAndValues.get("NAME")); |
|
|
errorRow.setName(columnAndValues.get("NAME")); |
|
|
errorRow.setIdCard(columnAndValues.get("ID_CARD")); |
|
|
errorRow.setIdCard(columnAndValues.get("ID_CARD")); |
|
@ -517,13 +537,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
* @param target 要将数据放到哪个对象中 |
|
|
* @param target 要将数据放到哪个对象中 |
|
|
*/ |
|
|
*/ |
|
|
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, |
|
|
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, |
|
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, |
|
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, |
|
|
LinkedHashMap<String, String> target) { |
|
|
LinkedHashMap<String, String> target) { |
|
|
|
|
|
|
|
|
boolean interupt = false; |
|
|
boolean interupt = false; |
|
|
|
|
|
|
|
|
List<String> errorColumnNames = new LinkedList<>(); |
|
|
List<String> errorColumnNames = new LinkedList<>(); |
|
|
|
|
|
|
|
|
for (Map.Entry<String, ColumnWrapper> columnWrapperEntry : headerColumnWrapper.entrySet()) { |
|
|
for (Map.Entry<String, ColumnWrapper> columnWrapperEntry : headerColumnWrapper.entrySet()) { |
|
|
|
|
|
|
|
|
ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); |
|
|
ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); |
|
@ -561,16 +581,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel); |
|
|
String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel); |
|
|
columnWrapper.setColValue(checkBoxColValue); |
|
|
columnWrapper.setColValue(checkBoxColValue); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// requiredColumns中的值为必填项
|
|
|
// requiredColumns中的值为必填项
|
|
|
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { |
|
|
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { |
|
|
interupt = true; |
|
|
interupt = true; |
|
|
errorColumnNames.add(columnWrapper.combinedLabel); |
|
|
errorColumnNames.add(columnWrapper.combinedLabel); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
target.put(columnWrapper.columnName, columnWrapper.colValue); |
|
|
target.put(columnWrapper.columnName, columnWrapper.colValue); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (interupt) { |
|
|
if (interupt) { |
|
|
throw new RenException(String.join(",", errorColumnNames) + "的值未填写"); |
|
|
throw new RenException(String.join(",", errorColumnNames) + "的值未填写"); |
|
|
} |
|
|
} |
|
@ -654,7 +674,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, |
|
|
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, |
|
|
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { |
|
|
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { |
|
|
|
|
|
|
|
|
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
|
|
|
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
|
|
|
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size()); |
|
|
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size()); |
|
@ -896,21 +916,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
*/ |
|
|
*/ |
|
|
public void downLoadResults(HttpServletResponse response) throws IOException { |
|
|
public void downLoadResults(HttpServletResponse response) throws IOException { |
|
|
//public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>();
|
|
|
//public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>();
|
|
|
|
|
|
|
|
|
String fileName = "导入失败条目清单.xls"; |
|
|
String fileName = "导入失败条目清单.xls"; |
|
|
response.setHeader("content-Type", "application/vnd.ms-excel"); |
|
|
response.setHeader("content-Type", "application/vnd.ms-excel"); |
|
|
response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8")); |
|
|
response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8")); |
|
|
|
|
|
|
|
|
LinkedList<ErrorRow> list = new LinkedList<>(); |
|
|
LinkedList<ErrorRow> list = new LinkedList<>(); |
|
|
for (Map.Entry<String, List<ErrorRow>> entry : errorRows.get().entrySet()) { |
|
|
for (Map.Entry<String, List<ErrorRow>> entry : errorRows.get().entrySet()) { |
|
|
list.addAll(entry.getValue()); |
|
|
list.addAll(entry.getValue()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
list.forEach(row -> row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment())); |
|
|
list.forEach(row -> {System.out.println(row.getTableName());row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment());}); |
|
|
|
|
|
|
|
|
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的条目列表","导入失败"), |
|
|
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的条目列表","导入失败"), |
|
|
ErrorRow.class, list); |
|
|
ErrorRow.class, list); |
|
|
|
|
|
|
|
|
workbook.write(response.getOutputStream()); |
|
|
workbook.write(response.getOutputStream()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|