diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/constant/ConfigCodeConstants.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/constant/ConfigCodeConstants.java index caf5fa2..552a2cb 100644 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/constant/ConfigCodeConstants.java +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/constant/ConfigCodeConstants.java @@ -10,7 +10,7 @@ public class ConfigCodeConstants { /** * 文件基础路径 */ - public final static String BASE_FILE_PATH="D:/workspace/gtl-ruoyi-server/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/"; + public final static String BASE_FILE_PATH="D:\\workspace\\gtl-ruoyi-server\\ruoyi-modules\\ruoyi-rule_engine\\ruoyi-rule_engine-common\\src\\main\\java\\com\\ruoyi\\ruleEngine\\context\\"; /** * 配置文件名数组 */ diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataModelContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataModelContextHolder.java new file mode 100644 index 0000000..8ddb94f --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataModelContextHolder.java @@ -0,0 +1,37 @@ +package com.ruoyi.ruleEngine.context; + +import com.ruoyi.ruleEngine.model.process.DataModelProcessModel; +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * 数据模型上下文 + * @ClassName DataModelContextHolder + * @Author 森静若林 + */ +@Data +@SuperBuilder +public class DataModelContextHolder{ + + private static final ThreadLocal THREAD_LOCAL=new ThreadLocal<>(); + + private RecordContextHolder recordContextHolder; + + public static DataModelContextHolder build(RecordContextHolder recordContextHolder){ + return DataModelContextHolder.builder() + .recordContextHolder(recordContextHolder) + .build(); + } + + public static DataModelProcessModel get() { + return THREAD_LOCAL.get(); + } + + public static void set(DataModelProcessModel dataModelProcessModel) { + THREAD_LOCAL.set(dataModelProcessModel); + } + + public static void remove() { + THREAD_LOCAL.remove(); + } +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataSetContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataSetContextHolder.java new file mode 100644 index 0000000..974fecd --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/DataSetContextHolder.java @@ -0,0 +1,37 @@ +package com.ruoyi.ruleEngine.context; + +import com.ruoyi.ruleEngine.model.process.DataSetProcessModel; +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * 数据集上下文 + * @ClassName DataSetContextHolder + * @Author 森静若林 + */ +@Data +@SuperBuilder +public class DataSetContextHolder{ + + private static final ThreadLocal THREAD_LOCAL=new ThreadLocal<>(); + + private TaskContextHolder taskContextHolder; + + public static DataSetContextHolder build(TaskContextHolder taskContextHolder){ + return DataSetContextHolder.builder() + .taskContextHolder(taskContextHolder) + .build(); + } + + public static DataSetProcessModel get() { + return THREAD_LOCAL.get(); + } + + public static void set(DataSetProcessModel dataSetProcessModel) { + THREAD_LOCAL.set(dataSetProcessModel); + } + + public static void remove() { + THREAD_LOCAL.remove(); + } +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/RecordContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/RecordContextHolder.java new file mode 100644 index 0000000..778ab75 --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/RecordContextHolder.java @@ -0,0 +1,37 @@ +package com.ruoyi.ruleEngine.context; + +import com.ruoyi.ruleEngine.model.process.RecordProcessModel; +import lombok.Data; +import lombok.experimental.SuperBuilder; + +/** + * 记录上下文 + * @ClassName RecordContextHolder + * @Author 森静若林 + */ +@Data +@SuperBuilder +public class RecordContextHolder{ + + private static final ThreadLocal THREAD_LOCAL=new ThreadLocal<>(); + + private DataSetContextHolder dataSetContextHolder; + + public static RecordContextHolder build(DataSetContextHolder dataSetContextHolder){ + return RecordContextHolder.builder() + .dataSetContextHolder(dataSetContextHolder) + .build(); + } + + public static RecordProcessModel get() { + return THREAD_LOCAL.get(); + } + + public static void set(RecordProcessModel recordProcessModel) { + THREAD_LOCAL.set(recordProcessModel); + } + + public static void remove() { + THREAD_LOCAL.remove(); + } +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/TaskContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/TaskContextHolder.java similarity index 79% rename from ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/TaskContextHolder.java rename to ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/TaskContextHolder.java index 5987641..285cc86 100644 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/TaskContextHolder.java +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/TaskContextHolder.java @@ -1,10 +1,9 @@ -package com.ruoyi.ruleEngine.scope; +package com.ruoyi.ruleEngine.context; /** * 任务上下文 * @ClassName TaskContextHolder * @Author 森静若林 - * @Version: 1.0 */ public class TaskContextHolder { diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/TestClass.txt b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/TestClass.txt similarity index 100% rename from ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/TestClass.txt rename to ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/context/TestClass.txt diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/DynamicLoader.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/DynamicLoader.java similarity index 100% rename from ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/DynamicLoader.java rename to ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/DynamicLoader.java diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/MemoryJavaFileManager.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/MemoryJavaFileManager.java similarity index 100% rename from ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/MemoryJavaFileManager.java rename to ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/dynamicLoad/MemoryJavaFileManager.java diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/Engine.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/Engine.java new file mode 100644 index 0000000..a6722fd --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/Engine.java @@ -0,0 +1,14 @@ +package com.ruoyi.ruleEngine.engine; + +/** + * 引擎 + * @ClassName Engine + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +public interface Engine { + + public void execution(); + + public V get(); +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/action/ActionDiscard.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/action/ActionDiscard.java new file mode 100644 index 0000000..3316ce4 --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/action/ActionDiscard.java @@ -0,0 +1,10 @@ +package com.ruoyi.ruleEngine.engine.action; + +/** + * 丢弃动作 + * @ClassName ActionDiscard + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +public class ActionDiscard extends RuntimeException{ +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/custom/IsNotNullEngineCustom.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/custom/IsNotNullEngineCustom.java new file mode 100644 index 0000000..8ee85d4 --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/custom/IsNotNullEngineCustom.java @@ -0,0 +1,21 @@ +package com.ruoyi.ruleEngine.engine.custom; + +import com.ruoyi.ruleEngine.engine.action.ActionDiscard; +import com.ruoyi.ruleEngine.engine.scope.DataModelEngine; + +/** + * 不为空自定义引擎 + * @ClassName IsNotNullEngineCustom + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +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/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataModelEngine.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataModelEngine.java new file mode 100644 index 0000000..8974b06 --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataModelEngine.java @@ -0,0 +1,46 @@ +package com.ruoyi.ruleEngine.engine.scope; + +import com.ruoyi.ruleEngine.engine.Engine; +import com.ruoyi.ruleEngine.model.DataModel; +import com.ruoyi.ruleEngine.model.process.DataModelProcessModel; +import com.ruoyi.ruleEngine.context.DataModelContextHolder; + +/** + * 数据模型引擎 + * @ClassName DataModelEngine + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +public abstract class DataModelEngine implements Engine { + + @Override + public DataModelProcessModel get (){ + return DataModelContextHolder.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/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataSetEngine.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataSetEngine.java new file mode 100644 index 0000000..c6256ef --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/DataSetEngine.java @@ -0,0 +1,31 @@ +package com.ruoyi.ruleEngine.engine.scope; + +import com.ruoyi.ruleEngine.context.DataSetContextHolder; +import com.ruoyi.ruleEngine.engine.Engine; +import com.ruoyi.ruleEngine.model.DataSetModel; +import com.ruoyi.ruleEngine.model.RecordModel; +import com.ruoyi.ruleEngine.model.process.DataSetProcessModel; +import java.util.List; + +/** + * 数据集引擎 + * @ClassName DataSetEngine + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +public abstract class DataSetEngine implements Engine { + + @Override + public DataSetProcessModel get (){ + return DataSetContextHolder.get(); + } + + public DataSetModel getModel(){ + return get().getDataSetModel(); + } + + public List getRecordModels () { + return getModel().getRecordModels(); + } + +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/RecordEngine.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/RecordEngine.java new file mode 100644 index 0000000..eff443a --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/engine/scope/RecordEngine.java @@ -0,0 +1,34 @@ +package com.ruoyi.ruleEngine.engine.scope; + +import com.ruoyi.ruleEngine.context.RecordContextHolder; +import com.ruoyi.ruleEngine.engine.Engine; +import com.ruoyi.ruleEngine.model.DataModel; +import com.ruoyi.ruleEngine.model.RecordModel; +import com.ruoyi.ruleEngine.model.process.RecordProcessModel; +import java.util.List; + +/** + * 记录引擎 + * @ClassName RecordEngine + * @Author: 森静若林 + * @Date: 2024/5/6 13:48 + */ +public abstract class RecordEngine implements Engine { + + @Override + public RecordProcessModel get (){ + return RecordContextHolder.get(); + } + + public List getKeys(){ + return get().getKeys(); + } + + public RecordModel getModel(){ + return get().getRecordModel(); + } + + public List getDataModels () { + return getModel().getDataModels(); + } +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataModel.java new file mode 100644 index 0000000..b659e4d --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataModel.java @@ -0,0 +1,43 @@ +package com.ruoyi.ruleEngine.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据模型 + * @ClassName DataModel + * @Author 森静若林 + * @Date 2024/5/5 18:48 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DataModel { + /** + * 键 + */ + private String key; + + /** + * 值 + */ + private Object value; + + /** + * 原标准 + */ + private String sourceType; + + /** + * 处理标准 + */ + private String processType; + + /** + * 处理类型 + */ + private Class processClass; +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataSetModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataSetModel.java new file mode 100644 index 0000000..8d3f14d --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/DataSetModel.java @@ -0,0 +1,20 @@ +package com.ruoyi.ruleEngine.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.List; + +/** + * 数据集模型 + * @ClassName DataSetModel + * @Author 森静若林 + * @Date 2024/5/5 18:48 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DataSetModel { + + private List recordModels; +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/RecordModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/RecordModel.java new file mode 100644 index 0000000..dcd472f --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/RecordModel.java @@ -0,0 +1,22 @@ +package com.ruoyi.ruleEngine.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 记录模型 + * @ClassName RecordModel + * @Author 森静若林 + * @Date 2024/5/5 18:48 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RecordModel { + + private List dataModels; + +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataModelProcessModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataModelProcessModel.java new file mode 100644 index 0000000..ad5169d --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataModelProcessModel.java @@ -0,0 +1,15 @@ +package com.ruoyi.ruleEngine.model.process; + +import com.ruoyi.ruleEngine.model.DataModel; +import lombok.Data; + +/** + * 数据模型处理模型 + * @ClassName DataModelProcessModel + * @Author 森静若林 + * @Date 2024/5/5 18:37 + */ +@Data +public class DataModelProcessModel { + private DataModel dataModel; +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataSetProcessModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataSetProcessModel.java new file mode 100644 index 0000000..a93c3ee --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/DataSetProcessModel.java @@ -0,0 +1,19 @@ +package com.ruoyi.ruleEngine.model.process; + +import com.ruoyi.ruleEngine.model.DataSetModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据集处理模型 + * @ClassName DataSetProcessModel + * @Author 森静若林 + * @Date 2024/5/5 18:37 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DataSetProcessModel { + private DataSetModel dataSetModel; +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/RecordProcessModel.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/RecordProcessModel.java new file mode 100644 index 0000000..5172a8e --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/model/process/RecordProcessModel.java @@ -0,0 +1,17 @@ +package com.ruoyi.ruleEngine.model.process; + +import com.ruoyi.ruleEngine.model.RecordModel; +import lombok.Data; +import java.util.List; + +/** + * 记录处理模型 + * @ClassName RecordProcessModel + * @Author 森静若林 + * @Date 2024/5/5 18:37 + */ +@Data +public class RecordProcessModel { + private List keys; + private RecordModel recordModel; +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/util/ScopeContextHolderUtil.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/util/ScopeContextHolderUtil.java new file mode 100644 index 0000000..e012889 --- /dev/null +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-common/src/main/java/com/ruoyi/ruleEngine/util/ScopeContextHolderUtil.java @@ -0,0 +1,55 @@ +package com.ruoyi.ruleEngine.util; + +import com.ruoyi.ruleEngine.context.DataSetContextHolder; +import com.ruoyi.ruleEngine.model.DataModel; +import com.ruoyi.ruleEngine.model.DataSetModel; +import com.ruoyi.ruleEngine.model.RecordModel; +import com.ruoyi.ruleEngine.model.process.DataSetProcessModel; +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + +/** + * 作用域上下文工具 + * @ClassName ScopeContextHolderUtil + * @Author 森静若林 + * @Date 2024/5/6 20:51 + */ + +public class ScopeContextHolderUtil { + + public static void setDataSetContextHolder(Connection connection){ + try { + PreparedStatement preparedStatement = connection.prepareStatement("select * from table_info limit 0,10"); + ResultSet resultSet = preparedStatement.executeQuery(); + List recordModels=new ArrayList<>(); + while (resultSet.next()){ + int index=1; + ResultSetMetaData data = resultSet.getMetaData(); + int columnCount = data.getColumnCount(); + List dataModels=new ArrayList<>(); + while (index<=columnCount){ + DataModel dataModel = DataModel.builder() + .key(data.getColumnName(index)) + .value(resultSet.getString(index)) + .sourceType(data.getColumnTypeName(index)) + .processType(data.getColumnClassName(index)) + .processClass(Class.forName(data.getColumnClassName(index))) + .build(); + dataModels.add(dataModel); + index++; + } + RecordModel recordModel = new RecordModel(dataModels); + recordModels.add(recordModel); + } + connection.close(); + DataSetModel dataSetModel = new DataSetModel(recordModels); + DataSetProcessModel dataSetProcessModel = new DataSetProcessModel(dataSetModel); + //存入本地线程 + DataSetContextHolder.set(dataSetProcessModel); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataModelContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataModelContextHolder.java deleted file mode 100644 index 6df5c21..0000000 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataModelContextHolder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ruoyi.ruleEngine.scope; - -import lombok.Data; - -/** - * 数据模型上下文 - * @ClassName DataModelContextHolder - * @Author 森静若林 - * @Version: 1.0 - */ -@Data -public class DataModelContextHolder { - - private final RecordContextHolder recordContextHolder; - - public static DataModelContextHolder build(RecordContextHolder recordContextHolder){ - return new DataModelContextHolder(recordContextHolder); - } -} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataSetContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataSetContextHolder.java deleted file mode 100644 index b4c063f..0000000 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/DataSetContextHolder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ruoyi.ruleEngine.scope; - -import lombok.Data; - -/** - * 数据集上下文 - * @ClassName DataSetContextHolder - * @Author 森静若林 - * @Version: 1.0 - */ -@Data -public class DataSetContextHolder { - - private final TaskContextHolder taskContextHolder; - - public static DataSetContextHolder build(TaskContextHolder taskContextHolder){ - return new DataSetContextHolder(taskContextHolder); - } -} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/RecordContextHolder.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/RecordContextHolder.java deleted file mode 100644 index c4ac5a9..0000000 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/scope/RecordContextHolder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ruoyi.ruleEngine.scope; - -import lombok.Data; - -/** - * 记录上下文 - * @ClassName RecordContextHolder - * @Author 森静若林 - * @Version: 1.0 - */ -@Data -public class RecordContextHolder { - - private final DataSetContextHolder dataSetContextHolder; - - public static RecordContextHolder build(DataSetContextHolder dataSetContextHolder){ - return new RecordContextHolder(dataSetContextHolder); - } -} diff --git a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/service/impl/EngineMaintenanceServiceImpl.java b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/service/impl/EngineMaintenanceServiceImpl.java index a458332..1624d77 100644 --- a/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/service/impl/EngineMaintenanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-rule_engine/ruoyi-rule_engine-server/src/main/java/com/ruoyi/ruleEngine/service/impl/EngineMaintenanceServiceImpl.java @@ -79,8 +79,8 @@ public class EngineMaintenanceServiceImpl extends ServiceImpl