From a3cfc504c15f116c54445281c9b7cf779c68c9e0 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 14 Apr 2022 22:13:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=EF=BC=9A=E6=A0=A1=E9=AA=8C=E6=89=80=E6=9C=89=E5=88=97?= =?UTF-8?q?=E7=9A=84=E5=BF=85=E5=A1=AB=EF=BC=9B=E5=8F=AA=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E5=87=BA=E7=8E=B0=E7=9A=84=E5=A1=AB?= =?UTF-8?q?=E4=BA=86=E4=BD=86=E7=B3=BB=E7=BB=9F=E4=B8=AD=E6=89=BE=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E7=9A=84=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-user/epmet-user-server/pom.xml | 2 +- .../impl/IcResiUserImportServiceImpl.java | 64 ++++++++++++------- 2 files changed, 41 insertions(+), 25 deletions(-) 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()); } /**