diff --git a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java index 961e612..87bd0b2 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityRuleController.java @@ -1,18 +1,21 @@ 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.convert.QualityRuleConvert; +import net.srt.entity.QualityQueryEntity; import net.srt.framework.common.page.PageResult; import net.srt.framework.common.utils.Result; import net.srt.query.QualityRuleQuery; import net.srt.service.QualityRuleService; import net.srt.vo.QualityRuleVo; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import oracle.ucp.proxy.annotation.Post; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; /** * @BelongsProject: srt_cloud @@ -26,9 +29,24 @@ import javax.validation.Valid; @AllArgsConstructor public class QualityRuleController { private final QualityRuleService dataGovernanceQualityRuleService; + @GetMapping("list") + @Operation(summary = "查询列表") + public Result> list(){ + List list=dataGovernanceQualityRuleService.list(); + return Result.ok(QualityRuleConvert.INSTANCE.convertList(list)); + + } @GetMapping("page") @Operation(summary = "分页") public Result> page(@Valid QualityRuleQuery query){ - return Result.ok(dataGovernanceQualityRuleService.pagea(query)); + PageResult page=dataGovernanceQualityRuleService.page(query); + return Result.ok(page); + } + + @PostMapping + @Operation(summary = "报存") + public Result save(@RequestBody QualityRuleVo vo){ + dataGovernanceQualityRuleService.save(vo); + return Result.ok(); } } 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 new file mode 100644 index 0000000..68bb3db --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/controller/QualityTaskController.java @@ -0,0 +1,47 @@ +package net.srt.controller; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.tags.Tags; +import lombok.AllArgsConstructor; +import net.srt.convert.QualityTaskConvert; +import net.srt.entity.QualityTaskEntity; +import net.srt.framework.common.page.PageResult; +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 javax.validation.Valid; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.controller + * @Author: jpz + * @CreateTime: 2023/12/21 11:29 + */ +@RestController +@RequestMapping("/quality-task") +@Tag(name = "数据治理-数据质量") +@AllArgsConstructor +public class QualityTaskController { + private final QualityTaskService qualityTaskService; + @GetMapping("page") + @Operation(summary = "分页") + public Result> page(@Valid QualityTaskQuery query){ + return Result.ok(qualityTaskService.pagea(query)); + } + + @GetMapping("{id}") + @Operation(summary = "信息") + public Result get(@PathVariable("id") Long id){ + QualityTaskEntity entity=qualityTaskService.getById(id); + return Result.ok(QualityTaskConvert.INSTANCE.covert(entity)); + } + + +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityRuleConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityRuleConvert.java index 83bc7f9..770d9a3 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityRuleConvert.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityRuleConvert.java @@ -20,4 +20,7 @@ public interface QualityRuleConvert { List convertList(List list); + + QualityQueryEntity conver(QualityRuleVo vo); + } diff --git a/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java new file mode 100644 index 0000000..9bc23c4 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/convert/QualityTaskConvert.java @@ -0,0 +1,28 @@ +package net.srt.convert; + +import net.srt.controller.QualityTaskController; +import net.srt.entity.QualityTaskEntity; +import net.srt.vo.QualityTaskVo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import org.springframework.stereotype.Component; + +import javax.swing.*; +import java.util.List; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.convert + * @Author: jpz + * @CreateTime: 2023/12/21 11:42 + */ +@Mapper +public interface QualityTaskConvert { + + + QualityTaskConvert INSTANCE = Mappers.getMapper(QualityTaskConvert.class); + + List covertList(List list); + + QualityTaskVo covert(QualityTaskEntity entity); +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskDao.java b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskDao.java new file mode 100644 index 0000000..30cdd87 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/dao/QualityTaskDao.java @@ -0,0 +1,15 @@ +package net.srt.dao; + +import net.srt.entity.QualityTaskEntity; +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/21 11:38 + */ +@Mapper +public interface QualityTaskDao extends BaseDao { +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityQueryEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityQueryEntity.java index d05a328..f205541 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityQueryEntity.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityQueryEntity.java @@ -18,7 +18,7 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = false) -@TableName(value = "data_governance_quality_rule") +@TableName(value = "data_governance_quality_rule",autoResultMap=true) public class QualityQueryEntity extends BaseEntity { /** * 名称 diff --git a/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskEntity.java b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskEntity.java new file mode 100644 index 0000000..7be2339 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/entity/QualityTaskEntity.java @@ -0,0 +1,54 @@ +package net.srt.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.entity + * @Author: jpz + * @CreateTime: 2023/12/21 10:46 + */ +@EqualsAndHashCode(callSuper = false) +@Data +@TableName(value = "data_governance_quality_task", autoResultMap = true) +public class QualityTaskEntity { + //id + private Long id; + //规则配置 + private Integer qualityConfigId; + //名称 + private String name; + //运行状态(1-等待中 2-运行中 3-正常结束 4-异常异常) + private Integer status; + //检测条数 + private Integer checkCount; + //检测通过条数 + private Integer passCount; + //未通过条数 + private Integer notPassCount; + //开始时间 + private Date startTime; + //结束时间 + private Date endTime; + //错误日志 + private String errorLog; + //项目id + private Integer projectId; + //版本号 + private Integer version; + //删除标识 0:正常 1:删除 + private Integer deleted; + //创建者 + private Integer creator; + //创建时间 + private Date createTime; + //更新者 + private Integer updater; + //更新时间 + private Date updateTime; + +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskQuery.java b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskQuery.java new file mode 100644 index 0000000..8168ab6 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/query/QualityTaskQuery.java @@ -0,0 +1,32 @@ +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/21 11:33 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Schema(description = "数据治理任务查询") +public class QualityTaskQuery extends Query { + private String name; + 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/QualityRuleService.java b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityRuleService.java index 458eb04..d6e54a7 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/service/QualityRuleService.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityRuleService.java @@ -13,5 +13,7 @@ import net.srt.vo.QualityRuleVo; * @CreateTime: 2023/12/20 19:53 */ public interface QualityRuleService extends BaseService { - PageResult pagea(QualityRuleQuery query); + PageResult page(QualityRuleQuery query); + + void save(QualityRuleVo vo); } 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 new file mode 100644 index 0000000..1a1b010 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/QualityTaskService.java @@ -0,0 +1,17 @@ +package net.srt.service; + +import net.srt.entity.QualityTaskEntity; +import net.srt.framework.common.page.PageResult; +import net.srt.framework.mybatis.service.BaseService; +import net.srt.query.QualityTaskQuery; +import net.srt.vo.QualityTaskVo; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.service + * @Author: jpz + * @CreateTime: 2023/12/21 11:36 + */ +public interface QualityTaskService extends BaseService { + PageResult pagea(QualityTaskQuery query); +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityRuleServiceimpl.java b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityRuleServiceimpl.java index f6019cf..66fdc52 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityRuleServiceimpl.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityRuleServiceimpl.java @@ -26,21 +26,23 @@ import srt.cloud.framework.dbswitch.common.util.StringUtil; @AllArgsConstructor public class QualityRuleServiceimpl extends BaseServiceImpl implements QualityRuleService { @Override - public PageResult pagea(QualityRuleQuery query) { - //查询分页 - IPage page =baseMapper.selectPage(getPage(query),getWrapper(query)); - //转换vo + public PageResult page(QualityRuleQuery query) { + IPage page=baseMapper.selectPage(getPage(query),getWrapper(query)); return new PageResult<>(QualityRuleConvert.INSTANCE.convertList(page.getRecords()),page.getTotal()); } + @Override + public void save(QualityRuleVo vo) { + QualityQueryEntity entity=QualityRuleConvert.INSTANCE.conver(vo); + entity.setProjectId(getProjectId()); + baseMapper.insert(entity); + } + private LambdaQueryWrapper getWrapper(QualityRuleQuery query) { - if (query!=null){ - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.like(StringUtil.isNotBlank(query.getName()), QualityQueryEntity::getName, query.getName()) - .like(StringUtil.isNotBlank(query.getEngName()), QualityQueryEntity::getEngName, query.getEngName()); - return wrapper; - } - return null; + LambdaQueryWrapper wrapper=Wrappers.lambdaQuery(); + wrapper.like(StringUtil.isNotBlank(query.getName()),QualityQueryEntity::getName,query.getName()) + .like(StringUtil.isNotBlank(query.getEngName()),QualityQueryEntity::getEngName,query.getName()); + return wrapper; } 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 new file mode 100644 index 0000000..708b574 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/service/impl/QualityTaskServiceimpl.java @@ -0,0 +1,50 @@ +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.QualityRuleConvert; +import net.srt.convert.QualityTaskConvert; +import net.srt.dao.QualityTaskDao; +import net.srt.entity.QualityQueryEntity; +import net.srt.entity.QualityTaskEntity; +import net.srt.framework.common.page.PageResult; +import net.srt.framework.mybatis.service.impl.BaseServiceImpl; +import net.srt.query.QualityTaskQuery; +import net.srt.service.QualityTaskService; +import net.srt.vo.QualityTaskVo; +import org.springframework.stereotype.Service; +import srt.cloud.framework.dbswitch.common.util.StringUtil; + +/** + * @BelongsProject: srt_cloud + * @BelongsPackage: net.srt.service.impl + * @Author: jpz + * @CreateTime: 2023/12/21 11:38 + */ +@Service +@AllArgsConstructor +public class QualityTaskServiceimpl extends BaseServiceImpl implements QualityTaskService { + @Override + public PageResult pagea(QualityTaskQuery query) { + //查询分页 + IPage page =baseMapper.selectPage(getPage(query),getWrapper(query)); + return new PageResult<>(QualityTaskConvert.INSTANCE.covertList(page.getRecords()),page.getTotal()); + } + + private LambdaQueryWrapper getWrapper(QualityTaskQuery query) { + LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); + wrapper.like(StringUtil.isNotBlank(query.getName()),QualityTaskEntity::getName,query.getName()) + .eq(query.getStatus()!=null,QualityTaskEntity::getQualityConfigId,query.getStatus()) + .eq(query.getStartTime()!=null,QualityTaskEntity::getStartTime,query.getStartTime()) + .eq(query.getEndTime()!=null,QualityTaskEntity::getEndTime,query.getEndTime()) + .orderByDesc(QualityTaskEntity::getId); + dataScopeWithOrgId(wrapper); + return wrapper; + } + + +} diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityRuleVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityRuleVo.java index 4c65882..68106e9 100644 --- a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityRuleVo.java +++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityRuleVo.java @@ -17,7 +17,7 @@ import java.util.List; */ @Data @Schema(description = "数据质量") -public class QualityRuleVo implements Serializable { +public class QualityRuleVo implements Serializable{ private static final long serialVersionUID = 1L; @Schema(description = "主键id") diff --git a/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskVo.java b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskVo.java new file mode 100644 index 0000000..c1b8e28 --- /dev/null +++ b/srt-cloud-data-governance/src/main/java/net/srt/vo/QualityTaskVo.java @@ -0,0 +1,62 @@ +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/21 10:43 + */ +@Data +@Schema(description = "数据治理-质量任务") +public class QualityTaskVo implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键id") + private Long id; + @Schema(description = "规则配置id") + private Integer qualityConfigId; + @Schema(description = "名称") + private String name; + @Schema(description = "运行状态(1-等待中 2-运行中 3-正常结束 4-异常结束)") + private Integer status; + @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 startTime; + @Schema(description = "结束时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date endTime; + @Schema(description = "错误日志") + private String errorLog; + @Schema(description = "项目id") + private Integer projectId; + @Schema(description = "版本号") + private Integer version; + @Schema(description = "删除标识 0:正常 1:删除") + private Integer deleted; + @Schema(description = "创建者") + private Integer creator; + @Schema(description = "创建时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date createTime; + @Schema(description = "更新者") + private Integer updater; + @Schema(description = "更新时间") + @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) + private Date updateTime; + + +}