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] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=B4=A8=E9=87=8F=E6=A3=80?= =?UTF-8?q?=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; +}