forked from github/dataease
Merge pull request #9460 from ulleo/dev
feat(X-Pack): 数据填报批量上传数据增加时间范围的校验
This commit is contained in:
commit
2cb7b0dbc6
@ -657,13 +657,18 @@ public class DataFillDataService {
|
|||||||
}.getType());
|
}.getType());
|
||||||
|
|
||||||
List<ExtTableField> fields = new ArrayList<>();
|
List<ExtTableField> fields = new ArrayList<>();
|
||||||
|
Map<String, String> dateRangeNameMap = new HashMap<>();
|
||||||
for (ExtTableField field : formFields) {
|
for (ExtTableField field : formFields) {
|
||||||
if (StringUtils.equalsIgnoreCase(field.getType(), "dateRange")) {
|
if (StringUtils.equalsIgnoreCase(field.getType(), "dateRange")) {
|
||||||
|
dateRangeNameMap.put(field.getId(), field.getSettings().getName());
|
||||||
|
|
||||||
ExtTableField start = gson.fromJson(gson.toJson(field), ExtTableField.class);
|
ExtTableField start = gson.fromJson(gson.toJson(field), ExtTableField.class);
|
||||||
start.getSettings().getMapping().setColumnName(start.getSettings().getMapping().getColumnName1());
|
start.getSettings().getMapping().setColumnName(start.getSettings().getMapping().getColumnName1());
|
||||||
|
start.getSettings().setName(start.getSettings().getName() + "(开始)");
|
||||||
fields.add(start);
|
fields.add(start);
|
||||||
|
|
||||||
ExtTableField end = gson.fromJson(gson.toJson(field), ExtTableField.class);
|
ExtTableField end = gson.fromJson(gson.toJson(field), ExtTableField.class);
|
||||||
|
end.getSettings().setName(end.getSettings().getName() + "(结束)");
|
||||||
end.getSettings().getMapping().setColumnName(end.getSettings().getMapping().getColumnName2());
|
end.getSettings().getMapping().setColumnName(end.getSettings().getMapping().getColumnName2());
|
||||||
fields.add(end);
|
fields.add(end);
|
||||||
} else {
|
} else {
|
||||||
@ -686,6 +691,15 @@ public class DataFillDataService {
|
|||||||
List<RowDataDatum> dataList = new ArrayList<>();
|
List<RowDataDatum> dataList = new ArrayList<>();
|
||||||
for (List<String> excelDatum : excelData) {
|
for (List<String> excelDatum : excelData) {
|
||||||
Map<String, Object> rowData = new HashMap<>();
|
Map<String, Object> rowData = new HashMap<>();
|
||||||
|
Map<String, List<Long>> dateRangeCheckMap = new HashMap<>();
|
||||||
|
for (String key : dateRangeNameMap.keySet()) {
|
||||||
|
//初始化
|
||||||
|
List<Long> list = new ArrayList<>();
|
||||||
|
list.add(null);
|
||||||
|
list.add(null);
|
||||||
|
dateRangeCheckMap.put(key, list);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < fields.size(); i++) {
|
for (int i = 0; i < fields.size(); i++) {
|
||||||
ExtTableField field = fields.get(i);
|
ExtTableField field = fields.get(i);
|
||||||
|
|
||||||
@ -718,6 +732,14 @@ public class DataFillDataService {
|
|||||||
if (time != null && time < 0) {
|
if (time != null && time < 0) {
|
||||||
throw new Exception("时间不能小于1970/01/01");
|
throw new Exception("时间不能小于1970/01/01");
|
||||||
}
|
}
|
||||||
|
//检测dateRange下,开始要小于结束,且必须两个都有或都没有
|
||||||
|
if (StringUtils.equalsIgnoreCase(field.getType(), "dateRange")) {
|
||||||
|
if (StringUtils.equals(field.getSettings().getMapping().getColumnName(), field.getSettings().getMapping().getColumnName1())) {
|
||||||
|
dateRangeCheckMap.get(field.getId()).set(0, time);
|
||||||
|
} else if (StringUtils.equals(field.getSettings().getMapping().getColumnName(), field.getSettings().getMapping().getColumnName2())) {
|
||||||
|
dateRangeCheckMap.get(field.getId()).set(1, time);
|
||||||
|
}
|
||||||
|
}
|
||||||
rowData.put(field.getSettings().getMapping().getColumnName(), time);
|
rowData.put(field.getSettings().getMapping().getColumnName(), time);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -792,6 +814,19 @@ public class DataFillDataService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//判断时间范围的开始结束是否符合要求
|
||||||
|
dateRangeCheckMap.forEach((key, list) -> {
|
||||||
|
if (list.get(0) == null && list.get(1) != null) {
|
||||||
|
DataEaseException.throwException("[" + dateRangeNameMap.get(key) + "(开始/结束)] 不能只有一个为空");
|
||||||
|
} else if (list.get(0) != null && list.get(1) == null) {
|
||||||
|
DataEaseException.throwException("[" + dateRangeNameMap.get(key) + "(结束/结束)] 不能只有一个为空");
|
||||||
|
} else if (list.get(0) != null && list.get(1) != null) {
|
||||||
|
if (list.get(0) > list.get(1)) {
|
||||||
|
DataEaseException.throwException("[" + dateRangeNameMap.get(key) + "(结束)] 不能早于 [" + dateRangeNameMap.get(key) + "(开始)]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (rowData.isEmpty()) {
|
if (rowData.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -383,8 +383,8 @@ public class DataFillService {
|
|||||||
String name = formField.getSettings().getName();
|
String name = formField.getSettings().getName();
|
||||||
|
|
||||||
if (StringUtils.equalsIgnoreCase(formField.getType(), "dateRange")) {
|
if (StringUtils.equalsIgnoreCase(formField.getType(), "dateRange")) {
|
||||||
String name1 = formField.getSettings().getName() + "(开始时间) ";
|
String name1 = formField.getSettings().getName() + "(开始) ";
|
||||||
String name2 = formField.getSettings().getName() + "(结束时间) ";
|
String name2 = formField.getSettings().getName() + "(结束) ";
|
||||||
|
|
||||||
List<String> head1 = List.of(name1);
|
List<String> head1 = List.of(name1);
|
||||||
List<String> head2 = List.of(name2);
|
List<String> head2 = List.of(name2);
|
||||||
|
Loading…
Reference in New Issue
Block a user