自定义表单 多数据源 功能完成

yun-zuoyi
wei.peng 6 years ago
parent 4cbc41a959
commit aec4b9a85a

@ -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;
}
}
}

@ -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;

@ -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;
}

@ -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<BfDataSource,Long> {
}

@ -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;
}
}

@ -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 ")

Loading…
Cancel
Save