diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml
index 56b1318f64..b2f751c8b5 100644
--- a/epmet-user/epmet-user-server/pom.xml
+++ b/epmet-user/epmet-user-server/pom.xml
@@ -303,7 +303,7 @@
6379
EpmEtrEdIs!q@w
- true
+ false
192.168.10.150:8848
67e3c350-533e-4d7c-9f8f-faf1b4aa82ae
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
index a8c28673ee..ee23c3f7d1 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
@@ -736,10 +736,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel,
LinkedHashMap target2Insert, boolean isPrimaryTable) {
+ // 本行中是否有必填但未填,或者填了但填错了系统中找不到的列,那后面的数据可能就没办法通过前面填写的值去关联查询,因此只做必填检查,提示出来就行了,仁至义尽
boolean hasError = false;
- String notFoundColumnNames = null;
- String emptyColumnNames = null;
+ String notFoundColumnName = null;
+ List emptyColumnNames = new ArrayList<>();
// 这两列要提前放进去,因为有的列未填写的话,会抛异常出去,需要用这两列来做描述
target2Insert.put("ID_CARD", row.get(ID_CARD_COLUMN_NO));
@@ -760,9 +761,15 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
columnWrapper.setColValue(cellContent);
// 必填检查
- if (hasError = requiredButEmptyCheck(isPrimaryTable, columnWrapper)) {
- emptyColumnNames = columnWrapper.combinedLabel;
- break;
+ boolean hasEmptyError = requiredButEmptyCheck(isPrimaryTable, columnWrapper);
+ if (hasEmptyError) {
+ emptyColumnNames.add(columnWrapper.combinedLabel);
+ hasError = true;
+ continue;
+ }
+
+ if (hasError) {
+ continue;
}
// "select", "radio"
@@ -773,9 +780,15 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
columnWrapper.setCellContent(cellContent);
// 必填检查
- if (hasError = requiredButEmptyCheck(isPrimaryTable, columnWrapper)) {
- emptyColumnNames = columnWrapper.combinedLabel;
- break;
+ boolean hasEmptyError = requiredButEmptyCheck(isPrimaryTable, columnWrapper);
+ if (hasEmptyError) {
+ emptyColumnNames.add(columnWrapper.combinedLabel);
+ hasError = true;
+ continue;
+ }
+
+ if (hasError) {
+ continue;
}
if ("local".equals(columnWrapper.getOptionSourceType())) {
@@ -821,36 +834,39 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
}
}
} else if ("checkbox".equals(columnWrapper.getItemType())) {
- //多选框没有具体的cellContent,因为多选框对应着excel的多列
+ //多选框没有具体的cellContent,因为多选框对应着excel的多列。并且复选框,为空就是否,所以不需要做必填检查
String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel);
columnWrapper.setColValue(checkBoxColValue);
+
+ if (hasError) {
+ continue;
+ }
}
// 填了,但找不到对应数据的检查
- if (hasError = notFoundCheck(isPrimaryTable, columnWrapper)) {
- notFoundColumnNames = columnWrapper.combinedLabel;
- break;
+ boolean hasNotFoundError = notFoundCheck(isPrimaryTable, columnWrapper);
+ if (hasNotFoundError) {
+ notFoundColumnName = columnWrapper.combinedLabel;
+ hasError = true;
}
target2Insert.put(columnWrapper.columnName, columnWrapper.colValue);
}
- if (!hasError) {
- return;
- }
+ if (hasError) {
+ StringBuilder sb = new StringBuilder();
- StringBuilder sb = new StringBuilder();
+ // 组织报错信息
+ if (CollectionUtils.isNotEmpty(emptyColumnNames)) {
+ sb.append(String.join(",", emptyColumnNames)).append("的值未填写;");
+ }
- // 组织报错信息
- if (StringUtils.isNotBlank(emptyColumnNames)) {
- sb.append(emptyColumnNames).append("的值未填写");
- }
+ if (StringUtils.isNotBlank(notFoundColumnName)) {
+ sb.append(notFoundColumnName).append("填写的值在系统中未找到");
+ }
- if (StringUtils.isNotBlank(notFoundColumnNames)) {
- sb.append(notFoundColumnNames).append("填写的值在系统中未找到");
+ throw new EpmetException(sb.toString());
}
-
- throw new EpmetException(sb.toString());
}
/**