Commit 6de3441c by yuwei

项目初始化

parent efca3730
...@@ -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 = "数据源主键")
......
...@@ -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;
......
...@@ -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)
......
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;
}
...@@ -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;
} }
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;
}
...@@ -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;
......
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;
}
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);
}
}
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> {
}
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);
}
...@@ -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),
......
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);
}
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;
}
}
...@@ -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>
......
<?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>
...@@ -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',
......
...@@ -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>
...@@ -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 }
], ],
// 表格数据 // 表格数据
......
...@@ -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) {
......
...@@ -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
......
...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment