diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidationMessageBuilder.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidationMessageBuilder.java index bbbe5713bfd96b09797bfc81e008fd35be5b2e19..5565ff43bb0667326e7adb888c7db87e648ebcb7 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidationMessageBuilder.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidationMessageBuilder.java @@ -32,9 +32,9 @@ public class ValidationMessageBuilder { return joiner.toString(); } - public static String buildConstraintViolationErrorMsg(Set> constraintViolations) { + public static String buildConstraintViolationErrorMsg(Set> violations) { StringJoiner joiner = new StringJoiner(", "); - for (ConstraintViolation violation : constraintViolations) { + for (ConstraintViolation violation : violations) { String propertyPath = violation.getPropertyPath().toString(); joiner.add(getActualProperty(propertyPath) + " " + violation.getMessage()); } diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelBeanReadListener.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelBeanReadListener.java index a448385d341a595f9edb5e650d88eb055e3aa6a0..46f7c15683b9abc3d29b051934be2b8bc6171725 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelBeanReadListener.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelBeanReadListener.java @@ -1,7 +1,7 @@ package com.schbrain.common.util.support.excel.listener; import com.alibaba.excel.context.AnalysisContext; -import com.alibaba.excel.read.metadata.holder.ReadSheetHolder; +import com.schbrain.common.util.StreamUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -28,10 +28,13 @@ public class ExcelBeanReadListener extends ExcelReadListenerBase { } protected void collectErrorMsg(AnalysisContext context, Set> violations) { - ReadSheetHolder currentSheet = context.readSheetHolder(); - String sheetName = currentSheet.getSheetName(); - Integer rowIndex = currentSheet.getRowIndex(); - getErrors().put(sheetName, rowIndex + 1, buildConstraintViolationErrorMsg(violations)); + String sheetName = context.readSheetHolder().getSheetName(); + Integer rowIndex = context.readRowHolder().getRowIndex(); + getErrors().put(sheetName, rowIndex + 1, buildErrorMsg(violations)); + } + + protected String buildErrorMsg(Set> violations) { + return buildConstraintViolationErrorMsg(StreamUtils.toSet(violations, self -> self)); } } diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelReadListenerBase.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelReadListenerBase.java index 6ec7798a58674b1f7c6e829f86fcf987b70e55f1..87dcf41a44b38b8b5feba563a03ccb56d17e760b 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelReadListenerBase.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/excel/listener/ExcelReadListenerBase.java @@ -26,18 +26,16 @@ import java.util.Map; public class ExcelReadListenerBase extends AnalysisEventListener { protected final Validator validator = SpringUtil.getBean(Validator.class); + protected final Map headers = new HashMap<>(); protected List dataList = new LinkedList<>(); - - protected Map headers = new HashMap<>(); - protected Table errors = HashBasedTable.create(); protected boolean terminateOnValidateFail = false; @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { - this.headers = headMap; + this.headers.putAll(headMap); } @Override @@ -47,13 +45,13 @@ public class ExcelReadListenerBase extends AnalysisEventListener { @Override public void invoke(T data, AnalysisContext context) { - boolean validated = validate(data, context); - if (!validated) { + if (validate(data, context)) { + this.dataList.add(data); + } else { if (isTerminateOnValidateFail()) { throw new ExcelException(getErrorMsg()); } } - this.dataList.add(data); } @Override @@ -86,4 +84,4 @@ public class ExcelReadListenerBase extends AnalysisEventListener { return true; } -} \ No newline at end of file +}