From e17ee79fa35dd01e28a51118d904f4cec288dcb3 Mon Sep 17 00:00:00 2001 From: chenbingxuan <3581044601@qq.com> Date: Wed, 27 Dec 2023 22:22:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BC=80=E5=8F=91=E6=A8=A1?= =?UTF-8?q?=E5=9D=97N.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/net/srt/vo/DatastandardVo.java | 49 ------- .../src/main/java/net/srt/DevelopmentApp.java | 1 - .../controller/DataCheckSqlController.java | 37 ++++- .../controller/DataSaveController.java | 22 --- .../convert/DataCheckSqlConvert.java | 13 ++ .../convert/DataSqlSaveConvert.java | 14 -- .../srt/disposition/dto/DataCheckSqlDto.java | 40 +----- .../net/srt/disposition/dto/DataSqlDto.java | 59 ++++++++ .../srt/disposition/entity/DataCentre.java | 58 ++++++++ .../entity/DataCheckSqlEntity.java | 50 +++++-- .../disposition/entity/DataSqlSaveEntity.java | 61 -------- .../mapper/DataSaveServiceMapper.java | 9 -- .../service/DataCheckSqlService.java | 11 +- .../disposition/service/DataSaveService.java | 10 -- .../service/impl/DataCheckSqlServiceImpl.java | 130 ++++++++++++++---- .../service/impl/DataSaveServiceImpl.java | 24 ---- .../net/srt/disposition/vo/DataSqlVo.java | 22 +++ 17 files changed, 340 insertions(+), 270 deletions(-) delete mode 100644 srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVo.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java create mode 100644 srt-data-development/src/main/java/net/srt/disposition/convert/DataCheckSqlConvert.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java create mode 100644 srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlDto.java create mode 100644 srt-data-development/src/main/java/net/srt/disposition/entity/DataCentre.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java delete mode 100644 srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java create mode 100644 srt-data-development/src/main/java/net/srt/disposition/vo/DataSqlVo.java 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 deleted file mode 100644 index bc4a826..0000000 --- a/srt-cloud-data-governance/src/main/java/net/srt/vo/DatastandardVo.java +++ /dev/null @@ -1,49 +0,0 @@ -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-data-development/src/main/java/net/srt/DevelopmentApp.java b/srt-data-development/src/main/java/net/srt/DevelopmentApp.java index 32aa03f..e3bd2cf 100644 --- a/srt-data-development/src/main/java/net/srt/DevelopmentApp.java +++ b/srt-data-development/src/main/java/net/srt/DevelopmentApp.java @@ -18,7 +18,6 @@ import static com.alibaba.druid.sql.SQLUtils.toSQLString; @EnableDiscoveryClient @SpringBootApplication @EnableFeignClients - @MapperScan("net.srt.Fink.mapper") @MapperScan("net.srt.Hadoop.mapper") @MapperScan("net.srt.disposition.mapper") diff --git a/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java b/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java index d3c33ea..7025673 100644 --- a/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java +++ b/srt-data-development/src/main/java/net/srt/disposition/controller/DataCheckSqlController.java @@ -2,13 +2,17 @@ package net.srt.disposition.controller; import lombok.AllArgsConstructor; import net.srt.disposition.dto.DataCheckSqlDto; +import net.srt.disposition.dto.DataSqlDto; import net.srt.disposition.entity.DataCheckSqlEntity; import net.srt.disposition.service.DataCheckSqlService; import net.srt.disposition.vo.DataCheckSqlVo; +import net.srt.disposition.vo.DataSqlVo; +import net.srt.flink.common.result.SqlExplainResult; import net.srt.framework.common.utils.Result; -import org.springframework.web.bind.annotation.PostMapping; -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 @AllArgsConstructor @@ -17,8 +21,31 @@ public class DataCheckSqlController { private DataCheckSqlService dataCheckSqlService; + @PostMapping + public Result add(@RequestBody DataCheckSqlDto dataCheckSqlDto){ + dataCheckSqlService.add(dataCheckSqlDto); + return Result.ok(); + } + + + @GetMapping("/console-log") + public Result consoleLog(){ + return Result.ok(); + } + @GetMapping("/clear-log") + public Result checkLog(){ + return Result.ok(); + } + @PostMapping("/explain-sql") - public Result explainSql(DataCheckSqlDto dataCheckSqlDto) { - return Result.ok(dataCheckSqlService.explainSql(dataCheckSqlDto)); + public Result> explainSql(@RequestBody DataSqlDto dataSqlDto){ + List dataSqlVo=dataCheckSqlService.explainSql(dataSqlDto); + return Result.ok(dataSqlVo); + } + + @GetMapping("/{id}") + public Result get(@PathVariable Integer id) { + DataCheckSqlEntity dataCheckSqlEntity = dataCheckSqlService.find(id); + return Result.ok(dataCheckSqlEntity); } } diff --git a/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java b/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java deleted file mode 100644 index 8934867..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/controller/DataSaveController.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.srt.disposition.controller; - -import lombok.AllArgsConstructor; -import net.srt.disposition.dto.DataSqlSaveDto; -import net.srt.disposition.service.DataSaveService; -import net.srt.framework.common.utils.Result; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@AllArgsConstructor -@RequestMapping("/task") -public class DataSaveController { - private DataSaveService dataSaveService; - @PostMapping - public Result addSave(@RequestBody DataSqlSaveDto dataSqlSaveDto){ - dataSaveService.dataSaver(dataSqlSaveDto); - return Result.ok(); - } -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/convert/DataCheckSqlConvert.java b/srt-data-development/src/main/java/net/srt/disposition/convert/DataCheckSqlConvert.java new file mode 100644 index 0000000..ed427ec --- /dev/null +++ b/srt-data-development/src/main/java/net/srt/disposition/convert/DataCheckSqlConvert.java @@ -0,0 +1,13 @@ +package net.srt.disposition.convert; + +import net.srt.disposition.dto.DataCheckSqlDto; +import net.srt.disposition.entity.DataCheckSqlEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface DataCheckSqlConvert { + DataCheckSqlConvert INSTANCE = Mappers.getMapper(DataCheckSqlConvert.class); + + DataCheckSqlEntity convert(DataCheckSqlDto dataCheckSqlDto); +} diff --git a/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java b/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java deleted file mode 100644 index 74481d1..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/convert/DataSqlSaveConvert.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.srt.disposition.convert; - -import net.srt.disposition.dto.DataSqlSaveDto; -import net.srt.disposition.dto.DispositionDto; -import net.srt.disposition.entity.DataSqlSaveEntity; -import net.srt.disposition.entity.DispositionEntity; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -@Mapper -public interface DataSqlSaveConvert { - DataSqlSaveConvert INSTANCE = Mappers.getMapper(DataSqlSaveConvert.class); - DataSqlSaveEntity convert(DataSqlSaveDto vo); -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java b/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java index 0de6ddc..f3775cd 100644 --- a/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java +++ b/srt-data-development/src/main/java/net/srt/disposition/dto/DataCheckSqlDto.java @@ -2,6 +2,7 @@ package net.srt.disposition.dto; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import net.srt.disposition.entity.DataDatabaseDevEntity; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -9,48 +10,15 @@ import java.util.List; @Data public class DataCheckSqlDto { - private Long alertGroupId; private String alias; - private boolean batchModel; private Long catalogueId; - private Integer checkPoint; - private String clusterConfigurationId; - private Long clusterId; - private String configJson; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date createTime; - private Integer databaseId; - private Integer deleted; + private Long databaseId; + private List databaseList; private Integer dialect; - private boolean enabled; - private Integer envId; - private boolean fragment; - private Integer id; - private Integer jarId; - private String jobName; - private Integer maxRowNum; + private Long id; private String name; - private String note; private Integer openTrans; - private Integer parallelism; - private boolean processEnd; - private Integer projectId; private Integer pvdataNum; - private String savePointPath; - private String savePointStrategy; private Integer sqlDbType; private String statement; - private boolean statementSet; - private Integer step; - private String type; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date updateTime; - private Integer updater; - private boolean useAutoCancel; - private boolean useChangeLog; - private boolean usrResult; - private Integer version; - private Integer versionId; } diff --git a/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlDto.java b/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlDto.java new file mode 100644 index 0000000..08e1ac8 --- /dev/null +++ b/srt-data-development/src/main/java/net/srt/disposition/dto/DataSqlDto.java @@ -0,0 +1,59 @@ +package net.srt.disposition.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import net.srt.disposition.entity.DataDatabaseDevEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +@Data +public class DataSqlDto { + private Long alertGroupId; + private String alias; + private String batchModel; + private String checkPoint; + private Long clusterConfigurationId; + private Long clusterId; + private String configJson; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date creatTime; + private String creator; + private Long databaseId; + private List databaseList; + private String deleted; + private Integer dialect; + private String enabled; + private Long envId; + private String fragment; + private Long id; + private Long jarId; + private Long jobInstanceId; + private String jobName; + private Integer maxRowNum; + private String name; + private String note; + private Integer parallelism; + private boolean processEnd; + private Long projectId; + private Integer pvdataNum; + private String savePointPath; + private String savePointStrategy; + private Integer sqlDbType; + private String statement; + private String statementSet; + private String step; + private Integer taskId; + private String type; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date updateTime; + private String updater; + private String usrAutoCancel; + private String usrChangeLog; + private String userResult; + private String version; + private Long versionId; +} diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataCentre.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCentre.java new file mode 100644 index 0000000..6218be7 --- /dev/null +++ b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCentre.java @@ -0,0 +1,58 @@ +package net.srt.disposition.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@TableName("data_centre") +public class DataCentre { + private Long id; + private Long projectId; + private String sqlDbType; + private Long databaseId; + private Long clusterId; + private Long clusterConfigurationId; + private String session; + private Long jobId; + private String jobName; + private String jobManagerAddress; + private Integer status; + private Integer dialect; + private String type; + private String statement; + private String error; + private String result; + private String configJson; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date startTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date endTime; + private Long taskId; + private String executeType; + private Long scheduleId; + private Long scheduleRecordId; + private Long scheduleNodeRecordId; + 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; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date updateTime;@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date finishTime; + private String instanceStatus; + private String executeSql; + private String executeNo; + private String jib; + private String duration; + +} diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java index c049b8d..0e309ae 100644 --- a/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java +++ b/srt-data-development/src/main/java/net/srt/disposition/entity/DataCheckSqlEntity.java @@ -11,16 +11,48 @@ import java.util.Date; @Data @TableName("data_check_sql") public class DataCheckSqlEntity { - @TableId("id") - private Integer id; + private Long id; + @TableId + private Long taskId; + private String name; + private Long projectId; + private String alias; + private Integer dialect; private String type; - private String sql; - private String parse; - private String explain; - private String error; - private String parseTrue; - private String explainTrue; + private Integer checkPoint; + private Integer savePointStrategy; + private String savePointPath; + private Integer parallelism; + private Boolean fragment; + private Boolean statementSet; + private Boolean batchModel; + private Long clusterId; + private Long clusterConfigurationId; + private Integer sqlDbType; + private Long databaseId; + private Integer openTrans; + private Long jarId; + private Long envId; + private Long alertGroupId; + private String configJson; + private String note; + private Integer step; + private Long jobInstanceId; + private Boolean useAutoCancel; + private Boolean useChangeLog; + private Boolean useResult; + private Integer pvdataNum; + private Boolean enabled; + private Long versionId; + private Integer version; + private Integer deleted; + private Long creator; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date explainTime; + private Date createTime; + private Long updater; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + private String statement; } diff --git a/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java b/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java deleted file mode 100644 index 097666f..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/entity/DataSqlSaveEntity.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.srt.disposition.entity; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import net.srt.framework.mybatis.entity.BaseEntity; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; -import java.util.List; - -@Data -@TableName("data_sql_save") -public class DataSqlSaveEntity { - @TableId("id") - private Long id; - private Long catalogueId; - private String name; - private Long projectId; - private String alias; - private Integer dialect; - private Integer type; - private Integer checkPoint; - private Integer savePointStrategy; - private String savePointPath; - private Integer parallelism; - private boolean fragment; - private boolean statementSet; - private boolean batchModel; - private Long clusterId; - private Long clusterConfigurationId; - private Integer sqlDbType; - private Long databaseId; - private Integer openTrans; - private Long jarId; - private Long envId; - private Long alertGroupId; - private String configJson; - private String note; - private Integer step; - private Long jobInstanceId; - private boolean useAutoCancel; - private boolean useChangeLog; - private boolean useResult; - private Integer pvdataNum; - private boolean enabled; - private Long versionId; - private Integer version; - private Integer deleted; - private Long creator; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date createTime; - private Long updater; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private Date updateTime; - private String statement; - -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java b/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java deleted file mode 100644 index e201ad0..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/mapper/DataSaveServiceMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.srt.disposition.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import net.srt.disposition.entity.DataSqlSaveEntity; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface DataSaveServiceMapper extends BaseMapper { -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java b/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java index fb08166..6cdef3d 100644 --- a/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java +++ b/srt-data-development/src/main/java/net/srt/disposition/service/DataCheckSqlService.java @@ -2,9 +2,18 @@ package net.srt.disposition.service; import com.baomidou.mybatisplus.extension.service.IService; import net.srt.disposition.dto.DataCheckSqlDto; +import net.srt.disposition.dto.DataSqlDto; import net.srt.disposition.entity.DataCheckSqlEntity; import net.srt.disposition.vo.DataCheckSqlVo; +import net.srt.disposition.vo.DataSqlVo; +import net.srt.flink.common.result.SqlExplainResult; + +import java.util.List; public interface DataCheckSqlService extends IService { - DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto); + DataCheckSqlEntity find(Integer id); + + void add(DataCheckSqlDto dataCheckSqlDto); + + List explainSql(DataSqlDto dataSqlDto); } diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java b/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java deleted file mode 100644 index e58c953..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/service/DataSaveService.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.srt.disposition.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import net.srt.disposition.dto.DataSqlSaveDto; -import net.srt.disposition.entity.DataSqlSaveEntity; - -public interface DataSaveService extends IService { - void dataSaver(DataSqlSaveDto dataSqlSaveDto); - -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java index 7e7a5c1..1cba03b 100644 --- a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java +++ b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataCheckSqlServiceImpl.java @@ -1,48 +1,120 @@ package net.srt.disposition.service.impl; +import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.parser.SQLParserUtils; -import com.alibaba.druid.sql.parser.SQLStatementParser; -import jdk.nashorn.internal.runtime.ParserException; import lombok.AllArgsConstructor; +import net.srt.disposition.convert.DataCheckSqlConvert; import net.srt.disposition.dto.DataCheckSqlDto; +import net.srt.disposition.dto.DataSqlDto; import net.srt.disposition.entity.DataCheckSqlEntity; +import net.srt.disposition.entity.DataProductionTreeEntity; import net.srt.disposition.mapper.DataCheckSqlMapper; +import net.srt.disposition.mapper.DataProductionMapper; import net.srt.disposition.service.DataCheckSqlService; -import net.srt.disposition.vo.DataCheckSqlVo; +import net.srt.flink.common.result.SqlExplainResult; +import net.srt.flink.common.utils.LogUtil; +import net.srt.flink.process.context.ProcessContextHolder; +import net.srt.flink.process.model.ProcessEntity; +import net.srt.flink.process.model.ProcessStatus; +import net.srt.flink.process.model.ProcessStep; +import net.srt.flink.process.model.ProcessType; import net.srt.framework.mybatis.service.impl.BaseServiceImpl; -import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Service; -import java.util.Date; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; - -import static com.alibaba.druid.sql.SQLUtils.toSQLString; +import java.util.UUID; @Service @AllArgsConstructor public class DataCheckSqlServiceImpl extends BaseServiceImpl implements DataCheckSqlService { + + private DataProductionMapper dataProductionMapper; + @Override - public DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto) { - DataCheckSqlVo dataCheckSqlVo = new DataCheckSqlVo(); - try { - SQLStatementParser mysql = SQLParserUtils.createSQLStatementParser(dataCheckSqlDto.getStatement(), "mysql"); - SQLStatement sqlStatement = mysql.parseStatement(); - if (sqlStatement instanceof Select) { - dataCheckSqlVo.setType("SQLSelectStatement"); - } - dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement()); - dataCheckSqlVo.setParseTrue(true); - dataCheckSqlVo.setExplainTrue(true); - dataCheckSqlVo.setExplainTime(new Date()); - } catch (ParserException e) { - System.out.println("SQL转换中发生了错误:"+e.getMessage()); - dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement()); - dataCheckSqlVo.setError(e.getMessage()); - dataCheckSqlVo.setParseTrue(false); - dataCheckSqlVo.setExplainTrue(false); - dataCheckSqlVo.setExplainTime(new Date()); - } - return dataCheckSqlVo; + public DataCheckSqlEntity find(Integer id) { + DataCheckSqlEntity dataCheckSqlEntity = baseMapper.selectById(id); + return dataCheckSqlEntity; } + + @Override + public void add(DataCheckSqlDto dataCheckSqlDto) { + DataCheckSqlEntity convert = DataCheckSqlConvert.INSTANCE.convert(dataCheckSqlDto); + convert.setTaskId(dataCheckSqlDto.getCatalogueId()); + DataProductionTreeEntity dataProductionTreeEntity = new DataProductionTreeEntity(); + dataProductionTreeEntity.setId(dataCheckSqlDto.getCatalogueId()); + dataProductionTreeEntity.setTaskId(dataCheckSqlDto.getCatalogueId()); + dataProductionMapper.updateById(dataProductionTreeEntity); + baseMapper.insert(convert); + } + + @Override + public List explainSql(DataSqlDto dataSqlDto) { + ProcessEntity process = BuildStes(dataSqlDto); + // 初始化一个列表,用于存储SQL解析结果 + List sqlExplainResults = new ArrayList<>(); + // 初始化一个变量,用于存储当前正在处理的SQL语句 + String current = null; + // 记录SQL验证开始的日志 + process.info("Start check sql..."); + + try { + // 使用SQLUtils将输入的SQL解析为SQL语句列表 + List stmtList = SQLUtils.parseStatements(dataSqlDto.getStatement(), "SqlServer"); + + // 遍历列表中的每个SQL语句 + for (SQLStatement item : stmtList) { + // 设置当前正在处理的SQL语句,以便记录日志 + current = item.toString(); + + // 获取SQL语句的类型(例如,SELECT、INSERT)并添加到结果列表中 + String type = item.getClass().getSimpleName(); + SqlExplainResult success = SqlExplainResult.success(type, current, null); + sqlExplainResults.add(success); + } + + // 记录SQL正确的日志消息 + process.info("Sql is correct."); + + } catch (Exception e) { + // 如果在SQL解析过程中发生异常,将失败的结果添加到列表中 + SqlExplainResult fail = SqlExplainResult.fail(current, LogUtil.getError(e)); + sqlExplainResults.add(fail); + + String error = LogUtil.getError(e); + // 记录错误消息 + process.error(error); + } + + // 返回SQL解析结果列表 + return sqlExplainResults; + } + + private ProcessEntity BuildStes(DataSqlDto dto) { + // 从上下文获取当前进程实体 + ProcessEntity process = ProcessContextHolder.getProcess(); + process.setPid(UUID.randomUUID().toString().replaceAll("-", "")); + process.setName(dto.getName()); + process.setTaskId(Math.toIntExact(dto.getDatabaseId())); + process.setType(ProcessType.SQLEXECUTE); + process.setStatus(ProcessStatus.RUNNING); + process.setAccessToken(getAccessToken()); + process.setProjectId(dto.getProjectId()); + process.setStartTime(LocalDateTime.now()); + process.setEndTime(LocalDateTime.now()); + process.setStepIndex(1); + + ProcessStep processStep = new ProcessStep(); + processStep.setStepStatus(process.getStatus()); + processStep.setStartTime(LocalDateTime.now()); + processStep.setEndTime(LocalDateTime.now()); + List steps = new ArrayList<>(); + steps.add(processStep); + process.setSteps(steps); + + return process; + + } + } diff --git a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java b/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java deleted file mode 100644 index e0afb74..0000000 --- a/srt-data-development/src/main/java/net/srt/disposition/service/impl/DataSaveServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.srt.disposition.service.impl; - -import lombok.AllArgsConstructor; -import net.srt.disposition.convert.DataSqlSaveConvert; -import net.srt.disposition.dto.DataSqlSaveDto; -import net.srt.disposition.entity.DataSqlSaveEntity; -import net.srt.disposition.mapper.DataSaveServiceMapper; -import net.srt.disposition.service.DataSaveService; -import net.srt.framework.mybatis.service.impl.BaseServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.Date; - -@Service -@AllArgsConstructor -public class DataSaveServiceImpl extends BaseServiceImpl implements DataSaveService { - - @Override - public void dataSaver(DataSqlSaveDto dataSqlSaveDto) { - DataSqlSaveEntity convert = DataSqlSaveConvert.INSTANCE.convert(dataSqlSaveDto); - convert.setCreateTime(new Date()); - baseMapper.insert(convert); - } -} diff --git a/srt-data-development/src/main/java/net/srt/disposition/vo/DataSqlVo.java b/srt-data-development/src/main/java/net/srt/disposition/vo/DataSqlVo.java new file mode 100644 index 0000000..7ef7984 --- /dev/null +++ b/srt-data-development/src/main/java/net/srt/disposition/vo/DataSqlVo.java @@ -0,0 +1,22 @@ +package net.srt.disposition.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class DataSqlVo { + private Long index; + private String type; + private String sql; + private String parse; + private String explain; + private String error; + private boolean parseTrue; + private boolean explainTrue; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date explainTime; +}