diff --git a/pom.xml b/pom.xml
index b3ef1ab..8ce166e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
srt-cloud-gateway
srt-data-development
srt-cloud-data-governance
+ srt-cloud-data-service
diff --git a/srt-cloud-api/src/main/java/net/srt/api/module/data/governance/DataMetadataCollectApi.java b/srt-cloud-api/src/main/java/net/srt/api/module/data/governance/DataMetadataCollectApi.java
new file mode 100644
index 0000000..3b7fb67
--- /dev/null
+++ b/srt-cloud-api/src/main/java/net/srt/api/module/data/governance/DataMetadataCollectApi.java
@@ -0,0 +1,88 @@
+package net.srt.api.module.data.governance;
+
+import net.srt.api.ServerNames;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectDto;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectRecordDto;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataDto;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataPropertyDto;
+import net.srt.framework.common.utils.Result;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @ClassName DataAccessApi
+ * @Author zrx
+ * @Date 2022/10/26 11:39
+ */
+@FeignClient(name = ServerNames.DATA_GOVERNANCE_NAME, contextId = "data-governance-metadata-collect")
+public interface DataMetadataCollectApi {
+ /**
+ * 根据id获取采集任务
+ */
+ @GetMapping(value = "api/data/governance/metadata-collect/{id}")
+ Result getById(@PathVariable Long id);
+
+ /**
+ * 根据id获取采集任务
+ */
+ @PostMapping(value = "api/data/governance/metadata-collect-record")
+ DataGovernanceMetadataCollectRecordDto addCollectRecord(@RequestBody DataGovernanceMetadataCollectRecordDto collectRecordDto);
+
+ /**
+ * 根据id获取采集任务
+ */
+ @PutMapping(value = "api/data/governance/metadata-collect-record")
+ void upCollectRecord(@RequestBody DataGovernanceMetadataCollectRecordDto collectRecordDto);
+
+ /**
+ * 根据父级id和数据源id获取
+ */
+ @GetMapping(value = "api/data/governance/metadata/datasource")
+ Result getByParentIdAndDatasourceId(@RequestParam Long parnetId, @RequestParam Long datasourceId);
+
+ /**
+ * 根据父级id和数据源id获取
+ */
+ @GetMapping(value = "api/data/governance/metadata/info")
+ Result getMetadataById(@RequestParam Long metadataId);
+
+ /**
+ * 根据父级id和code以及modelId获取
+ */
+ @GetMapping(value = "api/data/governance/metadata/child-info")
+ Result getByParentIdAndOtherInfo(@RequestParam Long parnetId, @RequestParam Long datasourceId, @RequestParam String code, @RequestParam Long metamodelId);
+
+ /**
+ * 添加元数据
+ */
+ @PostMapping(value = "api/data/governance/metadata")
+ DataGovernanceMetadataDto addOrUpdateMetadata(@RequestBody DataGovernanceMetadataDto metadataDto);
+
+
+ /**
+ * 获取元数据属性
+ */
+ @GetMapping(value = "api/data/governance/metadata-property")
+ Result getByPropertyIdAndMetadataId(@RequestParam Long propertyId, @RequestParam Long metadataId);
+
+ /**
+ * 添加元数据属性
+ */
+ @PostMapping(value = "api/data/governance/metadata-prpperty")
+ void addOrUpdateMetadataProperty(@RequestBody DataGovernanceMetadataPropertyDto metadataPropertyDto);
+
+ @GetMapping(value = "api/data/governance/metadata/list")
+ Result> listParentIdAndDatasourceId(@RequestParam Long parentId, @RequestParam Long datasourceId, @RequestParam Long metamodelId);
+
+ @DeleteMapping(value = "api/data/governance/metadata")
+ void deleteMetadata(@RequestParam Long id);
+
+ @GetMapping(value = "api/data/governance/by-datasourceId")
+ Result getByDatasourceId(Long id);
+
+ @GetMapping(value = "api/data/governance/metadata/by-datasourceId")
+ Result getMetadataByDatasourceId(Long id);
+
+}
diff --git a/srt-cloud-data-governance/pom.xml b/srt-cloud-data-governance/pom.xml
index 068eff2..bc88a35 100644
--- a/srt-cloud-data-governance/pom.xml
+++ b/srt-cloud-data-governance/pom.xml
@@ -73,6 +73,10 @@
io.minio
minio
+
+ org.quartz-scheduler
+ quartz
+
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java b/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
index 00deed4..65f1dee 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/GovernanceApplication.java
@@ -1,5 +1,6 @@
package net.srt;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
index 5ea19c6..e5c7840 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/DatastandardController.java
@@ -6,8 +6,9 @@ import net.srt.convert.DatastandardConvert;
import net.srt.entity.DatastandardEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
-import net.srt.query.StandardManagementQuery;
+import net.srt.query.DatastandrdQuery;
import net.srt.service.DatastandardService;
+import net.srt.vo.DatastandardVo;
import net.srt.vo.MetamodelPropertyVO;
import net.srt.vo.StandardManagementVo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,15 +34,15 @@ public class DatastandardController {
@GetMapping("page")
@Operation(summary = "分页")
- public Result> page(@Valid StandardManagementQuery query){
- PageResult page = datastandardService.page(query);
+ public Result> page(@Valid DatastandrdQuery query){
+ PageResult page = datastandardService.page(query);
return Result.ok(page);
}
@GetMapping("{id}")
@Operation(summary ="信息")
- public Result get(@PathVariable("id") Integer categoryId) {
+ public Result get(@PathVariable("id") Integer categoryId) {
DatastandardEntity entity = datastandardService.getById(categoryId);
return Result.ok(DatastandardConvert.INSTANCE.convert(entity));
}
@@ -57,15 +58,15 @@ public class DatastandardController {
@PostMapping
@Operation(summary = "保存")
- public Result save(@RequestBody DatastandardEntity entity) {
- datastandardService.save(entity);
+ public Result save(@RequestBody DatastandardVo vo) {
+ datastandardService.save(vo);
return Result.ok();
}
@PutMapping
@Operation(summary = "修改")
- public Result update(@RequestBody @Valid DatastandardEntity datastandardEntity){
- datastandardService.update1(datastandardEntity);
+ public Result update(@RequestBody @Valid DatastandardVo vo){
+ datastandardService.update1(vo);
return Result.ok();
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
index c5ea661..1b59370 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataCollectController.java
@@ -3,17 +3,18 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
+import net.srt.convert.MetadataCollectConvert;
+import net.srt.entity.MetadataCollectEntity;
import net.srt.entity.MetadataCollectQuery;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
import net.srt.service.MetadataCollectService;
import net.srt.vo.MetadataCollectVO;
import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
@RestController
@RequestMapping("metadata-collect")
@@ -24,8 +25,66 @@ public class MetadataCollectController {
@GetMapping("page")
@Operation(summary = "分页")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:page')")
public Result> page(@Valid MetadataCollectQuery query){
PageResult page = metadataCollectService.page(query);
return Result.ok(page);
}
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:info')")
+ public Result get(@PathVariable("id") Long id){
+ MetadataCollectEntity entity = metadataCollectService.getById(id);
+ return Result.ok(MetadataCollectConvert.INSTANCE.convert(entity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:save')")
+ public Result save(@RequestBody MetadataCollectVO vo){
+ metadataCollectService.save(vo);
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:update')")
+ public Result update(@RequestBody @Valid MetadataCollectVO vo){
+ metadataCollectService.update(vo);
+ return Result.ok();
+ }
+
+ @PutMapping("/release/{id}")
+ @Operation(summary = "发布")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:release')")
+ public Result release(@PathVariable Long id){
+ metadataCollectService.release(id);
+ return Result.ok();
+ }
+
+ @PutMapping("/cancel/{id}")
+ @Operation(summary = "取消发布")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:cancel')")
+ public Result cancel(@PathVariable Long id){
+ metadataCollectService.cancel(id);
+ return Result.ok();
+ }
+
+ @PostMapping("hand-run/{id}")
+ @Operation(summary = "手动执行")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:hand-run')")
+ public Result handRun(@PathVariable Long id){
+ metadataCollectService.handRun(id);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ @PreAuthorize("hasAuthority('data-governance:metadata-collect:delete')")
+ public Result delete(@RequestBody List idList){
+ metadataCollectService.delete(idList);
+ return Result.ok();
+ }
+
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java
new file mode 100644
index 0000000..916b7a8
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/MetadataController.java
@@ -0,0 +1,104 @@
+package net.srt.controller;
+
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.framework.common.cache.bean.Neo4jInfo;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.service.MetadataService;
+import net.srt.vo.MetadataVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.controller
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 14:24
+ */
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.service.MetadataService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("metadata")
+@Tag(name = "数据治理-元数据")
+@AllArgsConstructor
+public class MetadataController {
+ private final MetadataService metadataService;
+ @GetMapping("/list-chlid")
+ @Operation(summary = "根据父类id获取信息")
+ public Result> listByPatenId(@RequestParam Long parentId){
+ List list=metadataService.listByPatenId(parentId);
+ return Result.ok(list);
+ }
+ @GetMapping("/list-floder")
+ @Operation(summary = "获取目录树")
+ public Result> listFloder(){
+ List list=metadataService.listFloder();
+ return Result.ok(list);
+ }
+ @GetMapping("/list-db")
+ @Operation(summary = "获取库表目录树")
+ public Result> listDb() {
+ List list=metadataService.listDb();
+ return Result.ok(list);
+ }
+
+ @GetMapping("/list-keyword")
+ @Operation(summary = "模糊查询")
+ public Result> listKeyword( String keyword) {
+ List list=metadataService.listKeyword(keyword);
+ return Result.ok(list);
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ return Result.ok(metadataService.get(id));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody MetadataVo vo){
+ metadataService.save(vo);
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid MetadataVo vo){
+ metadataService.update(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping("{id}")
+ @Operation(summary = "删除")
+ public Result delete(@PathVariable Long id){
+ metadataService.delete(id);
+ return Result.ok();
+ }
+
+ @PostMapping("{neo4j}")
+ @Operation(summary = "更新neo4路径")
+ public Result updateNeo4j(@PathVariable Neo4jInfo neo4jInfo){
+ metadataService.updateNeo4j(neo4jInfo);
+ return Result.ok();
+ }
+
+ @GetMapping("/neo4j")
+ @Operation(summary = "获取neo4的路径")
+ public Result getNeo4j(){
+ return Result.ok(metadataService.getNeo4j());
+ }
+
+
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigCategoryController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigCategoryController.java
new file mode 100644
index 0000000..3452ce2
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigCategoryController.java
@@ -0,0 +1,65 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.convert.QualityConfigCategoryConvert;
+import net.srt.entity.QualityConfigCategoryEntity;
+import net.srt.framework.common.utils.Result;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.service.QualityConfigCategoryService;
+import net.srt.vo.QualityConfigCategoryVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.controller
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 13:31
+ */
+@RestController
+@RequestMapping("/quality-config-category")
+@AllArgsConstructor
+@Tag(name = "数据治理-规则配置")
+public class QualityConfigCategoryController {
+ private final QualityConfigCategoryService qualityConfigCategoryService;
+
+ @GetMapping("/list-tree")
+ @Operation(summary = "获取规则配置数")
+ public Result> listTree(){
+ List list=qualityConfigCategoryService.listTree();
+ return Result.ok(list);
+ }
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ QualityConfigCategoryEntity entity=qualityConfigCategoryService.getById(id);
+ return Result.ok(QualityConfigCategoryConvert.INSTANCE.convert(entity));
+ }
+
+ @GetMapping()
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid QualityConfigCategoryVo vo){
+ qualityConfigCategoryService.update(vo);
+ return Result.ok();
+ }
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody QualityConfigCategoryVo vo){
+ qualityConfigCategoryService.save(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping("{id}")
+ @Operation(summary = "删除")
+ public Result delete(@PathVariable Long id){
+ qualityConfigCategoryService.delete(id);
+ return Result.ok();
+ }
+
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java
new file mode 100644
index 0000000..1bc216a
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityConfigController.java
@@ -0,0 +1,83 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.QualityConfigQuery;
+import net.srt.service.QualityConfigService;
+import net.srt.vo.QualityConfigVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.controller
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:31
+ */
+@RestController
+@RequestMapping("/quality-config")
+@Tag(name = "数据治理-质量规则配置")
+@AllArgsConstructor
+public class QualityConfigController {
+ private final QualityConfigService qualityConfigService;
+
+ @GetMapping("page")
+ @Operation(summary = "分页")
+ public Result> page(@Valid QualityConfigQuery query){
+ PageResult page= qualityConfigService.page(query);
+ return Result.ok(page);
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ return Result.ok(qualityConfigService.get(id));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody QualityConfigVo vo){
+ qualityConfigService.save(vo);
+ return Result.ok();
+ }
+ @PutMapping
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid QualityConfigVo vo){
+ qualityConfigService.update(vo);
+ return Result.ok();
+ }
+
+ @PutMapping("/online/{id}")
+ @Operation(summary = "启用")
+ public Result online(@PathVariable Long id){
+ qualityConfigService.online(id);
+ return Result.ok();
+ }
+
+ @PutMapping("/offline/{id}")
+ @Operation(summary = "关闭")
+ public Result offline(@PathVariable Long id){
+ qualityConfigService.offline(id);
+ return Result.ok();
+ }
+
+ @PutMapping("/hand-run/{id}")
+ @Operation(summary = "手动执行")
+ public Result handRun(@PathVariable Long id){
+ qualityConfigService.handRun(id);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idList){
+ qualityConfigService.delete(idList);
+ return Result.ok();
+ }
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java
new file mode 100644
index 0000000..906952e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskColumnController.java
@@ -0,0 +1,40 @@
+package net.srt.controller;
+
+import cn.hutool.db.Page;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.QualityTaskColumnQuery;
+import net.srt.service.QualityTaskColumnService;
+import net.srt.vo.QualityTaskColumnVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.controller
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:19
+ */
+@RestController
+@RequestMapping("/quality-task-column")
+@Tag(name = "数据治理-列检测模块")
+@AllArgsConstructor
+public class QualityTaskColumnController {
+ private final QualityTaskColumnService qualityTaskColumnService;
+ @GetMapping("/page")
+ public Result> page(@Valid QualityTaskColumnQuery query){
+ PageResult page = qualityTaskColumnService.page(query);
+ return Result.ok(page);
+ }
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idlist){
+ qualityTaskColumnService.delete(idlist);
+ return Result.ok();
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java
index 27ac31a..f066a06 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java
@@ -3,16 +3,17 @@ package net.srt.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
+import net.srt.convert.QualityTaskTableConvert;
+import net.srt.entity.QualityTaskTableEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.common.utils.Result;
import net.srt.query.QualityTableQuery;
import net.srt.service.QualityTaskTableService;
import net.srt.vo.QualityTaskTableVo;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
/**
* @BelongsProject: srt_cloud
@@ -32,4 +33,16 @@ public class QualityTaskTableController {
PageResult pageResult =qualityTaskTableService.page(query);
return Result.ok(pageResult);
}
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ QualityTaskTableEntity entity=qualityTaskTableService.getById(id);
+ return Result.ok(QualityTaskTableConvert.INSTANCE.convert(entity));
+ }
+ @DeleteMapping
+ @Operation(summary = "删除")
+ private Result delete(@RequestBody List idlist){
+ qualityTaskTableService.delete(idlist);
+ return Result.ok();
+ }
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
index 954d424..b18e791 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardController.java
@@ -12,6 +12,8 @@ import net.srt.vo.StandardManagementVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -21,46 +23,39 @@ import java.util.List;
* @Date: 2023-12-20 11:30
*/
@RestController
-@RequestMapping("/standard-category")
-@Tag(name = "标准管理列表")
+@RequestMapping("standard-category")
+@Tag(name = "数据开发-调度中心目录")
public class StandardController {
@Autowired
- private StandardService standardService;
- @GetMapping("list-tree")
+ StandardService standardService;
+
+ @GetMapping("/list-tree")
@Operation(summary = "查询文件分组树")
public Result> listTree() {
return Result.ok(standardService.listTree());
}
- @GetMapping("/{id}")
- @Operation(summary = "根据id获取")
- public Result getById(@PathVariable Integer id) {
- StandardEntity entity = standardService.getById(id);
- TreeNodeVo nodeVo = BeanUtil.copyProperties(entity, TreeNodeVo::new);
- nodeVo.setLabel(entity.getName());
- nodeVo.setParentPath(entity.getPath().contains("/") ? entity.getPath().substring(0, entity.getPath().lastIndexOf("/")) : null);
- return Result.ok(nodeVo);
- }
-
@PostMapping
@Operation(summary = "保存")
- public Result save(@RequestBody StandardEntity standardEntity){
- standardService.save1(standardEntity);
+ public Result save(@RequestBody StandardManagementVo vo) {
+ standardService.save1(vo);
return Result.ok();
}
@PutMapping
@Operation(summary = "修改")
- public Result update(@RequestBody StandardEntity standardEntity){
- standardService.update1(standardEntity);
- return Result.ok();
- }
- @DeleteMapping("/id")
- @Operation(summary = "删除")
- public Result del(@PathVariable Long id){
- standardService.del(id);
+ public Result update(@RequestBody StandardManagementVo vo) {
+ standardService.update1(vo);
return Result.ok();
}
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(Long id) {
+ standardService.delete(id);
+ return Result.ok();
+ }
+
+
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardStopwatchController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardStopwatchController.java
new file mode 100644
index 0000000..8ce3bd2
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/StandardStopwatchController.java
@@ -0,0 +1,70 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import net.srt.convert.StandardStopwatchConvert;
+import net.srt.entity.StandardStopwatchEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.StandardStopwatchQuery;
+import net.srt.service.StandardStopwatchService;
+import net.srt.vo.StandardStopwatchVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @ClassName : StandardStopwatchController
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:32
+ */
+@RestController
+@RequestMapping("/standard-code")
+@Tag(name="数据治理-标准码表数据")
+@AllArgsConstructor
+public class StandardStopwatchController {
+ private final StandardStopwatchService standardStopwatchService;
+
+ @GetMapping("page")
+ @Operation(summary = "分页")
+ public Result> page(@Valid StandardStopwatchQuery query){
+ PageResult page = standardStopwatchService.page(query);
+
+ return Result.ok(page);
+ }
+
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ StandardStopwatchEntity entity = standardStopwatchService.getById(id);
+
+ return Result.ok(StandardStopwatchConvert.INSTANCE.convert(entity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody StandardStopwatchVo vo){
+ standardStopwatchService.save(vo);
+
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid StandardStopwatchVo vo){
+ standardStopwatchService.update(vo);
+
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idList){
+ standardStopwatchService.delete(idList);
+
+ return Result.ok();
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
index 374ff18..1f168b5 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/DatastandardConvert.java
@@ -1,6 +1,7 @@
package net.srt.convert;
import net.srt.entity.DatastandardEntity;
+import net.srt.vo.DatastandardVo;
import net.srt.vo.StandardManagementVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -19,8 +20,10 @@ public interface DatastandardConvert {
DatastandardConvert INSTANCE = Mappers.getMapper(DatastandardConvert.class);
- List convertList(List list);
+ List convertList(List list);
- StandardManagementVo convert(DatastandardEntity entity);
+
+ DatastandardVo convert(DatastandardEntity entity);
+ DatastandardEntity convert(DatastandardVo entity);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java
new file mode 100644
index 0000000..86c6cc9
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataConvert.java
@@ -0,0 +1,22 @@
+package net.srt.convert;
+
+import net.srt.entity.MetadataEntity;
+import net.srt.vo.MetadataVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.convert
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 15:42
+ */
+@Mapper
+public interface MetadataConvert {
+
+ MetadataConvert INSTANCE = Mappers.getMapper(MetadataConvert.class);
+
+ MetadataVo convert(MetadataEntity entity);
+
+ MetadataEntity convert(MetadataVo vo);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigCategoryConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigCategoryConvert.java
new file mode 100644
index 0000000..813e7f9
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigCategoryConvert.java
@@ -0,0 +1,20 @@
+package net.srt.convert;
+
+import net.srt.entity.QualityConfigCategoryEntity;
+import net.srt.vo.QualityConfigCategoryVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.convert
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 10:27
+ */
+@Mapper
+public interface QualityConfigCategoryConvert {
+ QualityConfigCategoryConvert INSTANCE = Mappers.getMapper(QualityConfigCategoryConvert.class);
+
+ QualityConfigCategoryEntity convert(QualityConfigCategoryVo vo);
+ QualityConfigCategoryVo convert(QualityConfigCategoryEntity entity);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java
new file mode 100644
index 0000000..9e07e73
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityConfigConvert.java
@@ -0,0 +1,25 @@
+package net.srt.convert;
+
+import net.srt.entity.QualityConfigEntity;
+import net.srt.vo.QualityConfigVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.convert
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:57
+ */
+@Mapper
+public interface QualityConfigConvert {
+ QualityConfigConvert INSTANCE = Mappers.getMapper(QualityConfigConvert.class);
+
+ QualityConfigVo convert(QualityConfigEntity entity);
+
+ QualityConfigEntity convert(QualityConfigVo vo);
+
+ List convertList(List list);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java
new file mode 100644
index 0000000..a42fde4
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskColumnConvert.java
@@ -0,0 +1,28 @@
+package net.srt.convert;
+
+import net.srt.entity.QualityQueryEntity;
+import net.srt.entity.QualityTaskColumnEntity;
+import net.srt.vo.QualityRuleVo;
+import net.srt.vo.QualityTaskColumnVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.convert
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:59
+ */
+@Mapper
+public interface QualityTaskColumnConvert {
+
+
+ QualityTaskColumnConvert INSTANCE = Mappers.getMapper(QualityTaskColumnConvert.class);
+
+
+ List convertList(List list);
+
+ QualityTaskColumnEntity conver(QualityTaskColumnVo vo);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java
index a8fb7c1..010b880 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java
@@ -18,4 +18,6 @@ public interface QualityTaskTableConvert {
QualityTaskTableConvert INSTANCE = Mappers.getMapper(QualityTaskTableConvert.class);
List convertList(List list);
+
+ QualityTaskTableVo convert(QualityTaskTableEntity entity);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardConvert.java
new file mode 100644
index 0000000..3cb7cb9
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardConvert.java
@@ -0,0 +1,26 @@
+package net.srt.convert;
+
+import net.srt.entity.StandardEntity;
+import net.srt.vo.StandardManagementVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @ClassName : StandardConvert
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 12:14
+ */
+@Mapper
+public interface StandardConvert {
+
+ StandardConvert INSTANCE = Mappers.getMapper(StandardConvert.class);
+
+ StandardEntity convert(StandardManagementVo vo);
+
+ StandardManagementVo convert(StandardEntity entity);
+
+ List convertList(List list);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardStopwatchConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardStopwatchConvert.java
new file mode 100644
index 0000000..367d57e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/StandardStopwatchConvert.java
@@ -0,0 +1,25 @@
+package net.srt.convert;
+
+import net.srt.entity.StandardStopwatchEntity;
+import net.srt.vo.StandardStopwatchVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @ClassName : StandardStopwatchConvert
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:33
+ */
+@Mapper
+public interface StandardStopwatchConvert {
+ StandardStopwatchConvert INSTANCE = Mappers.getMapper(StandardStopwatchConvert.class);
+
+ StandardStopwatchEntity convert(StandardStopwatchVo vo);
+
+ StandardStopwatchVo convert(StandardStopwatchEntity entity);
+
+ List convertList(List list);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataDao.java
new file mode 100644
index 0000000..9a7e8d1
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataDao.java
@@ -0,0 +1,15 @@
+package net.srt.dao;
+
+import net.srt.entity.MetadataEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.dao
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 14:39
+ */
+@Mapper
+public interface MetadataDao extends BaseDao {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java
new file mode 100644
index 0000000..5253481
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/MetadataPropertyDao.java
@@ -0,0 +1,20 @@
+package net.srt.dao;
+
+import net.srt.entity.MetadataPropertyEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import net.srt.vo.MetamodelPropertyVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.dao
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 15:49
+ */
+@Mapper
+public interface MetadataPropertyDao extends BaseDao {
+ List listPropertyById(@Param("id") Long id, Long metamodelId);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigCategoryDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigCategoryDao.java
new file mode 100644
index 0000000..ba28732
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigCategoryDao.java
@@ -0,0 +1,15 @@
+package net.srt.dao;
+
+import net.srt.entity.QualityConfigCategoryEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.dao
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 9:47
+ */
+@Mapper
+public interface QualityConfigCategoryDao extends BaseDao {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigDao.java
new file mode 100644
index 0000000..5a5bc89
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityConfigDao.java
@@ -0,0 +1,15 @@
+package net.srt.dao;
+
+import net.srt.entity.QualityConfigEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.dao
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 11:36
+ */
+@Mapper
+public interface QualityConfigDao extends BaseDao {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
index a9bbbc6..22aa102 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java
@@ -1,10 +1,17 @@
package net.srt.dao;
+import net.srt.entity.QualityTaskColumnEntity;
+import net.srt.entity.QualityTaskEntity;
+import net.srt.entity.QualityTaskTableEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
/**
* @BelongsProject: srt_cloud
* @BelongsPackage: net.srt.dao
* @Author: jpz
* @CreateTime: 2023/12/22 21:37
*/
-public interface QualityTaskColumnDao {
+@Mapper
+public interface QualityTaskColumnDao extends BaseDao {
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardStopwatchDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardStopwatchDao.java
new file mode 100644
index 0000000..018f5a0
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/StandardStopwatchDao.java
@@ -0,0 +1,17 @@
+package net.srt.dao;
+
+import net.srt.entity.StandardStopwatchEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @ClassName : StandardStopwatchDao
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:33
+ */
+@Mapper
+public interface StandardStopwatchDao extends BaseDao {
+ void updateCodeNumByStandardId(@Param("standardId") Long standardId);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatagovernanceEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/DatagovernanceEntity.java
deleted file mode 100644
index c034db7..0000000
--- a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatagovernanceEntity.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.srt.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.experimental.SuperBuilder;
-import net.srt.framework.mybatis.entity.BaseEntity;
-
-/**
- * 文件分组表
- *
- * @author zrx 985134801@qq.com
- * @since 1.0.0 2022-11-12
- */
-@EqualsAndHashCode(callSuper = true)
-@SuperBuilder
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@TableName("data_file_category")
-public class DatagovernanceEntity extends BaseEntity {
-
- /**
- * 父级id(顶级为0)
- */
- private Long parentId;
-
- /**
- * 分组名称
- */
- private String name;
-
- /**
- * 分组序号
- */
- private Integer orderNo;
-
- /**
- * 描述
- */
- private String description;
-
- /**
- * 分组路径
- */
- private String path;
-
- private Integer type;
-
- /**
- * 项目id
- */
- private Long projectId;
-
-}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
index cf01e07..8bf82db 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/DatastandardEntity.java
@@ -17,8 +17,6 @@ import net.srt.framework.mybatis.entity.BaseEntity;
@TableName("standard_management")
public class DatastandardEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
- @TableId("id")
- private Long id;
private Integer categoryId;
private String engName;
private String cnName;
@@ -30,10 +28,8 @@ public class DatastandardEntity extends BaseEntity {
private Integer standardCodeId;
private Integer type;
private String note;
- private Integer projectId;
+ private Long projectId;
private Integer status;
- private Integer version;
- private Integer deleted;
private Integer ifStandardRel;
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataEntity.java
new file mode 100644
index 0000000..f345f72
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataEntity.java
@@ -0,0 +1,74 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.entity
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 14:36
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_governance_metadata")
+public class MetadataEntity extends BaseEntity {
+ /**
+ * 父级id(默认0为顶级)
+ */
+ private Long parentId;
+
+ /**
+ * 树状节点的路径
+ */
+ private String path;
+
+ /**
+ * 节点名称
+ */
+ private String name;
+
+ /**
+ * 节点英文名称
+ */
+ private String code;
+
+ private Integer ifLeaf;
+ /**
+ * 对应的元模型id
+ */
+ private Long metamodelId;
+
+ private String icon;
+
+ /**
+ * 详情
+ */
+ private String description;
+
+ /**
+ * 数据库类型(1-数据库 2-中台库)
+ */
+ private Integer dbType;
+
+ /**
+ * 如果是外部系统接入的库表,需要此字段
+ */
+ private Long datasourceId;
+
+ /**
+ * 采集任务id
+ */
+ private Long collectTaskId;
+
+ /**
+ * 项目id(租户id)
+ */
+ private Long projectId;
+
+
+ private Integer orderNo;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java
new file mode 100644
index 0000000..7131f44
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataPropertyEntity.java
@@ -0,0 +1,38 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.entity
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 15:50
+ */
+@EqualsAndHashCode(callSuper=false)
+@Data
+@TableName("data_governance_metadata_property")
+public class MetadataPropertyEntity extends BaseEntity {
+ /**
+ * 属性id
+ */
+ private Long metamodelPropertyId;
+
+ /**
+ * 元数据id
+ */
+ private Long metadataId;
+
+ /**
+ * 属性值
+ */
+ private String property;
+
+ /**
+ * 项目id(租户id)
+ */
+ private Long projectId;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigCategoryEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigCategoryEntity.java
new file mode 100644
index 0000000..724f9df
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigCategoryEntity.java
@@ -0,0 +1,53 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.entity
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 9:20
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_governance_quality_config_category")
+public class QualityConfigCategoryEntity extends BaseEntity {
+ /**
+ * 0-普通目录 1-规则配置目录
+ */
+ private Integer type;
+
+ /**
+ * 父级id(顶级为0)
+ */
+ private Long parentId;
+
+ /**
+ * 目录名称
+ */
+ private String name;
+
+ /**
+ * 目录路径
+ */
+ private String path;
+
+ /**
+ * 序号
+ */
+ private Integer orderNo;
+
+ /**
+ * 描述
+ */
+ private String note;
+
+ /**
+ * 项目(租户)id
+ */
+ private Long projectId;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigEntity.java
new file mode 100644
index 0000000..6cb64ae
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityConfigEntity.java
@@ -0,0 +1,73 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.api.module.data.governance.dto.quality.QualityConfigParam;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.entity
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 11:32
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName(value = "data_governance_quality_config",autoResultMap = true)
+public class QualityConfigEntity extends BaseEntity {
+ /**
+ * 名称
+ */
+ private String name;
+
+ private Long categoryId;
+
+ /**
+ * 规则id
+ */
+ private Integer ruleId;
+
+ /**
+ * 个性化参数json
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private QualityConfigParam param;
+
+ /**
+ * 元数据字段列表
+ */
+ @TableField(typeHandler = JacksonTypeHandler.class)
+ private List metadataIds;
+
+ /**
+ * 状态,1-启用,0-关闭
+ */
+ private Integer status;
+
+ /**
+ * 任务类型,1-一次性任务,2-周期任务
+ */
+ private Integer taskType;
+
+ /**
+ * cron表达式
+ */
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
+ private String cron;
+
+ /**
+ * 备注
+ */
+ private String note;
+
+ /**
+ * 项目id
+ */
+ private Long projectId;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskColumnEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskColumnEntity.java
new file mode 100644
index 0000000..cfcd23e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskColumnEntity.java
@@ -0,0 +1,61 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.entity
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:32
+ */
+@EqualsAndHashCode(callSuper=false)
+@Data
+@TableName("data_governance_quality_task_column")
+public class QualityTaskColumnEntity extends BaseEntity {
+ /**
+ * 质量任务id
+ */
+ private Long qualityTaskId;
+
+ /**
+ * 表检测记录id
+ */
+ private Long qualityTaskTableId;
+
+ /**
+ * 被检测的数据行
+ */
+ private String checkRow;
+
+ /**
+ * 未通过详情
+ */
+ private String notPassInfo;
+
+ /**
+ * 检测时间
+ */
+ private Date checkTime;
+
+ /**
+ * 0-不通过 1-通过
+ */
+ private Integer checkResult;
+
+ /**
+ * 项目id
+ */
+ private Long projectId;
+
+ private Integer deleted;
+
+
+
+}
+
+
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardEntity.java
index b13e9a4..e1dd20e 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardEntity.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardEntity.java
@@ -15,11 +15,11 @@ import net.srt.framework.mybatis.entity.BaseEntity;
* @since 1.0.0 2022-11-12
*/
@EqualsAndHashCode(callSuper = true)
-@SuperBuilder
@Data
+@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
-@TableName("data_file_category")
+@TableName(value = "data_dispatch_catalogue", autoResultMap = true)
public class StandardEntity extends BaseEntity {
/**
@@ -53,5 +53,4 @@ public class StandardEntity extends BaseEntity {
* 项目id
*/
private Long projectId;
-
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardStopwatchEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardStopwatchEntity.java
new file mode 100644
index 0000000..bbc0670
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/StandardStopwatchEntity.java
@@ -0,0 +1,37 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+/**
+ * @ClassName : StandardStopwatchEntity
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:30
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_standard_stopwatch")
+public class StandardStopwatchEntity extends BaseEntity {
+
+ /**
+ * 标准码表id
+ */
+ private Long standardId;
+
+ /**
+ * 码表数据的id
+ */
+ private String dataId;
+
+ /**
+ * 码表数据的name
+ */
+ private String dataName;
+
+
+ private Long projectId;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/StandardManagementQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/DatastandrdQuery.java
similarity index 90%
rename from srt-cloud-data-governance/src/main/java/net/srt/query/StandardManagementQuery.java
rename to srt-cloud-data-governance/src/main/java/net/srt/query/DatastandrdQuery.java
index 98b9180..7c0833d 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/query/StandardManagementQuery.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/query/DatastandrdQuery.java
@@ -14,7 +14,7 @@ import net.srt.framework.common.query.Query;
@Data
@EqualsAndHashCode(callSuper = false)
@Schema (description = "标准管理列表")
-public class StandardManagementQuery extends Query {
+public class DatastandrdQuery extends Query {
private Integer categoryId;
private String t;
private String cnName;
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/QualityConfigQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityConfigQuery.java
new file mode 100644
index 0000000..5055b32
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityConfigQuery.java
@@ -0,0 +1,22 @@
+package net.srt.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.common.query.Query;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.query
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:39
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(description = "数据治理-质量规则配置查询")
+public class QualityConfigQuery extends Query {
+ private Long categoryId;
+ private String name;
+ private Long status;
+ private Long taskType;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskColumnQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskColumnQuery.java
new file mode 100644
index 0000000..0e8f3d8
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskColumnQuery.java
@@ -0,0 +1,20 @@
+package net.srt.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.common.query.Query;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.query
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:28
+ */
+@Data
+@EqualsAndHashCode(callSuper =false)
+@Schema(description = "数据治理-字段检测记录查询")
+public class QualityTaskColumnQuery extends Query {
+ private Long qualityTaskTableId;
+ private Integer checkResult;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/StandardStopwatchQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/StandardStopwatchQuery.java
new file mode 100644
index 0000000..24ce0b3
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/query/StandardStopwatchQuery.java
@@ -0,0 +1,21 @@
+package net.srt.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.common.query.Query;
+
+/**
+ * @ClassName : StandardStopwatchQuery
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(description = "数据治理-标准码表数据查询")
+public class StandardStopwatchQuery extends Query {
+ private Integer standardId;
+ private String dataId;
+ private String dataName;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/DatastandardService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/DatastandardService.java
index 300930a..22a442f 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/DatastandardService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/DatastandardService.java
@@ -3,7 +3,8 @@ package net.srt.service;
import net.srt.entity.DatastandardEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.BaseService;
-import net.srt.query.StandardManagementQuery;
+import net.srt.query.DatastandrdQuery;
+import net.srt.vo.DatastandardVo;
import net.srt.vo.StandardManagementVo;
import org.mybatis.spring.annotation.MapperScan;
@@ -17,11 +18,13 @@ import java.util.List;
*/
@MapperScan("net.srt.service.DatastandardService")
public interface DatastandardService extends BaseService {
- PageResult page(StandardManagementQuery query);
+ PageResult page(DatastandrdQuery query);
List getTableCode();
- void update1(DatastandardEntity datastandardEntity);
-
void delete(List idList);
+
+ void update1(DatastandardVo entity);
+
+ void save(DatastandardVo vo);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
index 992d16f..a3dccc5 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataCollectService.java
@@ -6,7 +6,21 @@ import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.BaseService;
import net.srt.vo.MetadataCollectVO;
+import java.util.List;
+
public interface MetadataCollectService extends BaseService {
PageResult page(MetadataCollectQuery query);
+
+ void save(MetadataCollectVO vo);
+
+ void update(MetadataCollectVO vo);
+
+ void cancel(Long id);
+
+ void release(Long id);
+
+ void handRun(Long id);
+
+ void delete(List idList);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java
new file mode 100644
index 0000000..4273356
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/MetadataService.java
@@ -0,0 +1,38 @@
+package net.srt.service;
+
+import net.srt.entity.MetadataEntity;
+import net.srt.framework.common.cache.bean.Neo4jInfo;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.MetadataVo;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 14:35
+ */
+
+public interface MetadataService extends BaseService {
+ List listByPatenId(Long parentId);
+
+ List listFloder();
+
+ List listDb();
+
+ List listKeyword(String keyword);
+
+ MetadataVo get(Long id);
+
+ void save(MetadataVo vo);
+
+ void update(MetadataVo vo);
+
+ void delete(Long id);
+
+ void updateNeo4j(Neo4jInfo neo4jInfo);
+
+ Neo4jInfo getNeo4j();
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigCategoryService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigCategoryService.java
new file mode 100644
index 0000000..e288266
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigCategoryService.java
@@ -0,0 +1,25 @@
+package net.srt.service;
+
+import net.srt.entity.QualityConfigCategoryEntity;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.QualityConfigCategoryVo;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 9:19
+ */
+
+public interface QualityConfigCategoryService extends BaseService {
+ List listTree();
+
+ void update(QualityConfigCategoryVo vo);
+
+ void save(QualityConfigCategoryVo vo);
+
+ void delete(Long id);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java
new file mode 100644
index 0000000..553e11e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityConfigService.java
@@ -0,0 +1,34 @@
+package net.srt.service;
+
+import net.srt.entity.QualityConfigEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.QualityConfigQuery;
+import net.srt.vo.QualityConfigVo;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:33
+ */
+public interface QualityConfigService extends BaseService {
+ PageResult page(QualityConfigQuery query);
+
+ QualityConfigVo get(Long id);
+
+ void save(QualityConfigVo vo);
+
+ void update(QualityConfigVo vo);
+
+ void online(Long id);
+
+ void offline(Long id);
+
+ void handRun(Long id);
+
+
+ void delete(List idList);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskColumnService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskColumnService.java
new file mode 100644
index 0000000..a0f679a
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskColumnService.java
@@ -0,0 +1,21 @@
+package net.srt.service;
+
+import net.srt.entity.QualityTaskColumnEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.QualityTaskColumnQuery;
+import net.srt.vo.QualityTaskColumnVo;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:23
+ */
+public interface QualityTaskColumnService extends BaseService {
+ PageResult page(QualityTaskColumnQuery query);
+
+ void delete(List idlist);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java
index ac62c78..cc8e390 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java
@@ -6,6 +6,8 @@ import net.srt.framework.mybatis.service.BaseService;
import net.srt.query.QualityTableQuery;
import net.srt.vo.QualityTaskTableVo;
+import java.util.List;
+
/**
* @BelongsProject: srt_cloud
* @BelongsPackage: net.srt.service
@@ -14,4 +16,6 @@ import net.srt.vo.QualityTaskTableVo;
*/
public interface QualityTaskTableService extends BaseService {
PageResult page(QualityTableQuery query);
+
+ void delete(List idlist);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/StandardService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/StandardService.java
index f099771..85fc233 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/StandardService.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/StandardService.java
@@ -3,6 +3,7 @@ package net.srt.service;
import net.srt.entity.StandardEntity;
import net.srt.framework.common.utils.TreeNodeVo;
import net.srt.framework.mybatis.service.BaseService;
+import net.srt.vo.StandardManagementVo;
import java.util.List;
@@ -14,12 +15,12 @@ import java.util.List;
*/
public interface StandardService extends BaseService {
+
List listTree();
- void save1(StandardEntity standardEntity);
+ void save1(StandardManagementVo vo);
- void update1(StandardEntity standardEntity);
-
- void del(Long id);
+ void update1(StandardManagementVo vo);
+ void delete(Long id);
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/StandardStopwatchService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/StandardStopwatchService.java
new file mode 100644
index 0000000..add6057
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/StandardStopwatchService.java
@@ -0,0 +1,25 @@
+package net.srt.service;
+
+import net.srt.entity.StandardStopwatchEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.StandardStopwatchQuery;
+import net.srt.vo.StandardStopwatchVo;
+
+import java.util.List;
+
+/**
+ * @ClassName : StandardStopwatchService
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:32
+ */
+public interface StandardStopwatchService extends BaseService {
+ PageResult page(StandardStopwatchQuery query);
+
+ void save(StandardStopwatchVo vo);
+
+ void update(StandardStopwatchVo vo);
+
+ void delete(List idList);
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/DatastandardServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/DatastandardServiceImpl.java
index 67c390a..c0c3d78 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/DatastandardServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/DatastandardServiceImpl.java
@@ -11,8 +11,9 @@ import net.srt.entity.DatastandardEntity;
import net.srt.entity.MetamodelEntity;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
-import net.srt.query.StandardManagementQuery;
+import net.srt.query.DatastandrdQuery;
import net.srt.service.DatastandardService;
+import net.srt.vo.DatastandardVo;
import net.srt.vo.StandardManagementVo;
import org.springframework.stereotype.Service;
import srt.cloud.framework.dbswitch.common.util.StringUtil;
@@ -30,7 +31,7 @@ import java.util.List;
public class DatastandardServiceImpl extends BaseServiceImpl implements DatastandardService {
private final DatastandardDao datastandardDao;
@Override
- public PageResult page(StandardManagementQuery query) {
+ public PageResult page(DatastandrdQuery query) {
IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
return new PageResult<>(DatastandardConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
@@ -41,12 +42,7 @@ public class DatastandardServiceImpl extends BaseServiceImpl idList) {
@@ -60,8 +56,22 @@ public class DatastandardServiceImpl extends BaseServiceImpl getWrapper(StandardManagementQuery query) {
+ @Override
+ public void save(DatastandardVo vo) {
+ DatastandardEntity entity = DatastandardConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity);
+ }
+
+
+ private LambdaQueryWrapper getWrapper(DatastandrdQuery query) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
wrapper.like(StringUtil.isNotBlank(query.getCnName()), DatastandardEntity::getCnName, query.getCnName());
wrapper.like(StringUtil.isNotBlank(query.getEngName()), DatastandardEntity::getEngName, query.getEngName());
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
index 29af401..1dddcf8 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataCollectServiceImpl.java
@@ -1,30 +1,97 @@
package net.srt.service.impl;
+import cn.hutool.cron.CronException;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
+import net.srt.api.module.data.governance.constant.MetadataCollectType;
+import net.srt.api.module.quartz.QuartzDataGovernanceMetadataCollectApi;
import net.srt.convert.MetadataCollectConvert;
import net.srt.dao.MetadataCollectDao;
import net.srt.entity.MetadataCollectEntity;
import net.srt.entity.MetadataCollectQuery;
+import net.srt.framework.common.exception.ServerException;
import net.srt.framework.common.page.PageResult;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
import net.srt.service.MetadataCollectService;
import net.srt.vo.MetadataCollectVO;
+import org.quartz.CronExpression;
import org.springframework.stereotype.Service;
import srt.cloud.framework.dbswitch.common.util.StringUtil;
+import java.util.Date;
+import java.util.List;
+
@Service
@AllArgsConstructor
public class MetadataCollectServiceImpl extends BaseServiceImpl implements MetadataCollectService {
+
+ private final QuartzDataGovernanceMetadataCollectApi metadataCollectApi;
+
@Override
public PageResult page(MetadataCollectQuery query) {
IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
return new PageResult<>(MetadataCollectConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
+ @Override
+ public void save(MetadataCollectVO vo) {
+ checkParam(vo);
+ MetadataCollectEntity entity = MetadataCollectConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity);
+ }
+
+ @Override
+ public void update(MetadataCollectVO vo) {
+ checkParam(vo);
+ MetadataCollectEntity entity = MetadataCollectConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ updateById(entity);
+ }
+
+ @Override
+ public void cancel(Long id) {
+ metadataCollectApi.cancel(id);
+ MetadataCollectEntity entity = baseMapper.selectById(id);
+ entity.setReleaseTime(null);
+ entity.setStatus(0);
+ baseMapper.updateById(entity);
+ }
+
+ @Override
+ public void release(Long id) {
+ metadataCollectApi.release(id);
+ MetadataCollectEntity entity = baseMapper.selectById(id);
+ entity.setReleaseTime(new Date());
+ entity.setStatus(1);
+ baseMapper.updateById(entity);
+ }
+
+ @Override
+ public void handRun(Long id) {
+ metadataCollectApi.handRun(id);
+ }
+
+ @Override
+ public void delete(List idList) {
+ removeByIds(idList);
+// for (Long id : idList) {
+// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+//
+// }
+ }
+
+ private void checkParam(MetadataCollectVO vo){
+ if(MetadataCollectType.CRON.getValue().equals(vo.getTaskType())){
+ if(!CronExpression.isValidExpression(vo.getCron())){
+ throw new ServerException("cron表达式有误,请检查!");
+ }
+ }
+ }
+
private Wrapper getWrapper(MetadataCollectQuery query) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
wrapper.like(StringUtil.isNotBlank(query.getName()),MetadataCollectEntity::getName,query.getName())
@@ -34,4 +101,6 @@ public class MetadataCollectServiceImpl extends BaseServiceImpl implements MetadataService {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceimpl.java
new file mode 100644
index 0000000..1e64ca1
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/MetadataServiceimpl.java
@@ -0,0 +1,12 @@
+package net.srt.service.impl;
+
+import io.swagger.v3.oas.annotations.servers.Server;
+import lombok.AllArgsConstructor;
+import net.srt.dao.MetadataDao;
+import net.srt.entity.MetadataEntity;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.service.MetadataService;
+@Server
+@AllArgsConstructor
+public class MetadataServiceImpl extends BaseServiceImpl implements MetadataService {
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigCategoryServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigCategoryServiceimpl.java
new file mode 100644
index 0000000..eb3fa2c
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigCategoryServiceimpl.java
@@ -0,0 +1,101 @@
+package net.srt.service.impl;
+
+import com.alibaba.spring.util.BeanUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import net.srt.convert.QualityConfigCategoryConvert;
+import net.srt.dao.QualityConfigCategoryDao;
+import net.srt.dao.QualityConfigDao;
+import net.srt.entity.QualityConfigCategoryEntity;
+import net.srt.entity.QualityConfigEntity;
+import net.srt.framework.common.exception.ServerException;
+import net.srt.framework.common.utils.BeanUtil;
+import net.srt.framework.common.utils.BuildTreeUtils;
+import net.srt.framework.common.utils.TreeNodeVo;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.service.QualityConfigCategoryService;
+import net.srt.vo.QualityConfigCategoryVo;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+import srt.cloud.framework.dbswitch.pgwriter.util.StringUtils;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service.impl
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 9:46
+ */
+@Service
+@AllArgsConstructor
+public class QualityConfigCategoryServiceimpl extends BaseServiceImpl implements QualityConfigCategoryService {
+ private final QualityConfigDao qualityConfigDao;
+ @Override
+ public List listTree() {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(QualityConfigCategoryEntity::getProjectId, getProjectId()).orderByAsc(QualityConfigCategoryEntity::getOrderNo);
+ List list = baseMapper.selectList(wrapper);
+ List tree = BeanUtil.copyListProperties(list,TreeNodeVo::new,(oldItem,newItem)->{
+ newItem.setLabel(oldItem.getName());
+ newItem.setValue(oldItem.getId());
+ if (newItem.getPath().contains("/")){
+ newItem.setParentPath(newItem.getPath().substring(0, newItem.getPath().lastIndexOf("/")));
+ }
+ });
+
+
+ return BuildTreeUtils.buildTree(tree);
+ }
+
+ @Override
+ public void update(QualityConfigCategoryVo vo) {
+ QualityConfigCategoryEntity entity= QualityConfigCategoryConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ entity.setPath(recursionPath(entity,null));
+ updateById(entity);
+ }
+
+ @Override
+ public void save(QualityConfigCategoryVo vo) {
+ QualityConfigCategoryEntity entity= QualityConfigCategoryConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ entity.setPath(recursionPath(entity,null));
+ baseMapper.insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(Long id) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(QualityConfigCategoryEntity::getParentId,id).last("'limit 1");
+ QualityConfigCategoryEntity oneChild=baseMapper.selectOne(wrapper);
+ if (oneChild!=null){
+ throw new ServerException("存在子项,不可删除");
+ }
+ LambdaQueryWrapper wrapper1 = Wrappers.lambdaQuery();
+ wrapper1.eq(QualityConfigEntity::getCategoryId,id).last("limit 1");
+ QualityConfigEntity qualityConfigEntity=qualityConfigDao.selectOne(wrapper1);
+ if (qualityConfigEntity!=null){
+ throw new ServerException("目录下存在规则配置,不可删除!");
+ }
+ removeById(id);
+
+
+ }
+
+ private String recursionPath(QualityConfigCategoryEntity entity, String path) {
+ if (StringUtil.isBlank(path)){
+ path=entity.getName();
+ }
+ if (entity.getParentId()!=0){
+ QualityConfigCategoryEntity parent=getById(entity.getParentId());
+ path=parent.getName()+"/"+path;
+ return recursionPath(parent,path);
+ }
+ return path;
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigServiceimpl.java
new file mode 100644
index 0000000..785a0c7
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityConfigServiceimpl.java
@@ -0,0 +1,134 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sun.org.apache.bcel.internal.generic.LADD;
+import lombok.AllArgsConstructor;
+import net.srt.api.module.data.governance.constant.BuiltInQualityRule;
+import net.srt.api.module.data.governance.dto.quality.QualityConfigParam;
+import net.srt.api.module.quartz.QuartzDataGovernanceQualityApi;
+import net.srt.convert.QualityConfigConvert;
+import net.srt.dao.MetadataDao;
+import net.srt.dao.QualityConfigDao;
+import net.srt.entity.MetadataEntity;
+import net.srt.entity.QualityConfigEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.query.QualityConfigQuery;
+import net.srt.service.QualityConfigService;
+import net.srt.vo.QualityConfigVo;
+import org.springframework.security.core.parameters.P;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service.impl
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:42
+ */
+@Service
+@AllArgsConstructor
+public class QualityConfigServiceimpl extends BaseServiceImpl implements QualityConfigService {
+ private final QuartzDataGovernanceQualityApi quartzDataGovernanceQualityApi;
+ private final MetadataDao metadataDao;
+ @Override
+ public PageResult page(QualityConfigQuery query) {
+ IPage page=baseMapper.selectPage(getPage(query),getWrapper(query));
+ return new PageResult<>(QualityConfigConvert.INSTANCE.convertList(page.getRecords()),page.getTotal());
+ }
+
+ @Override
+ public QualityConfigVo get(Long id) {
+ QualityConfigVo qualityConfigvo= QualityConfigConvert.INSTANCE.convert(baseMapper.selectById(id));
+ List metadataIds=qualityConfigvo.getMetadataIds();
+ LambdaQueryWrapper metadataWrapper= Wrappers.lambdaQuery();
+ metadataWrapper.in(MetadataEntity::getId,metadataIds);
+ List metadataEntities=metadataDao.selectList(metadataWrapper);
+ if (CollectionUtils.isEmpty(metadataEntities)){
+ qualityConfigvo.setMetadataStrs("检测字段已删除,请检查数据信息");
+ }else {
+ qualityConfigvo.setMetadataStrs(metadataEntities.stream().map(MetadataEntity::getPath).collect(Collectors.joining(";")));
+ }
+ if (BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(qualityConfigvo.getRuleId())){
+ QualityConfigParam param = qualityConfigvo.getParam();
+ Integer columnMetaId = param.getColumnMetaId();
+ MetadataEntity entity = metadataDao.selectById(columnMetaId);
+ if (entity!= null){
+ qualityConfigvo.setRelMetadataStr(entity.getPath());
+ }else {
+ qualityConfigvo.setMetadataStrs("关联字段已被删除,请检查元数据信息");
+ }
+ }
+
+ return qualityConfigvo;
+ }
+
+ @Override
+ public void save(QualityConfigVo vo) {
+ QualityConfigEntity entity=QualityConfigConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ if (!BuiltInQualityRule.UNIQUENESS.getId().equals(entity.getRuleId())&&!BuiltInQualityRule.LENGTH_CHECK.getId().equals(entity.getRuleId())&& !BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(entity.getRuleId())&&!BuiltInQualityRule.TIMELINESS.getId().equals(entity.getRuleId())){
+ entity.setParam(null);
+ }
+ baseMapper.insert(entity);
+ }
+
+ @Override
+ public void update(QualityConfigVo vo) {
+ if (!BuiltInQualityRule.UNIQUENESS.getId().equals(vo.getRuleId())&&!BuiltInQualityRule.LENGTH_CHECK.getId().equals(vo.getRuleId())&&!BuiltInQualityRule.ASSOCIATION_CONSISTENCY.getId().equals(vo.getRuleId())&&!BuiltInQualityRule.TIMELINESS.getId().equals(vo.getRuleId())){
+ vo.setParam(null);
+ }
+ QualityConfigEntity entity=QualityConfigConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ updateById(entity);
+ }
+
+ @Override
+ public void online(Long id) {
+ QualityConfigEntity entity=baseMapper.selectById(id);
+ entity.setStatus(1);
+ quartzDataGovernanceQualityApi.release(id);
+ baseMapper.updateById(entity);
+
+ }
+
+ @Override
+ public void offline(Long id) {
+ QualityConfigEntity entity=baseMapper.selectById(id);
+ entity.setStatus(0);
+ quartzDataGovernanceQualityApi.cancel(id);
+ baseMapper.updateById(entity);
+ }
+
+ @Override
+ public void handRun(Long id) {
+ quartzDataGovernanceQualityApi.handRun(id);
+ }
+
+ @Override
+ public void delete(List idList) {
+ for (Long id : idList) {
+ quartzDataGovernanceQualityApi.cancel(id);
+ }
+ removeByIds(idList);
+ }
+
+
+ private LambdaQueryWrapper getWrapper(QualityConfigQuery query) {
+ LambdaQueryWrapper wrapper= Wrappers.lambdaQuery();
+ wrapper.eq(query.getCategoryId()!=null,QualityConfigEntity::getCategoryId,query.getCategoryId())
+ .like(StringUtil.isNotBlank(query.getName()),QualityConfigEntity::getName,query.getName())
+ .eq(query.getStatus()!=null,QualityConfigEntity::getStatus,query.getStatus())
+ .eq(query.getTaskType()!=null,QualityConfigEntity::getTaskType,query.getTaskType())
+ .orderByDesc(QualityConfigEntity::getId );
+ return wrapper;
+ }
+}
+
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskColumnServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskColumnServiceimpl.java
new file mode 100644
index 0000000..7e88c26
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskColumnServiceimpl.java
@@ -0,0 +1,59 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.QualityTaskColumnConvert;
+import net.srt.dao.QualityTaskColumnDao;
+import net.srt.entity.QualityTaskColumnEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.query.QualityTaskColumnQuery;
+import net.srt.service.QualityTaskColumnService;
+import net.srt.vo.QualityTaskColumnVo;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.service.impl
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:37
+ */
+@Service
+@AllArgsConstructor
+public class QualityTaskColumnServiceimpl extends BaseServiceImpl implements QualityTaskColumnService {
+
+ private final QualityTaskColumnDao taskColumnDao;
+ @Override
+ public PageResult page(QualityTaskColumnQuery query) {
+ IPage page=baseMapper.selectPage(getPage(query),getWrapper(query));
+ //return new PageResult<>(QualityTaskColumnConvert.INSTANCE.convertList(page.getRecords()),page.getTotal());
+ List qualityTaskColumnVos = QualityTaskColumnConvert.INSTANCE.convertList(page.getRecords());
+ return new PageResult<>(qualityTaskColumnVos,page.getTotal());
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(List idlist) {
+ for (Long id : idlist) {
+ removeById(id);
+ LambdaQueryWrapper wrapper= Wrappers.lambdaQuery();
+ wrapper.eq(QualityTaskColumnEntity::getQualityTaskId,id);
+ taskColumnDao.delete(wrapper);
+ }
+ }
+
+ private LambdaQueryWrapper getWrapper(QualityTaskColumnQuery query) {
+ LambdaQueryWrapper wrapper= Wrappers.lambdaQuery();
+ wrapper.like(query.getQualityTaskTableId()!=null ,QualityTaskColumnEntity::getQualityTaskTableId,query.getQualityTaskTableId())
+ .eq(query.getCheckResult()!=null,QualityTaskColumnEntity::getCheckResult,query.getCheckResult())
+ .orderByDesc(QualityTaskColumnEntity::getId);
+
+ return wrapper;
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java
index cfadf00..d4bad98 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java
@@ -34,20 +34,30 @@ import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class QualityTaskTableServiceimpl extends BaseServiceImpl implements QualityTaskTableService {
-
+ private final QualityTaskColumnDao taskColumnDao;
@SneakyThrows
@Override
public PageResult page(QualityTableQuery query) {
IPage page=baseMapper.selectPage(getPage(query),getWrapper(query));
List taskTableVos= QualityTaskTableConvert.INSTANCE.convertList(page.getRecords());
- for (QualityTaskTableVo taskTableVo : taskTableVos) {
- taskTableVo.setColumnInfo(SingletonObject.OBJECT_MAPPER.readValue(SingletonObject.OBJECT_MAPPER.writeValueAsString(taskTableVo.getColumnInfo()), new TypeReference>() {
+ for (QualityTaskTableVo taskTableVo : taskTableVos) { taskTableVo.setColumnInfo(SingletonObject.OBJECT_MAPPER.readValue(SingletonObject.OBJECT_MAPPER.writeValueAsString(taskTableVo.getColumnInfo()), new TypeReference>() {
}));
taskTableVo.setCheckColumns(taskTableVo.getColumnInfo().stream().map(QulaityColumn::getColumnName).collect(Collectors.joining(",")));
}
- return null;
+ return new PageResult<>(taskTableVos,page.getTotal());
+ }
+
+ @Override
+ public void delete(List idlist) {
+ for (Long id : idlist) {
+ removeById(id);
+ LambdaQueryWrapper task=Wrappers.lambdaQuery();
+ task.eq(QualityTaskTableEntity::getQualityTaskId,id);
+ baseMapper.delete(task);
+
+ }
}
private LambdaQueryWrapper getWrapper(QualityTableQuery query) {
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardServiceImpl.java
index 73e455f..9a60e6a 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardServiceImpl.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardServiceImpl.java
@@ -2,14 +2,22 @@ package net.srt.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
+import net.srt.controller.StandardController;
+import net.srt.convert.StandardConvert;
import net.srt.dao.StandardDao;
import net.srt.entity.StandardEntity;
+import net.srt.framework.common.exception.ServerException;
import net.srt.framework.common.utils.BeanUtil;
import net.srt.framework.common.utils.BuildTreeUtils;
import net.srt.framework.common.utils.TreeNodeVo;
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
import net.srt.service.StandardService;
+import net.srt.utils.CatalogueBuildTreeUtils;
+import net.srt.vo.StandardManagementVo;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
import java.util.List;
@@ -24,6 +32,9 @@ import static net.srt.framework.security.user.SecurityUser.getUserId;
@Service
@AllArgsConstructor
public class StandardServiceImpl extends BaseServiceImpl implements StandardService {
+ @Autowired
+ StandardDao standardDao;
+
@Override
public List listTree() {
@@ -39,48 +50,48 @@ public class StandardServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(StandardEntity::getParentId,id).last("limit 1");
- if(baseMapper.selectCount(wrapper)!=null){
- throw new RuntimeException("请先删除子节点");
+ wrapper.eq(StandardEntity::getParentId, id).last(" limit 1");
+ StandardEntity one = baseMapper.selectOne(wrapper);
+ if (one != null) {
+ throw new ServerException("存在子节点,不允许删除!");
}
- removeById(id);
- //删除属性
- LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>();
- wrapper1.eq(StandardEntity::getParentId,id);
- baseMapper.delete(wrapper1);
-
+ removeById(id);
}
-
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardStopwatchServiceImpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardStopwatchServiceImpl.java
new file mode 100644
index 0000000..ce7c0f5
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/StandardStopwatchServiceImpl.java
@@ -0,0 +1,67 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.StandardStopwatchConvert;
+import net.srt.dao.StandardStopwatchDao;
+import net.srt.entity.StandardStopwatchEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.query.StandardStopwatchQuery;
+import net.srt.service.StandardStopwatchService;
+import net.srt.vo.StandardStopwatchVo;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import java.util.List;
+
+/**
+ * @ClassName : StandardStopwatchServiceImpl
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:32
+ */
+@Service
+@AllArgsConstructor
+public class StandardStopwatchServiceImpl extends BaseServiceImpl implements StandardStopwatchService {
+ private final StandardStopwatchDao standardStopwatchDao;
+ @Override
+ public PageResult page(StandardStopwatchQuery query) {
+ IPage page = baseMapper.selectPage(getPage(query), getWrapper(query));
+
+ return new PageResult<>(StandardStopwatchConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
+ }
+
+ private LambdaQueryWrapper getWrapper(StandardStopwatchQuery query) {
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ wrapper.eq(query.getStandardId() != null, StandardStopwatchEntity::getStandardId, query.getStandardId())
+ .eq(StringUtil.isNotBlank(query.getDataId()), StandardStopwatchEntity::getDataId, query.getDataId())
+ .eq(StringUtil.isNotBlank(query.getDataName()), StandardStopwatchEntity::getDataName, query.getDataName());
+ return wrapper;
+ }
+
+ @Override
+ public void save(StandardStopwatchVo vo) {
+ StandardStopwatchEntity entity =StandardStopwatchConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ baseMapper.insert(entity);
+ standardStopwatchDao.updateCodeNumByStandardId(vo.getStandardId());
+ }
+
+ @Override
+ public void update(StandardStopwatchVo vo) {
+ StandardStopwatchEntity entity = StandardStopwatchConvert.INSTANCE.convert(vo);
+ entity.setProjectId(getProjectId());
+ updateById(entity);
+ }
+
+ @Override
+ public void delete(List idList) {
+ Long id = idList.get(0);
+ StandardStopwatchEntity standardCodeEntity = baseMapper.selectById(id);
+ removeByIds(idList);
+ standardStopwatchDao.updateCodeNumByStandardId(standardCodeEntity.getStandardId());
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/utils/CatalogueBuildTreeUtils.java b/srt-cloud-data-governance/src/main/java/net/srt/utils/CatalogueBuildTreeUtils.java
new file mode 100644
index 0000000..353765e
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/utils/CatalogueBuildTreeUtils.java
@@ -0,0 +1,54 @@
+package net.srt.utils;
+
+import net.srt.framework.common.utils.TreeNodeVo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName : CatalogueBuildTreeUtils
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 12:40
+ */
+public class CatalogueBuildTreeUtils {
+ /**
+ * 构建结构树
+ *
+ * @param nodeVos
+ * @return
+ */
+ public static List buildTree(List nodeVos) {
+ List resultVos = new ArrayList<>(10);
+ for (TreeNodeVo node : nodeVos) {
+ // 一级菜单parentId为0
+ if (node.getParentId() == 0) {
+ resultVos.add(node);
+ }
+ }
+ // 为一级菜单设置子菜单,getChild是递归调用的
+ for (TreeNodeVo node : resultVos) {
+ node.setChildren(getChild(node.getId(), nodeVos));
+ }
+ return resultVos;
+ }
+
+
+ private static List getChild(Long id, List nodeVos) {
+ // 子菜单
+ List childList = new ArrayList<>(10);
+ for (TreeNodeVo node : nodeVos) {
+ // 遍历所有节点,将父菜单id与传过来的id比较
+ if (node.getParentId() != 0) {
+ if (node.getParentId().equals(id)) {
+ childList.add(node);
+ }
+ }
+ }
+ // 把子菜单的子菜单再循环一遍
+ for (TreeNodeVo node : childList) {
+ node.setChildren(getChild(node.getId(), nodeVos));
+ }
+ return childList;
+ }
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVo.java
new file mode 100644
index 0000000..bc4a826
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVo.java
@@ -0,0 +1,49 @@
+package net.srt.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : DatastandardVo
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 12:05
+ */
+@Data
+@Schema(description = "标准管理查询")
+public class DatastandardVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+ @TableId("id")
+ private Long id;
+ private Integer categoryId;
+ private String engName;
+ private String cnName;
+ private Integer codeNum;
+ private String dataType;
+ private Integer dataLength;
+ private Integer dataPrecision;
+ private Integer nullable;
+ private Integer standardCodeId;
+ private Integer type;
+ private String note;
+ private Long projectId;
+ private Integer status;
+ private Integer version;
+ private Integer deleted;
+ private String creator;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+ private String updater;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date updateTime;
+ private Integer ifStandardRel;
+ private String group;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java
new file mode 100644
index 0000000..0ba283c
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataVo.java
@@ -0,0 +1,84 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.vo
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 15:37
+ */
+@Data
+@Schema(description = "数据治理-元数据")
+public class MetadataVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "父级id(默认0为顶级)")
+ private Long parentId;
+
+ @Schema(description = "树状节点的路径")
+ private String path;
+
+ @Schema(description = "节点名称")
+ private String name;
+
+ @Schema(description = "节点英文名称")
+ private String code;
+
+ private String icon;
+
+ private Integer ifLeaf;
+
+ @Schema(description = "对应的元模型id")
+ private Long metamodelId;
+
+ @Schema(description = "详情")
+ private String description;
+
+ @Schema(description = "数据库类型(1-数据库 2-中台库)")
+ private Integer dbType;
+
+ @Schema(description = "如果是外部系统接入的库表,需要此字段")
+ private Long datasourceId;
+
+ @Schema(description = "采集任务id")
+ private Long collectTaskId;
+
+ @Schema(description = "项目id(租户id)")
+ private Long projectId;
+
+ private Integer orderNo;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+ @Schema(description = "元数据属性列表")
+ private List properties;
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigCategoryVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigCategoryVo.java
new file mode 100644
index 0000000..6899d21
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigCategoryVo.java
@@ -0,0 +1,66 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.vo
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 10:22
+ */
+@Data
+@Schema(description = "数据治理-规则配置目录")
+public class QualityConfigCategoryVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "0-普通目录 1-规则配置目录")
+ private Integer type;
+
+ @Schema(description = "父级id(顶级为0)")
+ private Long parentId;
+
+ @Schema(description = "目录名称")
+ private String name;
+
+ @Schema(description = "目录路径")
+ private String path;
+
+ @Schema(description = "序号")
+ private Integer orderNo;
+
+ @Schema(description = "描述")
+ private String note;
+
+ @Schema(description = "项目(租户)id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java
new file mode 100644
index 0000000..1c10b51
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityConfigVo.java
@@ -0,0 +1,81 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.api.module.data.governance.dto.quality.QualityConfigParam;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.vo
+ * @Author: jpz
+ * @CreateTime: 2023/12/24 19:35
+ */
+@Data
+@Schema(description = "数据治理-质量规则配置")
+public class QualityConfigVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "自增id")
+ private Long id;
+
+ private Long categoryId;
+
+ @Schema(description = "名称")
+ private String name;
+
+ @Schema(description = "规则id")
+ private Integer ruleId;
+
+ @Schema(description = "个性化参数json")
+ private QualityConfigParam param;
+ @Schema(description = "当选择的规则类型为关联一致性的时候,返回此字段(前台用)")
+ private String relMetadataStr;
+
+ @Schema(description = "元数据字段列表")
+ private List metadataIds;
+ @Schema(description = "检测的元数据字段信息字符串(前台用)")
+ private String metadataStrs;
+
+ @Schema(description = "状态,1-启用,0-关闭")
+ private Integer status;
+
+ @Schema(description = "任务类型,1-一次性任务,2-周期任务")
+ private Integer taskType;
+
+ @Schema(description = "cron表达式")
+ private String cron;
+
+ @Schema(description = "备注")
+ private String note;
+
+ @Schema(description = "项目id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskColumnVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskColumnVo.java
new file mode 100644
index 0000000..240a37d
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskColumnVo.java
@@ -0,0 +1,65 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @BelongsProject: srt_cloud
+ * @BelongsPackage: net.srt.vo
+ * @Author: jpz
+ * @CreateTime: 2023/12/23 11:22
+ */
+@Data
+@Schema(description = "数据治理-字段检测记录")
+public class QualityTaskColumnVo implements Serializable {
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "质量任务id")
+ private Long qualityTaskId;
+
+ @Schema(description = "表检测记录id")
+ private Long qualityTaskTableId;
+
+ @Schema(description = "被检测的数据行")
+ private String checkRow;
+
+ @Schema(description = "未通过详情")
+ private String notPassInfo;
+
+ @Schema(description = "检测时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date checkTime;
+
+ @Schema(description = "0-不通过 1-通过")
+ private Integer checkResult;
+
+ @Schema(description = "项目id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardManagementVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardManagementVo.java
index b89861d..326594e 100644
--- a/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardManagementVo.java
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardManagementVo.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -16,34 +17,49 @@ import java.util.Date;
* @Date: 2023-12-20 11:24
*/
@Data
-@Schema(description = "标准管理查询")
+@Schema(description = "目录表")
public class StandardManagementVo implements Serializable {
private static final long serialVersionUID = 1L;
- @TableId("id")
+
+ @Schema(description = "主键id")
private Long id;
- private Integer categoryId;
- private String engName;
- private String cnName;
- private Integer codeNum;
- private String dataType;
- private Integer dataLength;
- private Integer dataPrecision;
- private Integer nullable;
- private Integer standardCodeId;
+
+ @Schema(description = "父级id(顶级为0)")
+ private Long parentId;
+ @Schema(description = "0-文件夹 1-文件目录")
private Integer type;
- private String note;
+ @Schema(description = "分组名称")
+ private String name;
+
+ @Schema(description = "分组序号")
+ private Integer orderNo;
+
+ @Schema(description = "描述")
+ private String description;
+
+ @Schema(description = "分组路径")
+ private String path;
+
+ @Schema(description = "项目id")
private Long projectId;
- private Integer status;
+
+ @Schema(description = "版本号")
private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
private Integer deleted;
- private String creator;
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date createTime;
- private String updater;
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
private Date updateTime;
- private Integer ifStandardRel;
- private String group;
}
diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardStopwatchVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardStopwatchVo.java
new file mode 100644
index 0000000..cee9474
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/StandardStopwatchVo.java
@@ -0,0 +1,56 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : StandardStopwatchVo
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 10:26
+ */
+@Data
+@Schema(description = "数据治理-标准码表数据")
+public class StandardStopwatchVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "标准码表id")
+ private Long standardId;
+
+ @Schema(description = "码表数据的id")
+ private String dataId;
+
+ @Schema(description = "码表数据的name")
+ private String dataName;
+
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+}
diff --git a/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml b/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml
new file mode 100644
index 0000000..1b9c111
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/resources/mapper/MetadataPropertyDao.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/srt-cloud-data-governance/src/main/resources/mapper/StandardStopwatchMapper.xml b/srt-cloud-data-governance/src/main/resources/mapper/StandardStopwatchMapper.xml
new file mode 100644
index 0000000..445ce80
--- /dev/null
+++ b/srt-cloud-data-governance/src/main/resources/mapper/StandardStopwatchMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ UPDATE data_governance_standard SET code_num=(SELECT COUNT(1)
+ FROM data_governance_standard_code
+ WHERE standard_id=#{standardId} AND deleted=0)
+ WHERE id=#{standardId}
+
+
diff --git a/srt-cloud-data-service/pom.xml b/srt-cloud-data-service/pom.xml
index f1b90b9..9f5a8d8 100644
--- a/srt-cloud-data-service/pom.xml
+++ b/srt-cloud-data-service/pom.xml
@@ -79,6 +79,12 @@
io.minio
minio
+
+ org.apache.ant
+ ant
+ 1.9.1
+ compile
+
diff --git a/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java
new file mode 100644
index 0000000..e138804
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java
@@ -0,0 +1,84 @@
+package net.srt.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.AllArgsConstructor;
+import net.srt.convert.DataServiceAppConvert;
+import net.srt.entity.DataServiceAppEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.common.utils.Result;
+import net.srt.query.DataServiceAppQuery;
+import net.srt.service.DataServiceAppService;
+import net.srt.vo.DataServiceAppVo;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @ClassName : DataServiceAppController
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:53
+ */
+@RestController
+@RequestMapping("/app")
+@AllArgsConstructor
+public class DataServiceAppController {
+ private final DataServiceAppService dataServiceAppService;
+
+ @GetMapping("page")
+ @Operation(summary = "分页")
+ public Result > page(@Valid DataServiceAppQuery query) {
+ PageResult pageResult = dataServiceAppService.page(query);
+ return Result.ok(pageResult);
+ }
+ @GetMapping("{id}")
+ @Operation(summary = "信息")
+ public Result get(@PathVariable("id") Long id){
+ DataServiceAppEntity dataServiceAppEntity = dataServiceAppService.getById(id);
+ return Result.ok(DataServiceAppConvert.INSTANCE.convert(dataServiceAppEntity));
+ }
+
+ @PostMapping
+ @Operation(summary = "保存")
+ public Result save(@RequestBody DataServiceAppVo vo){
+ dataServiceAppService.save1(vo);
+ return Result.ok();
+ }
+
+ @PutMapping
+ @Operation(summary = "修改")
+ public Result update(@RequestBody @Valid DataServiceAppVo vo){
+ dataServiceAppService.update1(vo);
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @Operation(summary = "删除")
+ public Result delete(@RequestBody List idList){
+ dataServiceAppService.delete(idList);
+
+ return Result.ok();
+ }
+
+ @PostMapping("/auth")
+ @Operation(summary = "添加授权")
+ public Result addAuth(@RequestBody DataServiceAppVo authVO){
+ dataServiceAppService.addAuth(authVO);
+ return Result.ok();
+ }
+
+ @PutMapping("/auth")
+ @Operation(summary = "修改授权")
+ public Result upAuth(@RequestBody DataServiceAppVo authVO){
+ dataServiceAppService.upAuth(authVO);
+ return Result.ok();
+ }
+
+ @DeleteMapping("/cancel-auth/{authId}")
+ @Operation(summary = "取消授权")
+ public Result cancelAuth(@PathVariable Long authId){
+ dataServiceAppService.cancelAuth(authId);
+ return Result.ok();
+ }
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java
new file mode 100644
index 0000000..3abbab9
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/convert/DataServiceAppConvert.java
@@ -0,0 +1,25 @@
+package net.srt.convert;
+
+import net.srt.entity.DataServiceAppEntity;
+import net.srt.vo.DataServiceAppVo;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @ClassName : DataServiceAppConvert
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 09:06
+ */
+@Mapper
+public interface DataServiceAppConvert {
+ DataServiceAppConvert INSTANCE = Mappers.getMapper(DataServiceAppConvert.class);
+
+ DataServiceAppEntity convert(DataServiceAppVo vo);
+
+ DataServiceAppVo convert(DataServiceAppEntity entity);
+
+ List convertList(List list);
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java
new file mode 100644
index 0000000..f93a261
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/dao/DataServiceAppDao.java
@@ -0,0 +1,17 @@
+package net.srt.dao;
+
+import net.srt.entity.DataServiceAppEntity;
+import net.srt.framework.mybatis.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @ClassName : DataServiceAppDao
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:59
+ */
+@Mapper
+public interface DataServiceAppDao extends BaseDao {
+ DataServiceAppEntity selectByApplyId(@Param("applyId") Long applyId);
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java
new file mode 100644
index 0000000..852114f
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApiAuthEnitiy.java
@@ -0,0 +1,70 @@
+//package net.srt.entity;
+//
+//import com.baomidou.mybatisplus.annotation.FieldFill;
+//import com.baomidou.mybatisplus.annotation.FieldStrategy;
+//import com.baomidou.mybatisplus.annotation.TableField;
+//import com.baomidou.mybatisplus.annotation.TableName;
+//import lombok.Data;
+//import lombok.EqualsAndHashCode;
+//import net.srt.framework.mybatis.entity.BaseEntity;
+//
+//import java.util.Date;
+//
+///**
+// * @ClassName : DataServiceApiAuthEnitiy
+// * @Description :
+// * @Author : FJJ
+// * @Date: 2023-12-24 11:30
+// */
+//@EqualsAndHashCode(callSuper=false)
+//@Data
+//@TableName("data_service_api_auth1")
+//public class DataServiceApiAuthEnitiy extends BaseEntity {
+//
+// /**
+// * app的id
+// */
+// private Long appId;
+//
+// /**
+// * 分组id
+// */
+// private Long groupId;
+//
+// /**
+// * api的id
+// */
+// private Long apiId;
+//
+// /**
+// * 调用次数 不限次数为-1
+// */
+// private Integer requestTimes;
+//
+// @TableField(updateStrategy = FieldStrategy.IGNORED)
+// private Date startTime;
+// @TableField(updateStrategy = FieldStrategy.IGNORED)
+// private Date endTime;
+//
+// /**
+// * 已调用次数
+// */
+// @TableField(updateStrategy = FieldStrategy.NEVER)
+// private Integer requestedTimes;
+// @TableField(updateStrategy = FieldStrategy.NEVER)
+// private Integer requestedSuccessTimes;
+// @TableField(updateStrategy = FieldStrategy.NEVER)
+// private Integer requestedFailedTimes;
+//
+// /**
+// * 所属项目id
+// */
+// private Long projectId;
+//
+// /**
+// * 真删
+// */
+// @TableField(fill = FieldFill.INSERT)
+// private Integer deleted;
+//
+//}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceAppEntity.java b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceAppEntity.java
new file mode 100644
index 0000000..0049b7e
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceAppEntity.java
@@ -0,0 +1,65 @@
+package net.srt.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.mybatis.entity.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * @ClassName : DataServiceApppEntity
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:46
+ */
+@EqualsAndHashCode(callSuper = false)
+@Data
+@TableName("data_service_app")
+public class DataServiceAppEntity extends BaseEntity {
+ /**
+ * 名称
+ */
+ private String name;
+
+ /**
+ * 备注
+ */
+ private String note;
+
+ /**
+ * app_key
+ */
+ private String appKey;
+
+ /**
+ * app_secret
+ */
+ private String appSecret;
+
+ /**
+ * 过期描述
+ */
+ private String expireDesc;
+
+ /**
+ * 过期时间 -1永久;0 单次失效;> 0 失效时间
+ */
+ private Long expireDuration;
+
+ private Integer ifMarket;
+
+ /**
+ * 所属项目id
+ */
+ private Long projectId;
+
+
+
+
+
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/query/DataServiceAppQuery.java b/srt-cloud-data-service/src/main/java/net/srt/query/DataServiceAppQuery.java
new file mode 100644
index 0000000..b43c9ff
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/query/DataServiceAppQuery.java
@@ -0,0 +1,23 @@
+package net.srt.query;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import net.srt.framework.common.query.Query;
+
+/**
+ * @ClassName : DataServiceAppQuery
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:51
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(defaultValue = "app权限")
+public class DataServiceAppQuery extends Query {
+ private String name;
+ private String appKey;
+ private Integer ifMarket;
+ private Boolean ifInfo;
+ private Long applyId;
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java b/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java
new file mode 100644
index 0000000..d0c4606
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java
@@ -0,0 +1,31 @@
+package net.srt.service;
+
+import net.srt.entity.DataServiceAppEntity;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.BaseService;
+import net.srt.query.DataServiceAppQuery;
+import net.srt.vo.DataServiceAppVo;
+
+import java.util.List;
+
+/**
+ * @ClassName : DataServiceAppService
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:53
+ */
+public interface DataServiceAppService extends BaseService {
+ PageResult page(DataServiceAppQuery query);
+
+ void save1(DataServiceAppVo vo);
+
+ void update1(DataServiceAppVo vo);
+
+ void delete(List idList);
+
+ void addAuth(DataServiceAppVo authVO);
+
+ void upAuth(DataServiceAppVo authVO);
+
+ void cancelAuth(Long authId);
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java b/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java
new file mode 100644
index 0000000..a4e251c
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java
@@ -0,0 +1,84 @@
+package net.srt.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import net.srt.convert.DataServiceAppConvert;
+import net.srt.dao.DataServiceAppDao;
+import net.srt.entity.DataServiceAppEntity;
+import net.srt.framework.common.exception.ServerException;
+import net.srt.framework.common.page.PageResult;
+import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
+import net.srt.framework.security.user.SecurityUser;
+import net.srt.query.DataServiceAppQuery;
+import net.srt.service.DataServiceAppService;
+import net.srt.vo.DataServiceAppVo;
+import org.springframework.stereotype.Service;
+import srt.cloud.framework.dbswitch.common.util.StringUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName : DataServiceAppServiceImpl
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-23 08:53
+ */
+@Service
+@AllArgsConstructor
+public class DataServiceAppServiceImpl extends BaseServiceImpl implements DataServiceAppService {
+ private final DataServiceAppDao dataServiceAppDao;
+ @Override
+ public PageResult page(DataServiceAppQuery query) {
+ IPage page=baseMapper.selectPage(getPage(query),null);
+ return new PageResult<>(DataServiceAppConvert.INSTANCE.convertList(page.getRecords()),page.getTotal());
+ }
+
+ @Override
+ public void save1(DataServiceAppVo vo) {
+ DataServiceAppEntity app = DataServiceAppConvert.INSTANCE.convert(vo);
+ baseMapper.insert(app);
+ }
+
+
+
+ @Override
+ public void update1(DataServiceAppVo vo) {
+ DataServiceAppEntity app = DataServiceAppConvert.INSTANCE.convert(vo);
+ updateById(app);
+ }
+
+ @Override
+ public void delete(List idList) {
+ removeByIds(idList);
+ }
+
+ @Override
+ public void addAuth(DataServiceAppVo authVO) {
+ authVO.setProjectId(getProjectId());
+ dataServiceAppDao.insert(DataServiceAppConvert.INSTANCE.convert(authVO));
+ }
+
+ @Override
+ public void upAuth(DataServiceAppVo authVO) {
+ dataServiceAppDao.updateById(DataServiceAppConvert.INSTANCE.convert(authVO));
+ }
+
+ @Override
+ public void cancelAuth(Long authId) {
+ dataServiceAppDao.deleteById(authId);
+ }
+
+
+// private LambdaQueryWrapper getWrapper(DataServiceAppQuery query) {
+// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+// wrapper.like(StringUtil.isNotBlank(query.getName()), DataServiceAppEntity::getName, query.getName())
+// .eq(DataServiceAppEntity::getIfMarket, query.getIfMarket() != null ? query.getIfMarket() : 0)
+// .eq(query.getIfMarket() != null, DataServiceAppEntity::getCreator, SecurityUser.getUserId())
+// .eq(StringUtil.isNotBlank(query.getAppKey()), DataServiceAppEntity::getAppKey, query.getAppKey())
+// .orderByDesc(DataServiceAppEntity::getCreateTime).orderByDesc(DataServiceAppEntity::getId);
+// return wrapper;
+// }
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java
new file mode 100644
index 0000000..bd53d79
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceApiAuthVo.java
@@ -0,0 +1,70 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : DataServiceApiAuthVo
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-24 11:29
+ */
+@Data
+@Schema(description = "数据服务-权限关联表")
+public class DataServiceApiAuthVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "app的id")
+ private Long appId;
+
+ @Schema(description = "分组id")
+ private Long groupId;
+
+ @Schema(description = "api的id")
+ private Long apiId;
+
+ @Schema(description = "调用次数 不限次数为-1")
+ private Integer requestTimes;
+
+ @Schema(description = "已调用次数")
+ private Integer requestedTimes;
+ private Integer requestedSuccessTimes;
+ private Integer requestedFailedTimes;
+
+ @Schema(description = "所属项目id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date startTime;
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date endTime;
+
+}
diff --git a/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceAppVo.java b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceAppVo.java
new file mode 100644
index 0000000..41283aa
--- /dev/null
+++ b/srt-cloud-data-service/src/main/java/net/srt/vo/DataServiceAppVo.java
@@ -0,0 +1,70 @@
+package net.srt.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import net.srt.framework.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName : DataServiceAppVo
+ * @Description :
+ * @Author : FJJ
+ * @Date: 2023-12-22 21:21
+ */
+@Data
+@Schema(defaultValue = "app权限")
+public class DataServiceAppVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键id")
+ private Long id;
+
+ @Schema(description = "名称")
+ private String name;
+
+ @Schema(description = "备注")
+ private String note;
+
+ @Schema(description = "app_key")
+ private String appKey;
+
+ @Schema(description = "app_secret")
+ private String appSecret;
+
+ @Schema(description = "过期描述")
+ private String expireDesc;
+
+ /**
+ * 过期时间 -1永久;0 单次失效;> 0 失效时间
+ */
+ private Long expireDuration;
+
+ private Integer ifMarket;
+
+ @Schema(description = "所属项目id")
+ private Long projectId;
+
+ @Schema(description = "版本号")
+ private Integer version;
+
+ @Schema(description = "删除标识 0:正常 1:已删除")
+ private Integer deleted;
+
+ @Schema(description = "创建者")
+ private Long creator;
+
+ @Schema(description = "创建时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date createTime;
+
+ @Schema(description = "更新者")
+ private Long updater;
+
+ @Schema(description = "更新时间")
+ @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
+ private Date updateTime;
+
+}
diff --git a/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml b/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml
new file mode 100644
index 0000000..6271392
--- /dev/null
+++ b/srt-cloud-data-service/src/main/resources/mapper/DataServiceAppMapper.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar
index 94b269e..e6aa6cd 100644
Binary files a/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar and b/srt-cloud-framework/srt-cloud-flink/build/extends/flink-client-1.14-2.0.0.jar differ
diff --git a/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceMetadataCollectApiImpl.java b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceMetadataCollectApiImpl.java
new file mode 100644
index 0000000..8b0df62
--- /dev/null
+++ b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceMetadataCollectApiImpl.java
@@ -0,0 +1,67 @@
+package net.srt.quartz.api;
+
+import lombok.RequiredArgsConstructor;
+import net.srt.api.module.data.governance.DataMetadataCollectApi;
+import net.srt.api.module.data.governance.constant.MetadataCollectType;
+import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectDto;
+import net.srt.api.module.quartz.QuartzDataGovernanceMetadataCollectApi;
+import net.srt.api.module.quartz.constant.QuartzJobType;
+import net.srt.framework.common.utils.Result;
+import net.srt.quartz.entity.ScheduleJobEntity;
+import net.srt.quartz.enums.JobGroupEnum;
+import net.srt.quartz.enums.ScheduleConcurrentEnum;
+import net.srt.quartz.enums.ScheduleStatusEnum;
+import net.srt.quartz.service.ScheduleJobService;
+import net.srt.quartz.utils.ScheduleUtils;
+import org.quartz.Scheduler;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 短信服务API
+ *
+ * @author 阿沐 babamu@126.com
+ */
+@RestController
+@RequiredArgsConstructor
+public class QuartzDataGovernanceMetadataCollectApiImpl implements QuartzDataGovernanceMetadataCollectApi {
+
+ private final Scheduler scheduler;
+ private final DataMetadataCollectApi dataMetadataCollectApi;
+ private final ScheduleJobService jobService;
+
+ @Override
+ public Result release(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ //判断是否存在,不存在,新增,存在,设置主键
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.createScheduleJob(scheduler, jobEntity);
+ return Result.ok();
+ }
+
+ @Override
+ public Result cancel(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.deleteScheduleJob(scheduler, jobEntity);
+ //更新任务状态为暂停
+ jobService.pauseSystemJob(jobEntity);
+ return Result.ok();
+ }
+
+ @Override
+ public Result handRun(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ jobEntity.setOnce(true);
+ jobEntity.setSaveLog(false);
+ ScheduleUtils.run(scheduler, jobEntity);
+ return Result.ok();
+ }
+
+ private ScheduleJobEntity buildJobEntity(Long id) {
+ DataGovernanceMetadataCollectDto collectDto = dataMetadataCollectApi.getById(id).getData();
+ return ScheduleJobEntity.builder().typeId(id).projectId(collectDto.getProjectId()).jobType(QuartzJobType.DATA_GOVERNANCE.getValue()).jobName(String.format("[%s]%s", id.toString(), collectDto.getName())).concurrent(ScheduleConcurrentEnum.NO.getValue())
+ .beanName("dataGovernanceMetadataCollectTask").method("run").jobGroup(JobGroupEnum.DATA_GOVERNANCE.getValue()).saveLog(true).cronExpression(collectDto.getCron()).status(ScheduleStatusEnum.NORMAL.getValue())
+ .params(String.valueOf(id)).once(MetadataCollectType.ONCE.getValue().equals(collectDto.getTaskType())).build();
+
+ }
+}
diff --git a/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceQualityApiImpl.java b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceQualityApiImpl.java
new file mode 100644
index 0000000..50a9ce8
--- /dev/null
+++ b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataGovernanceQualityApiImpl.java
@@ -0,0 +1,67 @@
+package net.srt.quartz.api;
+
+import lombok.RequiredArgsConstructor;
+import net.srt.api.module.data.governance.DataQualityApi;
+import net.srt.api.module.data.governance.constant.MetadataCollectType;
+import net.srt.api.module.data.governance.dto.DataGovernanceQualityConfigDto;
+import net.srt.api.module.quartz.QuartzDataGovernanceQualityApi;
+import net.srt.api.module.quartz.constant.QuartzJobType;
+import net.srt.framework.common.utils.Result;
+import net.srt.quartz.entity.ScheduleJobEntity;
+import net.srt.quartz.enums.JobGroupEnum;
+import net.srt.quartz.enums.ScheduleConcurrentEnum;
+import net.srt.quartz.enums.ScheduleStatusEnum;
+import net.srt.quartz.service.ScheduleJobService;
+import net.srt.quartz.utils.ScheduleUtils;
+import org.quartz.Scheduler;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 短信服务API
+ *
+ * @author 阿沐 babamu@126.com
+ */
+@RestController
+@RequiredArgsConstructor
+public class QuartzDataGovernanceQualityApiImpl implements QuartzDataGovernanceQualityApi {
+
+ private final Scheduler scheduler;
+ private final DataQualityApi dataQualityApi;
+ private final ScheduleJobService jobService;
+
+ @Override
+ public Result release(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ //判断是否存在,不存在,新增,存在,设置主键
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.createScheduleJob(scheduler, jobEntity);
+ return Result.ok();
+ }
+
+ @Override
+ public Result cancel(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.deleteScheduleJob(scheduler, jobEntity);
+ //更新任务状态为暂停
+ jobService.pauseSystemJob(jobEntity);
+ return Result.ok();
+ }
+
+ @Override
+ public Result handRun(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ jobEntity.setOnce(true);
+ jobEntity.setSaveLog(false);
+ ScheduleUtils.run(scheduler, jobEntity);
+ return Result.ok();
+ }
+
+ private ScheduleJobEntity buildJobEntity(Long id) {
+ DataGovernanceQualityConfigDto qualityConfigDto = dataQualityApi.getById(id).getData();
+ return ScheduleJobEntity.builder().typeId(id).projectId(qualityConfigDto.getProjectId()).jobType(QuartzJobType.DATA_QUALITY.getValue()).jobName(String.format("[%s]%s", id.toString(), qualityConfigDto.getName())).concurrent(ScheduleConcurrentEnum.NO.getValue())
+ .beanName("dataQualityTask").method("run").jobGroup(JobGroupEnum.DATA_QUALITY.getValue()).saveLog(true).cronExpression(qualityConfigDto.getCron()).status(ScheduleStatusEnum.NORMAL.getValue())
+ .params(String.valueOf(id)).once(MetadataCollectType.ONCE.getValue().equals(qualityConfigDto.getTaskType())).build();
+
+ }
+}
diff --git a/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataProductionScheduleApiImpl.java b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataProductionScheduleApiImpl.java
new file mode 100644
index 0000000..7866bed
--- /dev/null
+++ b/srt-cloud-module/srt-cloud-quartz/src/main/java/net/srt/quartz/api/QuartzDataProductionScheduleApiImpl.java
@@ -0,0 +1,57 @@
+package net.srt.quartz.api;
+
+import lombok.RequiredArgsConstructor;
+import net.srt.api.module.data.development.DataProductionScheduleApi;
+import net.srt.api.module.data.development.dto.DataProductionScheduleDto;
+import net.srt.api.module.quartz.QuartzDataProductionScheduleApi;
+import net.srt.api.module.quartz.constant.QuartzJobType;
+import net.srt.framework.common.utils.Result;
+import net.srt.quartz.entity.ScheduleJobEntity;
+import net.srt.quartz.enums.JobGroupEnum;
+import net.srt.quartz.enums.ScheduleConcurrentEnum;
+import net.srt.quartz.enums.ScheduleStatusEnum;
+import net.srt.quartz.service.ScheduleJobService;
+import net.srt.quartz.utils.ScheduleUtils;
+import org.quartz.Scheduler;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 短信服务API
+ *
+ * @author 阿沐 babamu@126.com
+ */
+@RestController
+@RequiredArgsConstructor
+public class QuartzDataProductionScheduleApiImpl implements QuartzDataProductionScheduleApi {
+
+ private final Scheduler scheduler;
+ private final DataProductionScheduleApi scheduleApi;
+ private final ScheduleJobService jobService;
+
+ @Override
+ public Result release(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ //判断是否存在,不存在,新增,存在,设置主键
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.createScheduleJob(scheduler, jobEntity);
+ return Result.ok();
+ }
+
+ @Override
+ public Result cancle(Long id) {
+ ScheduleJobEntity jobEntity = buildJobEntity(id);
+ jobService.buildSystemJob(jobEntity);
+ ScheduleUtils.deleteScheduleJob(scheduler, jobEntity);
+ //更新任务状态为暂停
+ jobService.pauseSystemJob(jobEntity);
+ return Result.ok();
+ }
+
+
+ private ScheduleJobEntity buildJobEntity(Long id) {
+ DataProductionScheduleDto scheduleDto = scheduleApi.getById(id).getData();
+ return ScheduleJobEntity.builder().typeId(id).projectId(scheduleDto.getProjectId()).jobType(QuartzJobType.DATA_PRODUCTION.getValue()).jobName(String.format("[%s]%s", id.toString(), scheduleDto.getName())).concurrent(ScheduleConcurrentEnum.NO.getValue())
+ .beanName("dataProductionScheduleTask").method("run").jobGroup(JobGroupEnum.DATA_PRODUCTION.getValue()).saveLog(true).cronExpression(scheduleDto.getCron()).status(ScheduleStatusEnum.NORMAL.getValue())
+ .params(String.valueOf(id)).once(scheduleDto.getIfCycle() == 0).build();
+ }
+}
diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataProductionServiceImpl.java b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataProductionServiceImpl.java
index 3121add..48707b9 100644
--- a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataProductionServiceImpl.java
+++ b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataProductionServiceImpl.java
@@ -63,5 +63,4 @@ public class DataProductionServiceImpl extends BaseServiceImpl