From b3f4ccbb78a05893abecc3aedd44c6691baa3c3a Mon Sep 17 00:00:00 2001 From: Silliter Date: Mon, 29 Apr 2019 15:43:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/WmsEnumUtil.java | 84 ++++++++++++++++++++++ .../wms/engine/script/EngineScriptPersistence.java | 21 ++++-- 2 files changed, 99 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java index 9b30cff..1126543 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/WmsEnumUtil.java @@ -2102,4 +2102,88 @@ public class WmsEnumUtil { return tmp; } } + + /** + * 脚本类型 + * 10=组件脚本,20=表单脚本,30=报表脚本,40=JOB脚本,50=其他脚本 + */ + public enum SCRIPT_TYPE { + MODUAL(10,"Modual","组件脚本"), + FORM(20,"Form","表单脚本"), + REPORT(30,"Report","报表脚本"), + JOB(40,"Job","JOB脚本"), + OTHER(50,"Other","其他脚本"); + + private String description; + private int value; + private String code; + + SCRIPT_TYPE(int value, String code, String description) { + this.description = description; + this.value = value; + this.code = code; + } + + public String getCode() { + return this.code; + } + + public int getIndex() { + return this.value; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + } + + /** + * 脚本语言类型 + * 10=Groovy, 20=Jython, 30=JavaScript, 40=Scala, 50=JRuby + */ + public enum LANGUAGE_TYPE { + GROOVY(1,"Groovy", 10), + PYTHON(2,"Python", 20), + JS(3,"JavaScript", 30); + // 下面这2种语言没人会写,暂不支持 + //SCALA(40,"scala"), + //JRUBY(50,"jruby"); + + private int index; + private String description; + private int value; + + private LANGUAGE_TYPE(int index, String description, int value) { + this.index = index; + this.description = description; + this.value = value; + } + + public String getDescription() { + return description; + } + + public int getIndex() { + return this.index; + } + + public int getValue() { + return value; + } + + // 根据枚举编号获取语言代码 + public static String getCodeByIndex(int index) { + for (LANGUAGE_TYPE languageType : LANGUAGE_TYPE.values()) { + if (languageType.getIndex() == index) { + return languageType.getDescription(); + } + } + + return null; + } + } } diff --git a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/engine/script/EngineScriptPersistence.java b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/engine/script/EngineScriptPersistence.java index 7e498d3..c928ee1 100644 --- a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/engine/script/EngineScriptPersistence.java +++ b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/engine/script/EngineScriptPersistence.java @@ -4,11 +4,15 @@ import cn.estsh.i3plus.pojo.base.bean.BaseBean; import io.swagger.annotations.Api; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; import javax.script.CompiledScript; +import javax.script.ScriptContext; +import javax.script.ScriptEngine; +import javax.script.ScriptException; /** * 脚本持久化实体类 @@ -20,6 +24,7 @@ import javax.script.CompiledScript; @Entity @DynamicInsert @DynamicUpdate +@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @Table(name = "SCRIPT_PERSISTENCE") @Api("系统动态脚本") @@ -27,30 +32,34 @@ public class EngineScriptPersistence extends BaseBean { // 脚本调用的唯一编号,例如:WMS_PDA_0001 @Column(name = "SCRIPT_NO", length = 50) private String scriptNo; + // 脚本的中文名称 @Column(name = "SCRIPT_NAME", length = 50) private String scriptName; + // 10=组件脚本,20=表单脚本,30=报表脚本,40=JOB脚本,50=其他脚本 @Column(name = "SCRIPT_TYPE") - private int scriptType; + private Integer scriptType; + // 脚本编写的语言 // 10=Groovy, 20=Jython, 30=JavaScript, 40=Scala, 50=JRuby @Column(name = "LANGUAGE_TYPE") - private int languageType; + private Integer languageType; + // 脚本的具体内容 @Column(name = "SCRIPT_CONTENT", columnDefinition = "TEXT") private String scriptContent; + // 脚本的描述,包含脚本的用法,参数说明等 @Column(name = "SCRIPT_REMARK", length = 2000) private String scriptRemark; + // 编译后的脚本内容,通过预编译加快脚本的运行速度 @Transient - private CompiledScript compiledScript; - - public EngineScriptPersistence() {} + private Object compiledScript; // 构造方法,便于批量创建数据 - public EngineScriptPersistence(long id, String scriptNo, String scriptName, int scriptType, int languageType, + public EngineScriptPersistence(Long id, String scriptNo, String scriptName, Integer scriptType, Integer languageType, String scriptContent, String scriptRemark) { this.id = id; this.scriptNo = scriptNo;