Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
6de3441c
Commit
6de3441c
authored
Oct 15, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
efca3730
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
429 additions
and
20 deletions
+429
-20
CheckRuleDto.java
...a/cn/datax/service/data/quality/api/dto/CheckRuleDto.java
+2
-0
CheckReportEntity.java
...ax/service/data/quality/api/entity/CheckReportEntity.java
+1
-1
CheckRuleEntity.java
...atax/service/data/quality/api/entity/CheckRuleEntity.java
+5
-0
RuleItemEntity.java
...datax/service/data/quality/api/entity/RuleItemEntity.java
+46
-0
RuleTypeReportEntity.java
...service/data/quality/api/entity/RuleTypeReportEntity.java
+1
-1
RuleItemQuery.java
...n/datax/service/data/quality/api/query/RuleItemQuery.java
+22
-0
CheckRuleVo.java
...ava/cn/datax/service/data/quality/api/vo/CheckRuleVo.java
+1
-0
RuleItemVo.java
...java/cn/datax/service/data/quality/api/vo/RuleItemVo.java
+24
-0
RuleItemController.java
...x/service/data/quality/controller/RuleItemController.java
+86
-0
RuleItemDao.java
...n/java/cn/datax/service/data/quality/dao/RuleItemDao.java
+18
-0
RuleItemMapper.java
.../datax/service/data/quality/mapstruct/RuleItemMapper.java
+33
-0
QualityTask.java
...datax/service/data/quality/schedule/task/QualityTask.java
+7
-0
RuleItemService.java
...n/datax/service/data/quality/service/RuleItemService.java
+17
-0
RuleItemServiceImpl.java
...ervice/data/quality/service/impl/RuleItemServiceImpl.java
+36
-0
CheckRuleMapper.xml
...ity-service/src/main/resources/mapper/CheckRuleMapper.xml
+3
-2
RuleItemMapper.xml
...lity-service/src/main/resources/mapper/RuleItemMapper.xml
+19
-0
checkrule.js
datax-ui/src/api/quality/checkrule.js
+8
-0
index.vue
datax-ui/src/views/quality/analysisreport/index.vue
+31
-10
CheckReportList.vue
datax-ui/src/views/quality/checkreport/CheckReportList.vue
+1
-1
CheckRuleAdd.vue
datax-ui/src/views/quality/checkrule/CheckRuleAdd.vue
+29
-3
CheckRuleDetail.vue
datax-ui/src/views/quality/checkrule/CheckRuleDetail.vue
+18
-1
CheckRuleEdit.vue
datax-ui/src/views/quality/checkrule/CheckRuleEdit.vue
+21
-1
No files found.
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/dto/CheckRuleDto.java
View file @
6de3441c
...
@@ -30,6 +30,8 @@ public class CheckRuleDto implements Serializable {
...
@@ -30,6 +30,8 @@ public class CheckRuleDto implements Serializable {
private
String
ruleName
;
private
String
ruleName
;
@ApiModelProperty
(
value
=
"规则类型"
)
@ApiModelProperty
(
value
=
"规则类型"
)
private
String
ruleTypeId
;
private
String
ruleTypeId
;
@ApiModelProperty
(
value
=
"核查类型"
)
private
String
ruleItemId
;
@ApiModelProperty
(
value
=
"规则级别(3高、2中、1低)"
)
@ApiModelProperty
(
value
=
"规则级别(3高、2中、1低)"
)
private
String
ruleLevelId
;
private
String
ruleLevelId
;
@ApiModelProperty
(
value
=
"数据源主键"
)
@ApiModelProperty
(
value
=
"数据源主键"
)
...
...
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/entity/CheckReportEntity.java
View file @
6de3441c
...
@@ -52,7 +52,7 @@ public class CheckReportEntity implements Serializable {
...
@@ -52,7 +52,7 @@ public class CheckReportEntity implements Serializable {
private
Integer
checkTotalCount
;
private
Integer
checkTotalCount
;
/**
/**
*
报错
数量
*
不合规
数量
*/
*/
private
Integer
checkErrorCount
;
private
Integer
checkErrorCount
;
...
...
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/entity/CheckRuleEntity.java
View file @
6de3441c
...
@@ -34,6 +34,11 @@ public class CheckRuleEntity extends DataScopeBaseEntity {
...
@@ -34,6 +34,11 @@ public class CheckRuleEntity extends DataScopeBaseEntity {
private
String
ruleTypeId
;
private
String
ruleTypeId
;
/**
/**
* 核查类型主键
*/
private
String
ruleItemId
;
/**
* 规则类型
* 规则类型
*/
*/
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
...
...
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/entity/RuleItemEntity.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
api
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* <p>
* 规则核查类型信息表
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
"quality_rule_item"
)
public
class
RuleItemEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
/**
* 规则类型
*/
private
String
ruleTypeId
;
/**
* 核查类型编码
*/
private
String
itemCode
;
/**
* 核查类型解释
*/
private
String
itemExplain
;
}
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/entity/RuleTypeReportEntity.java
View file @
6de3441c
...
@@ -8,7 +8,7 @@ public class RuleTypeReportEntity extends RuleTypeEntity {
...
@@ -8,7 +8,7 @@ public class RuleTypeReportEntity extends RuleTypeEntity {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/**
/**
*
报错
数量
*
不合规
数量
*/
*/
private
Integer
checkErrorCount
;
private
Integer
checkErrorCount
;
}
}
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/query/RuleItemQuery.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
api
.
query
;
import
cn.datax.common.base.BaseQueryParams
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 规则核查项信息表 查询实体
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
RuleItemQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
ruleTypeId
;
}
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/vo/CheckRuleVo.java
View file @
6de3441c
...
@@ -26,6 +26,7 @@ public class CheckRuleVo implements Serializable {
...
@@ -26,6 +26,7 @@ public class CheckRuleVo implements Serializable {
private
String
remark
;
private
String
remark
;
private
String
ruleName
;
private
String
ruleName
;
private
String
ruleTypeId
;
private
String
ruleTypeId
;
private
String
ruleItemId
;
private
String
ruleType
;
private
String
ruleType
;
private
String
ruleLevelId
;
private
String
ruleLevelId
;
private
String
ruleLevel
;
private
String
ruleLevel
;
...
...
datax-modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/vo/RuleItemVo.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* <p>
* 规则核查项信息表 实体VO
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Data
public
class
RuleItemVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
private
String
ruleTypeId
;
private
String
itemCode
;
private
String
itemExplain
;
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/controller/RuleItemController.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
controller
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
cn.datax.service.data.quality.api.vo.RuleItemVo
;
import
cn.datax.service.data.quality.api.query.RuleItemQuery
;
import
cn.datax.service.data.quality.mapstruct.RuleItemMapper
;
import
cn.datax.service.data.quality.service.RuleItemService
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
cn.datax.common.base.BaseController
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
* 规则核查项信息表 前端控制器
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Api
(
tags
=
{
"规则核查项信息表"
})
@RestController
@RequestMapping
(
"/ruleItems"
)
public
class
RuleItemController
extends
BaseController
{
@Autowired
private
RuleItemService
ruleItemService
;
@Autowired
private
RuleItemMapper
ruleItemMapper
;
/**
* 通过ID查询信息
*
* @param id
* @return
*/
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
public
R
getRuleItemById
(
@PathVariable
String
id
)
{
RuleItemEntity
ruleItemEntity
=
ruleItemService
.
getRuleItemById
(
id
);
return
R
.
ok
().
setData
(
ruleItemMapper
.
toVO
(
ruleItemEntity
));
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
public
R
getRuleTypeList
()
{
List
<
RuleItemEntity
>
list
=
ruleItemService
.
list
(
Wrappers
.
emptyWrapper
());
return
R
.
ok
().
setData
(
list
);
}
/**
* 分页查询信息
*
* @param ruleItemQuery
* @return
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ruleItemQuery"
,
value
=
"查询实体ruleItemQuery"
,
required
=
true
,
dataTypeClass
=
RuleItemQuery
.
class
)
})
@GetMapping
(
"/page"
)
public
R
getRuleItemPage
(
RuleItemQuery
ruleItemQuery
)
{
QueryWrapper
<
RuleItemEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
ruleItemQuery
.
getRuleTypeId
()),
"rule_type_id"
,
ruleItemQuery
.
getRuleTypeId
());
IPage
<
RuleItemEntity
>
page
=
ruleItemService
.
page
(
new
Page
<>(
ruleItemQuery
.
getPageNum
(),
ruleItemQuery
.
getPageSize
()),
queryWrapper
);
List
<
RuleItemVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
ruleItemMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
RuleItemVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
}
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/dao/RuleItemDao.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
dao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 规则核查项信息表 Mapper 接口
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Mapper
public
interface
RuleItemDao
extends
BaseDao
<
RuleItemEntity
>
{
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/mapstruct/RuleItemMapper.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
mapstruct
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
cn.datax.service.data.quality.api.vo.RuleItemVo
;
import
org.mapstruct.Mapper
;
import
java.util.List
;
/**
* <p>
* 规则核查项信息表 Mapper 实体映射
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Mapper
(
componentModel
=
"spring"
)
public
interface
RuleItemMapper
{
/**
* 将源对象转换为VO对象
* @param e
* @return D
*/
RuleItemVo
toVO
(
RuleItemEntity
e
);
/**
* 将源对象集合转换为VO对象集合
* @param es
* @return List<D>
*/
List
<
RuleItemVo
>
toVO
(
List
<
RuleItemEntity
>
es
);
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/schedule/task/QualityTask.java
View file @
6de3441c
...
@@ -5,12 +5,14 @@ import cn.datax.common.database.DataSourceFactory;
...
@@ -5,12 +5,14 @@ import cn.datax.common.database.DataSourceFactory;
import
cn.datax.service.data.metadata.api.feign.MetadataSourceServiceFeign
;
import
cn.datax.service.data.metadata.api.feign.MetadataSourceServiceFeign
;
import
cn.datax.service.data.quality.api.entity.CheckReportEntity
;
import
cn.datax.service.data.quality.api.entity.CheckReportEntity
;
import
cn.datax.service.data.quality.api.entity.CheckRuleEntity
;
import
cn.datax.service.data.quality.api.entity.CheckRuleEntity
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
cn.datax.service.data.quality.api.entity.ScheduleLogEntity
;
import
cn.datax.service.data.quality.api.entity.ScheduleLogEntity
;
import
cn.datax.service.data.quality.schedule.exception.ChildThreadException
;
import
cn.datax.service.data.quality.schedule.exception.ChildThreadException
;
import
cn.datax.service.data.quality.schedule.thread.MultiThreadHandler
;
import
cn.datax.service.data.quality.schedule.thread.MultiThreadHandler
;
import
cn.datax.service.data.quality.schedule.thread.parallel.ParallelTaskWithThreadPool
;
import
cn.datax.service.data.quality.schedule.thread.parallel.ParallelTaskWithThreadPool
;
import
cn.datax.service.data.quality.service.CheckReportService
;
import
cn.datax.service.data.quality.service.CheckReportService
;
import
cn.datax.service.data.quality.service.CheckRuleService
;
import
cn.datax.service.data.quality.service.CheckRuleService
;
import
cn.datax.service.data.quality.service.RuleItemService
;
import
cn.datax.service.data.quality.service.ScheduleLogService
;
import
cn.datax.service.data.quality.service.ScheduleLogService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
...
@@ -33,6 +35,9 @@ public class QualityTask {
...
@@ -33,6 +35,9 @@ public class QualityTask {
private
CheckRuleService
checkRuleService
;
private
CheckRuleService
checkRuleService
;
@Autowired
@Autowired
private
RuleItemService
ruleItemService
;
@Autowired
private
DataSourceFactory
dataSourceFactory
;
private
DataSourceFactory
dataSourceFactory
;
@Autowired
@Autowired
...
@@ -49,6 +54,8 @@ public class QualityTask {
...
@@ -49,6 +54,8 @@ public class QualityTask {
List
<
CheckReportEntity
>
result
=
new
ArrayList
<>();
List
<
CheckReportEntity
>
result
=
new
ArrayList
<>();
// 获取可执行的核查规则
// 获取可执行的核查规则
List
<
CheckRuleEntity
>
list
=
checkRuleService
.
list
(
Wrappers
.<
CheckRuleEntity
>
lambdaQuery
().
eq
(
CheckRuleEntity:
:
getStatus
,
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()));
List
<
CheckRuleEntity
>
list
=
checkRuleService
.
list
(
Wrappers
.<
CheckRuleEntity
>
lambdaQuery
().
eq
(
CheckRuleEntity:
:
getStatus
,
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()));
// 获取核查类型
List
<
RuleItemEntity
>
ruleItemList
=
ruleItemService
.
list
(
Wrappers
.
emptyWrapper
());
// 定义固定长度的线程池
// 定义固定长度的线程池
ThreadPoolExecutor
threadPoolExecutor
=
new
ThreadPoolExecutor
(
5
,
5
,
0L
,
TimeUnit
.
MILLISECONDS
,
ThreadPoolExecutor
threadPoolExecutor
=
new
ThreadPoolExecutor
(
5
,
5
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<
Runnable
>(
50
),
new
LinkedBlockingQueue
<
Runnable
>(
50
),
...
...
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/RuleItemService.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
service
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
cn.datax.common.base.BaseService
;
/**
* <p>
* 规则核查项信息表 服务类
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
public
interface
RuleItemService
extends
BaseService
<
RuleItemEntity
>
{
RuleItemEntity
getRuleItemById
(
String
id
);
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/impl/RuleItemServiceImpl.java
0 → 100644
View file @
6de3441c
package
cn
.
datax
.
service
.
data
.
quality
.
service
.
impl
;
import
cn.datax.service.data.quality.api.entity.RuleItemEntity
;
import
cn.datax.service.data.quality.service.RuleItemService
;
import
cn.datax.service.data.quality.mapstruct.RuleItemMapper
;
import
cn.datax.service.data.quality.dao.RuleItemDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* <p>
* 规则核查项信息表 服务实现类
* </p>
*
* @author yuwei
* @since 2020-10-15
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
RuleItemServiceImpl
extends
BaseServiceImpl
<
RuleItemDao
,
RuleItemEntity
>
implements
RuleItemService
{
@Autowired
private
RuleItemDao
ruleItemDao
;
@Autowired
private
RuleItemMapper
ruleItemMapper
;
@Override
public
RuleItemEntity
getRuleItemById
(
String
id
)
{
RuleItemEntity
ruleItemEntity
=
super
.
getById
(
id
);
return
ruleItemEntity
;
}
}
datax-modules/data-quality-service-parent/data-quality-service/src/main/resources/mapper/CheckRuleMapper.xml
View file @
6de3441c
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"rule_name"
property=
"ruleName"
/>
<result
column=
"rule_name"
property=
"ruleName"
/>
<result
column=
"rule_type_id"
property=
"ruleTypeId"
/>
<result
column=
"rule_type_id"
property=
"ruleTypeId"
/>
<result
column=
"rule_item_id"
property=
"ruleItemId"
/>
<result
column=
"rule_level_id"
property=
"ruleLevelId"
/>
<result
column=
"rule_level_id"
property=
"ruleLevelId"
/>
<result
column=
"rule_source_id"
property=
"ruleSourceId"
/>
<result
column=
"rule_source_id"
property=
"ruleSourceId"
/>
<result
column=
"rule_source"
property=
"ruleSource"
/>
<result
column=
"rule_source"
property=
"ruleSource"
/>
...
@@ -42,7 +43,7 @@
...
@@ -42,7 +43,7 @@
update_by,
update_by,
update_time,
update_time,
remark,
remark,
rule_name, rule_type_id, rule_level_id, rule_source_id, rule_source, rule_table_id, rule_table, rule_table_comment
rule_name, rule_type_id, rule_
item_id, rule_
level_id, rule_source_id, rule_source, rule_table_id, rule_table, rule_table_comment
rule_column_id, rule_column, rule_column_comment, rule_sql, last_check_batch
rule_column_id, rule_column, rule_column_comment, rule_sql, last_check_batch
</sql>
</sql>
...
@@ -55,7 +56,7 @@
...
@@ -55,7 +56,7 @@
${alias}.update_by,
${alias}.update_by,
${alias}.update_time,
${alias}.update_time,
${alias}.remark,
${alias}.remark,
${alias}.rule_name, ${alias}.rule_type_id, ${alias}.rule_level_id, ${alias}.rule_source_id, ${alias}.rule_source,
${alias}.rule_name, ${alias}.rule_type_id, ${alias}.rule_
item_id, ${alias}.rule_
level_id, ${alias}.rule_source_id, ${alias}.rule_source,
${alias}.rule_table_id, ${alias}.rule_table, ${alias}.rule_table_comment, ${alias}.rule_column_id, ${alias}.rule_column, ${alias}.rule_column_comment, ${alias}.rule_sql, ${alias}.last_check_batch
${alias}.rule_table_id, ${alias}.rule_table, ${alias}.rule_table_comment, ${alias}.rule_column_id, ${alias}.rule_column, ${alias}.rule_column_comment, ${alias}.rule_sql, ${alias}.last_check_batch
</sql>
</sql>
...
...
datax-modules/data-quality-service-parent/data-quality-service/src/main/resources/mapper/RuleItemMapper.xml
0 → 100644
View file @
6de3441c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.quality.dao.RuleItemDao"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.quality.api.entity.RuleItemEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"rule_type_id"
property=
"ruleTypeId"
/>
<result
column=
"item_code"
property=
"itemCode"
/>
<result
column=
"item_explain"
property=
"itemExplain"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id,
rule_type_id, item_code, item_explain
</sql>
</mapper>
datax-ui/src/api/quality/checkrule.js
View file @
6de3441c
...
@@ -8,6 +8,14 @@ export function listRuleType(data) {
...
@@ -8,6 +8,14 @@ export function listRuleType(data) {
})
})
}
}
export
function
listRuleItem
(
data
)
{
return
request
({
url
:
'/data/quality/ruleItems/list'
,
method
:
'get'
,
params
:
data
})
}
export
function
listRuleLevel
(
data
)
{
export
function
listRuleLevel
(
data
)
{
return
request
({
return
request
({
url
:
'/data/quality/ruleLevels/list'
,
url
:
'/data/quality/ruleLevels/list'
,
...
...
datax-ui/src/views/quality/analysisreport/index.vue
View file @
6de3441c
...
@@ -12,9 +12,9 @@
...
@@ -12,9 +12,9 @@
>
>
<el-table-column
prop=
"ruleSourceName"
label=
"数据源"
align=
"center"
/>
<el-table-column
prop=
"ruleSourceName"
label=
"数据源"
align=
"center"
/>
<el-table-column
prop=
"ruleLevelName"
label=
"规则级别"
align=
"center"
/>
<el-table-column
prop=
"ruleLevelName"
label=
"规则级别"
align=
"center"
/>
<el-table-column
prop=
"checkErrorCount"
label=
"
报错
数量"
align=
"center"
>
<el-table-column
prop=
"checkErrorCount"
label=
"
不合规
数量"
align=
"center"
>
<template
scope=
"scope"
>
<template
scope=
"scope"
>
<el-progress
:percentage=
"scope.row.checkErrorCount"
:stroke-width=
"20"
:text-inside=
"true"
:color=
"colorFormat"
:format=
"cellFormat"
/>
<el-progress
:percentage=
"scope.row.checkErrorCount"
:stroke-width=
"20"
:text-inside=
"true"
:color=
"colorFormat
(scope.row.ruleLevelName)
"
:format=
"cellFormat"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -30,7 +30,13 @@
...
@@ -30,7 +30,13 @@
>
>
<el-table-column
prop=
"ruleTypeName"
label=
"规则类型"
align=
"center"
/>
<el-table-column
prop=
"ruleTypeName"
label=
"规则类型"
align=
"center"
/>
<el-table-column
prop=
"ruleName"
label=
"规则名称"
align=
"center"
/>
<el-table-column
prop=
"ruleName"
label=
"规则名称"
align=
"center"
/>
<el-table-column
prop=
"checkErrorCount"
label=
"报错数量"
align=
"center"
/>
<el-table-column
prop=
"checkErrorCount"
label=
"不合规数量"
align=
"center"
>
<
template
scope=
"scope"
>
<el-badge
:value=
"scope.row.checkErrorCount"
:type=
"typeFormat(scope.row.ruleLevelName)"
>
{{
scope
.
row
.
ruleLevelName
}}
</el-badge>
</
template
>
</el-table-column>
</el-table>
</el-table>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -125,22 +131,37 @@ export default {
...
@@ -125,22 +131,37 @@ export default {
}
}
}
}
},
},
colorFormat
(
percentage
)
{
colorFormat
(
level
)
{
if
(
percentage
<
5
)
{
if
(
level
===
'低'
)
{
return
'#67c23a'
return
'#409eff'
}
else
if
(
percentage
<
10
)
{
}
else
if
(
level
===
'中'
)
{
return
'#909399'
}
else
{
return
'#e6a23c'
return
'#e6a23c'
}
else
{
return
'#f56c6c'
}
}
},
},
cellFormat
(
percentage
)
{
cellFormat
(
percentage
)
{
return
`
${
percentage
}
`
return
`
${
percentage
}
`
},
typeFormat
(
level
)
{
if
(
level
===
'低'
)
{
return
'primary'
}
else
if
(
level
===
'中'
)
{
return
'warning'
}
else
{
return
'danger'
}
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-badge__content
{
margin-top
:
10px
;
right
:
0px
;
}
::v-deep
.el-table__header
th
{
background-color
:
#f5f5f5
!important
;
}
</
style
>
</
style
>
datax-ui/src/views/quality/checkreport/CheckReportList.vue
View file @
6de3441c
...
@@ -106,7 +106,7 @@ export default {
...
@@ -106,7 +106,7 @@ export default {
{
prop
:
'ruleTable'
,
label
:
'数据表'
,
show
:
true
},
{
prop
:
'ruleTable'
,
label
:
'数据表'
,
show
:
true
},
{
prop
:
'ruleColumn'
,
label
:
'核查字段'
,
show
:
true
},
{
prop
:
'ruleColumn'
,
label
:
'核查字段'
,
show
:
true
},
{
prop
:
'checkTotalCount'
,
label
:
'核查数量'
,
show
:
true
},
{
prop
:
'checkTotalCount'
,
label
:
'核查数量'
,
show
:
true
},
{
prop
:
'checkErrorCount'
,
label
:
'
报错
数量'
,
show
:
true
},
{
prop
:
'checkErrorCount'
,
label
:
'
不合规
数量'
,
show
:
true
},
{
prop
:
'checkDate'
,
label
:
'核查时间'
,
show
:
true
}
{
prop
:
'checkDate'
,
label
:
'核查时间'
,
show
:
true
}
],
],
// 表格数据
// 表格数据
...
...
datax-ui/src/views/quality/checkrule/CheckRuleAdd.vue
View file @
6de3441c
...
@@ -12,6 +12,16 @@
...
@@ -12,6 +12,16 @@
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<el-input
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"核查类型"
prop=
"ruleItemId"
>
<el-select
v-model=
"form.ruleItemId"
placeholder=
"请选择核查类型"
>
<el-option
v-for=
"item in ruleItemOptions"
:key=
"item.id"
:label=
"item.itemCode"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"规则级别"
prop=
"ruleLevelId"
>
<el-form-item
label=
"规则级别"
prop=
"ruleLevelId"
>
<el-select
v-model=
"form.ruleLevelId"
placeholder=
"请选择规则级别"
>
<el-select
v-model=
"form.ruleLevelId"
placeholder=
"请选择规则级别"
>
<el-option
<el-option
...
@@ -38,7 +48,8 @@
...
@@ -38,7 +48,8 @@
v-for=
"table in tableOptions"
v-for=
"table in tableOptions"
:key=
"table.id"
:key=
"table.id"
:label=
"table.tableName"
:label=
"table.tableName"
:value=
"table.id"
>
:value=
"table.id"
>
<span
style=
"float: left"
>
{{
table
.
tableName
+
'('
+
table
.
tableComment
+
')'
}}
</span>
<span
style=
"float: left"
>
{{
table
.
tableName
+
'('
+
table
.
tableComment
+
')'
}}
</span>
</el-option>
</el-option>
</el-select>
</el-select>
...
@@ -49,7 +60,8 @@
...
@@ -49,7 +60,8 @@
v-for=
"column in columnOptions"
v-for=
"column in columnOptions"
:key=
"column.id"
:key=
"column.id"
:label=
"column.columnName"
:label=
"column.columnName"
:value=
"column.id"
>
:value=
"column.id"
>
<span
style=
"float: left"
>
{{
column
.
columnName
+
'('
+
column
.
columnComment
+
')'
}}
</span>
<span
style=
"float: left"
>
{{
column
.
columnName
+
'('
+
column
.
columnComment
+
')'
}}
</span>
</el-option>
</el-option>
</el-select>
</el-select>
...
@@ -75,7 +87,7 @@
...
@@ -75,7 +87,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
listRuleLevel
,
addCheckRule
}
from
'@/api/quality/checkrule'
import
{
listRuleLevel
,
listRuleItem
,
addCheckRule
}
from
'@/api/quality/checkrule'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
...
@@ -111,6 +123,7 @@ export default {
...
@@ -111,6 +123,7 @@ export default {
form
:
{
form
:
{
ruleName
:
undefined
,
ruleName
:
undefined
,
ruleTypeId
:
undefined
,
ruleTypeId
:
undefined
,
ruleItemId
:
undefined
,
ruleLevelId
:
undefined
,
ruleLevelId
:
undefined
,
ruleSourceId
:
undefined
,
ruleSourceId
:
undefined
,
ruleSource
:
undefined
,
ruleSource
:
undefined
,
...
@@ -126,6 +139,9 @@ export default {
...
@@ -126,6 +139,9 @@ export default {
ruleName
:
[
ruleName
:
[
{
required
:
true
,
message
:
'规则名称不能为空'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'规则名称不能为空'
,
trigger
:
'blur'
}
],
],
ruleItemId
:
[
{
required
:
true
,
message
:
'核查类型不能为空'
,
trigger
:
'change'
}
],
ruleLevelId
:
[
ruleLevelId
:
[
{
required
:
true
,
message
:
'规则级别不能为空'
,
trigger
:
'change'
}
{
required
:
true
,
message
:
'规则级别不能为空'
,
trigger
:
'change'
}
],
],
...
@@ -143,6 +159,8 @@ export default {
...
@@ -143,6 +159,8 @@ export default {
statusOptions
:
[],
statusOptions
:
[],
// 规则级别数据字典
// 规则级别数据字典
ruleLevelOptions
:
[],
ruleLevelOptions
:
[],
// 核查类型数据字典
ruleItemOptions
:
[],
sourceOptions
:
[],
sourceOptions
:
[],
tableOptions
:
[],
tableOptions
:
[],
columnOptions
:
[]
columnOptions
:
[]
...
@@ -157,6 +175,7 @@ export default {
...
@@ -157,6 +175,7 @@ export default {
}
}
})
})
this
.
getRuleLevelList
()
this
.
getRuleLevelList
()
this
.
getRuleItemList
()
this
.
getDataSourceList
()
this
.
getDataSourceList
()
},
},
methods
:
{
methods
:
{
...
@@ -170,6 +189,13 @@ export default {
...
@@ -170,6 +189,13 @@ export default {
}
}
})
})
},
},
getRuleItemList
()
{
listRuleItem
({
ruleTypeId
:
this
.
data
.
ruleTypeId
}).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
ruleItemOptions
=
response
.
data
}
})
},
getDataSourceList
()
{
getDataSourceList
()
{
listDataSource
().
then
(
response
=>
{
listDataSource
().
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
response
.
success
)
{
...
...
datax-ui/src/views/quality/checkrule/CheckRuleDetail.vue
View file @
6de3441c
...
@@ -11,6 +11,16 @@
...
@@ -11,6 +11,16 @@
<el-form-item
label=
"规则名称"
>
<el-form-item
label=
"规则名称"
>
<el-input
v-model=
"form.ruleName"
/>
<el-input
v-model=
"form.ruleName"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"核查类型"
>
<el-select
v-model=
"form.ruleItemId"
>
<el-option
v-for=
"item in ruleItemOptions"
:key=
"item.id"
:label=
"item.itemCode"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"规则级别"
>
<el-form-item
label=
"规则级别"
>
<el-select
v-model=
"form.ruleLevelId"
>
<el-select
v-model=
"form.ruleLevelId"
>
<el-option
<el-option
...
@@ -74,7 +84,7 @@
...
@@ -74,7 +84,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
listRuleLevel
,
getCheckRule
}
from
'@/api/quality/checkrule'
import
{
listRuleLevel
,
listRuleItem
,
getCheckRule
}
from
'@/api/quality/checkrule'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
...
@@ -106,6 +116,8 @@ export default {
...
@@ -106,6 +116,8 @@ export default {
statusOptions
:
[],
statusOptions
:
[],
// 规则级别数据字典
// 规则级别数据字典
ruleLevelOptions
:
[],
ruleLevelOptions
:
[],
// 核查类型数据字典
ruleItemOptions
:
[],
sourceOptions
:
[],
sourceOptions
:
[],
tableOptions
:
[],
tableOptions
:
[],
columnOptions
:
[]
columnOptions
:
[]
...
@@ -135,6 +147,11 @@ export default {
...
@@ -135,6 +147,11 @@ export default {
return
response
.
data
return
response
.
data
}
}
})
})
this
.
ruleItemOptions
=
await
listRuleItem
({
ruleTypeId
:
this
.
form
.
ruleTypeId
}).
then
(
response
=>
{
if
(
response
.
success
)
{
return
response
.
data
}
})
this
.
tableOptions
=
await
listDataTable
({
sourceId
:
this
.
form
.
ruleSourceId
}).
then
(
response
=>
{
this
.
tableOptions
=
await
listDataTable
({
sourceId
:
this
.
form
.
ruleSourceId
}).
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
response
.
success
)
{
return
response
.
data
return
response
.
data
...
...
datax-ui/src/views/quality/checkrule/CheckRuleEdit.vue
View file @
6de3441c
...
@@ -12,6 +12,16 @@
...
@@ -12,6 +12,16 @@
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
<el-input
v-model=
"form.ruleName"
placeholder=
"请输入规则名称"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"核查类型"
prop=
"ruleItemId"
>
<el-select
v-model=
"form.ruleItemId"
placeholder=
"请选择核查类型"
>
<el-option
v-for=
"item in ruleItemOptions"
:key=
"item.id"
:label=
"item.itemCode"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"规则级别"
prop=
"ruleLevelId"
>
<el-form-item
label=
"规则级别"
prop=
"ruleLevelId"
>
<el-select
v-model=
"form.ruleLevelId"
placeholder=
"请选择规则级别"
>
<el-select
v-model=
"form.ruleLevelId"
placeholder=
"请选择规则级别"
>
<el-option
<el-option
...
@@ -75,7 +85,7 @@
...
@@ -75,7 +85,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
listRuleLevel
,
getCheckRule
,
updateCheckRule
}
from
'@/api/quality/checkrule'
import
{
listRuleLevel
,
listRuleItem
,
getCheckRule
,
updateCheckRule
}
from
'@/api/quality/checkrule'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataSource
}
from
'@/api/metadata/datasource'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataTable
}
from
'@/api/metadata/datatable'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
import
{
listDataColumn
}
from
'@/api/metadata/datacolumn'
...
@@ -114,6 +124,9 @@ export default {
...
@@ -114,6 +124,9 @@ export default {
ruleName
:
[
ruleName
:
[
{
required
:
true
,
message
:
'规则名称不能为空'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'规则名称不能为空'
,
trigger
:
'blur'
}
],
],
ruleItemId
:
[
{
required
:
true
,
message
:
'核查类型不能为空'
,
trigger
:
'change'
}
],
ruleLevelId
:
[
ruleLevelId
:
[
{
required
:
true
,
message
:
'规则级别不能为空'
,
trigger
:
'change'
}
{
required
:
true
,
message
:
'规则级别不能为空'
,
trigger
:
'change'
}
],
],
...
@@ -131,6 +144,8 @@ export default {
...
@@ -131,6 +144,8 @@ export default {
statusOptions
:
[],
statusOptions
:
[],
// 规则级别数据字典
// 规则级别数据字典
ruleLevelOptions
:
[],
ruleLevelOptions
:
[],
// 核查类型数据字典
ruleItemOptions
:
[],
sourceOptions
:
[],
sourceOptions
:
[],
tableOptions
:
[],
tableOptions
:
[],
columnOptions
:
[]
columnOptions
:
[]
...
@@ -160,6 +175,11 @@ export default {
...
@@ -160,6 +175,11 @@ export default {
return
response
.
data
return
response
.
data
}
}
})
})
this
.
ruleItemOptions
=
await
listRuleItem
({
ruleTypeId
:
this
.
form
.
ruleTypeId
}).
then
(
response
=>
{
if
(
response
.
success
)
{
return
response
.
data
}
})
this
.
tableOptions
=
await
listDataTable
({
sourceId
:
this
.
form
.
ruleSourceId
}).
then
(
response
=>
{
this
.
tableOptions
=
await
listDataTable
({
sourceId
:
this
.
form
.
ruleSourceId
}).
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
response
.
success
)
{
return
response
.
data
return
response
.
data
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment