diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/Engine.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/Engine.java new file mode 100644 index 0000000..49b3c66 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/Engine.java @@ -0,0 +1,12 @@ +package com.muyu.engine; + +/** + * 引擎 Engine + * + * @author LeYang + * on 2024/5/8 + */ +public interface Engine { +public void execution(); +public V get(); +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/action/ActionDiscard.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/action/ActionDiscard.java new file mode 100644 index 0000000..1dabb75 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/action/ActionDiscard.java @@ -0,0 +1,10 @@ +package com.muyu.engine.action; + +/** + * ActionDiscard + * + * @author LeYang + * on 2024/5/8 + */ +public class ActionDiscard extends RuntimeException{ +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/custom/IsNotNullEngineCustom.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/custom/IsNotNullEngineCustom.java new file mode 100644 index 0000000..1b8f816 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/custom/IsNotNullEngineCustom.java @@ -0,0 +1,21 @@ +package com.muyu.engine.custom; + +import com.muyu.engine.action.ActionDiscard; +import com.muyu.engine.scope.DataModelEngine; + +/** + * 自定义不能为空引擎 IsNotNullEngineCustom + * + * @author LeYang + * on 2024/5/8 + */ +public class IsNotNullEngineCustom extends DataModelEngine { + + @Override + public void execution() { + Object value= getValue(); + if (value == null || "".equals(value)){ + throw new ActionDiscard(); + } + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataModelEngine.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataModelEngine.java new file mode 100644 index 0000000..9b5b3d8 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataModelEngine.java @@ -0,0 +1,44 @@ +package com.muyu.engine.scope; + +import com.muyu.engine.Engine; +import com.muyu.model.DataModel; +import com.muyu.scope.DataModelContext; +import com.muyu.scope.model.DataProcessModel; + +/** + * 数据模型引擎接口 DataModelEngine + * + * @author LeYang + * on 2024/5/8 + */ +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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataSetEngine.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataSetEngine.java new file mode 100644 index 0000000..2d556b7 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/DataSetEngine.java @@ -0,0 +1,12 @@ +package com.muyu.engine.scope; + +import com.muyu.engine.Engine; + +/** + * 数据模型引擎接口 DataSetEngine + * + * @author LeYang + * on 2024/5/8 + */ +public interface DataSetEngine extends Engine { +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/RecordEngine.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/RecordEngine.java new file mode 100644 index 0000000..3ee915d --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/scope/RecordEngine.java @@ -0,0 +1,12 @@ +package com.muyu.engine.scope; + +import com.muyu.engine.Engine; + +/** + * 数据模型引擎接口 RecordEngine + * + * @author LeYang + * on 2024/5/8 + */ +public interface RecordEngine extends Engine { +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataModel.java new file mode 100644 index 0000000..32751a4 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataModel.java @@ -0,0 +1,41 @@ +package com.muyu.model; + +import lombok.Data; + +/** + * 数据模型 DataModel + * + * @author LeYang + * on 2024/5/8 + */ +@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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataSetModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataSetModel.java new file mode 100644 index 0000000..88eee67 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataSetModel.java @@ -0,0 +1,29 @@ +package com.muyu.model; + +/** + * 一页 DataSetModel + * + * @author LeYang + * on 2024/5/8 + */ +public class DataSetModel { + //[[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel] + private RecordModel[] recordModelArr = null; + + //创建一个新的RecordModel数组 + 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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataStandard.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataStandard.java new file mode 100644 index 0000000..22f18e8 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/DataStandard.java @@ -0,0 +1,10 @@ +package com.muyu.model; + +/** + * 数据标准 DataStandard + * + * @author LeYang + * on 2024/5/8 + */ +public interface DataStandard { +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/RecordModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/RecordModel.java new file mode 100644 index 0000000..8df54a7 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/model/RecordModel.java @@ -0,0 +1,28 @@ +package com.muyu.model; + +/** + * 记录模型 RecordModel + * + * @author LeYang + * on 2024/5/8 + */ +public class RecordModel { + //[DataModel,DataModel,DataModel] + + private RecordModel(int dataModelLength){ + dataModelArr = new DataModel[dataModelLength]; + } + + private RecordModel(DataModel[] dataModlArr){ + dataModlArr =dataModlArr; + } + 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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataModelContext.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataModelContext.java new file mode 100644 index 0000000..6f1f869 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataModelContext.java @@ -0,0 +1,25 @@ +package com.muyu.scope; + +import com.muyu.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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataSetContext.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataSetContext.java new file mode 100644 index 0000000..6fa1f62 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/DataSetContext.java @@ -0,0 +1,20 @@ +package com.muyu.scope; + +import com.muyu.scope.model.DataSetProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 数据集 + * @Version: 1.0 + */ +public class DataSetContext { + + private static final ThreadLocal THREAD_LOCAL = new ThreadLocal<>(); + + private final RecordContext recordContext; + + public DataSetContext (RecordContext recordContext) { + this.recordContext = recordContext; + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/RecordContext.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/RecordContext.java new file mode 100644 index 0000000..2229a27 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/RecordContext.java @@ -0,0 +1,22 @@ +package com.muyu.scope; + +import com.muyu.scope.model.RecordProcessModel; + +/** + * @Author: DongZeLiang + * @date: 2024/4/29 + * @Description: 记录/资产模型 + * @Version: 1.0 + */ +public class RecordContext { + + private static final ThreadLocal THREAD_LOCAL = new ThreadLocal<>(); + + private final TaskContext taskContext; + + private RecordContext (TaskContext taskContext) { + this.taskContext = taskContext; + } + + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/ScopeContext.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/ScopeContext.java new file mode 100644 index 0000000..9f61408 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/ScopeContext.java @@ -0,0 +1,12 @@ +package com.muyu.scope; + +/** + * @Author: DongZeLiang + * @date: 2024/5/6 + * @Description: 数据域规范 + * @Version: 1.0 + */ +public interface ScopeContext { + + V get(); +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/TaskContext.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/TaskContext.java new file mode 100644 index 0000000..e2576be --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/TaskContext.java @@ -0,0 +1,14 @@ +package com.muyu.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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataProcessModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataProcessModel.java new file mode 100644 index 0000000..57ce4da --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataProcessModel.java @@ -0,0 +1,16 @@ +package com.muyu.scope.model; + +import com.muyu.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-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataSetProcessModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataSetProcessModel.java new file mode 100644 index 0000000..2128c93 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/DataSetProcessModel.java @@ -0,0 +1,14 @@ +package com.muyu.scope.model; + +import com.muyu.model.DataSetModel; + +/** + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 数据集处理模型 + * @Version: 1.0 + */ +public class DataSetProcessModel { + + private DataSetModel dataSetModel; +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/RecordProcessModel.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/RecordProcessModel.java new file mode 100644 index 0000000..b3b4c10 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/scope/model/RecordProcessModel.java @@ -0,0 +1,16 @@ +package com.muyu.scope.model; + +import com.muyu.model.RecordModel; + +/** + * @Author: DongZeLiang + * @date: 2024/5/5 + * @Description: 行级别任务处理模型 + * @Version: 1.0 + */ +public class RecordProcessModel { + + private String[] keys; + + private RecordModel recordModel; +}