diff --git a/cloud-rule-common/src/main/java/com/muyu/rule/common/domain/Person.java b/cloud-rule-common/src/main/java/com/muyu/rule/common/domain/Person.java new file mode 100644 index 0000000..e83ac6a --- /dev/null +++ b/cloud-rule-common/src/main/java/com/muyu/rule/common/domain/Person.java @@ -0,0 +1,58 @@ +package com.muyu.rule.common.domain; + +import java.util.*; + +class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Person person = (Person) o; + return age == person.age && + Objects.equals(name, person.name); + } + + @Override + public int hashCode() { + return Objects.hash(name, age); + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } + + + + public static void main(String[] args) { + Person[] people = new Person[]{ + new Person("Alice", 30), + new Person("Alice", 30), + new Person("Bob", 25), + new Person("Alice", 30), + new Person("Charlie", 35) + }; + + // 使用 HashSet 去重 + Set uniquePeople = new HashSet<>(Arrays.asList(people)); + + // 将 Set 转换回数组 + Person[] uniqueArray = uniquePeople.toArray(new Person[0]); + + // 输出结果 + System.out.println(Arrays.toString(uniqueArray)); + } + + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/DataTest.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/DataTest.java index c7bb7cc..53fb023 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/DataTest.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/DataTest.java @@ -72,8 +72,10 @@ String sourceCode ="public class HelloWorld {\n" + try { GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, "test"); - OSSObject ossObject = ossClientReader.getObject(getObjectRequest); - BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent())); + BufferedReader reader; + try (OSSObject ossObject = ossClientReader.getObject(getObjectRequest)) { + reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent())); + } StringBuilder content = new StringBuilder(); String line=null; while ((line = reader.readLine()) != null) { diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineConfig.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineConfig.java index c55d59e..f40e69c 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineConfig.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineConfig.java @@ -11,8 +11,8 @@ import java.util.concurrent.atomic.AtomicReference; */ public class EngineConfig { - public static final AtomicReference executionMethodName = new AtomicReference<>("execute"); - //public static final AtomicReference executionMethodName = new AtomicReference<>("run"); + //public static final AtomicReference executionMethodName = new AtomicReference<>("execute"); + public static final AtomicReference executionMethodName = new AtomicReference<>("run"); /** * 本地包名称 @@ -22,20 +22,29 @@ public class EngineConfig { // E:\\临时\\2024年8月23日\\ /** - * 本地目录名称 + * 本地项目目录名称 */ private String location = "E:\\practical_training\\cloud-etl-rule\\cloud-rule-server\\src\\main\\java\\com\\muyu\\rule\\server\\engine\\"; +/** + * 本地源代码目录 + */ + private String localSource ="D:\\config\\engine\\source\\"; + + /** + * 本地编译目录 + */ + private String localTarget ="D:\\config\\engine\\target\\"; /** - * 服务器目录 + * 服务器目录路径 * @return */ - // private String serverWay = "home/"; - private String serverWay = "/home/config/source"; + // private String serverPath = "home/"; + private String serverPath = "home/config/source/"; /** * 服务器的包名 @@ -44,6 +53,30 @@ public class EngineConfig { private String serverPack="com.muyu.rule.server.basic.engine.value."; + public String getServerPath() { + return serverPath; + } + + public void setServerPath(String serverPath) { + this.serverPath = serverPath; + } + + public String getLocalSource() { + return localSource; + } + + public void setLocalSource(String localSource) { + this.localSource = localSource; + } + + public String getLocalTarget() { + return localTarget; + } + + public void setLocalTarget(String localTarget) { + this.localTarget = localTarget; + } + public String getServerPack() { return serverPack; } @@ -52,13 +85,7 @@ public class EngineConfig { this.serverPack = serverPack; } - public String getServerWay() { - return serverWay; - } - public void setServerWay(String serverWay) { - this.serverWay = serverWay; - } public String getPack() { return pack; diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineTest.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineTest.java index ddb6770..056b824 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineTest.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/EngineTest.java @@ -41,8 +41,10 @@ public class EngineTest { stringClassMap.forEach(EngineContainer::loadEngineInstance); Map params = new HashMap<>(); -params.put("idcard","142021200212215977"); - Object engineObject = EngineExecution.engineExe("Engine_2024_8_23_2347", params); + + params.put("idcard","142021200212215977"); + + Object engineObject = EngineExecution.engineExe("Engine_2024_8_23_2347", params); System.out.println("====>"+engineObject); diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/Main.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/Main.java index c4b34fa..a9bfb1c 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/Main.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/Main.java @@ -17,13 +17,17 @@ public class Main { static Map> engineMap = new ConcurrentHashMap<>(); + static Map> engineRowMap = new ConcurrentHashMap<>(); + static { try { Class aClass = Class.forName("com.muyu.rule.server.basic.engine.value.ENGINE_VALUE_VFD1000_V1"); Class aClass2 = Class.forName("com.muyu.rule.server.basic.engine.value.ENGINE_VALUE_VFD1000_V2"); + Class aClass3 = Class.forName("com.muyu.rule.server.basic.engine.row.ENGINE_ROW_HANG_R1"); try { engineMap.put("ENGINE_VALUE_VFD1000_V1", (BasicEngine) aClass.newInstance()); engineMap.put("ENGINE_VALUE_VFD1000_V2", (BasicEngine) aClass2.newInstance()); + engineRowMap.put("ENGINE_ROW_HANG_R1",(BasicEngine) aClass3.newInstance()); } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { @@ -36,6 +40,20 @@ public class Main { } public static void main(String[] args) { + + DataValue[] dataValues = new DataValue[]{ + new DataValue("name","String",null,"张三"), + new DataValue("name","String",null,"李四"), + new DataValue("name","String",null,"王五"), + new DataValue("name","String",null,"张三") + }; + + BasicEngine engineRowHangR1 = engineRowMap.get("ENGINE_ROW_HANG_R1"); + + engineRowHangR1.set(dataValues); + engineRowHangR1.execution(); + + DataValue dataValue = DataValue.builder() .type("String") .label("姓名") @@ -49,11 +67,6 @@ public class Main { engineValue.execution(); - - - - - } @@ -67,6 +80,9 @@ public class Main { + + + } diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/abstracts/DataEngineDataSetActuator.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/abstracts/DataEngineDataSetActuator.java new file mode 100644 index 0000000..c5d7142 --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/abstracts/DataEngineDataSetActuator.java @@ -0,0 +1,30 @@ +package com.muyu.rule.server.basic.abstracts; + +import com.muyu.rule.common.domain.DataValue; +import com.muyu.rule.server.basic.BasicEngine; +import com.muyu.rule.server.basic.handler.DataEngineDataSetHandler; +import com.muyu.rule.server.basic.handler.DataEngineRowHandler; + +/** + * @Author:张承志 + * @Package:com.muyu.rule.server.basic.abstracts + * @Project:cloud-etl-rule + * @name:DataEngineValueAu + * @Date:2024/8/29 15:11 + */ +public abstract class DataEngineDataSetActuator implements BasicEngine { + +public void set(DataValue[][] dataValue){ + DataEngineDataSetHandler.set(dataValue); +} + +public DataValue[][] get(){ + return DataEngineDataSetHandler.get(); +} + + + + + + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/row/ENGINE_ROW_HANG_R1.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/row/ENGINE_ROW_HANG_R1.java index 6a9af66..48bd038 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/row/ENGINE_ROW_HANG_R1.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/row/ENGINE_ROW_HANG_R1.java @@ -1,9 +1,14 @@ package com.muyu.rule.server.basic.engine.row; import com.muyu.rule.common.domain.DataValue; + import com.muyu.rule.server.basic.abstracts.DataEngineRowActuator; import com.muyu.rule.server.basic.handler.DataEngineRowHandler; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + /** * @Author:张承志 * @Package:com.muyu.rule.server.basic.engine.row @@ -13,16 +18,22 @@ import com.muyu.rule.server.basic.handler.DataEngineRowHandler; */ public class ENGINE_ROW_HANG_R1 extends DataEngineRowActuator { + /** + * 数据行去重 + */ @Override public void execution() { DataValue[] dataValues = get(); + // 使用 HashSet 去重 + Set uniquePeople = new HashSet<>(Arrays.asList(dataValues)); + + // 将 Set 转换回数组 + DataValue[] uniqueArray = uniquePeople.toArray(new DataValue[0]); + + System.out.println(Arrays.toString(uniqueArray)); - } - - - } diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_PHONE_TEST_V1.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_PHONE_TEST_V1.java new file mode 100644 index 0000000..07e8161 --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_PHONE_TEST_V1.java @@ -0,0 +1,16 @@ +package com.muyu.rule.server.basic.engine.value; + +import com.muyu.rule.common.domain.DataValue; + +/** + * @Author:张承志 + * @Package:com.muyu.rule.server.basic.engine.value + * @Project:cloud-etl-rule + * @name:ENGINE_TEST_V1 + * @Date:2024/9/2 14:43 + */ +public class ENGINE_PHONE_TEST_V1 { + + + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_VALUE_VFD1000_V1.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_VALUE_VFD1000_V1.java index ff43044..17c4bae 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_VALUE_VFD1000_V1.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/engine/value/ENGINE_VALUE_VFD1000_V1.java @@ -17,7 +17,8 @@ public class ENGINE_VALUE_VFD1000_V1 extends DataEngineValueActuator { DataValue dataValue = get(); if (dataValue.getValue() == null){ System.out.println("数据为空"); - throw new RuleEngineException("数据为空"); } } + + } diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/handler/DataEngineDataSetHandler.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/handler/DataEngineDataSetHandler.java new file mode 100644 index 0000000..34203da --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/basic/handler/DataEngineDataSetHandler.java @@ -0,0 +1,21 @@ +package com.muyu.rule.server.basic.handler; + +import com.muyu.rule.common.domain.DataValue; + +/** + * @Author:张承志 + * @Package:com.muyu.rule.server.basic.handler + * @Project:cloud-etl-rule + * @name:DataEngineValueHandler + * @Date:2024/8/29 14:35 + * @Description:数据值处理对象 + */ +public class DataEngineDataSetHandler { + + public static void set(DataValue[][] dataDescribe){DataEngineHandler.set(dataDescribe);} + + public static DataValue[][] get(){ + return DataEngineHandler.get(); + } + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/DataSourceDisposeController.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/DataSourceDisposeController.java index 483bae8..7adde42 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/DataSourceDisposeController.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/DataSourceDisposeController.java @@ -23,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/dispose") public class DataSourceDisposeController { - @Autowired private SourceDisposeService sourceDisposeService; @@ -51,11 +50,4 @@ public class DataSourceDisposeController { return Result.success(); } - - - - - - - } diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/RuleEngineVersionController.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/RuleEngineVersionController.java index f03b9f7..8bb68ec 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/RuleEngineVersionController.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/controller/RuleEngineVersionController.java @@ -176,7 +176,6 @@ public Result look (){ return Result.success(); } - } diff --git a/cloud-rule-server/src/main/java/com/muyu/rule/server/service/impl/RuleEngineServiceImpl.java b/cloud-rule-server/src/main/java/com/muyu/rule/server/service/impl/RuleEngineServiceImpl.java index 8c9d268..020bcfb 100644 --- a/cloud-rule-server/src/main/java/com/muyu/rule/server/service/impl/RuleEngineServiceImpl.java +++ b/cloud-rule-server/src/main/java/com/muyu/rule/server/service/impl/RuleEngineServiceImpl.java @@ -41,8 +41,7 @@ import static com.muyu.rule.server.constant.SuffixClass.Suffix_JAVA; */ @Log4j2 @Service -public class RuleEngineServiceImpl extends ServiceImpl implements RuleEngineVersionService { - +public class RuleEngineServiceImpl extends ServiceImpl implements RuleEngineVersionService { @Override public List selectRuleEngineVersion(Long id) { @@ -50,11 +49,10 @@ public class RuleEngineServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq( - RuleEngineVersion::getRuleId,id); + RuleEngineVersion::getRuleId, id); List versionList = this.list(queryWrapper); - return versionList; } @@ -72,30 +70,28 @@ public class RuleEngineServiceImpl extends ServiceImpl> stringClassMap = JavaBinaryClassLoader.loadClassesByLocation(engineConfig.getServerPack(),engineConfig.getServerWay()); + Map> stringClassMap = JavaBinaryClassLoader.loadClassesByLocation(engineConfig.getServerPack(), engineConfig.getServerPath()); } - static Map> engineMap = new ConcurrentHashMap<>(); - + static Map> engineMap = new ConcurrentHashMap<>(); static { try { @@ -155,26 +150,20 @@ public class RuleEngineServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id",id).set("open",open); + updateWrapper.eq("id", id).set("open", open); this.update(updateWrapper); - } - - - }