Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
njgzx
dataease
Commits
a4a66520
提交
a4a66520
authored
5月 29, 2022
作者:
taojinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 替换excel时,提示影响计算字段
上级
620661f1
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
76 行增加
和
17 行删除
+76
-17
ExcelSheetData.java
...src/main/java/io/dataease/dto/dataset/ExcelSheetData.java
+4
-0
DataSetTableService.java
...java/io/dataease/service/dataset/DataSetTableService.java
+53
-12
en.js
frontend/src/lang/en.js
+2
-1
tw.js
frontend/src/lang/tw.js
+2
-1
zh.js
frontend/src/lang/zh.js
+2
-1
AddExcel.vue
frontend/src/views/dataset/add/AddExcel.vue
+13
-2
没有找到文件。
backend/src/main/java/io/dataease/dto/dataset/ExcelSheetData.java
浏览文件 @
a4a66520
...
@@ -3,6 +3,7 @@ package io.dataease.dto.dataset;
...
@@ -3,6 +3,7 @@ package io.dataease.dto.dataset;
import
io.dataease.plugins.common.dto.datasource.TableField
;
import
io.dataease.plugins.common.dto.datasource.TableField
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
springfox.documentation.annotations.ApiIgnore
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -29,4 +30,7 @@ public class ExcelSheetData {
...
@@ -29,4 +30,7 @@ public class ExcelSheetData {
private
String
path
;
private
String
path
;
@ApiModelProperty
(
"字段MD5"
)
@ApiModelProperty
(
"字段MD5"
)
private
String
fieldsMd5
;
private
String
fieldsMd5
;
@ApiModelProperty
(
"字段变更"
)
private
Boolean
changeFiled
=
false
;
private
Boolean
effectExtField
=
false
;
}
}
backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
浏览文件 @
a4a66520
...
@@ -66,6 +66,8 @@ import java.text.MessageFormat;
...
@@ -66,6 +66,8 @@ import java.text.MessageFormat;
import
java.text.NumberFormat
;
import
java.text.NumberFormat
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
io
.
dataease
.
commons
.
constants
.
ColumnPermissionConstants
.
Desensitization_desc
;
import
static
io
.
dataease
.
commons
.
constants
.
ColumnPermissionConstants
.
Desensitization_desc
;
...
@@ -1890,9 +1892,9 @@ public class DataSetTableService {
...
@@ -1890,9 +1892,9 @@ public class DataSetTableService {
List
<
ExcelSheetData
>
excelSheetDataList
=
parseExcel2
(
filename
,
file
.
getInputStream
(),
true
);
List
<
ExcelSheetData
>
excelSheetDataList
=
parseExcel2
(
filename
,
file
.
getInputStream
(),
true
);
List
<
ExcelSheetData
>
retrunSheetDataList
=
new
ArrayList
<>();
List
<
ExcelSheetData
>
retrunSheetDataList
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotEmpty
(
tableId
)
&&
editType
==
1
)
{
if
(
StringUtils
.
isNotEmpty
(
tableId
))
{
List
<
DatasetTableField
>
datasetTableFields
=
dataSetTableFieldsService
.
getFieldsByTableId
(
tableId
)
List
<
DatasetTableField
>
fields
=
dataSetTableFieldsService
.
getFieldsByTableId
(
tableId
);
.
stream
().
filter
(
datasetTableField
->
datasetTableField
.
getExtField
()
==
0
).
collect
(
Collectors
.
toList
());
List
<
DatasetTableField
>
datasetTableFields
=
fields
.
stream
().
filter
(
datasetTableField
->
datasetTableField
.
getExtField
()
==
0
).
collect
(
Collectors
.
toList
());
datasetTableFields
.
sort
((
o1
,
o2
)
->
{
datasetTableFields
.
sort
((
o1
,
o2
)
->
{
if
(
o1
.
getColumnIndex
()
==
null
)
{
if
(
o1
.
getColumnIndex
()
==
null
)
{
return
-
1
;
return
-
1
;
...
@@ -1904,18 +1906,57 @@ public class DataSetTableService {
...
@@ -1904,18 +1906,57 @@ public class DataSetTableService {
});
});
List
<
String
>
oldFields
=
datasetTableFields
.
stream
().
map
(
DatasetTableField:
:
getOriginName
).
collect
(
Collectors
.
toList
());
List
<
String
>
oldFields
=
datasetTableFields
.
stream
().
map
(
DatasetTableField:
:
getOriginName
).
collect
(
Collectors
.
toList
());
for
(
ExcelSheetData
excelSheetData
:
excelSheetDataList
)
{
List
<
TableField
>
fields
=
excelSheetData
.
getFields
();
if
(
editType
==
1
){
List
<
String
>
newFields
=
fields
.
stream
().
map
(
TableField:
:
getRemarks
).
collect
(
Collectors
.
toList
());
for
(
ExcelSheetData
excelSheetData
:
excelSheetDataList
)
{
if
(
oldFields
.
equals
(
newFields
))
{
List
<
TableField
>
tableFields
=
excelSheetData
.
getFields
();
retrunSheetDataList
.
add
(
excelSheetData
);
List
<
String
>
newFields
=
tableFields
.
stream
().
map
(
TableField:
:
getRemarks
).
collect
(
Collectors
.
toList
());
if
(
oldFields
.
equals
(
newFields
))
{
retrunSheetDataList
.
add
(
excelSheetData
);
}
}
}
}
if
(
retrunSheetDataList
.
size
()
==
0
)
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_excel_column_change"
));
}
}
else
{
List
<
DatasetTableField
>
extFields
=
fields
.
stream
().
filter
(
datasetTableField
->
datasetTableField
.
getExtField
()
>
0
).
collect
(
Collectors
.
toList
());
List
<
String
>
extFieldsRefIds
=
new
ArrayList
<>();
for
(
DatasetTableField
extField
:
extFields
)
{
String
originField
=
extField
.
getOriginName
().
replaceAll
(
"[\\t\\n\\r]]"
,
""
);
String
regex
=
"\\[(.*?)]"
;
Pattern
pattern
=
Pattern
.
compile
(
regex
);
Matcher
matcher
=
pattern
.
matcher
(
originField
);
while
(
matcher
.
find
())
{
String
id
=
matcher
.
group
(
1
);
if
(!
extFieldsRefIds
.
contains
(
id
)){
extFieldsRefIds
.
add
(
id
);
}
}
}
List
<
String
>
extFieldsRefNames
=
datasetTableFields
.
stream
().
filter
(
datasetTableField
->
extFieldsRefIds
.
contains
(
datasetTableField
.
getId
())).
map
(
DatasetTableField:
:
getOriginName
).
collect
(
Collectors
.
toList
());
for
(
ExcelSheetData
excelSheetData
:
excelSheetDataList
)
{
List
<
TableField
>
tableFields
=
excelSheetData
.
getFields
();
List
<
String
>
newFields
=
tableFields
.
stream
().
map
(
TableField:
:
getRemarks
).
collect
(
Collectors
.
toList
());
if
(
oldFields
.
equals
(
newFields
))
{
excelSheetData
.
setChangeFiled
(
false
);
}
else
{
excelSheetData
.
setChangeFiled
(
true
);
}
boolean
effectExtField
=
false
;
for
(
String
extFieldsRefName
:
extFieldsRefNames
)
{
if
(!
newFields
.
contains
(
extFieldsRefName
)){
effectExtField
=
true
;
}
}
excelSheetData
.
setEffectExtField
(
effectExtField
);
if
(
retrunSheetDataList
.
size
()
==
0
)
{
retrunSheetDataList
.
add
(
excelSheetData
);
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_excel_column_change"
));
}
if
(
retrunSheetDataList
.
size
()
==
0
)
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_excel_column_change"
));
}
}
}
}
else
{
}
else
{
retrunSheetDataList
=
excelSheetDataList
;
retrunSheetDataList
=
excelSheetDataList
;
}
}
retrunSheetDataList
=
retrunSheetDataList
.
stream
()
retrunSheetDataList
=
retrunSheetDataList
.
stream
()
...
...
frontend/src/lang/en.js
浏览文件 @
a4a66520
...
@@ -1249,7 +1249,8 @@ export default {
...
@@ -1249,7 +1249,8 @@ export default {
exec
:
'Execute Once'
,
exec
:
'Execute Once'
,
confirm_exec
:
'Manual trigger execution?'
,
confirm_exec
:
'Manual trigger execution?'
,
change_success
:
'State switch successful'
,
change_success
:
'State switch successful'
,
excel_replace_msg
:
'Calculation fields, custom datasets, associated datasets, dashboards, etc. may be affected. Confirm the replacement?'
excel_replace_msg
:
'Calculation fields, custom datasets, associated datasets, dashboards, etc. may be affected. Confirm the replacement?'
,
effect_ext_field
:
'Affect calculated fields'
},
},
field_group_type
:
'Type'
,
field_group_type
:
'Type'
,
location
:
'Location'
,
location
:
'Location'
,
...
...
frontend/src/lang/tw.js
浏览文件 @
a4a66520
...
@@ -1249,7 +1249,8 @@ export default {
...
@@ -1249,7 +1249,8 @@ export default {
exec
:
'執行一次'
,
exec
:
'執行一次'
,
confirm_exec
:
'手動觸發執行?'
,
confirm_exec
:
'手動觸發執行?'
,
change_success
:
'狀態切換成功'
,
change_success
:
'狀態切換成功'
,
excel_replace_msg
:
'可能會影響計算欄位、自定義數据集、關聯數据集、儀錶板等,確認替換?'
excel_replace_msg
:
'可能會影響計算欄位、自定義數据集、關聯數据集、儀錶板等,確認替換?'
,
effect_ext_field
:
'會影響計算欄位'
},
},
field_group_type
:
'分類'
,
field_group_type
:
'分類'
,
location
:
'地理位置'
,
location
:
'地理位置'
,
...
...
frontend/src/lang/zh.js
浏览文件 @
a4a66520
...
@@ -1250,7 +1250,8 @@ export default {
...
@@ -1250,7 +1250,8 @@ export default {
exec
:
'执行一次'
,
exec
:
'执行一次'
,
confirm_exec
:
'手动触发执行?'
,
confirm_exec
:
'手动触发执行?'
,
change_success
:
'状态切换成功'
,
change_success
:
'状态切换成功'
,
excel_replace_msg
:
'可能会影响计算字段、自定义数据集、关联数据集、仪表板等,确认替换?'
excel_replace_msg
:
'可能会影响自定义数据集、关联数据集、仪表板等,确认替换?'
,
effect_ext_field
:
'会影响计算字段'
},
},
field_group_type
:
'分类'
,
field_group_type
:
'分类'
,
location
:
'地理位置'
,
location
:
'地理位置'
,
...
...
frontend/src/views/dataset/add/AddExcel.vue
浏览文件 @
a4a66520
...
@@ -310,6 +310,8 @@ export default {
...
@@ -310,6 +310,8 @@ export default {
var
validate
=
true
var
validate
=
true
var
selectedSheet
=
[]
var
selectedSheet
=
[]
var
sheetFileMd5
=
[]
var
sheetFileMd5
=
[]
var
effectExtField
=
false
var
changeFiled
=
false
var
selectNode
=
this
.
$refs
.
tree
.
getCheckedNodes
()
var
selectNode
=
this
.
$refs
.
tree
.
getCheckedNodes
()
for
(
var
i
=
0
;
i
<
selectNode
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
selectNode
.
length
;
i
++
)
{
if
(
selectNode
[
i
].
sheet
)
{
if
(
selectNode
[
i
].
sheet
)
{
...
@@ -331,6 +333,12 @@ export default {
...
@@ -331,6 +333,12 @@ export default {
})
})
return
return
}
}
if
(
selectNode
[
i
].
effectExtField
){
effectExtField
=
true
}
if
(
selectNode
[
i
].
changeFiled
){
changeFiled
=
true
}
selectedSheet
.
push
(
selectNode
[
i
])
selectedSheet
.
push
(
selectNode
[
i
])
sheetFileMd5
.
push
(
selectNode
[
i
].
fieldsMd5
)
sheetFileMd5
.
push
(
selectNode
[
i
].
fieldsMd5
)
}
}
...
@@ -366,8 +374,11 @@ export default {
...
@@ -366,8 +374,11 @@ export default {
editType
:
this
.
param
.
editType
?
this
.
param
.
editType
:
0
editType
:
this
.
param
.
editType
?
this
.
param
.
editType
:
0
}
}
}
}
if
(
this
.
param
.
editType
===
0
&&
this
.
param
.
tableId
)
{
$confirm
(
i18n
.
t
(
'dataset.task.excel_replace_msg'
),
()
=>
{
if
(
this
.
param
.
editType
===
0
&&
this
.
param
.
tableId
&&
(
effectExtField
||
changeFiled
))
{
var
msg
=
effectExtField
?
i18n
.
t
(
'dataset.task.effect_ext_field'
)
+
', '
+
i18n
.
t
(
'dataset.task.excel_replace_msg'
)
:
i18n
.
t
(
'dataset.task.excel_replace_msg'
)
$confirm
(
msg
,
()
=>
{
this
.
saveExcelData
(
sheetFileMd5
,
table
)
this
.
saveExcelData
(
sheetFileMd5
,
table
)
})
})
}
else
{
}
else
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论