Browse Source

修改:

1.已存在的ic居民相关信息,修改,而不跳过
dev_shibei_match
wangxianzhang 4 years ago
parent
commit
816a08c9e6
  1. 84
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

84
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -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);

Loading…
Cancel
Save