From 89926dd4b7ab9cf81d97bb0e556d1d5e3292a4cd Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Mon, 28 Nov 2022 10:09:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/jlw/util/excel/ExcelUtil.java | 1 + .../{ => listener}/ExcelCellDataListener.java | 40 +++++++++++++++- .../MyValidateExcelCellDataListener.java | 48 +++++++++++++++++-- ...ourseMergeResourcesQuestionController.java | 10 ++-- 4 files changed, 91 insertions(+), 8 deletions(-) rename web/src/main/java/cn/jlw/util/excel/{ => listener}/ExcelCellDataListener.java (76%) rename web/src/main/java/cn/jlw/util/excel/{ => listener}/MyValidateExcelCellDataListener.java (78%) diff --git a/web/src/main/java/cn/jlw/util/excel/ExcelUtil.java b/web/src/main/java/cn/jlw/util/excel/ExcelUtil.java index a9d421c7..58f1708f 100644 --- a/web/src/main/java/cn/jlw/util/excel/ExcelUtil.java +++ b/web/src/main/java/cn/jlw/util/excel/ExcelUtil.java @@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; +import cn.jlw.util.excel.listener.ExcelCellDataListener; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/web/src/main/java/cn/jlw/util/excel/ExcelCellDataListener.java b/web/src/main/java/cn/jlw/util/excel/listener/ExcelCellDataListener.java similarity index 76% rename from web/src/main/java/cn/jlw/util/excel/ExcelCellDataListener.java rename to web/src/main/java/cn/jlw/util/excel/listener/ExcelCellDataListener.java index 28d4ac2b..0c1963e1 100644 --- a/web/src/main/java/cn/jlw/util/excel/ExcelCellDataListener.java +++ b/web/src/main/java/cn/jlw/util/excel/listener/ExcelCellDataListener.java @@ -1,10 +1,11 @@ -package cn.jlw.util.excel; +package cn.jlw.util.excel.listener; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import cn.jlw.util.excel.ExcelFailRecord; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.exception.ExcelDataConvertException; import com.alibaba.excel.read.listener.ReadListener; @@ -16,6 +17,14 @@ import java.lang.reflect.Field; import java.util.List; import java.util.Map; +/** + * 基础的数据提取监听器,不带数据验证 + * @author: mlx + * @description: + * @date: 2022/11/28 9:17 + * @version: 1.0 + * @param + */ @Data @Slf4j public class ExcelCellDataListener implements ReadListener { @@ -27,6 +36,14 @@ public class ExcelCellDataListener implements ReadListener { private Map failMap = MapUtil.newHashMap(16); + /** + * 功能描述:
+ * 〈每一行的处理〉 + * @param bean + * @param context + * @Author: 87966 + * @Date: 2022/11/28 9:51 + */ @Override public void invoke(T bean, AnalysisContext context) { @@ -56,13 +73,23 @@ public class ExcelCellDataListener implements ReadListener { } } if (!emptyRow) { - // 不处理空数据行 + // 不处理空数据行 data.add(bean); ReadRowHolder readRowHolder = context.readRowHolder(); log.info("rowIndex: {}, rowType: {}", readRowHolder.getRowIndex(), readRowHolder.getRowType()); } } + /** + * 功能描述:
+ * 时候异常的执行方法 + * @Param: + * @param exception + * @param context + * @Return: + * @Author: 87966 + * @Date: 2022/11/28 9:49 + */ @Override public void onException(Exception exception, AnalysisContext context) { log.error(exception.getMessage(), exception); @@ -77,6 +104,15 @@ public class ExcelCellDataListener implements ReadListener { } } + /** + * 功能描述:
+ * 在所有解析结束之后要做的事情 + * @Param: + * @param analysisContext + * @Return: + * @Author: 87966 + * @Date: 2022/11/28 9:50 + */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("Excel Deal Finish"); diff --git a/web/src/main/java/cn/jlw/util/excel/MyValidateExcelCellDataListener.java b/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java similarity index 78% rename from web/src/main/java/cn/jlw/util/excel/MyValidateExcelCellDataListener.java rename to web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java index 9f436c59..056598ce 100644 --- a/web/src/main/java/cn/jlw/util/excel/MyValidateExcelCellDataListener.java +++ b/web/src/main/java/cn/jlw/util/excel/listener/MyValidateExcelCellDataListener.java @@ -1,10 +1,11 @@ -package cn.jlw.util.excel; +package cn.jlw.util.excel.listener; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import cn.jlw.util.excel.ExcelFailRecord; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.exception.ExcelDataConvertException; import com.alibaba.excel.read.listener.ReadListener; @@ -17,9 +18,12 @@ import java.util.List; import java.util.Map; /** - * 我的通用Excel检查格式,监听器 + * 我的通用Excel检查格式的监听器 + * @author: mlx + * @description: + * @date: 2022/11/28 9:17 + * @version: 1.0 * @param - * @author mlx */ @Data @Slf4j @@ -32,6 +36,14 @@ public class MyValidateExcelCellDataListener implements ReadListener { private Map failMap = MapUtil.newHashMap(16); + /** + * 功能描述:
+ * 〈每一行的处理〉 + * @param bean + * @param context + * @Author: 87966 + * @Date: 2022/11/28 9:51 + */ @Override public void invoke(T bean, AnalysisContext context) { @@ -71,6 +83,16 @@ public class MyValidateExcelCellDataListener implements ReadListener { } } + /** + * 功能描述:
+ * 时候异常的执行方法 + * @Param: + * @param exception + * @param context + * @Return: + * @Author: 87966 + * @Date: 2022/11/28 9:49 + */ @Override public void onException(Exception exception, AnalysisContext context) { log.error(exception.getMessage(), exception); @@ -82,6 +104,17 @@ public class MyValidateExcelCellDataListener implements ReadListener { } } + /** + * 功能描述:
+ * 插入异常信息 + * @Param: + * @param rowIndex + * @param columnIndex + * @param message + * @Return: + * @Author: 87966 + * @Date: 2022/11/28 9:50 + */ private void putFailMap(Integer rowIndex, Integer columnIndex, String message) { ExcelFailRecord excelFailRecord = new ExcelFailRecord(); int newRowIndex = rowIndex + 1; @@ -93,6 +126,15 @@ public class MyValidateExcelCellDataListener implements ReadListener { failMap.put(rowIndex, excelFailRecord); } + /** + * 功能描述:
+ * 在所有解析结束之后要做的事情 + * @Param: + * @param analysisContext + * @Return: + * @Author: 87966 + * @Date: 2022/11/28 9:50 + */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("Excel Deal Finish"); diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java index 6fb9447e..fa50fe36 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseMergeResourcesQuestionController.java @@ -11,7 +11,7 @@ import cn.jlw.Interceptor.RFile; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.util.ToolUtils; import cn.jlw.util.excel.ExcelUtil; -import cn.jlw.util.excel.MyValidateExcelCellDataListener; +import cn.jlw.util.excel.listener.MyValidateExcelCellDataListener; import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.annotation.Function; import com.ibeetl.admin.core.entity.CoreUser; @@ -500,8 +500,12 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr } /** - * 导入批量模板数据 - * @return + * 功能描述:
+ * 〈导入批量模板数据〉 + * @param file + * @return {@link JsonResult} + * @Author: 87966 + * @Date: 2022/11/28 10:04 */ @SneakyThrows @PostMapping(API + "/importBatchTemplate.do")