Explorar o código

feat:
字典导入时允许不存在的值导入

18339543638 %!s(int64=2) %!d(string=hai) anos
pai
achega
eab3ab8776

+ 6 - 0
tr-modules-api/tr-module-export-api/src/main/java/cn/tr/module/export/annotation/ExcelSelect.java

@@ -35,4 +35,10 @@ public @interface ExcelSelect {
      */
     String cascade() default "";
 
+    /**
+     * 是否允许字典值自定义
+     * 即是否用户输入的内容在字典中不存在
+     */
+    boolean allowCustom() default false;
+
 }

+ 5 - 0
tr-modules-api/tr-module-export-api/src/main/java/cn/tr/module/export/handler/AbstractCascadeSelectConverter.java

@@ -7,6 +7,7 @@ import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.module.export.annotation.ExcelPropertySupport;
+import cn.tr.module.export.annotation.ExcelSelect;
 import com.alibaba.excel.converters.Converter;
 import com.alibaba.excel.metadata.GlobalConfiguration;
 import com.alibaba.excel.metadata.data.ReadCellData;
@@ -38,6 +39,10 @@ public abstract class AbstractCascadeSelectConverter<T> implements Converter<T>
         //校验是否存在
         T javaValue = excelConverterJavaValue(content,getSelectPairs(getParams(excelPropertySupport)));
         if(ObjectUtil.isNull(javaValue)){
+            ExcelSelect select = excelPropertySupport.select();
+            if(select.allowCustom()){
+                return (T) content;
+            }
             throw new UnsupportedOperationException("所填值{"+content+"}不合法,请重新下载模板导入");
         }
         return javaValue;