From 888c14615d32ad6be9752ff890b4636f3f60922e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E8=BE=9E=E6=9C=AA=E5=AF=92?= <545073804@qq.com> Date: Tue, 11 Nov 2025 17:02:53 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20!781Excel=20?= =?UTF-8?q?=E6=A8=A1=E7=89=88=E5=8A=A8=E6=80=81=E6=95=B0=E6=8D=AE=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=20=E6=B3=9B=E5=9E=8B=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/annotation/ExcelDynamicOptions.java | 7 +++++-- .../common/excel/core/ExcelDownHandler.java | 14 +++++--------- .../{service => core}/ExcelOptionsProvider.java | 3 ++- 3 files changed, 12 insertions(+), 12 deletions(-) rename ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/{service => core}/ExcelOptionsProvider.java (85%) diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java index b0160b5b9..c26bd68ff 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/annotation/ExcelDynamicOptions.java @@ -1,5 +1,7 @@ package org.dromara.common.excel.annotation; +import org.dromara.common.excel.core.ExcelOptionsProvider; + import java.lang.annotation.*; /** @@ -14,7 +16,8 @@ public @interface ExcelDynamicOptions { /** * 提供者类全限定名 - * 实现org.dromara.common.excel.service.ExcelOptionsProvider实现类接口 + *

+ * {@link org.dromara.common.excel.core.ExcelOptionsProvider} 接口实现类 class */ - Class providerClass(); + Class providerClass(); } diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java index b94c51410..05c79c410 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java @@ -25,7 +25,6 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.annotation.ExcelDynamicOptions; import org.dromara.common.excel.annotation.ExcelEnumFormat; -import org.dromara.common.excel.service.ExcelOptionsProvider; import java.lang.reflect.Field; import java.util.*; @@ -122,15 +121,12 @@ public class ExcelDownHandler implements SheetWriteHandler { } else if (field.isAnnotationPresent(ExcelDynamicOptions.class)) { // 处理动态下拉选项 ExcelDynamicOptions dynamicOptions = field.getDeclaredAnnotation(ExcelDynamicOptions.class); - Class providerClass = dynamicOptions.providerClass(); - if (providerClass == null) { - throw new ServiceException("使用ExcelDynamicOptions注解,必须给providerClass赋予ExcelOptionsProvider的实现类" + - ",字段:{}", field.getName()); - } // 获取提供者实例 - ExcelOptionsProvider provider = (ExcelOptionsProvider) SpringUtils.getBean(providerClass); - Set optionSets = provider.getOptions(); - options = new ArrayList<>(CollUtil.isNotEmpty(optionSets) ? new ArrayList<>(optionSets) : Collections.emptyList()); + ExcelOptionsProvider provider = SpringUtils.getBean(dynamicOptions.providerClass()); + Set providerOptions = provider.getOptions(); + if (CollUtil.isNotEmpty(providerOptions)) { + options = new ArrayList<>(providerOptions); + } } if (ObjectUtil.isNotEmpty(options)) { // 仅当下拉可选项不为空时执行 diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/service/ExcelOptionsProvider.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelOptionsProvider.java similarity index 85% rename from ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/service/ExcelOptionsProvider.java rename to ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelOptionsProvider.java index f51d753ba..85f939ae7 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/service/ExcelOptionsProvider.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelOptionsProvider.java @@ -1,4 +1,4 @@ -package org.dromara.common.excel.service; +package org.dromara.common.excel.core; import java.util.Set; @@ -15,4 +15,5 @@ public interface ExcelOptionsProvider { * @return 下拉选项列表 */ Set getOptions(); + }