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