diff --git a/cloud-etl-common/src/main/java/com/muyu/domain/EngineVersion.java b/cloud-etl-common/src/main/java/com/muyu/domain/EngineVersion.java index 314ac76..d69eed4 100644 --- a/cloud-etl-common/src/main/java/com/muyu/domain/EngineVersion.java +++ b/cloud-etl-common/src/main/java/com/muyu/domain/EngineVersion.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.access.data.base.DataValue; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.req.EngineVersionEditReq; @@ -93,6 +94,8 @@ public class EngineVersion extends BaseEntity { @Excel(name = "描述") private String description; + private DataValue dataValue; + /** * 查询构造器 */ diff --git a/cloud-etl-server/src/main/java/com/muyu/abstracts/ValueTestReq.java b/cloud-etl-server/src/main/java/com/muyu/abstracts/ValueTestReq.java new file mode 100644 index 0000000..32c8afc --- /dev/null +++ b/cloud-etl-server/src/main/java/com/muyu/abstracts/ValueTestReq.java @@ -0,0 +1,40 @@ +package com.muyu.abstracts; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "字段测试参数", description = "根据入参进行规则版本测试") +public class ValueTestReq { + + /** + * 版本类 + */ + private String versionClass; + + /** + * 引擎编码 + */ + private String versionCode; + + /** + * 数据接入id + */ + private Long dataAccessId; + + /** + * 资产结构id + */ + private Long assetConstructId; + + /** + * ktlv结构 + */ + private DataValue dataValue; +} diff --git a/cloud-etl-server/src/main/java/com/muyu/abstracts/generate.java b/cloud-etl-server/src/main/java/com/muyu/abstracts/generate.java index 974eb02..efa5db4 100644 --- a/cloud-etl-server/src/main/java/com/muyu/abstracts/generate.java +++ b/cloud-etl-server/src/main/java/com/muyu/abstracts/generate.java @@ -1,12 +1,5 @@ package com.muyu.abstracts; -import com.muyu.abstracts.DataEngineValueActuator; -/** - * @Author:qdm - * @Package:com.muyu - * @Project:engine - * @name:generate - * @Date:2024/9/5 20:54 - */ + public class generate extends DataEngineValueActuator { @Override diff --git a/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java b/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java index d528543..8e5c696 100644 --- a/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java +++ b/cloud-etl-server/src/main/java/com/muyu/service/serviceImpl/EngIneServiceImpl.java @@ -1,9 +1,10 @@ package com.muyu.service.serviceImpl; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.muyu.BasicEngine; +import com.muyu.abstracts.DataValue; import com.muyu.common.core.domain.Result; import com.muyu.domain.EngineMaintenance; import com.muyu.domain.EngineVersion; @@ -13,11 +14,20 @@ import com.muyu.req.EngineMaintenanceQueryReq; import com.muyu.req.EngineVersionListResp; import com.muyu.service.EngIneService; import com.muyu.service.EngineVersionService; +import com.muyu.test.ExternalClassLoader; +import jakarta.validation.Path; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.File; +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.net.URL; +import java.nio.file.Paths; import java.util.List; +import static com.muyu.test.RuleTest.engineWorkSourcePath; + /** * @Author:qdm * @Package:com.muyu.service.serviceImpl @@ -28,12 +38,47 @@ import java.util.List; @Service public class EngIneServiceImpl extends ServiceImpl implements EngIneService { + @Autowired EngineMapper engineMapper; @Autowired private EngineVersionService engineConfigService; + @Override + public Object measurementList(EngineVersion engineVersion) { +// EngineVersion dataValue = engineVersion; +// String versionClass = engineVersion.getVersionClass(); +// CompileService.test(engineVersion.getVersionCode(), engineVersion.getVersionClass()); +// try { +// //外部类文件路径 +// String externalClassFilePath = engineWorkSourcePath + "/" + objectPath + "/" + versionClass + ".class"; +// Path classFilePath = Paths.get(externalClassFilePath); +// //获取外部类所在的目录 +// String externalClassDir = externalClassFilePath.substring(0, externalClassFilePath.lastIndexOf('/')); +// URL[] urls = null; +// urls = new URL[]{new File(externalClassDir).toURI().toURL()}; +// //创建自定义类加载 +// ExternalClassLoader externalClassLoader = new ExternalClassLoader(urls); +// +// //加载类 +// Class clazz = externalClassLoader.loadClassFromPath(classFilePath, packagePath + "." + versionClass); +// //创建类的实例 +// Object instance = clazz.getDeclaredConstructor().newInstance(); +// +// engineMap.put(versionClass, (BasicEngine) instance); +// } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException | +// IOException e) { +// throw new RuntimeException(e); +// } +// +// BasicEngine engine = engineMap.get(versionClass); +// engine.set(dataValue); +// engine.execution(); +// return Result.success(); + return null; + } + @Override public List list() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -147,12 +192,4 @@ public class EngIneServiceImpl extends ServiceImpl> engineMap = new ConcurrentHashMap<>(); //外部类文件路径 - public static final String engineWorkSourcePath = "/home/"; + public static final String engineWorkSourcePath = "/home/lib/"; public static final String className = "com.muyu.abstracts.generate."; public static void test(EngineVersion engineVersion) {