From b3f4ccbb78a05893abecc3aedd44c6691baa3c3a Mon Sep 17 00:00:00 2001 From: Silliter Date: Mon, 29 Apr 2019 15:43:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=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; From c03c7d3331275b33b88d7f21d998816809d0bf14 Mon Sep 17 00:00:00 2001 From: Silliter Date: Mon, 29 Apr 2019 16:10:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=A7=84?= =?UTF-8?q?=E5=88=99=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java index 615e686..6fec350 100644 --- a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java +++ b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java @@ -7,6 +7,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.wms.bean.*; +import cn.estsh.i3plus.pojo.wms.engine.rule.EngineRulePersistence; import cn.estsh.i3plus.pojo.wms.engine.script.EngineScriptPersistence; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Strings; @@ -1663,6 +1664,24 @@ public class WmsHqlPack { } /** + * 查询规则持久化 查询条件封装 + * + * @return + */ + public static DdlPackBean packEngineRulePersistence(EngineRulePersistence rulePersistence) { + DdlPackBean packBean = new DdlPackBean(); + DdlPreparedPack.getStringEqualPack(rulePersistence.getRuleNo(), "ruleNo", packBean); + DdlPreparedPack.getStringRightLikerPack(rulePersistence.getRuleName(), "ruleName", packBean); + DdlPreparedPack.getNumEqualPack(rulePersistence.getRuleContent(), "ruleContent", packBean); + + getStringBuilderPack(rulePersistence, packBean); + + DdlPreparedPack.getOrderByPack(new Object[]{2}, new String[]{"createDatetime"}, packBean); + return packBean; + } + + + /** * 盘点主表 分页查询(散件) * * @param wmsCSOrderMaster From afae8d085e42a79c90a65e44081264deffcf77ab Mon Sep 17 00:00:00 2001 From: Silliter Date: Mon, 29 Apr 2019 17:42:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java index 6fec350..3c50daf 100644 --- a/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java +++ b/modules/i3plus-pojo-wms/src/main/java/cn/estsh/i3plus/pojo/wms/sqlpack/WmsHqlPack.java @@ -1537,19 +1537,19 @@ public class WmsHqlPack { * @param wmsDataAuth * @return */ - public static String packHqlWmsDataAuthFind(WmsDataAuth wmsDataAuth) { - StringBuffer result = new StringBuffer(); + public static DdlPackBean packHqlWmsDataAuthFind(WmsDataAuth wmsDataAuth) { + DdlPackBean result = new DdlPackBean(); if (!Strings.isNullOrEmpty(wmsDataAuth.getRoleCode())) { - HqlPack.getStringEqualPack(wmsDataAuth.getRoleCode(), "roleCode", result); + DdlPreparedPack.getStringEqualPack(wmsDataAuth.getRoleCode(), "roleCode", result); } if (!Strings.isNullOrEmpty(wmsDataAuth.getDataObj())) { - HqlPack.getStringEqualPack(wmsDataAuth.getDataObj(), "dataObj", result); + DdlPreparedPack.getStringEqualPack(wmsDataAuth.getDataObj(), "dataObj", result); } if (!Strings.isNullOrEmpty(wmsDataAuth.getDataObjValue())) { - HqlPack.getStringRightLikerPack(wmsDataAuth.getDataObjValue(), "dataObjValue", result); + DdlPreparedPack.getStringRightLikerPack(wmsDataAuth.getDataObjValue(), "dataObjValue", result); } getStringBuilderPack(wmsDataAuth, result); - return result.toString(); + return result; } /** @@ -1558,11 +1558,11 @@ public class WmsHqlPack { * @param taskDetails * @return */ - public static String packHqlWmsTaskDetails(WmsTaskDetails taskDetails) { - StringBuffer result = new StringBuffer(); - HqlPack.getStringEqualPack(taskDetails.getOrderNo(), "orderNo", result); + public static DdlPackBean packHqlWmsTaskDetails(WmsTaskDetails taskDetails) { + DdlPackBean result = new DdlPackBean(); + DdlPreparedPack.getStringEqualPack(taskDetails.getOrderNo(), "orderNo", result); getStringBuilderPack(taskDetails, result); - return result.toString(); + return result; } /**