From fa91cf680499abe29c1c27891e5e294c64c22f5c Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Wed, 26 Jan 2022 18:00:52 +0800 Subject: [PATCH] =?UTF-8?q?BSP=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/BspEnumUtil.java | 85 +++++++++++++++++++++- .../cn/estsh/i3plus/pojo/bsp/common/ReturnT.java | 56 -------------- .../bsp/common/script/strategy/GroovyScript.java | 30 ++++++++ .../pojo/bsp/common/script/strategy/Script.java | 21 ++++++ .../bsp/server/bean/model/MethodGroupModel.java | 5 +- .../pojo/bsp/server/bean/model/RequestModel.java | 8 ++ .../bsp/server/bean/po/ExecutorRegistryInfo.java | 4 + .../server/bean/po/ExecutorRegistryMethodInfo.java | 4 + .../pojo/bsp/server/bean/po/MethodGroupInfo.java | 6 +- .../i3plus/pojo/bsp/server/bean/po/MethodLog.java | 4 + 10 files changed, 161 insertions(+), 62 deletions(-) delete mode 100644 modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java create mode 100644 modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/GroovyScript.java create mode 100644 modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/Script.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BspEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BspEnumUtil.java index a84928e..90cffeb 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BspEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/BspEnumUtil.java @@ -14,12 +14,13 @@ public class BspEnumUtil { @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum PARAM_TYPE { - METHOD_PARAM_TYPE(10,"method","方法参数"), - SCRIPT_PARAM_TYPE(20,"script","脚本参数"); + METHOD_PARAM_TYPE(10, "method", "方法参数"), + SCRIPT_PARAM_TYPE(20, "script", "脚本参数"); private Integer value; private String code; private String description; - PARAM_TYPE(Integer value,String code,String description){ + + PARAM_TYPE(Integer value, String code, String description) { this.value = value; this.code = code; this.description = description; @@ -87,11 +88,51 @@ public class BspEnumUtil { } /** + * 脚本类型(Groovy、Python、JavaScript、Scala、Ruby) + * 用于策略模式,脚本执行 + * 要和language_type一对一 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum SCRIPT_TYPE { + GROOVY(10, "groovyScript"), + PYTHON(20, "pythonScript"), + JAVA_SCRIPT(30, "javaScript"), + SCALA(40, "scalaScript"), + RUBY(50, "rubyScript"); + + private int value; + private String beanName; + + SCRIPT_TYPE(int value, String beanName) { + this.value = value; + this.beanName = beanName; + } + + public int getValue() { + return value; + } + + public String getBeanName() { + return beanName; + } + + public static String valueOfBeanName(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].beanName; + } + } + return tmp; + } + } + + /** * 方法组类型 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum METHOD_GROUP_TYPE { - BSP(10,"BSP"), + BSP(10, "BSP"), WMS(20, "WMS"), MES(30, "MES"), APS(40, "APS"), @@ -123,4 +164,40 @@ public class BspEnumUtil { return tmp; } } + + + /** + * 执行器区分执行的是方法还是脚本 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum METHOD_OR_SCRIPT { + METHOD(10, "METHOD"), + SCRIPT(20, "SCRIPT"); + + private int value; + private String description; + + METHOD_OR_SCRIPT(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + 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; + } + } } diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java deleted file mode 100644 index 350078d..0000000 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/ReturnT.java +++ /dev/null @@ -1,56 +0,0 @@ -//package cn.estsh.i3plus.pojo.bsp.common; -// -//import java.io.Serializable; -// -///** -// * @author Castle -// */ -//public class ReturnT implements Serializable { -// public static final long serialVersionUID = 42L; -// -// public static final int SUCCESS_CODE = 200; -// public static final int FAIL_CODE = 500; -// -// public static final ReturnT SUCCESS = new ReturnT(null); -// public static final ReturnT FAIL = new ReturnT(FAIL_CODE, null); -// -// private int code; -// private String msg; -// private T content; -// -// public ReturnT(){} -// public ReturnT(int code, String msg) { -// this.code = code; -// this.msg = msg; -// } -// -// public ReturnT(T content) { -// this.code = SUCCESS_CODE; -// this.content = content; -// } -// -// public int getCode() { -// return code; -// } -// public void setCode(int code) { -// this.code = code; -// } -// public String getMsg() { -// return msg; -// } -// public void setMsg(String msg) { -// this.msg = msg; -// } -// public T getContent() { -// return content; -// } -// public void setContent(T content) { -// this.content = content; -// } -// -// @Override -// public String toString() { -// return "ReturnT [code=" + code + ", msg=" + msg + ", content=" + content + "]"; -// } -// -//} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/GroovyScript.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/GroovyScript.java new file mode 100644 index 0000000..f38f786 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/GroovyScript.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.pojo.bsp.common.script.strategy; + +import groovy.lang.GroovyClassLoader; +import groovy.lang.GroovyObject; + +import java.util.Map; +import java.util.Set; + +/** + * @Description : 默认执行execute方法,execute入参为空,groovy的属性是execute的入参 + * @Reference : + * @Author : Castle + * @CreateDate : 2022/1/26 15:03 + * @Modify: + **/ +public class GroovyScript implements Script{ + + @Override + public Map execute(String script,Map paramMap,String methodName) throws IllegalAccessException, InstantiationException { + Class scriptClass = new GroovyClassLoader().parseClass(script); + GroovyObject groovyObject = (GroovyObject) scriptClass.newInstance(); + Set keys = paramMap.keySet(); + keys.forEach(key ->{ + groovyObject.setProperty(key,paramMap.get(key)); + }); + methodName = methodName != null ? methodName : "execute"; + Map resultMap = (Map)groovyObject.invokeMethod(methodName,null); + return resultMap; + } +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/Script.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/Script.java new file mode 100644 index 0000000..6b437f1 --- /dev/null +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/common/script/strategy/Script.java @@ -0,0 +1,21 @@ +package cn.estsh.i3plus.pojo.bsp.common.script.strategy; + +import java.util.Map; + +/** + * @Description : + * @Reference : + * @Author : Castle + * @CreateDate : 2022/1/26 15:02 + * @Modify: + **/ +public interface Script { + /** + * 脚本接口 + * @param script + * @param paramMap + * @param methodName + * @return + */ + Map execute(String script,Map paramMap,String methodName) throws IllegalAccessException, InstantiationException; +} diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/MethodGroupModel.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/MethodGroupModel.java index 7338aeb..520fc98 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/MethodGroupModel.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/MethodGroupModel.java @@ -22,7 +22,7 @@ import java.util.List; public class MethodGroupModel { @ApiModelProperty("方法组id") - private Long methodGroupId; + private Long id; @ApiModelProperty("方法组的名称") private String methodGroupName; @@ -36,4 +36,7 @@ public class MethodGroupModel { @ApiModelProperty("方法组分类") private Integer classification; + @ApiModelProperty("链接关系") + private String connections; + } diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RequestModel.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RequestModel.java index 6366ff6..0532df0 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RequestModel.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/model/RequestModel.java @@ -27,4 +27,12 @@ public class RequestModel { private Map jsonParamMap; @ApiModelProperty("日志id") private Long logId; + @ApiModelProperty("方法类型-脚本-方法") + private Integer type; + @ApiModelProperty("脚本类型") + private Integer scriptType; + @ApiModelProperty("脚本内容") + private String scriptContent; + @ApiModelProperty("脚本执行位置") + private Integer scriptExecutor; } diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java index d016c2c..34839d3 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryInfo.java @@ -48,4 +48,8 @@ public class ExecutorRegistryInfo extends BaseBean implements Serializable { @Column(name = "HEART_BEAT") @ApiModelProperty("心跳,存活1,2死掉") private Integer heartBeat; + + @Column(name = "EXECUTOR_TYPE") + @ApiModelProperty("执行器的类型,同枚举Method_group_Type") + private Integer executorType; } diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java index 5a1f701..89e43de 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/ExecutorRegistryMethodInfo.java @@ -50,6 +50,10 @@ public class ExecutorRegistryMethodInfo extends BaseBean implements Serializable @ApiModelProperty("所属执行器的appName") private String appName; + @Column(name = "METHOD_TYPE") + @ApiModelProperty("方法类型,属于那个执行器类型,同枚举类method_group_type") + private Integer methodType; + @Column(name = "description") @ApiModelProperty("方法描述") private String description; diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodGroupInfo.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodGroupInfo.java index 30d3295..9d18301 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodGroupInfo.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodGroupInfo.java @@ -7,6 +7,7 @@ import lombok.*; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.Lob; import javax.persistence.Table; import java.io.Serializable; @@ -42,5 +43,8 @@ public class MethodGroupInfo extends BaseBean implements Serializable { @ApiModelProperty("方法组分类,挂载到的wms,mes等,枚举类") private Integer classification; - + @Lob + @Column(name = "CONNECTIONS") + @ApiModelProperty("方法组内的连线关系") + private String connections; } diff --git a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodLog.java b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodLog.java index 3f1e480..f85f4b3 100644 --- a/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodLog.java +++ b/modules/i3plus-pojo-bsp/src/main/java/cn/estsh/i3plus/pojo/bsp/server/bean/po/MethodLog.java @@ -51,4 +51,8 @@ public class MethodLog extends BaseBean implements Serializable { @ApiModelProperty("方法所属应用冗余") @Column(name = "APP_NAME_RDD") private String appNameRdd; + + @ApiModelProperty("区分方法或者脚本,BSP枚举") + @Column(name = "TYPE") + private Integer type; }