Browse Source

修复:

1.居民信息导入,排除不必要的列的校验
release
wangxianzhang 4 years ago
parent
commit
fd4cccef30
  1. 39
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

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

@ -85,6 +85,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
@Autowired @Autowired
private IcResiUserDao icResiUserDao; 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 列信息封装 * @description 列信息封装
* *
@ -353,7 +360,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>();
try { try {
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true);
columnAndValues.put("IS_ENSURE_HOUSE", "0"); columnAndValues.put("IS_ENSURE_HOUSE", "0");
columnAndValues.put("IS_OLD_PEOPLE", "0"); columnAndValues.put("IS_OLD_PEOPLE", "0");
@ -434,12 +441,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
for (Map<Integer, String> row : dataRows) { for (Map<Integer, String> row : dataRows) {
try { try {
convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, false);
// 检验身份证号 // 检验身份证号
String idCard = columnAndValues.get("ID_CARD"); String idCard = columnAndValues.get("ID_CARD");
if (StringUtils.isBlank(idCard)) { 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 currUserAgencyId 当前用户所属机构ID
* @param checkBoxOptionColumnIdxAndLabel 复选框options列表key:列号value复选框中文 * @param checkBoxOptionColumnIdxAndLabel 复选框options列表key:列号value复选框中文
* @param target 要将数据放到哪个对象中 * @param target 要将数据放到哪个对象中
* @param isPrimaryTable 是否是主表
*/ */
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 isPrimaryTable) {
boolean interupt = false; boolean interupt = false;
@ -588,10 +600,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
columnWrapper.setColValue(checkBoxColValue); columnWrapper.setColValue(checkBoxColValue);
} }
// requiredColumns中的值为必填项 // requiredColumns中的值不在排除字段中 && 是必填 && 未填写
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { if (isPrimaryTable) {
interupt = true; // 主表没有需要排除的列
errorColumnNames.add(columnWrapper.combinedLabel); 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); target.put(columnWrapper.columnName, columnWrapper.colValue);

Loading…
Cancel
Save