|
|
@ -85,6 +85,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
@Autowired |
|
|
|
private IcResiUserDao icResiUserDao; |
|
|
|
|
|
|
|
/** |
|
|
|
* 字表中不需要的列 |
|
|
|
*/ |
|
|
|
private List<String> subTableNeedlessColumns = Arrays.asList("GRID_ID", "VILLAGE_ID", "BUILD_ID", "UNIT_ID", "HOME_ID", |
|
|
|
"IS_BDHJ", "NAME", "MOBILE", "GENDER", "ID_CARD", |
|
|
|
"BIRTHDAY", "CONTACTS", "CONTACTS_MOBILE"); |
|
|
|
|
|
|
|
/** |
|
|
|
* @description 列信息封装 |
|
|
|
* |
|
|
@ -353,7 +360,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
|
|
|
|
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); |
|
|
|
try { |
|
|
|
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); |
|
|
|
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true); |
|
|
|
|
|
|
|
columnAndValues.put("IS_ENSURE_HOUSE", "0"); |
|
|
|
columnAndValues.put("IS_OLD_PEOPLE", "0"); |
|
|
@ -434,12 +441,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
for (Map<Integer, String> row : dataRows) { |
|
|
|
|
|
|
|
try { |
|
|
|
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); |
|
|
|
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, false); |
|
|
|
|
|
|
|
// 检验身份证号
|
|
|
|
String idCard = columnAndValues.get("ID_CARD"); |
|
|
|
if (StringUtils.isBlank(idCard)) { |
|
|
|
throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", columnAndValues.get("NAME"))); |
|
|
|
String resiName = columnAndValues.get("NAME"); |
|
|
|
if (resiName == null) { |
|
|
|
resiName = ""; |
|
|
|
} |
|
|
|
throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", resiName)); |
|
|
|
} |
|
|
|
|
|
|
|
// 检查用户是否存在
|
|
|
@ -538,10 +549,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
* @param currUserAgencyId 当前用户所属机构ID |
|
|
|
* @param checkBoxOptionColumnIdxAndLabel 复选框options列表。key:列号,value:复选框中文 |
|
|
|
* @param target 要将数据放到哪个对象中 |
|
|
|
* @param isPrimaryTable 是否是主表 |
|
|
|
*/ |
|
|
|
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, |
|
|
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, |
|
|
|
LinkedHashMap<String, String> target) { |
|
|
|
LinkedHashMap<String, String> target, boolean isPrimaryTable) { |
|
|
|
|
|
|
|
boolean interupt = false; |
|
|
|
|
|
|
@ -588,10 +600,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res |
|
|
|
columnWrapper.setColValue(checkBoxColValue); |
|
|
|
} |
|
|
|
|
|
|
|
// requiredColumns中的值为必填项
|
|
|
|
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { |
|
|
|
interupt = true; |
|
|
|
errorColumnNames.add(columnWrapper.combinedLabel); |
|
|
|
// requiredColumns中的值不在排除字段中 && 是必填 && 未填写
|
|
|
|
if (isPrimaryTable) { |
|
|
|
// 主表没有需要排除的列
|
|
|
|
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { |
|
|
|
interupt = true; |
|
|
|
errorColumnNames.add(columnWrapper.combinedLabel); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 从表需要排除掉一些不必要校验的列
|
|
|
|
if (!subTableNeedlessColumns.contains(columnWrapper.columnName) |
|
|
|
&& columnWrapper.getRequired() == 1 |
|
|
|
&& StringUtils.isBlank(columnWrapper.colValue)) { |
|
|
|
interupt = true; |
|
|
|
errorColumnNames.add(columnWrapper.combinedLabel); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
target.put(columnWrapper.columnName, columnWrapper.colValue); |
|
|
|