|
|
@ -61,6 +61,9 @@ 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; |
|
|
|
|
|
|
@ -257,7 +260,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
|
List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); |
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
@ -306,7 +309,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
|
List<FormItem> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); |
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
@ -361,27 +364,34 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
columnAndValues.put("AGENCY_ID", currUserAgencyId); |
|
|
|
columnAndValues.put("PIDS", currUserAgencyPids); |
|
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
|
|
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
|
|
|
|
// 验证居民信息是否存在
|
|
|
|
String idCard = columnAndValues.get("ID_CARD"); |
|
|
|
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); |
|
|
|
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); |
|
|
|
IcResiUserEntity resiBaseInfo = icResiUserDao.selectOne(idCardQuery); |
|
|
|
|
|
|
|
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; |
|
|
|
if (resiBaseInfo != null) { |
|
|
|
icResiUserDao.upTable(tableName, resiBaseInfo.getId(), columnAndValues); |
|
|
|
} else { |
|
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
icResiUserDao.add(tableName, columnAndValues); |
|
|
|
} |
|
|
|
|
|
|
|
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) { |
|
|
|
String errorMsg; |
|
|
|
if (e instanceof RenException) { |
|
|
@ -440,32 +450,42 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
String icResiId = icResiUserBaseInfo.getId(); |
|
|
|
|
|
|
|
// 验证党员信息是否存在
|
|
|
|
if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) { |
|
|
|
log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName); |
|
|
|
|
|
|
|
SkipedRow skipedRow = new SkipedRow(); |
|
|
|
skipedRow.setName(columnAndValues.get("NAME")); |
|
|
|
skipedRow.setIdCard(columnAndValues.get("ID_CARD")); |
|
|
|
skipedRow.setInfo("信息已存在,跳过导入"); |
|
|
|
skipedRow.setTableName(targetTableName); |
|
|
|
skipedRows.get().get(targetTableName).add(skipedRow); |
|
|
|
|
|
|
|
continue; |
|
|
|
} |
|
|
|
//if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) {
|
|
|
|
// log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName);
|
|
|
|
//
|
|
|
|
// SkipedRow skipedRow = new SkipedRow();
|
|
|
|
// skipedRow.setName(columnAndValues.get("NAME"));
|
|
|
|
// skipedRow.setIdCard(columnAndValues.get("ID_CARD"));
|
|
|
|
// skipedRow.setInfo("信息已存在,跳过导入");
|
|
|
|
// skipedRow.setTableName(targetTableName);
|
|
|
|
// skipedRows.get().get(targetTableName).add(skipedRow);
|
|
|
|
//
|
|
|
|
// continue;
|
|
|
|
//}
|
|
|
|
|
|
|
|
columnAndValues.put("IC_RESI_USER", icResiId); |
|
|
|
|
|
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
|
columnAndValues.put("CREATED_BY", currentUserId); |
|
|
|
columnAndValues.put("UPDATED_BY", currentUserId); |
|
|
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
|
|
|
|
|
|
|
// 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误
|
|
|
|
columnAndValues = removeNeedlessColumns(columnAndValues); |
|
|
|
|
|
|
|
// 更新主表的人员类型及更新时间
|
|
|
|
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); |
|
|
|
} |
|
|
|
|
|
|
|
updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); |
|
|
|
} catch (Exception e) { |
|
|
|
String errorMsg; |
|
|
|
if (e instanceof RenException) { |
|
|
@ -906,7 +926,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
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("导入失败的条目列表","导入失败"), |
|
|
|
ErrorRow.class, list); |
|
|
|