Browse Source

Merge branch 'dev_ic_diaodong' of http://git.elinkit.com.cn:7070/r/epmet-cloud into develop

dev
wangxianzhang 4 years ago
parent
commit
b0b660b20c
  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

@ -120,6 +120,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private UserService userService;
/**
* 字表中不需要的列
*/
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 列信息封装
*
@ -411,7 +418,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>();
try {
convertColumnWrappers2Map4Persist(itemIdAndColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues);
convertColumnWrappers2Map4Persist(itemIdAndColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true);
// 因为还没有读取子sheet,所以这些居民类别没有办法获取,先默认设置成0,后面读取子sheet的时候再更新
columnAndValues.put("IS_ENSURE_HOUSE", "0");
@ -513,12 +520,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));
}
// 检查用户是否存在
@ -607,10 +618,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> itemIdAndColumnWrappers, Map<Integer, String> row,
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel,
LinkedHashMap<String, String> target) {
LinkedHashMap<String, String> target, boolean isPrimaryTable) {
boolean interupt = false;
@ -657,10 +669,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);

Loading…
Cancel
Save