From 86dd8a7060e09cb3a56c8107c2e2df38676b4fcb Mon Sep 17 00:00:00 2001 From: Saisai Liu <1374434128@qq.com> Date: Wed, 8 May 2024 17:21:06 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=BC=95=E6=93=8E=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/engine/domain/engine/Engine.java | 14 +++++ .../domain/engine/action/ActionDiscard.java | 10 +++ .../engine/custom/IsNotNullEngineCustom.java | 22 +++++++ .../domain/engine/scope/DataModelEngine.java | 49 +++++++++++++++ .../domain/engine/scope/DataSetEngine.java | 28 +++++++++ .../domain/engine/scope/RecordEngine.java | 37 +++++++++++ .../muyu/engine/domain/model/DataModel.java | 40 ++++++++++++ .../engine/domain/model/DataSetModel.java | 31 ++++++++++ .../engine/domain/model/DataStandard.java | 12 ++++ .../muyu/engine/domain/model/RecordModel.java | 29 +++++++++ .../engine/domain/scope/DataModelContext.java | 26 ++++++++ .../engine/domain/scope/DataSetContext.java | 26 ++++++++ .../engine/domain/scope/RecordContext.java | 26 ++++++++ .../engine/domain/scope/ScopeContext.java | 12 ++++ .../muyu/engine/domain/scope/TaskContext.java | 14 +++++ .../domain/scope/model/DataProcessModel.java | 18 ++++++ .../scope/model/DataSetProcessModel.java | 18 ++++++ .../scope/model/RecordProcessModel.java | 20 ++++++ .../impl/RuleEngineVersionServiceImpl.java | 62 +++++++++---------- 19 files changed, 462 insertions(+), 32 deletions(-) create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/Engine.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/action/ActionDiscard.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/custom/IsNotNullEngineCustom.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataModelEngine.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataSetEngine.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/RecordEngine.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataModel.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataSetModel.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataStandard.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/RecordModel.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataModelContext.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataSetContext.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/RecordContext.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/ScopeContext.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/TaskContext.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataProcessModel.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataSetProcessModel.java create mode 100644 muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/RecordProcessModel.java diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/Engine.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/Engine.java new file mode 100644 index 0000000..401833d --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/Engine.java @@ -0,0 +1,14 @@ +package com.muyu.engine.domain.engine; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 引擎 + * @Version: 1.0 + */ +public interface Engine { + + public void execution(); + + public V get(); +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/action/ActionDiscard.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/action/ActionDiscard.java new file mode 100644 index 0000000..5f0ab74 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/action/ActionDiscard.java @@ -0,0 +1,10 @@ +package com.muyu.engine.domain.engine.action; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 丢弃 + * @Version: 1.0 + */ +public class ActionDiscard extends RuntimeException{ +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/custom/IsNotNullEngineCustom.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/custom/IsNotNullEngineCustom.java new file mode 100644 index 0000000..aa2529f --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/custom/IsNotNullEngineCustom.java @@ -0,0 +1,22 @@ +package com.muyu.engine.domain.engine.custom; + + +import com.muyu.engine.domain.engine.action.ActionDiscard; +import com.muyu.engine.domain.engine.scope.DataModelEngine; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 自定义不为空引擎 + * @Version: 1.0 + */ +public class IsNotNullEngineCustom extends DataModelEngine { + @Override + public void execution () { + Object value = getValue(); + + if (value == null || "".equals(value) || "null".equals(value)) { + throw new ActionDiscard(); + } + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataModelEngine.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataModelEngine.java new file mode 100644 index 0000000..cdb0281 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataModelEngine.java @@ -0,0 +1,49 @@ +package com.muyu.engine.domain.engine.scope; + + +import com.muyu.engine.domain.engine.Engine; +import com.muyu.engine.domain.model.DataModel; +import com.muyu.engine.domain.scope.DataModelContext; +import com.muyu.engine.domain.scope.model.DataProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 数据模型引擎接口 + * @Version: 1.0 + */ +public abstract class DataModelEngine implements Engine { + + private DataModelContext dataModelContext; + + @Override + public DataProcessModel get (){ + return dataModelContext.get(); + } + + public DataModel getModel(){ + return get().getDataModel(); + } + + + public String getKey () { + return getModel().getKey(); + } + + public Object getValue () { + return getModel().getValue(); + } + + public String getSourceType () { + return getModel().getSourceType(); + } + + public String getProcessType () { + return getModel().getProcessType(); + } + + public Class getProcessClass () { + return getModel().getProcessClass(); + } + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataSetEngine.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataSetEngine.java new file mode 100644 index 0000000..0bdaccf --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/DataSetEngine.java @@ -0,0 +1,28 @@ +package com.muyu.engine.domain.engine.scope; + +import com.muyu.engine.domain.engine.Engine; +import com.muyu.engine.domain.model.DataSetModel; +import com.muyu.engine.domain.scope.DataSetContext; +import com.muyu.engine.domain.scope.model.DataSetProcessModel; + +/** + * 数据模型引擎接口 + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 数据模型引擎接口 + * @Version: 1.0 + */ +public abstract class DataSetEngine implements Engine { + //上下文对象 + private DataSetContext dataSetContext; + + @Override + public DataSetProcessModel get() { + return dataSetContext.get(); + } + + public DataSetModel getModel(){ + return get().getDataSetModel(); + } + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/RecordEngine.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/RecordEngine.java new file mode 100644 index 0000000..8cfe267 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/engine/scope/RecordEngine.java @@ -0,0 +1,37 @@ +package com.muyu.engine.domain.engine.scope; + + +import com.muyu.engine.domain.engine.Engine; +import com.muyu.engine.domain.model.RecordModel; +import com.muyu.engine.domain.scope.RecordContext; +import com.muyu.engine.domain.scope.model.RecordProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 数据模型引擎接口 + * @Version: 1.0 + */ +public abstract class RecordEngine implements Engine { + + private RecordContext recordContext; + + @Override + public RecordProcessModel get() { + return recordContext.get(); + } + + //获取记录模型 + public RecordModel getModel(){ + return get().getRecordModel(); + } + + //获取键唯一值 + public String[] getKeys(){ + return get().getKeys(); + } + + + + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataModel.java new file mode 100644 index 0000000..72dbed1 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataModel.java @@ -0,0 +1,40 @@ +package com.muyu.engine.domain.model; + +import lombok.Data; + +/** + * 数据模型 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 数据模型 + * @Version: 1.0 + */ +@Data +public class DataModel { + + /** + * 数据键 + */ + private String key; + + /** + * 数据值 + */ + private Object value; + + /** + * 源标准-枚举 + */ + private String sourceType; + + /** + * 处理标准-枚举 + */ + private String processType; + + /** + * 处理类型 + */ + private Class processClass; + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataSetModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataSetModel.java new file mode 100644 index 0000000..7a5e5a7 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataSetModel.java @@ -0,0 +1,31 @@ +package com.muyu.engine.domain.model; + +/** + * 一页 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 一页 + * @Version: 1.0 + */ +public class DataSetModel { + + // [[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel]] + + private RecordModel[] recordModelArr = null; + + private DataSetModel(int recordModelLength){ + recordModelArr = new RecordModel[recordModelLength]; + } + private DataSetModel(RecordModel[] recordModelArr){ + recordModelArr = recordModelArr; + } + + public static DataSetModel build(int recordModelLength){ + return new DataSetModel(recordModelLength); + } + + public static DataSetModel build(RecordModel[] recordModelArr){ + return new DataSetModel(recordModelArr); + } + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataStandard.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataStandard.java new file mode 100644 index 0000000..a1ebc0a --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/DataStandard.java @@ -0,0 +1,12 @@ +package com.muyu.engine.domain.model; + +/** + * 数据标准 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 数据标准 + * @Version: 1.0 + */ +public interface DataStandard { + +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/RecordModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/RecordModel.java new file mode 100644 index 0000000..2ae82ac --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/model/RecordModel.java @@ -0,0 +1,29 @@ +package com.muyu.engine.domain.model; + +/** + * 记录模型 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 记录模型 + * @Version: 1.0 + */ +public class RecordModel { + // [DataModel,DataModel,DataModel] + + private RecordModel(int dataModelLength){ + dataModelArr = new DataModel[dataModelLength]; + } + private RecordModel(DataModel[] dataModelArr){ + dataModelArr = dataModelArr; + } + + private DataModel[] dataModelArr = null; + + public static RecordModel build(int dataModelLength){ + return new RecordModel(dataModelLength); + } + + public static RecordModel build(DataModel[] dataModelArr){ + return new RecordModel(dataModelArr); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataModelContext.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataModelContext.java new file mode 100644 index 0000000..f29f7a2 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataModelContext.java @@ -0,0 +1,26 @@ +package com.muyu.engine.domain.scope; + + +import com.muyu.engine.domain.scope.model.DataProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 数据模型 + * @Version: 1.0 + */ +public class DataModelContext implements ScopeContext { + + private static final ThreadLocal THREAD_LOCAL = new ThreadLocal<>(); + + private final DataSetContext dataSetContext; + + public DataModelContext (DataSetContext dataSetContext) { + this.dataSetContext = dataSetContext; + } + + @Override + public DataProcessModel get () { + return THREAD_LOCAL.get(); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataSetContext.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataSetContext.java new file mode 100644 index 0000000..cc7a4bd --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/DataSetContext.java @@ -0,0 +1,26 @@ +package com.muyu.engine.domain.scope; + + +import com.muyu.engine.domain.scope.model.DataSetProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 数据集 + * @Version: 1.0 + */ +public class DataSetContext implements ScopeContext{ + + private static final ThreadLocal THREAD_LOCAL = new ThreadLocal<>(); + + private final RecordContext recordContext; + + public DataSetContext (RecordContext recordContext) { + this.recordContext = recordContext; + } + + @Override + public DataSetProcessModel get() { + return THREAD_LOCAL.get(); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/RecordContext.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/RecordContext.java new file mode 100644 index 0000000..ee88c84 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/RecordContext.java @@ -0,0 +1,26 @@ +package com.muyu.engine.domain.scope; + + +import com.muyu.engine.domain.scope.model.RecordProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 记录/资产模型 + * @Version: 1.0 + */ +public class RecordContext implements ScopeContext { + + private static final ThreadLocal THREAD_LOCAL = new ThreadLocal<>(); + + private final TaskContext taskContext; + + public RecordContext(TaskContext taskContext) { + this.taskContext = taskContext; + } + + @Override + public RecordProcessModel get(){ + return THREAD_LOCAL.get(); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/ScopeContext.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/ScopeContext.java new file mode 100644 index 0000000..5ea801a --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/ScopeContext.java @@ -0,0 +1,12 @@ +package com.muyu.engine.domain.scope; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 数据域规范 + * @Version: 1.0 + */ +public interface ScopeContext { + + V get(); +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/TaskContext.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/TaskContext.java new file mode 100644 index 0000000..dc2fe50 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/TaskContext.java @@ -0,0 +1,14 @@ +package com.muyu.engine.domain.scope; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 任务上下文 + * @Version: 1.0 + */ +public class TaskContext { + + public static TaskContext build(){ + return new TaskContext(); + } +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataProcessModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataProcessModel.java new file mode 100644 index 0000000..328fd70 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataProcessModel.java @@ -0,0 +1,18 @@ +package com.muyu.engine.domain.scope.model; + + +import com.muyu.engine.domain.model.DataModel; +import lombok.Data; + +/** + * 数据处理模型 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 数据处理模型 + * @Version: 1.0 + */ +@Data +public class DataProcessModel { + + private DataModel dataModel; +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataSetProcessModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataSetProcessModel.java new file mode 100644 index 0000000..fb4dcb4 --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/DataSetProcessModel.java @@ -0,0 +1,18 @@ +package com.muyu.engine.domain.scope.model; + + +import com.muyu.engine.domain.model.DataSetModel; +import lombok.Data; + +/** + * 数据集处理模型 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 数据集处理模型 + * @Version: 1.0 + */ +@Data +public class DataSetProcessModel { + + private DataSetModel dataSetModel; +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/RecordProcessModel.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/RecordProcessModel.java new file mode 100644 index 0000000..e4fea2d --- /dev/null +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/domain/scope/model/RecordProcessModel.java @@ -0,0 +1,20 @@ +package com.muyu.engine.domain.scope.model; + + +import com.muyu.engine.domain.model.RecordModel; +import lombok.Data; + +/** + * 行级别任务处理模型 + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 行级别任务处理模型 + * @Version: 1.0 + */ +@Data +public class RecordProcessModel { + + private String[] keys; + + private RecordModel recordModel; +} diff --git a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java index 381c356..60d3c9b 100644 --- a/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java +++ b/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java @@ -163,42 +163,40 @@ public class RuleEngineVersionServiceImpl extends ServiceImpl() {{ -// eq(Scope::getRuleEngineId, ruleEngine.getId()); -// eq(Scope::getValue, "taskContext"); -// }}); -// String code = scope.getCode(); -// String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("\\.", "/").trim(); -// String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); -// //代码编译 -// File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java"); -// if (!file.exists()) { -// //不存在创建 -// file.createNewFile(); -// }else { -// //存在测重新创建 -// file.delete(); -// file.createNewFile(); -// } -// String[] split = code.split("/n"); -// //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。 -// OutputStreamWriter outputStreamWriter = -// new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8"); -// //BufferedWriter对象,用于缓冲写入数据,提高写入效率。 -// BufferedWriter bw = new BufferedWriter(outputStreamWriter); -// for (String str : split) { -// bw.write(str); -// bw.newLine(); -// } -// bw.close(); -// outputStreamWriter.close(); + System.out.println("初始化"); + System.out.println(ruleEngine); + RuleEngineVersion ruleEngineVersion = this.getOne(new LambdaQueryWrapper() {{ + eq(RuleEngineVersion::getRuleEngineId, ruleEngine.getId()); + }}); + String code = ruleEngineVersion.getCodeIng(); + String path = code.substring(code.indexOf("com"), code.indexOf(";")).replaceAll("\\.", "/").trim(); + String fileName = code.substring(code.indexOf("class") + 6, code.indexOf("{")).trim(); + //代码编译 + File file = new File("D:/ruoyi/FinallyTest/muyu-modules/muyu-ruleEngine/muyu-ruleEngine-service/src/main/java/" + path + "/" + fileName + ".java"); + if (!file.exists()) { + //不存在创建 + file.createNewFile(); + }else { + //存在测重新创建 + file.delete(); + file.createNewFile(); + } + String[] split = code.split("/n"); + //OutputStreamWriter对象将字符转换为字节流,指定了文件输出流和编码方式。 + OutputStreamWriter outputStreamWriter = + new OutputStreamWriter(new FileOutputStream(file, true), "UTF-8"); + //BufferedWriter对象,用于缓冲写入数据,提高写入效率。 + BufferedWriter bw = new BufferedWriter(outputStreamWriter); + for (String str : split) { + bw.write(str); + bw.newLine(); + } + bw.close(); + outputStreamWriter.close(); return true; } }