From 52bd34b5a5435ba5e0ce2ad814d96fa033a99b0f Mon Sep 17 00:00:00 2001 From: ulleo Date: Fri, 26 Apr 2024 18:19:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(X-Pack):=20=E6=95=B0=E6=8D=AE=E5=A1=AB?= =?UTF-8?q?=E6=8A=A5=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8B=E6=8B=89=E6=A1=86=EF=BC=8C=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E6=A1=86=E6=95=B0=E6=8D=AE=E9=80=89=E9=A1=B9=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/datafill/DataFillDataService.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java index f986334ec9..6323fb8abb 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java @@ -721,7 +721,19 @@ public class DataFillDataService { rowData.put(field.getSettings().getMapping().getColumnName(), time); break; default: - if (StringUtils.equalsIgnoreCase(field.getType(), "checkbox") || + if (StringUtils.equalsIgnoreCase(field.getType(), "select") && !field.getSettings().isMultiple()) { + boolean has = false; + for (ExtTableField.Option option : field.getSettings().getOptions()) { + if (StringUtils.equals((String) option.getValue(), excelRowData)) { + has = true; + break; + } + } + if (!has) { + DataEaseException.throwException("[" + field.getSettings().getName() + "] 值: " + excelRowData + " 不在范围内"); + } + rowData.put(field.getSettings().getMapping().getColumnName(), excelRowData); + } else if (StringUtils.equalsIgnoreCase(field.getType(), "checkbox") || StringUtils.equalsIgnoreCase(field.getType(), "select") && field.getSettings().isMultiple()) { List list = new ArrayList<>(); String[] strArr = excelRowData.split(";"); @@ -735,7 +747,27 @@ public class DataFillDataService { DataEaseException.throwException("[" + field.getSettings().getName() + "] 不能为空"); } } - rowData.put(field.getSettings().getMapping().getColumnName(), gson.toJson(list)); + + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(list)) { + for (String str : list) { + boolean has = false; + for (ExtTableField.Option option : field.getSettings().getOptions()) { + if (StringUtils.equals((String) option.getValue(), str)) { + has = true; + break; + } + } + if (has) { + result.add(str); + } + } + if (CollectionUtils.isEmpty(result)) { + DataEaseException.throwException("[" + field.getSettings().getName() + "] 输入值不在范围内"); + } + } + + rowData.put(field.getSettings().getMapping().getColumnName(), gson.toJson(result)); } else { //校验手机号,校验邮箱格式 if (StringUtils.equalsAnyIgnoreCase(field.getSettings().getInputType(), "tel")) {