From 220d3a984c82f571a71f42722b633dc80f86352f Mon Sep 17 00:00:00 2001 From: jpz <3185133571@qq.com> Date: Fri, 22 Dec 2023 22:35:12 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../srt/controller/QualityTaskController.java | 14 ++- .../QualityTaskTableController.java | 35 ++++++++ .../srt/convert/QualityTaskTableConvert.java | 21 +++++ .../net/srt/dao/QualityTaskColumnDao.java | 10 +++ .../java/net/srt/dao/QualityTaskTableDao.java | 16 ++++ .../srt/entity/QualityTaskTableEntity.java | 88 ++++++++++++++++++ .../java/net/srt/query/QualityTableQuery.java | 33 +++++++ .../net/srt/service/QualityTaskService.java | 4 + .../srt/service/QualityTaskTableService.java | 17 ++++ .../service/impl/QualityTaskServiceimpl.java | 9 ++ .../impl/QualityTaskTableServiceimpl.java | 61 +++++++++++++ .../java/net/srt/vo/QualityTaskTableVo.java | 90 +++++++++++++++++++ 12 files changed, 394 insertions(+), 4 deletions(-) create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskTableEntity.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/query/QualityTableQuery.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskTableVo.java diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java index 68bb3db..495e40a 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java @@ -11,12 +11,10 @@ import net.srt.framework.common.utils.Result; import net.srt.query.QualityTaskQuery; import net.srt.service.QualityTaskService; import net.srt.vo.QualityTaskVo; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -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 @@ -44,4 +42,12 @@ public class QualityTaskController { } + @DeleteMapping + @Operation(summary = "删除") + public Result delete(@RequestBody List idList){ + qualityTaskService.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 new file mode 100644 index 0000000..27ac31a --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskTableController.java @@ -0,0 +1,35 @@ +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.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 javax.validation.Valid; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.controller + * @Author: jpz + * @CreateTime: 2023/12/22 19:34 + */ +@RestController +@RequestMapping("/quality-task-table") +@Tag(name = "数据治理-表检测模块") +@AllArgsConstructor +public class QualityTaskTableController { + private final QualityTaskTableService qualityTaskTableService; + @GetMapping("page") + @Operation(summary = "分页") + public Result> page(@Valid QualityTableQuery query){ + PageResult pageResult =qualityTaskTableService.page(query); + return Result.ok(pageResult); + } +} 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 new file mode 100644 index 0000000..a8fb7c1 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskTableConvert.java @@ -0,0 +1,21 @@ +package net.srt.convert; + +import net.srt.entity.QualityTaskTableEntity; +import net.srt.vo.QualityTaskTableVo; +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/22 20:49 + */ +@Mapper +public interface QualityTaskTableConvert { + QualityTaskTableConvert INSTANCE = Mappers.getMapper(QualityTaskTableConvert.class); + + List convertList(List list); +} 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 new file mode 100644 index 0000000..a9bbbc6 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskColumnDao.java @@ -0,0 +1,10 @@ +package net.srt.dao; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.dao + * @Author: jpz + * @CreateTime: 2023/12/22 21:37 + */ +public interface QualityTaskColumnDao { +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java new file mode 100644 index 0000000..be018d5 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskTableDao.java @@ -0,0 +1,16 @@ +package net.srt.dao; + +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 20:18 + */ +@Mapper +public interface QualityTaskTableDao extends BaseDao { +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskTableEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskTableEntity.java new file mode 100644 index 0000000..b63c881 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskTableEntity.java @@ -0,0 +1,88 @@ +package net.srt.entity; + +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.QulaityColumn; +import net.srt.framework.mybatis.entity.BaseEntity; + +import java.util.Date; +import java.util.List; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.entity + * @Author: jpz + * @CreateTime: 2023/12/22 20:03 + */ +@EqualsAndHashCode(callSuper = false) +@Data +@TableName(value = "data_governance_quality_task_table", autoResultMap = true) +public class QualityTaskTableEntity extends BaseEntity { + + /** + * 质量任务id + */ + private Long qualityTaskId; + + /** + * 被检测的表id + */ + private Long tableMetadataId; + + /** + * 被检测的表 + */ + private String tableName; + + + @TableField(typeHandler = JacksonTypeHandler.class) + private List columnInfo; + /** + * 检测条数 + */ + private Integer checkCount; + + /** + * 检测通过数 + */ + private Integer passCount; + + /** + * 未通过数 + */ + private Integer notPassCount; + + /** + * 检测时间 + */ + private Date checkTime; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 结束时间 + */ + private Date endTime; + + + private String errorLog; + + + /** + * 运行状态( 1-等待中 2-运行中 3-正常结束 4-异常结束) + */ + private Integer status; + + /** + * 项目id + */ + private Long projectId; + + private Integer deleted; +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTableQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTableQuery.java new file mode 100644 index 0000000..55ce300 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTableQuery.java @@ -0,0 +1,33 @@ +package net.srt.query; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.srt.framework.common.query.Query; +import net.srt.framework.common.utils.DateUtils; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.query + * @Author: jpz + * @CreateTime: 2023/12/22 19:57 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "数据治理-表检测记录查询") +public class QualityTableQuery extends Query { + private Long qualityTaskId; + private String tableName; + private Integer status; + @DateTimeFormat(pattern = DateUtils.DATE_TIME_PATTERN) + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date startTime; + + @DateTimeFormat(pattern = DateUtils.DATE_TIME_PATTERN) + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date endTime; +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskService.java index 1a1b010..34c2d5a 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskService.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskService.java @@ -6,6 +6,8 @@ import net.srt.framework.mybatis.service.BaseService; import net.srt.query.QualityTaskQuery; import net.srt.vo.QualityTaskVo; +import java.util.List; + /** * @BelongsProject: srt_cloud * @BelongsPackage: net.srt.service @@ -14,4 +16,6 @@ import net.srt.vo.QualityTaskVo; */ public interface QualityTaskService extends BaseService { PageResult pagea(QualityTaskQuery 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 new file mode 100644 index 0000000..ac62c78 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskTableService.java @@ -0,0 +1,17 @@ +package net.srt.service; + +import net.srt.entity.QualityTaskTableEntity; +import net.srt.framework.common.page.PageResult; +import net.srt.framework.mybatis.service.BaseService; +import net.srt.query.QualityTableQuery; +import net.srt.vo.QualityTaskTableVo; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.service + * @Author: jpz + * @CreateTime: 2023/12/22 20:00 + */ +public interface QualityTaskTableService extends BaseService { + PageResult page(QualityTableQuery query); +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskServiceimpl.java index 708b574..f17cebd 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskServiceimpl.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskServiceimpl.java @@ -17,8 +17,11 @@ import net.srt.query.QualityTaskQuery; import net.srt.service.QualityTaskService; import net.srt.vo.QualityTaskVo; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import srt.cloud.framework.dbswitch.common.util.StringUtil; +import java.util.List; + /** * @BelongsProject: srt_cloud * @BelongsPackage: net.srt.service.impl @@ -35,6 +38,12 @@ public class QualityTaskServiceimpl extends BaseServiceImpl(QualityTaskConvert.INSTANCE.covertList(page.getRecords()),page.getTotal()); } + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(List idList) { + removeByIds(idList); + } + private LambdaQueryWrapper getWrapper(QualityTaskQuery query) { LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); wrapper.like(StringUtil.isNotBlank(query.getName()),QualityTaskEntity::getName,query.getName()) 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 new file mode 100644 index 0000000..af1bef8 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskTableServiceimpl.java @@ -0,0 +1,61 @@ +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.Wrappers; +import com.fasterxml.jackson.core.type.TypeReference; +import lombok.AllArgsConstructor; +import net.srt.api.module.data.governance.dto.quality.QulaityColumn; +import net.srt.convert.QualityTaskTableConvert; +import net.srt.dao.QualityTaskColumnDao; +import net.srt.dao.QualityTaskDao; +import net.srt.dao.QualityTaskTableDao; +import net.srt.entity.QualityTaskTableEntity; +import net.srt.framework.common.page.PageResult; +import net.srt.framework.mybatis.service.impl.BaseServiceImpl; +import net.srt.query.QualityTableQuery; +import net.srt.service.QualityTaskTableService; +import net.srt.vo.QualityTaskTableVo; +import org.springframework.stereotype.Service; +import srt.cloud.framework.dbswitch.common.util.SingletonObject; +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/22 20:09 + */ +@Service +@AllArgsConstructor +public class QualityTaskTableServiceimpl extends BaseServiceImpl implements QualityTaskTableService { + + @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>() { + })); + + taskTableVo.setCheckColumns(taskTableVo.getColumnInfo().stream().map(QulaityColumn::getColumnName).collect(Collectors.joining(","))); + } + + return null; + } + + private LambdaQueryWrapper getWrapper(QualityTableQuery query) { + LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); + wrapper.like(query.getQualityTaskId()!=null,QualityTaskTableEntity::getQualityTaskId,query.getQualityTaskId()) + .like(StringUtil.isNotBlank(query.getTableName()),QualityTaskTableEntity::getTableName,query.getTableName()) + .eq(query.getStatus()!=null,QualityTaskTableEntity::getStatus,query.getStatus()) + .ge(query.getStartTime()!=null,QualityTaskTableEntity::getStartTime,query.getStartTime()) + .le(query.getEndTime()!=null,QualityTaskTableEntity::getEndTime,query.getEndTime()) + .orderByDesc(QualityTaskTableEntity::getId); + return wrapper; + + } +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskTableVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskTableVo.java new file mode 100644 index 0000000..2d0c9e4 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskTableVo.java @@ -0,0 +1,90 @@ +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.QulaityColumn; +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/22 19:39 + */ +@Data +@Schema(description = "数据治理-表检测记录表") +public class QualityTaskTableVo implements Serializable { + private static final long serialVersionUID = 1L; + @Schema(description = "主键id") + private Long id; + + @Schema(description = "质量任务id") + private Long qualityTaskId; + + @Schema(description = "被检测id") + private Long tableMetadataId; + + + @Schema(description = "被检测的表") + private String tableName; + + @Schema(description = "被检测字段的id") + private List columnInfo; + + @Schema(description = "检测条数") + private Integer checkCount; + + @Schema(description = "检测通过条数") + private Integer passCount; + + @Schema(description = "未通过条数") + private Integer notPassCount; + + @Schema(description = "检测时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date checkTime; + + @Schema(description = "开始时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date startTime; + + @Schema(description = "结束时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date endTime; + + @Schema(description = "错误日志") + private String errrorLog; + + @Schema(description = "运行状态( 1-等待中 2-运行中 3-正常结束 4-异常结束)") + private Integer status; + + @Schema(description = "项目id") + private Integer projectId; + + @Schema(description = "版本号") + private Integer version; + + @Schema(description = "创建者") + private Integer creator; + + @Schema(description = "更新者") + private Integer updater; + + @Schema(description = "创建时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date createTime; + + @Schema(description = "更新时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date updateTime; + + @Schema(description = "删除标识(0:正常 1:已删除)") + private Integer deleted; + + private String checkColumns; +} From 96d675e9700ac1688fe2d663f51c3bb9c5b57547 Mon Sep 17 00:00:00 2001 From: zmyYYDS <864398951@qq.com> Date: Fri, 22 Dec 2023 22:38:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=B8=80=E7=89=885.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/net/srt/controller/MetadataCollectController.java | 1 + 1 file changed, 1 insertion(+) 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 cc9bfb2..1443f9a 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 @@ -13,4 +13,5 @@ import org.springframework.web.bind.annotation.RestController; public class MetadataCollectController { private final MetadataCollectService metadataCollectService; + } From cdb318e230fc82566b75583e46e827e566e6b0e8 Mon Sep 17 00:00:00 2001 From: zmyYYDS <864398951@qq.com> Date: Sat, 23 Dec 2023 09:36:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=B8=80=E7=89=886.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MetadataCollectController.java | 16 +++- .../srt/convert/MetadataCollectConvert.java | 25 +++++++ .../net/srt/entity/MetadataCollectEntity.java | 62 ++++++++++++++++ .../net/srt/entity/MetadataCollectQuery.java | 22 ++++++ .../srt/service/MetadataCollectService.java | 4 + .../impl/MetadataCollectServiceImpl.java | 24 ++++++ .../java/net/srt/vo/MetadataCollectVO.java | 74 +++++++++++++++++++ 7 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectConvert.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectQuery.java create mode 100644 srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectVO.java 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 1443f9a..c5ea661 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 @@ -1,11 +1,20 @@ 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.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 javax.validation.Valid; + @RestController @RequestMapping("metadata-collect") @Tag(name = "数据治理-元数据采集") @@ -13,5 +22,10 @@ import org.springframework.web.bind.annotation.RestController; public class MetadataCollectController { private final MetadataCollectService metadataCollectService; - + @GetMapping("page") + @Operation(summary = "分页") + public Result> page(@Valid MetadataCollectQuery query){ + PageResult page = metadataCollectService.page(query); + return Result.ok(page); + } } diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectConvert.java new file mode 100644 index 0000000..ad6009e --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/MetadataCollectConvert.java @@ -0,0 +1,25 @@ +package net.srt.convert; + +import net.srt.api.module.data.governance.dto.DataGovernanceMetadataCollectDto; +import net.srt.entity.MetadataCollectEntity; +import net.srt.vo.MetadataCollectVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface MetadataCollectConvert { + MetadataCollectConvert INSTANCE = Mappers.getMapper(MetadataCollectConvert.class); + + MetadataCollectEntity convert(MetadataCollectVO vo); + + MetadataCollectEntity convert(DataGovernanceMetadataCollectDto dto); + + DataGovernanceMetadataCollectDto convertDto(MetadataCollectEntity entity); + + MetadataCollectVO convert(MetadataCollectEntity entity); + + List convertList(List list); + +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectEntity.java index f556d7d..27bb2aa 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectEntity.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectEntity.java @@ -1,14 +1,76 @@ package net.srt.entity; +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; + @EqualsAndHashCode(callSuper = false) @Data @TableName("data_governance_metadata_collect") public class MetadataCollectEntity extends BaseEntity { + /** + * 任务名称 + */ + private String name; + + /** + * 数据库类型(1-数据库 2-中台库) + */ + private Integer dbType; + + /** + * 数据库主键id + */ + private Long databaseId; + + /** + * 入库策略,0-全量,1-增量 + */ + private Integer strategy; + + /** + * 任务类型 1一次性 2.周期性 + */ + private Integer taskType; + + /** + * cron表达式(秒 分 时 日 月 星期 年,例如 0 0 3 * * ? 表示每天凌晨三点执行) + */ + @TableField(updateStrategy = FieldStrategy.IGNORED) + private String cron; + + /** + * 归属元数据的目录 + */ + private Long metadataId; + + /** + * 描述 + */ + private String description; + + /** + * 是否已发布 0-否 1-是 + */ + private Integer status; + + /** + * 发布时间 + */ + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Date releaseTime; + + /** + * 项目id + */ + private Long projectId; + + } diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectQuery.java new file mode 100644 index 0000000..67dbbbd --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/MetadataCollectQuery.java @@ -0,0 +1,22 @@ +package net.srt.entity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import net.srt.framework.common.query.Query; + +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "数据治理-元数据采集查询") +public class MetadataCollectQuery extends Query { + private String name; + /** + * 入库策略,0-全量,1-增量 + */ + private Integer strategy; + + /** + * 任务类型 1一次性 2.周期性 + */ + private Integer taskType; +} 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 d894ed2..992d16f 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 @@ -1,8 +1,12 @@ package net.srt.service; import net.srt.entity.MetadataCollectEntity; +import net.srt.entity.MetadataCollectQuery; +import net.srt.framework.common.page.PageResult; import net.srt.framework.mybatis.service.BaseService; +import net.srt.vo.MetadataCollectVO; public interface MetadataCollectService extends BaseService { + PageResult page(MetadataCollectQuery query); } 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 6e74a43..29af401 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,13 +1,37 @@ 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.Wrappers; import lombok.AllArgsConstructor; +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.page.PageResult; import net.srt.framework.mybatis.service.impl.BaseServiceImpl; import net.srt.service.MetadataCollectService; +import net.srt.vo.MetadataCollectVO; import org.springframework.stereotype.Service; +import srt.cloud.framework.dbswitch.common.util.StringUtil; @Service @AllArgsConstructor public class MetadataCollectServiceImpl extends BaseServiceImpl implements MetadataCollectService { + @Override + public PageResult page(MetadataCollectQuery query) { + IPage page = baseMapper.selectPage(getPage(query), getWrapper(query)); + return new PageResult<>(MetadataCollectConvert.INSTANCE.convertList(page.getRecords()), page.getTotal()); + } + + private Wrapper getWrapper(MetadataCollectQuery query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.like(StringUtil.isNotBlank(query.getName()),MetadataCollectEntity::getName,query.getName()) + .eq(query.getStrategy()!=null,MetadataCollectEntity::getStrategy,query.getStrategy()) + .eq(query.getTaskType()!=null,MetadataCollectEntity::getTaskType,query.getTaskType()) + .orderByDesc(MetadataCollectEntity::getId); + dataScopeWithOrgId(wrapper); + return wrapper; + } } diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectVO.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectVO.java new file mode 100644 index 0000000..09a736e --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/MetadataCollectVO.java @@ -0,0 +1,74 @@ +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; + +@Data +@Schema(description = "数据治理-元数据采集") +public class MetadataCollectVO implements Serializable { + private static final long serialVersionUID = 1L; + + + @Schema(description = "主键id") + private Long id; + + @Schema(description = "任务名称") + private String name; + + @Schema(description = "数据库类型(1-数据库 2-中台库)") + private Integer dbType; + + @Schema(description = "数据库主键id") + private Long databaseId; + + @Schema(description = "入库策略,0-全量,1-增量") + private Integer strategy; + + @Schema(description = "任务类型 1一次性 2.周期性") + private Integer taskType; + + @Schema(description = "cron表达式(秒 分 时 日 月 星期 年,例如 0 0 3 * * ? 表示每天凌晨三点执行)") + private String cron; + + @Schema(description = "归属元数据的目录") + private Long metadataId; + + @Schema(description = "描述") + private String description; + + @Schema(description = "是否已发布 0-否 1-是") + private Integer status; + + @Schema(description = "发布时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date releaseTime; + + @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; + +}