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-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/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/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/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/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/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/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/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/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/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/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 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/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/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-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..333fe3a --- /dev/null +++ b/srt-cloud-data-service/src/main/java/net/srt/controller/DataServiceAppController.java @@ -0,0 +1,43 @@ +package net.srt.controller; + +import io.swagger.v3.oas.annotations.Operation; +import lombok.AllArgsConstructor; +import net.srt.convert.DataServiceAppConvert; +import net.srt.entity.DataServiceApppEntity; +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.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; + +/** + * @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){ + DataServiceApppEntity dataServiceApppEntity = dataServiceAppService.getById(id); + return Result.ok(DataServiceAppConvert.INSTANCE.convert(dataServiceApppEntity)); + } +} 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..4a8d8bd --- /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.DataServiceApppEntity; +import net.srt.vo.DataServiceAppVo; +import org.apache.ibatis.annotations.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); + + DataServiceApppEntity convert(DataServiceAppVo vo); + + DataServiceAppVo convert(DataServiceApppEntity 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..6b1f886 --- /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.DataServiceApppEntity; +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 { + DataServiceApppEntity selectByApplyId(@Param("applyId") Long applyId); +} diff --git a/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApppEntity.java b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApppEntity.java new file mode 100644 index 0000000..116252b --- /dev/null +++ b/srt-cloud-data-service/src/main/java/net/srt/entity/DataServiceApppEntity.java @@ -0,0 +1,44 @@ +package net.srt.entity; + +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; + +/** + * @ClassName : DataServiceApppEntity + * @Description : + * @Author : FJJ + * @Date: 2023-12-23 08:46 + */ +@EqualsAndHashCode(callSuper = false) +@Data +@TableName("data_service_app") +public class DataServiceApppEntity extends BaseEntity { + + @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; +} 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..ee05f4d --- /dev/null +++ b/srt-cloud-data-service/src/main/java/net/srt/service/DataServiceAppService.java @@ -0,0 +1,17 @@ +package net.srt.service; + +import net.srt.entity.DataServiceApppEntity; +import net.srt.framework.common.page.PageResult; +import net.srt.framework.mybatis.service.BaseService; +import net.srt.query.DataServiceAppQuery; +import net.srt.vo.DataServiceAppVo; + +/** + * @ClassName : DataServiceAppService + * @Description : + * @Author : FJJ + * @Date: 2023-12-23 08:53 + */ +public interface DataServiceAppService extends BaseService { + PageResult page(DataServiceAppQuery query); +} 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..a605d3a --- /dev/null +++ b/srt-cloud-data-service/src/main/java/net/srt/service/impl/DataServiceAppServiceImpl.java @@ -0,0 +1,58 @@ +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.DataServiceApppEntity; +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 { + @Override + public PageResult page(DataServiceAppQuery query) { + if (query.getApplyId()!=null){ + DataServiceApppEntity dataServiceApppEntity=baseMapper.selectByApplyId(query.getApplyId()); + List list=new ArrayList<>(1); + if (dataServiceApppEntity!=null){ + list.add(dataServiceApppEntity); + return new PageResult<>(DataServiceAppConvert.INSTANCE.convertList(list),1); + } + return new PageResult<>(new ArrayList<>(),0); + + } + IPage page=baseMapper.selectPage(getPage(query),getWrapper(query)); + return new PageResult<>(DataServiceAppConvert.INSTANCE.convertList(page.getRecords()),page.getTotal()); + } + + + private LambdaQueryWrapper getWrapper(DataServiceAppQuery query) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.like(StringUtil.isNotBlank(query.getName()), DataServiceApppEntity::getName, query.getName()) + .eq(DataServiceApppEntity::getIfMarket, query.getIfMarket() != null ? query.getIfMarket() : 0) + .eq(query.getIfMarket() != null, DataServiceApppEntity::getCreator, SecurityUser.getUserId()) + .eq(StringUtil.isNotBlank(query.getAppKey()), DataServiceApppEntity::getAppKey, query.getAppKey()) + .orderByDesc(DataServiceApppEntity::getCreateTime).orderByDesc(DataServiceApppEntity::getId); + dataScopeWithoutOrgId(wrapper); + return wrapper; + } +} 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..82cb89d --- /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 3786216..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-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 82bba9a..4fb19ed 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 @@ -56,7 +56,7 @@ public class DataProductionServiceImpl extends BaseServiceImpl getChild(Integer id, List nodeVos) { + private static List getChild(Long id, List nodeVos) { // 子菜单 List childList = new ArrayList<>(10); for (DataProductionTreeVo node : nodeVos) { @@ -93,5 +93,4 @@ public class DataProductionServiceImpl extends BaseServiceImpl