Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
3707ca5a
提交
3707ca5a
authored
7月 08, 2021
作者:
taojinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(国际化): 任务管理
上级
45e97da5
隐藏空白字符变更
内嵌
并排
正在显示
28 个修改的文件
包含
658 行增加
和
138 行删除
+658
-138
DatasetTableTask.java
...c/main/java/io/dataease/base/domain/DatasetTableTask.java
+7
-0
DatasetTableTaskExample.java
...java/io/dataease/base/domain/DatasetTableTaskExample.java
+200
-0
DatasetTableTaskLog.java
...ain/java/io/dataease/base/domain/DatasetTableTaskLog.java
+2
-0
DatasetTableTaskLogExample.java
...a/io/dataease/base/domain/DatasetTableTaskLogExample.java
+70
-0
DatasetTableTaskLogMapper.xml
...ava/io/dataease/base/mapper/DatasetTableTaskLogMapper.xml
+25
-5
DatasetTableTaskMapper.xml
...n/java/io/dataease/base/mapper/DatasetTableTaskMapper.xml
+54
-5
ExtDataSetTableMapper.xml
...ava/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
+3
-0
ExtDataSetTaskMapper.java
...ava/io/dataease/base/mapper/ext/ExtDataSetTaskMapper.java
+5
-1
ExtDataSetTaskMapper.xml
...java/io/dataease/base/mapper/ext/ExtDataSetTaskMapper.xml
+33
-4
ScheduleType.java
...main/java/io/dataease/commons/constants/ScheduleType.java
+1
-1
DataSetTableTaskController.java
...taease/controller/dataset/DataSetTableTaskController.java
+35
-0
DataSetTableTaskLogController.java
...ase/controller/dataset/DataSetTableTaskLogController.java
+2
-1
ScheduleManager.java
.../main/java/io/dataease/job/sechedule/ScheduleManager.java
+6
-0
AppStartListener.java
.../src/main/java/io/dataease/listener/AppStartListener.java
+5
-1
ScheduleService.java
...nd/src/main/java/io/dataease/service/ScheduleService.java
+4
-3
DataSetTableService.java
...java/io/dataease/service/dataset/DataSetTableService.java
+6
-1
DataSetTableTaskLogService.java
.../dataease/service/dataset/DataSetTableTaskLogService.java
+36
-4
DataSetTableTaskService.java
.../io/dataease/service/dataset/DataSetTableTaskService.java
+79
-23
ExtractDataService.java
.../java/io/dataease/service/dataset/ExtractDataService.java
+24
-15
generatorConfig.xml
backend/src/main/resources/generatorConfig.xml
+1
-1
dataset.js
frontend/src/api/dataset/dataset.js
+17
-0
zh.js
frontend/src/lang/zh.js
+17
-1
webMsg.js
frontend/src/utils/webMsg.js
+0
-3
Group.vue
frontend/src/views/chart/group/Group.vue
+0
-44
TableSelector.vue
frontend/src/views/chart/view/TableSelector.vue
+18
-2
DatasetGroupSelectorTree.vue
...end/src/views/dataset/common/DatasetGroupSelectorTree.vue
+6
-20
UpdateInfo.vue
frontend/src/views/dataset/data/UpdateInfo.vue
+2
-2
index.vue
frontend/src/views/system/user/index.vue
+0
-1
没有找到文件。
backend/src/main/java/io/dataease/base/domain/DatasetTableTask.java
浏览文件 @
3707ca5a
...
...
@@ -25,5 +25,11 @@ public class DatasetTableTask implements Serializable {
private
Long
createTime
;
private
Long
lastExecTime
;
private
String
status
;
private
String
lastExecStatus
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/domain/DatasetTableTaskExample.java
浏览文件 @
3707ca5a
...
...
@@ -773,6 +773,206 @@ public class DatasetTableTaskExample {
addCriterion
(
"create_time not between"
,
value1
,
value2
,
"createTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeIsNull
()
{
addCriterion
(
"last_exec_time is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeIsNotNull
()
{
addCriterion
(
"last_exec_time is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeEqualTo
(
Long
value
)
{
addCriterion
(
"last_exec_time ="
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeNotEqualTo
(
Long
value
)
{
addCriterion
(
"last_exec_time <>"
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeGreaterThan
(
Long
value
)
{
addCriterion
(
"last_exec_time >"
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeGreaterThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"last_exec_time >="
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeLessThan
(
Long
value
)
{
addCriterion
(
"last_exec_time <"
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeLessThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"last_exec_time <="
,
value
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeIn
(
List
<
Long
>
values
)
{
addCriterion
(
"last_exec_time in"
,
values
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeNotIn
(
List
<
Long
>
values
)
{
addCriterion
(
"last_exec_time not in"
,
values
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"last_exec_time between"
,
value1
,
value2
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecTimeNotBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"last_exec_time not between"
,
value1
,
value2
,
"lastExecTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIsNull
()
{
addCriterion
(
"`status` is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIsNotNull
()
{
addCriterion
(
"`status` is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusEqualTo
(
String
value
)
{
addCriterion
(
"`status` ="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotEqualTo
(
String
value
)
{
addCriterion
(
"`status` <>"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusGreaterThan
(
String
value
)
{
addCriterion
(
"`status` >"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusGreaterThanOrEqualTo
(
String
value
)
{
addCriterion
(
"`status` >="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusLessThan
(
String
value
)
{
addCriterion
(
"`status` <"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusLessThanOrEqualTo
(
String
value
)
{
addCriterion
(
"`status` <="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusLike
(
String
value
)
{
addCriterion
(
"`status` like"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotLike
(
String
value
)
{
addCriterion
(
"`status` not like"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIn
(
List
<
String
>
values
)
{
addCriterion
(
"`status` in"
,
values
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotIn
(
List
<
String
>
values
)
{
addCriterion
(
"`status` not in"
,
values
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"`status` between"
,
value1
,
value2
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"`status` not between"
,
value1
,
value2
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusIsNull
()
{
addCriterion
(
"last_exec_status is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusIsNotNull
()
{
addCriterion
(
"last_exec_status is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusEqualTo
(
String
value
)
{
addCriterion
(
"last_exec_status ="
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusNotEqualTo
(
String
value
)
{
addCriterion
(
"last_exec_status <>"
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusGreaterThan
(
String
value
)
{
addCriterion
(
"last_exec_status >"
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusGreaterThanOrEqualTo
(
String
value
)
{
addCriterion
(
"last_exec_status >="
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusLessThan
(
String
value
)
{
addCriterion
(
"last_exec_status <"
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusLessThanOrEqualTo
(
String
value
)
{
addCriterion
(
"last_exec_status <="
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusLike
(
String
value
)
{
addCriterion
(
"last_exec_status like"
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusNotLike
(
String
value
)
{
addCriterion
(
"last_exec_status not like"
,
value
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusIn
(
List
<
String
>
values
)
{
addCriterion
(
"last_exec_status in"
,
values
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusNotIn
(
List
<
String
>
values
)
{
addCriterion
(
"last_exec_status not in"
,
values
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"last_exec_status between"
,
value1
,
value2
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLastExecStatusNotBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"last_exec_status not between"
,
value1
,
value2
,
"lastExecStatus"
);
return
(
Criteria
)
this
;
}
}
public
static
class
Criteria
extends
GeneratedCriteria
{
...
...
backend/src/main/java/io/dataease/base/domain/DatasetTableTaskLog.java
浏览文件 @
3707ca5a
...
...
@@ -19,6 +19,8 @@ public class DatasetTableTaskLog implements Serializable {
private
Long
createTime
;
private
String
triggerType
;
private
String
info
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
backend/src/main/java/io/dataease/base/domain/DatasetTableTaskLogExample.java
浏览文件 @
3707ca5a
...
...
@@ -563,6 +563,76 @@ public class DatasetTableTaskLogExample {
addCriterion
(
"create_time not between"
,
value1
,
value2
,
"createTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeIsNull
()
{
addCriterion
(
"trigger_type is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeIsNotNull
()
{
addCriterion
(
"trigger_type is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeEqualTo
(
String
value
)
{
addCriterion
(
"trigger_type ="
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeNotEqualTo
(
String
value
)
{
addCriterion
(
"trigger_type <>"
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeGreaterThan
(
String
value
)
{
addCriterion
(
"trigger_type >"
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeGreaterThanOrEqualTo
(
String
value
)
{
addCriterion
(
"trigger_type >="
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeLessThan
(
String
value
)
{
addCriterion
(
"trigger_type <"
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeLessThanOrEqualTo
(
String
value
)
{
addCriterion
(
"trigger_type <="
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeLike
(
String
value
)
{
addCriterion
(
"trigger_type like"
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeNotLike
(
String
value
)
{
addCriterion
(
"trigger_type not like"
,
value
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeIn
(
List
<
String
>
values
)
{
addCriterion
(
"trigger_type in"
,
values
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeNotIn
(
List
<
String
>
values
)
{
addCriterion
(
"trigger_type not in"
,
values
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"trigger_type between"
,
value1
,
value2
,
"triggerType"
);
return
(
Criteria
)
this
;
}
public
Criteria
andTriggerTypeNotBetween
(
String
value1
,
String
value2
)
{
addCriterion
(
"trigger_type not between"
,
value1
,
value2
,
"triggerType"
);
return
(
Criteria
)
this
;
}
}
public
static
class
Criteria
extends
GeneratedCriteria
{
...
...
backend/src/main/java/io/dataease/base/mapper/DatasetTableTaskLogMapper.xml
浏览文件 @
3707ca5a
...
...
@@ -9,6 +9,7 @@
<result
column=
"end_time"
jdbcType=
"BIGINT"
property=
"endTime"
/>
<result
column=
"status"
jdbcType=
"VARCHAR"
property=
"status"
/>
<result
column=
"create_time"
jdbcType=
"BIGINT"
property=
"createTime"
/>
<result
column=
"trigger_type"
jdbcType=
"VARCHAR"
property=
"triggerType"
/>
</resultMap>
<resultMap
extends=
"BaseResultMap"
id=
"ResultMapWithBLOBs"
type=
"io.dataease.base.domain.DatasetTableTaskLog"
>
<result
column=
"info"
jdbcType=
"LONGVARCHAR"
property=
"info"
/>
...
...
@@ -72,7 +73,7 @@
</where>
</sql>
<sql
id=
"Base_Column_List"
>
id, table_id, task_id, start_time, end_time, `status`, create_time
id, table_id, task_id, start_time, end_time, `status`, create_time
, trigger_type
</sql>
<sql
id=
"Blob_Column_List"
>
info
...
...
@@ -128,10 +129,12 @@
<insert
id=
"insert"
parameterType=
"io.dataease.base.domain.DatasetTableTaskLog"
>
insert into dataset_table_task_log (id, table_id, task_id,
start_time, end_time, `status`,
create_time, info)
create_time, trigger_type, info
)
values (#{id,jdbcType=VARCHAR}, #{tableId,jdbcType=VARCHAR}, #{taskId,jdbcType=VARCHAR},
#{startTime,jdbcType=BIGINT}, #{endTime,jdbcType=BIGINT}, #{status,jdbcType=VARCHAR},
#{createTime,jdbcType=BIGINT}, #{info,jdbcType=LONGVARCHAR})
#{createTime,jdbcType=BIGINT}, #{triggerType,jdbcType=VARCHAR}, #{info,jdbcType=LONGVARCHAR}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.DatasetTableTaskLog"
>
insert into dataset_table_task_log
...
...
@@ -157,6 +160,9 @@
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"triggerType != null"
>
trigger_type,
</if>
<if
test=
"info != null"
>
info,
</if>
...
...
@@ -183,6 +189,9 @@
<if
test=
"createTime != null"
>
#{createTime,jdbcType=BIGINT},
</if>
<if
test=
"triggerType != null"
>
#{triggerType,jdbcType=VARCHAR},
</if>
<if
test=
"info != null"
>
#{info,jdbcType=LONGVARCHAR},
</if>
...
...
@@ -218,6 +227,9 @@
<if
test=
"record.createTime != null"
>
create_time = #{record.createTime,jdbcType=BIGINT},
</if>
<if
test=
"record.triggerType != null"
>
trigger_type = #{record.triggerType,jdbcType=VARCHAR},
</if>
<if
test=
"record.info != null"
>
info = #{record.info,jdbcType=LONGVARCHAR},
</if>
...
...
@@ -235,6 +247,7 @@
end_time = #{record.endTime,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=BIGINT},
trigger_type = #{record.triggerType,jdbcType=VARCHAR},
info = #{record.info,jdbcType=LONGVARCHAR}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
...
...
@@ -248,7 +261,8 @@
start_time = #{record.startTime,jdbcType=BIGINT},
end_time = #{record.endTime,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=BIGINT}
create_time = #{record.createTime,jdbcType=BIGINT},
trigger_type = #{record.triggerType,jdbcType=VARCHAR}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
...
...
@@ -274,6 +288,9 @@
<if
test=
"createTime != null"
>
create_time = #{createTime,jdbcType=BIGINT},
</if>
<if
test=
"triggerType != null"
>
trigger_type = #{triggerType,jdbcType=VARCHAR},
</if>
<if
test=
"info != null"
>
info = #{info,jdbcType=LONGVARCHAR},
</if>
...
...
@@ -288,6 +305,7 @@
end_time = #{endTime,jdbcType=BIGINT},
`status` = #{status,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=BIGINT},
trigger_type = #{triggerType,jdbcType=VARCHAR},
info = #{info,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
...
...
@@ -298,7 +316,8 @@
start_time = #{startTime,jdbcType=BIGINT},
end_time = #{endTime,jdbcType=BIGINT},
`status` = #{status,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=BIGINT}
create_time = #{createTime,jdbcType=BIGINT},
trigger_type = #{triggerType,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/DatasetTableTaskMapper.xml
浏览文件 @
3707ca5a
...
...
@@ -12,6 +12,9 @@
<result
column=
"end"
jdbcType=
"VARCHAR"
property=
"end"
/>
<result
column=
"end_time"
jdbcType=
"BIGINT"
property=
"endTime"
/>
<result
column=
"create_time"
jdbcType=
"BIGINT"
property=
"createTime"
/>
<result
column=
"last_exec_time"
jdbcType=
"BIGINT"
property=
"lastExecTime"
/>
<result
column=
"status"
jdbcType=
"VARCHAR"
property=
"status"
/>
<result
column=
"last_exec_status"
jdbcType=
"VARCHAR"
property=
"lastExecStatus"
/>
</resultMap>
<sql
id=
"Example_Where_Clause"
>
<where>
...
...
@@ -72,7 +75,8 @@
</where>
</sql>
<sql
id=
"Base_Column_List"
>
id, table_id, `name`, `type`, start_time, rate, cron, `end`, end_time, create_time
id, table_id, `name`, `type`, start_time, rate, cron, `end`, end_time, create_time,
last_exec_time, `status`, last_exec_status
</sql>
<select
id=
"selectByExample"
parameterType=
"io.dataease.base.domain.DatasetTableTaskExample"
resultMap=
"BaseResultMap"
>
select
...
...
@@ -108,11 +112,13 @@
insert into dataset_table_task (id, table_id, `name`,
`type`, start_time, rate,
cron, `end`, end_time,
create_time)
create_time, last_exec_time, `status`,
last_exec_status)
values (#{id,jdbcType=VARCHAR}, #{tableId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR}, #{startTime,jdbcType=BIGINT}, #{rate,jdbcType=VARCHAR},
#{cron,jdbcType=VARCHAR}, #{end,jdbcType=VARCHAR}, #{endTime,jdbcType=BIGINT},
#{createTime,jdbcType=BIGINT})
#{createTime,jdbcType=BIGINT}, #{lastExecTime,jdbcType=BIGINT}, #{status,jdbcType=VARCHAR},
#{lastExecStatus,jdbcType=VARCHAR})
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.DatasetTableTask"
>
insert into dataset_table_task
...
...
@@ -147,6 +153,15 @@
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"lastExecTime != null"
>
last_exec_time,
</if>
<if
test=
"status != null"
>
`status`,
</if>
<if
test=
"lastExecStatus != null"
>
last_exec_status,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
...
...
@@ -179,6 +194,15 @@
<if
test=
"createTime != null"
>
#{createTime,jdbcType=BIGINT},
</if>
<if
test=
"lastExecTime != null"
>
#{lastExecTime,jdbcType=BIGINT},
</if>
<if
test=
"status != null"
>
#{status,jdbcType=VARCHAR},
</if>
<if
test=
"lastExecStatus != null"
>
#{lastExecStatus,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select
id=
"countByExample"
parameterType=
"io.dataease.base.domain.DatasetTableTaskExample"
resultType=
"java.lang.Long"
>
...
...
@@ -220,6 +244,15 @@
<if
test=
"record.createTime != null"
>
create_time = #{record.createTime,jdbcType=BIGINT},
</if>
<if
test=
"record.lastExecTime != null"
>
last_exec_time = #{record.lastExecTime,jdbcType=BIGINT},
</if>
<if
test=
"record.status != null"
>
`status` = #{record.status,jdbcType=VARCHAR},
</if>
<if
test=
"record.lastExecStatus != null"
>
last_exec_status = #{record.lastExecStatus,jdbcType=VARCHAR},
</if>
</set>
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
...
...
@@ -236,7 +269,10 @@
cron = #{record.cron,jdbcType=VARCHAR},
`end` = #{record.end,jdbcType=VARCHAR},
end_time = #{record.endTime,jdbcType=BIGINT},
create_time = #{record.createTime,jdbcType=BIGINT}
create_time = #{record.createTime,jdbcType=BIGINT},
last_exec_time = #{record.lastExecTime,jdbcType=BIGINT},
`status` = #{record.status,jdbcType=VARCHAR},
last_exec_status = #{record.lastExecStatus,jdbcType=VARCHAR}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
...
...
@@ -271,6 +307,15 @@
<if
test=
"createTime != null"
>
create_time = #{createTime,jdbcType=BIGINT},
</if>
<if
test=
"lastExecTime != null"
>
last_exec_time = #{lastExecTime,jdbcType=BIGINT},
</if>
<if
test=
"status != null"
>
`status` = #{status,jdbcType=VARCHAR},
</if>
<if
test=
"lastExecStatus != null"
>
last_exec_status = #{lastExecStatus,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
...
...
@@ -284,7 +329,10 @@
cron = #{cron,jdbcType=VARCHAR},
`end` = #{end,jdbcType=VARCHAR},
end_time = #{endTime,jdbcType=BIGINT},
create_time = #{createTime,jdbcType=BIGINT}
create_time = #{createTime,jdbcType=BIGINT},
last_exec_time = #{lastExecTime,jdbcType=BIGINT},
`status` = #{status,jdbcType=VARCHAR},
last_exec_status = #{lastExecStatus,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
浏览文件 @
3707ca5a
...
...
@@ -21,6 +21,9 @@
<if
test=
"mode != null"
>
and mode = #{mode,jdbcType=INTEGER}
</if>
<if
test=
"type != null"
>
and type = #{type,jdbcType=VARCHAR}
</if>
<if
test=
"typeFilter != null"
>
and type in
<foreach
collection=
"typeFilter"
item=
"item"
open=
"("
separator=
","
close=
")"
>
...
...
backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTaskMapper.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
base
.
mapper
.
ext
;
import
io.dataease.base.domain.DatasetTableTaskLog
;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
io.dataease.dto.dataset.DataSetTaskDTO
;
import
io.dataease.dto.dataset.DataSetTaskLogDTO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
@@ -12,5 +14,7 @@ import java.util.List;
*/
@Mapper
public
interface
ExtDataSetTaskMapper
{
List
<
DataSetTaskLogDTO
>
list
(
DatasetTableTaskLog
request
);
List
<
DataSetTaskLogDTO
>
list
(
GridExample
example
);
List
<
DataSetTaskDTO
>
taskList
(
GridExample
example
);
}
backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTaskMapper.xml
浏览文件 @
3707ca5a
...
...
@@ -7,13 +7,42 @@
<result
column=
"name"
jdbcType=
"VARCHAR"
property=
"name"
/>
</resultMap>
<resultMap
id=
"TaskResult"
type=
"io.dataease.dto.dataset.DataSetTaskDTO"
extends=
"io.dataease.base.mapper.DatasetTableTaskMapper.BaseResultMap"
>
<result
column=
"table_name"
jdbcType=
"VARCHAR"
property=
"datasetName"
/>
<result
column=
"NEXT_FIRE_TIME"
jdbcType=
"BIGINT"
property=
"nextExecTime"
/>
</resultMap>
<select
id=
"list"
resultMap=
"BaseResult"
parameterType=
"io.dataease.base.domain.DatasetTableTaskLog"
>
SELECT dataset_table_task_log.*,
dataset_table_task.name
SELECT dataset_table_task_log.*, dataset_table_task.name
FROM dataset_table_task_log
LEFT JOIN dataset_table_task ON dataset_table_task_log.task_id = dataset_table_task.id
WHERE dataset_table_task_log.table_id = #{tableId,jdbcType=VARCHAR}
ORDER BY dataset_table_task_log.create_time desc
<if
test=
"_parameter != null"
>
<include
refid=
"io.dataease.base.mapper.ext.query.GridSql.gridCondition"
/>
</if>
<if
test=
"orderByClause != null"
>
order by ${orderByClause}
</if>
<if
test=
"orderByClause == null"
>
ORDER BY dataset_table_task_log.create_time desc
</if>
</select>
<select
id=
"taskList"
resultMap=
"TaskResult"
parameterType=
"io.dataease.base.mapper.ext.query.GridExample"
>
SELECT dataset_table.name as table_name, dataset_table_task.* , qrtz_triggers.*
FROM dataset_table_task
left join dataset_table on dataset_table.id=dataset_table_task.table_id
left join qrtz_triggers on dataset_table_task.id=qrtz_triggers.TRIGGER_NAME
<if
test=
"_parameter != null"
>
<include
refid=
"io.dataease.base.mapper.ext.query.GridSql.gridCondition"
/>
</if>
<if
test=
"orderByClause != null"
>
order by ${orderByClause}
</if>
<if
test=
"orderByClause == null"
>
order by dataset_table_task.create_time desc
</if>
</select>
</mapper>
backend/src/main/java/io/dataease/commons/constants/ScheduleType.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
commons
.
constants
;
public
enum
ScheduleType
{
CRON
,
SIMPLE
,
SIMPLE_COMPLETE
CRON
,
SIMPLE
}
backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
controller
.
dataset
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
io.dataease.base.domain.DatasetTableTask
;
import
io.dataease.commons.utils.PageUtils
;
import
io.dataease.commons.utils.Pager
;
import
io.dataease.controller.request.dataset.DataSetTaskRequest
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.controller.sys.response.SysUserGridResponse
;
import
io.dataease.dto.dataset.DataSetTaskDTO
;
import
io.dataease.service.dataset.DataSetTableTaskLogService
;
import
io.dataease.service.dataset.DataSetTableTaskService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -17,6 +26,8 @@ import java.util.List;
public
class
DataSetTableTaskController
{
@Resource
private
DataSetTableTaskService
dataSetTableTaskService
;
@Resource
private
DataSetTableTaskLogService
dataSetTableTaskLogService
;
@PostMapping
(
"save"
)
public
DatasetTableTask
save
(
@RequestBody
DataSetTaskRequest
dataSetTaskRequest
)
throws
Exception
{
...
...
@@ -32,4 +43,28 @@ public class DataSetTableTaskController {
public
List
<
DatasetTableTask
>
list
(
@RequestBody
DatasetTableTask
datasetTableTask
)
{
return
dataSetTableTaskService
.
list
(
datasetTableTask
);
}
@ApiOperation
(
"查看数据集任务"
)
@PostMapping
(
"/pageList/{goPage}/{pageSize}"
)
public
Pager
<
List
<
DataSetTaskDTO
>>
taskList
(
@PathVariable
int
goPage
,
@PathVariable
int
pageSize
,
@RequestBody
BaseGridRequest
request
)
{
Page
<
Object
>
page
=
PageHelper
.
startPage
(
goPage
,
pageSize
,
true
);
return
PageUtils
.
setPageInfo
(
page
,
dataSetTableTaskService
.
taskList
(
request
));
}
@PostMapping
(
"/lastExecStatus"
)
public
DataSetTaskDTO
lastExecStatus
(
@RequestBody
DataSetTaskDTO
datasetTableTask
)
{
return
dataSetTableTaskLogService
.
lastExecStatus
(
datasetTableTask
);
}
@PostMapping
(
"/updateStatus"
)
public
void
updateStatus
(
@RequestBody
DatasetTableTask
datasetTableTask
)
{
dataSetTableTaskService
.
updateDatasetTableTaskStatus
(
datasetTableTask
);
}
@PostMapping
(
"/execTask"
)
public
void
execTask
(
@RequestBody
DatasetTableTask
datasetTableTask
)
throws
Exception
{
dataSetTableTaskService
.
execTask
(
datasetTableTask
);
}
}
backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskLogController.java
浏览文件 @
3707ca5a
...
...
@@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
import
io.dataease.base.domain.DatasetTableTaskLog
;
import
io.dataease.commons.utils.PageUtils
;
import
io.dataease.commons.utils.Pager
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.dto.dataset.DataSetTaskLogDTO
;
import
io.dataease.service.dataset.DataSetTableTaskLogService
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -33,7 +34,7 @@ public class DataSetTableTaskLogController {
}
@PostMapping
(
"list/{goPage}/{pageSize}"
)
public
Pager
<
List
<
DataSetTaskLogDTO
>>
list
(
@RequestBody
DatasetTableTaskLog
request
,
@PathVariable
int
goPage
,
@PathVariable
int
pageSize
)
{
public
Pager
<
List
<
DataSetTaskLogDTO
>>
list
(
@RequestBody
BaseGridRequest
request
,
@PathVariable
int
goPage
,
@PathVariable
int
pageSize
)
{
Page
<
Object
>
page
=
PageHelper
.
startPage
(
goPage
,
pageSize
,
true
);
return
PageUtils
.
setPageInfo
(
page
,
dataSetTableTaskLogService
.
list
(
request
));
}
...
...
backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java
浏览文件 @
3707ca5a
...
...
@@ -430,4 +430,10 @@ public class ScheduleManager {
}
return
trigger
.
getFireTimeAfter
(
start
);
}
public
void
fireNow
(
String
jobName
,
String
jobGroup
)
throws
SchedulerException
{
JobKey
jobKey
=
new
JobKey
(
jobName
,
jobGroup
);
scheduler
.
triggerJob
(
jobKey
);
}
}
backend/src/main/java/io/dataease/listener/AppStartListener.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
listener
;
import
io.dataease.base.domain.DatasetTableTask
;
import
io.dataease.commons.constants.NoticeConstants
;
import
io.dataease.commons.constants.ScheduleType
;
import
io.dataease.commons.constants.TaskStatus
;
import
io.dataease.service.ScheduleService
;
import
io.dataease.service.dataset.DataSetTableTaskService
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -41,7 +43,9 @@ public class AppStartListener implements ApplicationListener<ApplicationReadyEve
scheduleService
.
addSchedule
(
task
);
}
}
else
{
scheduleService
.
addSchedule
(
task
);
if
(
StringUtils
.
equalsIgnoreCase
(
task
.
getStatus
(),
TaskStatus
.
Underway
.
toString
())){
scheduleService
.
addSchedule
(
task
);
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
backend/src/main/java/io/dataease/service/ScheduleService.java
浏览文件 @
3707ca5a
...
...
@@ -35,9 +35,6 @@ public class ScheduleService {
endTime
=
null
;
}
else
{
endTime
=
new
Date
(
datasetTableTask
.
getEndTime
());
// if (endTime.before(new Date())) {
// return;
// }
if
(
endTime
.
before
(
new
Date
()))
{
deleteSchedule
(
datasetTableTask
);
return
;
...
...
@@ -58,4 +55,8 @@ public class ScheduleService {
public
void
deleteSchedule
(
DatasetTableTask
datasetTableTask
)
{
scheduleManager
.
removeJob
(
new
JobKey
(
datasetTableTask
.
getId
(),
datasetTableTask
.
getTableId
()),
new
TriggerKey
(
datasetTableTask
.
getId
(),
datasetTableTask
.
getTableId
()));
}
public
void
fireNow
(
DatasetTableTask
datasetTableTask
)
throws
Exception
{
scheduleManager
.
fireNow
(
datasetTableTask
.
getId
(),
datasetTableTask
.
getTableId
());
}
}
backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
浏览文件 @
3707ca5a
...
...
@@ -1118,12 +1118,17 @@ public class DataSetTableService {
DatasetTableTaskLogExample
datasetTableTaskLogExample
=
new
DatasetTableTaskLogExample
();
datasetTableTaskLogExample
.
createCriteria
().
andStatusEqualTo
(
JobStatus
.
Underway
.
name
()).
andTableIdIn
(
jobStoppeddDatasetTables
.
stream
().
map
(
DatasetTable:
:
getId
).
collect
(
Collectors
.
toList
()));
List
<
String
>
taskIds
=
datasetTableTaskLogMapper
.
selectByExample
(
datasetTableTaskLogExample
).
stream
().
map
(
DatasetTableTaskLog:
:
getTaskId
).
collect
(
Collectors
.
toList
());
datasetTableTaskLogMapper
.
updateByExampleSelective
(
datasetTableTaskLog
,
datasetTableTaskLogExample
);
DatasetTableTask
datasetTableTask
=
new
DatasetTableTask
();
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Error
.
name
());
dataSetTableTaskService
.
update
(
taskIds
,
datasetTableTask
);
for
(
DatasetTable
jobStoppeddDatasetTable
:
jobStoppeddDatasetTables
)
{
extractDataService
.
deleteFile
(
"all_scope"
,
jobStoppeddDatasetTable
.
getId
());
extractDataService
.
deleteFile
(
"incremental_add"
,
jobStoppeddDatasetTable
.
getId
());
extractDataService
.
deleteFile
(
"incremental_delete"
,
jobStoppeddDatasetTable
.
getId
());
}
}
...
...
backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskLogService.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
service
.
dataset
;
import
io.dataease.base.domain.DatasetTableTask
;
import
io.dataease.base.domain.DatasetTableTaskLog
;
import
io.dataease.base.domain.DatasetTableTaskLogExample
;
import
io.dataease.base.mapper.DatasetTableTaskLogMapper
;
import
io.dataease.base.mapper.DatasetTableTaskMapper
;
import
io.dataease.base.mapper.ext.ExtDataSetTaskMapper
;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.dto.dataset.DataSetTaskDTO
;
import
io.dataease.dto.dataset.DataSetTaskLogDTO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -38,8 +44,9 @@ public class DataSetTableTaskLogService {
datasetTableTaskLogMapper
.
deleteByPrimaryKey
(
id
);
}
public
List
<
DataSetTaskLogDTO
>
list
(
DatasetTableTaskLog
request
)
{
return
extDataSetTaskMapper
.
list
(
request
);
public
List
<
DataSetTaskLogDTO
>
list
(
BaseGridRequest
request
)
{
GridExample
gridExample
=
request
.
convertExample
();
return
extDataSetTaskMapper
.
list
(
gridExample
);
}
public
void
deleteByTaskId
(
String
taskId
){
...
...
@@ -57,6 +64,30 @@ public class DataSetTableTaskLogService {
}
public
List
<
DatasetTableTaskLog
>
select
(
DatasetTableTaskLog
datasetTableTaskLog
){
DatasetTableTaskLogExample
example
=
getDatasetTableTaskLogExample
(
datasetTableTaskLog
);
example
.
setOrderByClause
(
"create_time desc"
);
return
datasetTableTaskLogMapper
.
selectByExampleWithBLOBs
(
example
);
}
public
DataSetTaskDTO
lastExecStatus
(
DataSetTaskDTO
dataSetTaskDTO
){
DatasetTableTaskLogExample
example
=
new
DatasetTableTaskLogExample
();
DatasetTableTaskLogExample
.
Criteria
criteria
=
example
.
createCriteria
();
if
(
StringUtils
.
isNotEmpty
(
dataSetTaskDTO
.
getTableId
())){
criteria
.
andTableIdEqualTo
(
dataSetTaskDTO
.
getTableId
());
}
if
(
StringUtils
.
isNotEmpty
(
dataSetTaskDTO
.
getId
())){
criteria
.
andTaskIdEqualTo
(
dataSetTaskDTO
.
getId
());
}
example
.
setOrderByClause
(
"create_time desc limit 1"
);
List
<
DatasetTableTaskLog
>
datasetTableTaskLogs
=
datasetTableTaskLogMapper
.
selectByExampleWithBLOBs
(
example
);
if
(
CollectionUtils
.
isNotEmpty
(
datasetTableTaskLogs
)){
dataSetTaskDTO
.
setLastExecStatus
(
datasetTableTaskLogs
.
get
(
0
).
getStatus
());
dataSetTaskDTO
.
setLastExecTime
(
datasetTableTaskLogs
.
get
(
0
).
getCreateTime
());
}
return
dataSetTaskDTO
;
}
private
DatasetTableTaskLogExample
getDatasetTableTaskLogExample
(
DatasetTableTaskLog
datasetTableTaskLog
)
{
DatasetTableTaskLogExample
example
=
new
DatasetTableTaskLogExample
();
DatasetTableTaskLogExample
.
Criteria
criteria
=
example
.
createCriteria
();
if
(
StringUtils
.
isNotEmpty
(
datasetTableTaskLog
.
getStatus
())){
...
...
@@ -68,7 +99,8 @@ public class DataSetTableTaskLogService {
if
(
StringUtils
.
isNotEmpty
(
datasetTableTaskLog
.
getTaskId
())){
criteria
.
andTaskIdEqualTo
(
datasetTableTaskLog
.
getTaskId
());
}
example
.
setOrderByClause
(
"create_time desc"
);
return
datasetTableTaskLogMapper
.
selectByExampleWithBLOBs
(
example
);
return
example
;
}
}
backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java
浏览文件 @
3707ca5a
package
io
.
dataease
.
service
.
dataset
;
import
com.google.gson.Gson
;
import
io.dataease.base.domain.DatasetTable
;
import
io.dataease.base.domain.DatasetTableTask
;
import
io.dataease.base.domain.DatasetTableTaskExample
;
import
io.dataease.base.domain.DatasetTableTaskLog
;
import
io.dataease.base.mapper.DatasetTableTaskMapper
;
import
io.dataease.base.mapper.ext.ExtDataSetTaskMapper
;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
io.dataease.commons.constants.JobStatus
;
import
io.dataease.commons.constants.ScheduleType
;
import
io.dataease.commons.constants.TaskStatus
;
import
io.dataease.commons.constants.TriggerType
;
import
io.dataease.controller.request.dataset.DataSetTaskRequest
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.controller.sys.response.SysUserGridResponse
;
import
io.dataease.controller.sys.response.SysUserRole
;
import
io.dataease.dto.dataset.DataSetTaskDTO
;
import
io.dataease.exception.DataEaseException
;
import
io.dataease.i18n.Translator
;
import
io.dataease.service.ScheduleService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.quartz.CronExpression
;
...
...
@@ -21,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
/**
* @Author gin
...
...
@@ -40,12 +51,15 @@ public class DataSetTableTaskService {
private
DataSetTableService
dataSetTableService
;
@Resource
private
ExtractDataService
extractDataService
;
@Resource
private
ExtDataSetTaskMapper
extDataSetTaskMapper
;
public
DatasetTableTask
save
(
DataSetTaskRequest
dataSetTaskRequest
)
throws
Exception
{
checkName
(
dataSetTaskRequest
);
DatasetTableTask
datasetTableTask
=
dataSetTaskRequest
.
getDatasetTableTask
();
dataSetTableService
.
saveIncrementalConfig
(
dataSetTaskRequest
.
getDatasetTableIncrementalConfig
());
if
(!
datasetTableTask
.
getType
().
equalsIgnoreCase
(
"all_scope"
)){
dataSetTableService
.
saveIncrementalConfig
(
dataSetTaskRequest
.
getDatasetTableIncrementalConfig
());
}
// check
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTableTask
.
getRate
(),
"CRON"
)){
if
(
StringUtils
.
isNotEmpty
(
datasetTableTask
.
getCron
()))
{
...
...
@@ -67,25 +81,9 @@ public class DataSetTableTaskService {
if
(
StringUtils
.
isEmpty
(
datasetTableTask
.
getId
()))
{
datasetTableTask
.
setId
(
UUID
.
randomUUID
().
toString
());
datasetTableTask
.
setCreateTime
(
System
.
currentTimeMillis
());
// SIMPLE 类型,提前占位
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
if
(
datasetTableTask
.
getType
().
equalsIgnoreCase
(
"add_scope"
))
{
DatasetTable
datasetTable
=
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
());
if
(
datasetTable
.
getLastUpdateTime
()
==
0
||
datasetTable
.
getLastUpdateTime
()
==
null
)
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_not_exec_add_sync"
));
}
}
if
(
extractDataService
.
updateSyncStatusIsNone
(
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
())))
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_sync_job_exists"
));
}
else
{
//write log
DatasetTableTaskLog
datasetTableTaskLog
=
new
DatasetTableTaskLog
();
datasetTableTaskLog
.
setTableId
(
datasetTableTask
.
getTableId
());
datasetTableTaskLog
.
setTaskId
(
datasetTableTask
.
getId
());
datasetTableTaskLog
.
setStatus
(
JobStatus
.
Underway
.
name
());
datasetTableTaskLog
.
setStartTime
(
System
.
currentTimeMillis
());
dataSetTableTaskLogService
.
save
(
datasetTableTaskLog
);
}
datasetTableTask
.
setStatus
(
TaskStatus
.
Underway
.
name
());
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
// SIMPLE 类型,提前占位
execNow
(
datasetTableTask
);
}
datasetTableTaskMapper
.
insert
(
datasetTableTask
);
}
else
{
...
...
@@ -95,6 +93,26 @@ public class DataSetTableTaskService {
return
datasetTableTask
;
}
private
void
execNow
(
DatasetTableTask
datasetTableTask
)
{
if
(
datasetTableTask
.
getType
().
equalsIgnoreCase
(
"add_scope"
))
{
DatasetTable
datasetTable
=
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
());
if
(
datasetTable
.
getLastUpdateTime
()
==
null
||
datasetTable
.
getLastUpdateTime
()
==
0
)
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_not_exec_add_sync"
));
}
}
if
(
extractDataService
.
updateSyncStatusIsNone
(
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
())))
{
DataEaseException
.
throwException
(
Translator
.
get
(
"i18n_sync_job_exists"
));
}
else
{
//write log
DatasetTableTaskLog
datasetTableTaskLog
=
new
DatasetTableTaskLog
();
datasetTableTaskLog
.
setTableId
(
datasetTableTask
.
getTableId
());
datasetTableTaskLog
.
setTaskId
(
datasetTableTask
.
getId
());
datasetTableTaskLog
.
setStatus
(
JobStatus
.
Underway
.
name
());
datasetTableTaskLog
.
setStartTime
(
System
.
currentTimeMillis
());
datasetTableTaskLog
.
setTriggerType
(
TriggerType
.
Custom
.
name
());
dataSetTableTaskLogService
.
save
(
datasetTableTaskLog
);
}
}
public
void
delete
(
String
id
)
{
DatasetTableTask
datasetTableTask
=
datasetTableTaskMapper
.
selectByPrimaryKey
(
id
);
datasetTableTaskMapper
.
deleteByPrimaryKey
(
id
);
...
...
@@ -121,19 +139,34 @@ public class DataSetTableTaskService {
}
public
void
update
(
DatasetTableTask
datasetTableTask
)
{
datasetTableTaskMapper
.
updateByPrimaryKey
(
datasetTableTask
);
datasetTableTaskMapper
.
updateByPrimaryKeySelective
(
datasetTableTask
);
}
public
void
update
(
List
<
String
>
taskIds
,
DatasetTableTask
datasetTableTask
)
{
if
(
CollectionUtils
.
isEmpty
(
taskIds
)){
return
;
}
DatasetTableTaskExample
example
=
new
DatasetTableTaskExample
();
example
.
createCriteria
().
andIdIn
(
taskIds
);
datasetTableTaskMapper
.
updateByExampleSelective
(
datasetTableTask
,
example
);
}
public
List
<
DatasetTableTask
>
list
(
DatasetTableTask
datasetTableTask
)
{
DatasetTableTaskExample
datasetTableTaskExample
=
new
DatasetTableTaskExample
();
DatasetTableTaskExample
.
Criteria
criteria
=
datasetTableTaskExample
.
createCriteria
();
if
(
StringUtils
.
isNotEmpty
(
datasetTableTask
.
getTableId
()))
{
if
(
datasetTableTask
!=
null
&&
StringUtils
.
isNotEmpty
(
datasetTableTask
.
getTableId
()))
{
criteria
.
andTableIdEqualTo
(
datasetTableTask
.
getTableId
());
}
datasetTableTaskExample
.
setOrderByClause
(
"create_time desc,name asc"
);
return
datasetTableTaskMapper
.
selectByExample
(
datasetTableTaskExample
);
}
public
List
<
DataSetTaskDTO
>
taskList
(
BaseGridRequest
request
)
{
GridExample
gridExample
=
request
.
convertExample
();
List
<
DataSetTaskDTO
>
dataSetTaskDTOS
=
extDataSetTaskMapper
.
taskList
(
gridExample
);
return
dataSetTaskDTOS
;
}
private
void
checkName
(
DataSetTaskRequest
dataSetTaskRequest
)
{
DatasetTableTaskExample
datasetTableTaskExample
=
new
DatasetTableTaskExample
();
DatasetTableTaskExample
.
Criteria
criteria
=
datasetTableTaskExample
.
createCriteria
();
...
...
@@ -151,4 +184,27 @@ public class DataSetTableTaskService {
throw
new
RuntimeException
(
Translator
.
get
(
"i18n_task_name_repeat"
));
}
}
public
void
updateDatasetTableTaskStatus
(
DatasetTableTask
datasetTableTask
){
DatasetTableTaskExample
datasetTableTaskExample
=
new
DatasetTableTaskExample
();
DatasetTableTaskExample
.
Criteria
criteria
=
datasetTableTaskExample
.
createCriteria
();
criteria
.
andIdEqualTo
(
datasetTableTask
.
getId
());
DatasetTableTask
record
=
new
DatasetTableTask
();
record
.
setStatus
(
datasetTableTask
.
getStatus
());
datasetTableTaskMapper
.
updateByExampleSelective
(
record
,
datasetTableTaskExample
);
}
public
void
execTask
(
DatasetTableTask
datasetTableTask
)
throws
Exception
{
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
CRON
.
toString
())){
scheduleService
.
fireNow
(
datasetTableTask
);
}
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
())){
execNow
(
datasetTableTask
);
datasetTableTask
.
setStatus
(
TaskStatus
.
Underway
.
name
());
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Underway
.
name
());
update
(
datasetTableTask
);
scheduleService
.
addSchedule
(
datasetTableTask
);
}
}
}
backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java
浏览文件 @
3707ca5a
...
...
@@ -6,10 +6,7 @@ import io.dataease.base.mapper.DatasetTableMapper;
import
io.dataease.base.mapper.DatasetTableTaskMapper
;
import
io.dataease.base.mapper.DatasourceMapper
;
import
io.dataease.base.mapper.ext.ExtChartViewMapper
;
import
io.dataease.commons.constants.JdbcConstants
;
import
io.dataease.commons.constants.JobStatus
;
import
io.dataease.commons.constants.ScheduleType
;
import
io.dataease.commons.constants.UpdateType
;
import
io.dataease.commons.constants.*
;
import
io.dataease.commons.model.AuthURD
;
import
io.dataease.commons.utils.*
;
import
io.dataease.datasource.constants.DatasourceTypes
;
...
...
@@ -136,10 +133,8 @@ public class ExtractDataService {
public
synchronized
boolean
updateSyncStatusIsNone
(
DatasetTable
datasetTable
){
datasetTable
.
setSyncStatus
(
JobStatus
.
Underway
.
name
());
DatasetTableExample
example
=
new
DatasetTableExample
();
example
.
createCriteria
().
andIdEqualTo
(
datasetTable
.
getId
());
datasetTableMapper
.
selectByExample
(
example
);
example
.
clear
();
example
.
createCriteria
().
andIdEqualTo
(
datasetTable
.
getId
()).
andSyncStatusNotEqualTo
(
JobStatus
.
Underway
.
name
());
example
.
or
(
example
.
createCriteria
().
andIdEqualTo
(
datasetTable
.
getId
()).
andSyncStatusIsNull
());
return
datasetTableMapper
.
updateByExampleSelective
(
datasetTable
,
example
)
==
0
;
...
...
@@ -156,6 +151,10 @@ public class ExtractDataService {
LogUtil
.
info
(
"Skip synchronization task for table : "
+
datasetTableId
);
return
;
}
datasetTableTask
.
setLastExecTime
(
System
.
currentTimeMillis
());
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Underway
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
DatasetTableTaskLog
datasetTableTaskLog
=
new
DatasetTableTaskLog
();
UpdateType
updateType
=
UpdateType
.
valueOf
(
type
);
if
(
context
!=
null
){
...
...
@@ -207,18 +206,23 @@ public class ExtractDataService {
sendWebMsg
(
datasetTable
,
taskId
,
true
);
//
deleteFile("all_scope", datasetTableId);
deleteFile
(
"all_scope"
,
datasetTableId
);
updateTableStatus
(
datasetTableId
,
datasetTable
,
JobStatus
.
Completed
,
execTime
);
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Completed
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
}
catch
(
Exception
e
){
saveErrorLog
(
datasetTableId
,
taskId
,
e
);
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Error
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
sendWebMsg
(
datasetTable
,
taskId
,
false
);
updateTableStatus
(
datasetTableId
,
datasetTable
,
JobStatus
.
Error
,
null
);
dropDorisTable
(
DorisTableUtils
.
dorisTmpName
(
DorisTableUtils
.
dorisName
(
datasetTableId
)));
//
deleteFile("all_scope", datasetTableId);
deleteFile
(
"all_scope"
,
datasetTableId
);
}
finally
{
if
(
datasetTableTask
!=
null
&&
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
datasetTableTask
.
set
Rate
(
ScheduleType
.
SIMPLE_COMPLETE
.
toString
());
datasetTableTask
.
set
Status
(
TaskStatus
.
Stopped
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
}
}
...
...
@@ -274,20 +278,24 @@ public class ExtractDataService {
sendWebMsg
(
datasetTable
,
taskId
,
true
);
//
deleteFile("incremental_add", datasetTableId);
//
deleteFile("incremental_delete", datasetTableId);
deleteFile
(
"incremental_add"
,
datasetTableId
);
deleteFile
(
"incremental_delete"
,
datasetTableId
);
updateTableStatus
(
datasetTableId
,
datasetTable
,
JobStatus
.
Completed
,
execTime
);
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Completed
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
}
}
catch
(
Exception
e
){
saveErrorLog
(
datasetTableId
,
taskId
,
e
);
sendWebMsg
(
datasetTable
,
taskId
,
false
);
updateTableStatus
(
datasetTableId
,
datasetTable
,
JobStatus
.
Error
,
null
);
// deleteFile("incremental_add", datasetTableId);
// deleteFile("incremental_delete", datasetTableId);
datasetTableTask
.
setLastExecStatus
(
JobStatus
.
Error
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
deleteFile
(
"incremental_add"
,
datasetTableId
);
deleteFile
(
"incremental_delete"
,
datasetTableId
);
}
finally
{
if
(
datasetTableTask
!=
null
&&
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
datasetTableTask
.
set
Rate
(
ScheduleType
.
SIMPLE_COMPLETE
.
toString
());
datasetTableTask
.
set
Status
(
TaskStatus
.
Stopped
.
name
());
dataSetTableTaskService
.
update
(
datasetTableTask
);
}
}
...
...
@@ -435,6 +443,7 @@ public class ExtractDataService {
datasetTableTaskLog
.
setTableId
(
datasetTableId
);
datasetTableTaskLog
.
setTaskId
(
taskId
);
datasetTableTaskLog
.
setStatus
(
JobStatus
.
Underway
.
name
());
datasetTableTaskLog
.
setTriggerType
(
TriggerType
.
Cron
.
name
());
List
<
DatasetTableTaskLog
>
datasetTableTaskLogs
=
dataSetTableTaskLogService
.
select
(
datasetTableTaskLog
);
if
(
CollectionUtils
.
isEmpty
(
datasetTableTaskLogs
)){
datasetTableTaskLog
.
setStartTime
(
System
.
currentTimeMillis
());
...
...
backend/src/main/resources/generatorConfig.xml
浏览文件 @
3707ca5a
...
...
@@ -74,7 +74,7 @@
<!-- </table>-->
<!-- <table tableName="v_dataset"/>-->
<!-- <table tableName="sys_auth_detail"/>-->
<table
tableName=
"dataset_table"
/>
<table
tableName=
"dataset_table
_task_log
"
/>
</context>
...
...
frontend/src/api/dataset/dataset.js
浏览文件 @
3707ca5a
...
...
@@ -128,4 +128,21 @@ export function isKettleRunning(showLoading = true) {
})
}
export
function
taskList
(
spage
,
size
,
data
)
{
return
request
({
url
:
'/dataset/group/isKettleRunning'
,
method
:
'post'
,
loading
:
showLoading
})
}
export
function
datasetTaskList
(
page
,
size
,
data
)
{
return
request
({
url
:
'/dataset/task/pageList/'
+
page
+
'/'
+
size
,
method
:
'post'
,
data
,
loading
:
true
})
}
export
default
{
loadTable
,
getScene
,
addGroup
,
delGroup
,
addTable
,
delTable
,
groupTree
}
frontend/src/lang/zh.js
浏览文件 @
3707ca5a
...
...
@@ -913,7 +913,23 @@ export default {
m2
:
' 移动到'
,
char_can_not_more_50
:
'数据集名称不能超过50个字符'
,
task_add_title
:
'添加任务'
,
task_edit_title
:
'编辑任务'
task_edit_title
:
'编辑任务'
,
task
:
{
list
:
'任务列表'
,
record
:
'执行记录'
,
create
:
'新建任务'
,
name
:
'任务名称'
,
last_exec_time
:
'上次执行时间'
,
next_exec_time
:
'下次执行时间'
,
last_exec_status
:
'上次执行结果'
,
task_status
:
'任务状态'
,
dataset
:
'数据集'
,
search_by_name
:
'根据名称搜索'
,
underway
:
'运行中'
,
stopped
:
'停止'
,
exec
:
'执行'
,
confirm_exec
:
'手动触发执行?'
}
},
datasource
:
{
datasource
:
'数据源'
,
...
...
frontend/src/utils/webMsg.js
浏览文件 @
3707ca5a
export
const
msgTypes
=
[
// { value: -1, label: '全部类型' },
// { value: 0, label: '仪表板分享' },
// { value: 1, label: '数据集同步' }
{
value
:
-
1
,
label
:
'webmsg.all_type'
},
{
value
:
0
,
label
:
'webmsg.panel_type'
},
{
value
:
1
,
label
:
'webmsg.dataset_type'
}
...
...
frontend/src/views/chart/group/Group.vue
浏览文件 @
3707ca5a
...
...
@@ -7,20 +7,9 @@
{{
$t
(
'chart.datalist'
)
}}
</span>
<el-button
icon=
"el-icon-plus"
type=
"text"
size=
"mini"
style=
"float: right;"
@
click=
"add('group')"
>
<!--
{{
$t
(
'chart.add_group'
)
}}
-->
</el-button>
</el-row>
<el-divider
/>
<!--
<el-row>
-->
<!--
<el-button
type=
"primary"
size=
"mini"
@
click=
"add('group')"
>
-->
<!--
{{
$t
(
'chart.add_group'
)
}}
-->
<!--
</el-button>
-->
<!--
<el-button
type=
"primary"
size=
"mini"
@
click=
"add('scene')"
>
-->
<!--
{{
$t
(
'chart.add_scene'
)
}}
-->
<!--
</el-button>
-->
<!--
</el-row>
-->
<el-row>
<el-form>
<el-form-item
class=
"form-item"
>
...
...
@@ -53,14 +42,6 @@
>
<span
v-if=
"data.type ==='group'"
slot-scope=
"
{ node, data }" class="custom-tree-node father">
<span
style=
"display: flex;flex: 1;width: 0;"
>
<!--
<span
v-if=
"data.type === 'scene'"
>
-->
<!-- <!–
<el-button
&
ndash
;&
gt
;
--
>
<!-- <!– icon="el-icon-folder-opened"–>-->
<!-- <!– type="text"–>-->
<!-- <!– size="mini"–>-->
<!-- <!– />–>-->
<!--
<svg-icon
icon-class=
"scene"
class=
"ds-icon-scene"
/>
-->
<!--
</span>
-->
<span>
<i
class=
"el-icon-folder"
/>
</span>
...
...
@@ -80,9 +61,6 @@
<el-dropdown-item
icon=
"el-icon-folder-add"
:command=
"beforeClickAdd('group',data,node)"
>
{{
$t
(
'chart.group'
)
}}
</el-dropdown-item>
<!--
<el-dropdown-item
icon=
"el-icon-folder-add"
:command=
"beforeClickAdd('scene',data,node)"
>
-->
<!--
{{
$t
(
'chart.scene'
)
}}
-->
<!--
</el-dropdown-item>
-->
<el-dropdown-item
icon=
"el-icon-circle-plus"
:command=
"beforeClickAdd('chart',data,node)"
>
{{
$t
(
'chart.add_chart'
)
}}
</el-dropdown-item>
...
...
@@ -660,25 +638,10 @@ export default {
if
(
data
.
type
!==
'group'
)
{
this
.
$emit
(
'switchComponent'
,
{
name
:
'ChartEdit'
,
param
:
{
'id'
:
data
.
id
}})
}
// if (data.type === 'scene') {
// this.sceneMode = true
// this.currGroup = data
// this.$store.dispatch('chart/setSceneId', this.currGroup.id)
// this.chartTree()
// }
// if (node.expanded) {
// this.expandedArray.push(data.id)
// } else {
// const index = this.expandedArray.indexOf(data.id)
// if (index > -1) {
// this.expandedArray.splice(index, 1)
// }
// }
},
back
()
{
this
.
sceneMode
=
false
// this.$router.push('/chart/home')
this
.
$emit
(
'switchComponent'
,
{
name
:
''
})
},
...
...
@@ -687,13 +650,9 @@ export default {
'type'
:
type
}
},
sceneClick
(
data
,
node
)
{
// this.$store.dispatch('chart/setViewId', null)
// this.$store.dispatch('chart/setViewId', data.id)
this
.
$emit
(
'switchComponent'
,
{
name
:
'ChartEdit'
,
param
:
{
'id'
:
data
.
id
}})
},
reviewChartList
()
{
if
(
this
.
$store
.
state
.
chart
.
chartSceneData
)
{
const
that
=
this
...
...
@@ -759,10 +718,7 @@ export default {
this
.
closeCreateChart
()
this
.
$store
.
dispatch
(
'chart/setTableId'
,
null
)
this
.
$store
.
dispatch
(
'chart/setTableId'
,
this
.
table
.
id
)
// this.$router.push('/chart/chart-edit')
this
.
$emit
(
'switchComponent'
,
{
name
:
'ChartEdit'
,
param
:
{
'id'
:
response
.
data
.
id
}})
// this.$store.dispatch('chart/setViewId', response.data.id)
// this.chartTree()
this
.
refreshNodeBy
(
view
.
sceneId
)
})
},
...
...
frontend/src/views/chart/view/TableSelector.vue
浏览文件 @
3707ca5a
<
template
>
<de-container>
<de-aside-container>
<dataset-group-selector-tree
@
getTable=
"getTable"
/>
<dataset-group-selector-tree
@
getTable=
"getTable"
:mode=
mode
:type=
type
:showMode=
showMode
/>
</de-aside-container>
<de-main-container>
...
...
@@ -15,7 +15,6 @@ import DeMainContainer from '@/components/dataease/DeMainContainer'
import
DeContainer
from
'@/components/dataease/DeContainer'
import
DeAsideContainer
from
'@/components/dataease/DeAsideContainer'
// import DatasetGroupSelector from '../../dataset/common/DatasetGroupSelector'
import
DatasetGroupSelectorTree
from
'../../dataset/common/DatasetGroupSelectorTree'
import
DatasetTableData
from
'../../dataset/common/DatasetTableData'
import
{
getTable
}
from
'@/api/dataset/dataset'
...
...
@@ -26,6 +25,23 @@ export default {
DatasetTableData
,
DeMainContainer
,
DeContainer
,
DeAsideContainer
,
DatasetGroupSelectorTree
},
props
:
{
mode
:
{
type
:
Number
,
required
:
false
,
default
:
-
1
},
type
:
{
type
:
String
,
required
:
false
,
default
:
null
},
showMode
:
{
type
:
String
,
required
:
false
,
default
:
null
}
},
data
()
{
return
{
table
:
{}
...
...
frontend/src/views/dataset/common/DatasetGroupSelectorTree.vue
浏览文件 @
3707ca5a
...
...
@@ -41,11 +41,6 @@
<span
v-if=
"data.type === 'group'"
slot-scope=
"
{ node, data }" class="custom-tree-node">
<span
style=
"display: flex;flex: 1;width: 0;"
>
<span
v-if=
"data.type === 'scene'"
>
<!--
<el-button-->
<!-- icon="el-icon-folder-opened"-->
<!-- type="text"-->
<!-- size="mini"-->
<!-- />-->
<svg-icon
icon-class=
"scene"
class=
"ds-icon-scene"
/>
</span>
<span
style=
"margin-left: 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"
:title=
"data.name"
>
{{
data
.
name
}}
</span>
...
...
@@ -95,6 +90,11 @@ export default {
required
:
false
,
default
:
-
1
},
type
:
{
type
:
String
,
required
:
false
,
default
:
null
},
unionData
:
{
type
:
Array
,
required
:
false
,
...
...
@@ -184,7 +184,6 @@ export default {
},
mounted
()
{
this
.
treeNode
(
this
.
groupForm
)
// this.tableTree()
},
created
()
{
this
.
kettleState
()
...
...
@@ -261,20 +260,6 @@ export default {
if
(
data
.
type
!==
'group'
)
{
this
.
sceneClick
(
data
,
node
)
}
// if (data.type === 'scene') {
// this.sceneMode = true
// this.currGroup = data
// this.tableTree()
// }
// if (node.expanded) {
// this.expandedArray.push(data.id)
// } else {
// const index = this.expandedArray.indexOf(data.id)
// if (index > -1) {
// this.expandedArray.splice(index, 1)
// }
// }
// console.log(this.expandedArray);
},
back
()
{
...
...
@@ -364,6 +349,7 @@ export default {
sort
:
'type asc,name asc,create_time desc'
,
sceneId
:
node
.
data
.
id
,
mode
:
this
.
mode
<
0
?
null
:
this
.
mode
,
type
:
this
.
type
,
typeFilter
:
this
.
customType
?
this
.
customType
:
null
},
false
).
then
(
response
=>
{
this
.
tables
=
response
.
data
...
...
frontend/src/views/dataset/data/UpdateInfo.vue
浏览文件 @
3707ca5a
...
...
@@ -468,7 +468,6 @@ export default {
post
(
'/dataset/table/incrementalConfig'
,
{
tableId
:
this
.
table
.
id
}).
then
(
response
=>
{
this
.
incrementalConfig
=
response
.
data
this
.
incrementalUpdateType
=
'incrementalAdd'
// console.log(this.sql)
if
(
this
.
incrementalConfig
.
incrementalAdd
)
{
this
.
sql
=
this
.
incrementalConfig
.
incrementalAdd
}
else
{
...
...
@@ -551,7 +550,8 @@ export default {
}
},
listTaskLog
(
loading
=
true
)
{
post
(
'/dataset/taskLog/list/'
+
this
.
page
.
currentPage
+
'/'
+
this
.
page
.
pageSize
,
{
tableId
:
this
.
table
.
id
},
loading
).
then
(
response
=>
{
const
params
=
{
"conditions"
:[{
"field"
:
"dataset_table_task.table_id"
,
"operator"
:
"eq"
,
"value"
:
this
.
table
.
id
}],
"orders"
:[]}
post
(
'/dataset/taskLog/list/'
+
this
.
page
.
currentPage
+
'/'
+
this
.
page
.
pageSize
,
params
,
loading
).
then
(
response
=>
{
this
.
taskLogData
=
response
.
data
.
listObject
this
.
page
.
total
=
response
.
data
.
itemCount
})
...
...
frontend/src/views/system/user/index.vue
浏览文件 @
3707ca5a
...
...
@@ -12,7 +12,6 @@
>
<template
#
toolbar
>
<el-button
v-permission=
"['user:add']"
icon=
"el-icon-circle-plus-outline"
@
click=
"create"
>
{{
$t
(
'user.create'
)
}}
</el-button>
<!--
<fu-table-button
v-permission=
"['user:add']"
icon=
"el-icon-circle-plus-outline"
:label=
"$t('user.create')"
@
click=
"create"
/>
-->
</
template
>
<el-table-column
prop=
"username"
label=
"ID"
/>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论