From aec4b9a85a693a03aa4cded21d8444f46e851fdc Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Tue, 4 Jun 2019 17:55:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=20=E5=A4=9A=E6=95=B0=E6=8D=AE=E6=BA=90=20=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/base/enumutil/BlockFormEnumUtil.java | 205 +++++++++++++++++++++ .../estsh/i3plus/pojo/form/bean/BfDataObject.java | 11 ++ .../estsh/i3plus/pojo/form/bean/BfDataSource.java | 72 ++++++++ .../form/repository/BfDataSourceRepository.java | 15 ++ .../i3plus/pojo/form/sqlpack/FormHqlPack.java | 15 ++ .../i3plus/pojo/model/report/TemplateModel.java | 4 + 6 files changed, 322 insertions(+) create mode 100644 modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataSource.java create mode 100644 modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/repository/BfDataSourceRepository.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java index f68a09e..c928c56 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BlockFormEnumUtil.java @@ -2117,4 +2117,209 @@ public class BlockFormEnumUtil { } } + /** + * 数据库连接方式 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum DATA_SOURCE_TYPE { + SOURCE_MARIA_DB(100, "MariaDB", "MariaDB 10.1","com.mysql.jdbc.Driver",3306), + SOURCE_SQL_SERVER(200, "SQL Server", "SQL Server 2017","com.microsoft.sqlserver.jdbc.SQLServerDriver",1433), + SOURCE_ORACLE(300, "Oracle", "Oralce 12C","oracle.jdbc.driver.OracleDriver",1521), + SOURCE_POSTGRE_SQL(400, "PostgreSql", "PostgreSql 10.5","org.postgresql.Driver",5432); + + private int value; + private String code; + private String description; + private String driverClassName; + private int defaultPort; + + private DATA_SOURCE_TYPE (int value, String code, String description,String driverClassName,int port) { + this.value = value; + this.code = code; + this.description = description; + this.driverClassName = driverClassName; + this.defaultPort = port; + } + + public int getValue() { + return value; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } + + public String getDriverClassName() { + return driverClassName; + } + + public int getDefaultPort() { + return defaultPort; + } + + public static String valueOfCode(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].code; + } + } + return tmp; + } + + public static int codeOfValue(String code) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].value; + } + } + return tmp; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static DATA_SOURCE_TYPE valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + + public static String codeOfDescription(String code) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].description; + } + } + return tmp; + } + + public String getJDBCUrl(String database,String host,Integer port){ + if(this.getValue() == SOURCE_MARIA_DB.getValue()){ + return getJDBCUrlMySQL(database,host,port); + }else if(this.getValue() == SOURCE_ORACLE.getValue()){ + return getJDBCUrlOracle(database,host,port); + }else if(this.getValue() == SOURCE_POSTGRE_SQL.getValue()){ + return getJDBCUrlPostgreSQL(database,host,port); + }else if(this.getValue() == SOURCE_SQL_SERVER.getValue()){ + return getJDBCUrlSQLServer(database,host,port); + } + return null; + } + + private String getJDBCUrlMySQL(String database,String host,Integer port){ + return "jdbc:mysql://"+host+":"+port+"/"+database+"?autoReconnect=true&useSSL=false&characterEncoding=utf-8"; + } + + private String getJDBCUrlOracle(String database,String host,Integer port){ + return "jdbc:oracle:thin:@"+host+":"+port+":"+database; + } + + private String getJDBCUrlPostgreSQL(String database,String host,Integer port){ + return "jdbc:postgresql://"+host+":"+port+"/"+database; + } + + private String getJDBCUrlSQLServer(String database,String host,Integer port){ + return "jdbc:sqlserver://" + host + ":" + port + ";database=" + database; + } + } + + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum DATA_SOURCE_STATUS { + CONN_SUCCESS(10, "连接成功", "连接成功"), + CONN_FAILURE(20, "连接失败", "连接失败"); +// TIME_OUT(30, "连接超时", "连接超时"), +// AUTH_ERROR(40, "账号密码错误", "账号密码错误"); + + private int value; + private String code; + private String description; + + private DATA_SOURCE_STATUS (int value, String code, String description) { + this.value = value; + this.code = code; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } + + + + public static String valueOfCode(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].code; + } + } + return tmp; + } + + public static int codeOfValue(String code) { + int tmp = 1; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].value; + } + } + return tmp; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static DATA_SOURCE_STATUS valueOf(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + return values()[i]; + } + } + return null; + } + + public static String codeOfDescription(String code) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].code.equals(code)) { + tmp = values()[i].description; + } + } + return tmp; + } + } } diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataObject.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataObject.java index 432f0a1..3efddd4 100644 --- a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataObject.java +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataObject.java @@ -2,6 +2,8 @@ package cn.estsh.i3plus.pojo.form.bean; import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -28,6 +30,15 @@ import java.util.List; @Api(value="数据对象",description = "原数据对象,最原始数据") public class BfDataObject extends BaseBean { + @Column(name = "DATA_SOURCE_ID") + @ApiParam(value = "数据源ID", example = "-1") + @JsonSerialize(using = ToStringSerializer.class) + private Long dataSourceId; + + @Column(name="DATA_SOURCE_CODE_RDD") + @ApiParam(value ="数据源编码") + private String dataSourceCodeRdd; + @Column(name="OBJECT_NAME") @ApiParam(value ="数据名称") private String objectName; diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataSource.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataSource.java new file mode 100644 index 0000000..9d00452 --- /dev/null +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/bean/BfDataSource.java @@ -0,0 +1,72 @@ +package cn.estsh.i3plus.pojo.form.bean; + +import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import cn.estsh.i3plus.pojo.base.enumutil.BlockFormEnumUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.util.List; + +/** + * @Description : 数据对象 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-02-27 10:53 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="bf_data_source") +@Api(value="数据对象",description = "原数据对象,最原始数据") +public class BfDataSource extends BaseBean { + + @Column(name="SOURCE_NAME") + @ApiParam(value ="数据源名称") + private String sourceName; + + @Column(name="SOURCE_CODE") + @ApiParam(value ="数据源编码") + private String sourceCode; + + @Column(name="SOURCE_STATUS") + @ApiParam(value ="数据源状态",name = "状态:可用,不可用 看枚举当中是否存在") + private Integer sourceStatus; + + @Column(name="SOURCE_TYPE") + @ApiParam(value ="数据源类型",name = "BlockFormEnumUtil.DATA_SOURCE_TYPE") + private Integer sourceType; + + @Column(name="SOURCE_HOST") + @ApiParam(value ="数据源连接地址") + private String sourceHost; + + @Column(name="SOURCE_PORT") + @ApiParam(value ="数据源端口") + private Integer sourcePort; + + @Column(name="SOURCE_DATA_BASE_NAME") + @ApiParam(value ="数据库名称") + private String sourceDataBaseName; + + @Column(name="SOURCE_USER_NAME") + @ApiParam(value ="数据库用户名称") + private String sourceUserName; + + @Column(name="SOURCE_PASSWORD") + @ApiParam(value ="数据库用户密码") + private String sourcePassword; + + @Column(name="SOURCE_DESCRIPTION") + @ApiParam(value ="数据源描述") + private String sourceDescription; + +} diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/repository/BfDataSourceRepository.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/repository/BfDataSourceRepository.java new file mode 100644 index 0000000..0214bbb --- /dev/null +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/repository/BfDataSourceRepository.java @@ -0,0 +1,15 @@ +package cn.estsh.i3plus.pojo.form.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.form.bean.BfDataObject; +import cn.estsh.i3plus.pojo.form.bean.BfDataSource; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2019-06-03 18:05 + * @Modify: + **/ +public interface BfDataSourceRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java index dfb3cd4..90bf557 100644 --- a/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java +++ b/modules/i3plus-pojo-form/src/main/java/cn/estsh/i3plus/pojo/form/sqlpack/FormHqlPack.java @@ -314,4 +314,19 @@ public final class FormHqlPack { return ddlPackBean; } + + /** + * 元素信息复杂查询 + * @param source 查询条件 + * @return DdlPackBean + */ + public static DdlPackBean packHqlBfDataSource(BfDataSource source){ + DdlPackBean ddlPackBean = new DdlPackBean(); + + DdlPreparedPack.getStringLikerPack(source.getSourceHost(), "sourceHost", ddlPackBean); + DdlPreparedPack.getNumEqualPack(source.getSourceType(), "sourceType", ddlPackBean); + DdlPreparedPack.getNumEqualPack(source.getSourceStatus(), "sourceStatus", ddlPackBean); + + return ddlPackBean; + } } diff --git a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java index f915a33..c2b56cf 100644 --- a/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java +++ b/modules/i3plus-pojo-model/src/main/java/cn/estsh/i3plus/pojo/model/report/TemplateModel.java @@ -17,6 +17,10 @@ public class TemplateModel { @ApiParam("模板ID") @JsonSerialize(using = ToStringSerializer.class) + private Long sourceId; + + @ApiParam("模板ID") + @JsonSerialize(using = ToStringSerializer.class) private Long templateId; @ApiParam("执行 HQL ")