diff --git a/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/dto/CheckRuleDto.java b/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/dto/CheckRuleDto.java index 0f083a4..11c2920 100644 --- a/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/dto/CheckRuleDto.java +++ b/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/dto/CheckRuleDto.java @@ -9,6 +9,7 @@ import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; /** *

@@ -61,4 +62,8 @@ public class CheckRuleDto implements Serializable { private String status; @ApiModelProperty(value = "备注") private String remark; + + private List transferValue; + + private String qualityType; } diff --git a/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/query/CheckRuleQuery.java b/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/query/CheckRuleQuery.java index 69ab8b9..465aca9 100644 --- a/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/query/CheckRuleQuery.java +++ b/studio/modules/data-quality-service-parent/data-quality-service-api/src/main/java/cn/datax/service/data/quality/api/query/CheckRuleQuery.java @@ -23,4 +23,6 @@ public class CheckRuleQuery extends BaseQueryParams { private String ruleSource; private String ruleTable; private String ruleColumn; + + private String ruleType; } diff --git a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/controller/CheckRuleController.java b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/controller/CheckRuleController.java index 70249a1..447ebbf 100644 --- a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/controller/CheckRuleController.java +++ b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/controller/CheckRuleController.java @@ -85,6 +85,13 @@ public class CheckRuleController extends BaseController { queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleSource()), "r.rule_source", checkRuleQuery.getRuleSource()); queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleTable()), "r.rule_table", checkRuleQuery.getRuleTable()); queryWrapper.like(StrUtil.isNotBlank(checkRuleQuery.getRuleColumn()), "r.rule_column", checkRuleQuery.getRuleColumn()); + //结构符合校验过滤 + if("jj".equals(checkRuleQuery.getRuleType())){ + queryWrapper.in("t.code","table_jc","length_jc","null_jc","pk_jc","fk_jc"); + } else { + queryWrapper.in("t.code","unique","integrity","accuracy","consistent","relevance","regular","timeliness"); + } +// queryWrapper.in("t.code","") IPage page = checkRuleService.page(new Page<>(checkRuleQuery.getPageNum(), checkRuleQuery.getPageSize()), queryWrapper); List collect = page.getRecords().stream().map(checkRuleMapper::toVO).collect(Collectors.toList()); JsonPage jsonPage = new JsonPage<>(page.getCurrent(), page.getSize(), page.getTotal(), collect); @@ -104,6 +111,7 @@ public class CheckRuleController extends BaseController { return R.ok().setData(checkRuleMapper.toVO(checkRuleEntity)); } + /** * 修改 * @param checkRule @@ -145,4 +153,14 @@ public class CheckRuleController extends BaseController { checkRuleService.deleteCheckRuleBatch(ids); return R.ok(); } + + + + @GetMapping("/listSourceIdBytable/{id}") + public R listSourceIdBytable(@PathVariable String id) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("rule_source_id",id); + List checkRuleList = checkRuleService.list(queryWrapper); + return R.ok().setData(checkRuleMapper.toVO(checkRuleList)); + } } diff --git a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/schedule/rules/RegularRule.java b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/schedule/rules/RegularRule.java index 569be0b..cae315b 100644 --- a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/schedule/rules/RegularRule.java +++ b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/schedule/rules/RegularRule.java @@ -17,11 +17,10 @@ public class RegularRule implements RuleItem{ switch (dbType) { case ORACLE: case ORACLE_12C: - builder.append("SELECT SUM(CASE WHEN ROUND(TO_NUMBER(SYSDATE - ").append(column).append(")) >= ").append(map.get(REGULAR)).append(" THEN 1 ELSE 0 END), COUNT(*) FROM ").append(table); - break; case MYSQL: - builder.append("select sum(case when ").append(column).append(" REGEXP ").append("'"+map.get(REGULAR)+"'").append(" != '' THEN 0 ELSE 1 END),") - .append(" COUNT(*) from ").append(table); + // mysql 执行正则 + builder.append("SELECT SUM(CASE WHEN ").append(column).append(" REGEXP ").append("'"+map.get(REGULAR)+"'").append(" != '' THEN 0 ELSE 1 END),").append(" COUNT(*) FROM ").append(table); + break; case MARIADB: case SQL_SERVER: case SQL_SERVER2008: diff --git a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/impl/CheckRuleServiceImpl.java b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/impl/CheckRuleServiceImpl.java index f1b6c75..760d18f 100644 --- a/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/impl/CheckRuleServiceImpl.java +++ b/studio/modules/data-quality-service-parent/data-quality-service/src/main/java/cn/datax/service/data/quality/service/impl/CheckRuleServiceImpl.java @@ -50,11 +50,24 @@ public class CheckRuleServiceImpl extends BaseServiceImpl().eq("rule_source_id", sourceId).last("limit 1")); } + private String parseSql(CheckRuleEntity checkRule) { RuleConfig ruleConfig = checkRule.getRuleConfig(); Map map = new HashMap<>();