refactor(metis): 重构项目目录结构和包名, stater可以作为单独的包进行独立开发

This commit is contained in:
2025-04-21 23:49:20 +08:00
parent 7f4476ffd5
commit 65e6f9f650
80 changed files with 431 additions and 361 deletions

View File

@@ -23,8 +23,13 @@
<artifactId>metis-starter</artifactId> <artifactId>metis-starter</artifactId>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
</dependency> </dependency>
</dependencies>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
<build> <build>
<!-- 默认生效的插件 --> <!-- 默认生效的插件 -->
@@ -39,39 +44,49 @@
</goals> </goals>
</execution> </execution>
</executions> </executions>
<!-- 排除静态编译类的插件,为打包的 jar 瘦身 -->
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
<exclude>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin> </plugin>
<!-- 编译插件 --> <!-- 编译插件 -->
<!-- <plugin>--> <plugin>
<!-- <groupId>org.apache.maven.plugins</groupId>--> <groupId>org.apache.maven.plugins</groupId>
<!-- <artifactId>maven-compiler-plugin</artifactId>--> <artifactId>maven-compiler-plugin</artifactId>
<!-- <configuration>--> <configuration>
<!-- <source>17</source>--> <source>17</source>
<!-- <target>17</target>--> <target>17</target>
<!-- <encoding>UTF-8</encoding>--> <encoding>UTF-8</encoding>
<!-- <compilerArgs>--> <compilerArgs>
<!-- <arg>-parameters</arg>--> <arg>-parameters</arg>
<!-- </compilerArgs>--> <arg>--add-opens</arg>
<!-- &lt;!&ndash; 注解静态编译功能 注:仅支持 maven-compiler-plugin 的 version 在3.6.0 以上才生效 &ndash;&gt;--> <arg>java.base/java.lang=ALL-UNNAMED</arg>
<!-- <annotationProcessorPaths>--> </compilerArgs>
<!-- &lt;!&ndash; 必须配置 lombok 的注解编译,否则会因为配置了(mapstruct-processor)启动了导致 lombok 对内部类的静态编译失效 &ndash;&gt;--> <!-- 注解静态编译功能 注:仅支持 maven-compiler-plugin 的 version 在3.6.0 以上才生效 -->
<!-- <path>--> <annotationProcessorPaths>
<!-- <groupId>org.mapstruct</groupId>--> <!-- 必须配置 lombok 的注解编译,否则会因为配置了(mapstruct-processor)启动了导致 lombok 对内部类的静态编译失效 -->
<!-- <artifactId>mapstruct-processor</artifactId>--> <path>
<!-- <version>1.6.2</version>--> <groupId>org.projectlombok</groupId>
<!-- </path>--> <artifactId>lombok</artifactId>
<!-- <path>--> <version>${lombok.version}</version>
<!-- <groupId>org.projectlombok</groupId>--> </path>
<!-- <artifactId>lombok</artifactId>--> <path>
<!-- <version>1.18.34</version>--> <groupId>org.mapstruct</groupId>
<!-- </path>--> <artifactId>mapstruct-processor</artifactId>
<!-- <path>--> <version>${org.mapstruct.version}</version>
<!-- <groupId>org.projectlombok</groupId>--> </path>
<!-- <artifactId>lombok-mapstruct-binding</artifactId>--> </annotationProcessorPaths>
<!-- <version>0.2.0</version>--> </configuration>
<!-- </path>--> </plugin>
<!-- </annotationProcessorPaths>-->
<!-- </configuration>-->
<!-- </plugin>-->
</plugins> </plugins>
</build> </build>

View File

@@ -1,10 +1,10 @@
package com.metisapp.controller; package com.metisapp.controller;
import com.metis.flow.domain.bo.BuildApp; import com.metis.domain.bo.BuildApp;
import com.metis.flow.engine.AppFlowEngineRunnerService; import com.metis.engine.AppFlowEngineRunnerService;
import com.metis.flow.runner.FlowRunningContext; import com.metis.runner.FlowRunningContext;
import com.metis.flow.runner.RunnerResult; import com.metis.runner.RunnerResult;
import com.metis.flow.validator.ValidatorService; import com.metis.validator.ValidatorService;
import com.metis.result.Result; import com.metis.result.Result;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;

View File

@@ -34,10 +34,6 @@ springdoc:
swagger-ui: swagger-ui:
tags-sorter: alpha tags-sorter: alpha
group-configs: group-configs:
- group: bis
display-name: "业务接口文档"
paths-to-match: '/**'
packages-to-scan: org.shi9.module.bis
- group: system - group: system
display-name: "系统接口文档" display-name: "系统接口文档"
paths-to-match: '/**' paths-to-match: '/**'

View File

@@ -11,13 +11,62 @@
<artifactId>metis-starter</artifactId> <artifactId>metis-starter</artifactId>
<properties> <dependencies>
<maven.compiler.source>17</maven.compiler.source> <dependency>
<maven.compiler.target>17</maven.compiler.target> <groupId>org.springframework.boot</groupId>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <artifactId>spring-boot-starter-web</artifactId>
</properties> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.52</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.mikesamuel</groupId>
<artifactId>json-sanitizer</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<!-- 类转换 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
</dependency>
</dependencies>
<build> <build>
<!-- 默认生效的插件 --> <!-- 默认生效的插件 -->
@@ -36,20 +85,15 @@
<!-- 注解静态编译功能 注:仅支持 maven-compiler-plugin 的 version 在3.6.0 以上才生效 --> <!-- 注解静态编译功能 注:仅支持 maven-compiler-plugin 的 version 在3.6.0 以上才生效 -->
<annotationProcessorPaths> <annotationProcessorPaths>
<!-- 必须配置 lombok 的注解编译,否则会因为配置了(mapstruct-processor)启动了导致 lombok 对内部类的静态编译失效 --> <!-- 必须配置 lombok 的注解编译,否则会因为配置了(mapstruct-processor)启动了导致 lombok 对内部类的静态编译失效 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.6.2</version>
</path>
<path> <path>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.34</version> <version>${lombok.version}</version>
</path> </path>
<path> <path>
<groupId>org.projectlombok</groupId> <groupId>org.mapstruct</groupId>
<artifactId>lombok-mapstruct-binding</artifactId> <artifactId>mapstruct-processor</artifactId>
<version>0.2.0</version> <version>${org.mapstruct.version}</version>
</path> </path>
</annotationProcessorPaths> </annotationProcessorPaths>
</configuration> </configuration>

View File

@@ -7,7 +7,13 @@ import org.springframework.context.annotation.Configuration;
@Slf4j @Slf4j
@Configuration @Configuration
@MapperScan(basePackages = {"com.metis.flow.mapper"}) @MapperScan(basePackages = {"com.metis.mapper"})
@ComponentScan("com.metis.*") @ComponentScan("com.metis.*")
public class MetisStarterAutoConfiguration { public class MetisStarterAutoConfiguration {
static {
}
} }

View File

@@ -1,4 +1,4 @@
package com.metis.flow.constant; package com.metis.constant;
public interface BaseConstant { public interface BaseConstant {

View File

@@ -1,8 +1,8 @@
package com.metisapp.controller; package com.metis.controller;
import com.metis.domain.bo.ProcessBo; import com.metis.domain.bo.ProcessBo;
import com.metis.facade.ProcessDefinitionFacade; import com.metis.facade.ProcessDefinitionFacade;
import com.metis.flow.domain.entity.App; import com.metis.domain.entity.App;
import com.metis.result.Result; import com.metis.result.Result;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@@ -1,9 +1,10 @@
package com.metis.flow.convert; package com.metis.convert;
import com.metis.flow.domain.entity.*; import com.metis.domain.bo.BuildApp;
import com.metis.flow.domain.bo.BuildApp; import com.metis.domain.bo.CreateApp;
import com.metis.flow.domain.bo.CreateApp; import com.metis.domain.bo.UpdateApp;
import com.metis.flow.domain.bo.UpdateApp; import com.metis.domain.entity.App;
import com.metis.domain.entity.BaseApp;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
@@ -23,6 +24,13 @@ public interface BaseAppConvert {
* @param buildApp 基础应用 * @param buildApp 基础应用
* @return {@link App } * @return {@link App }
*/ */
@Mappings({
@Mapping(target = "id", ignore = true),
@Mapping(target = "workflowId", ignore = true),
@Mapping(target = "createTime", ignore = true),
@Mapping(target = "version", ignore = true),
@Mapping(target = "defaultUse", ignore = true),
})
App toApp(BuildApp buildApp); App toApp(BuildApp buildApp);
/** /**
@@ -32,7 +40,7 @@ public interface BaseAppConvert {
* @return {@link App } * @return {@link App }
*/ */
@Mappings({ @Mappings({
@Mapping(target = "graph", expression = "java(com.alibaba.fastjson2.JSON.parseObject(baseApp.getGraphJson(), com.metis.flow.domain.entity.base.Graph.class))"), @Mapping(target = "graph", expression = "java(com.alibaba.fastjson2.JSON.parseObject(baseApp.getGraphJson(), com.metis.domain.entity.base.Graph.class))"),
@Mapping(target = "workflowId", source = "id") @Mapping(target = "workflowId", source = "id")
}) })
App toApp(BaseApp baseApp); App toApp(BaseApp baseApp);
@@ -45,6 +53,12 @@ public interface BaseAppConvert {
*/ */
@Mappings({ @Mappings({
@Mapping(target = "graphJson", expression = "java(com.alibaba.fastjson2.JSON.toJSONString(buildApp.getGraph()))"), @Mapping(target = "graphJson", expression = "java(com.alibaba.fastjson2.JSON.toJSONString(buildApp.getGraph()))"),
@Mapping(target = "createTime", ignore = true),
@Mapping(target = "updateTime", ignore = true),
@Mapping(target = "isDeleted", ignore = true),
@Mapping(target = "id", ignore = true),
@Mapping(target = "createUserId", ignore = true),
@Mapping(target = "defaultUse", ignore = true)
}) })
BaseApp toBaseApp(BuildApp buildApp); BaseApp toBaseApp(BuildApp buildApp);
@@ -63,7 +77,9 @@ public interface BaseAppConvert {
* @param createApp 创建应用程序 * @param createApp 创建应用程序
* @return {@link BuildApp } * @return {@link BuildApp }
*/ */
@Mappings({
@Mapping(target = "appId", ignore = true)
})
BuildApp toBuildApp(CreateApp createApp); BuildApp toBuildApp(CreateApp createApp);
/** /**
@@ -72,6 +88,9 @@ public interface BaseAppConvert {
* @param updateApp 更新应用程序 * @param updateApp 更新应用程序
* @return {@link BuildApp } * @return {@link BuildApp }
*/ */
@Mappings({
@Mapping(target = "userId", ignore = true)
})
BuildApp toBuildApp(UpdateApp updateApp); BuildApp toBuildApp(UpdateApp updateApp);
} }

View File

@@ -1,8 +1,8 @@
package com.metis.flow.convert; package com.metis.convert;
import com.metis.flow.domain.bo.GraphBO; import com.metis.domain.bo.GraphBO;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.flow.enums.HandleType; import com.metis.enums.HandleType;
import com.metis.flow.enums.PositionType; import com.metis.enums.PositionType;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.metis.flow.enums.PositionType; import com.metis.enums.PositionType;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,7 +1,7 @@
package com.metis.domain.bo; package com.metis.domain.bo;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.domain.bo.GraphBO; import com.metis.domain.bo.GraphBO;
import lombok.Data; import lombok.Data;
@Data @Data

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.bo; package com.metis.domain.bo;
import lombok.Data; import lombok.Data;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.context; package com.metis.domain.context;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.metis.flow.runner.FlowRunningContext; import com.metis.runner.FlowRunningContext;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.context; package com.metis.domain.context;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import lombok.Builder; import lombok.Builder;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.context; package com.metis.domain.context;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;

View File

@@ -1,8 +1,8 @@
package com.metis.flow.domain.entity; package com.metis.domain.entity;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.entity; package com.metis.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.entity; package com.metis.domain.entity;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import java.util.*; import java.util.*;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,12 +1,16 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class Graph { public class Graph {
/** /**

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import com.metis.flow.enums.HandleType; import com.metis.enums.HandleType;
import com.metis.flow.enums.PositionType; import com.metis.enums.PositionType;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@@ -54,8 +54,7 @@ public class Node {
*/ */
private Boolean selected; private Boolean selected;
private transient Class<?> configClass;
private Class<?> configClass;
/** /**

View File

@@ -0,0 +1,4 @@
package com.metis.domain.entity.base;
public abstract class NodeConfig {
}

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.metis.flow.enums.PositionType; import com.metis.enums.PositionType;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;

View File

@@ -1,11 +1,11 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.metis.flow.enums.FileUploadType; import com.metis.enums.FileUploadType;
import com.metis.flow.enums.NodeVariableType; import com.metis.enums.NodeVariableType;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.entity.base; package com.metis.domain.entity.base;
import lombok.Data; import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.entity.config.node; package com.metis.domain.entity.config.node;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.domain.entity.config.node; package com.metis.domain.entity.config.node;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.domain.entity.config.node; package com.metis.domain.entity.config.node;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import com.metis.flow.domain.entity.base.NodeVariable; import com.metis.domain.entity.base.NodeVariable;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -0,0 +1 @@
package com.metis.domain.entity.config;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.domain.query; package com.metis.domain.query;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;

View File

@@ -1,9 +1,10 @@
package com.metis.flow.engine; package com.metis.engine;
import com.metis.flow.domain.query.AppQuery;
import com.metis.flow.domain.entity.App; import com.metis.domain.bo.CreateApp;
import com.metis.flow.domain.bo.CreateApp; import com.metis.domain.bo.UpdateApp;
import com.metis.flow.domain.bo.UpdateApp; import com.metis.domain.entity.App;
import com.metis.domain.query.AppQuery;
import java.util.List; import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.engine; package com.metis.engine;
import com.metis.flow.runner.FlowRunningContext; import com.metis.runner.FlowRunningContext;
import com.metis.flow.runner.RunnerResult; import com.metis.runner.RunnerResult;
/** /**
* 应用引擎运行器服务 * 应用引擎运行器服务

View File

@@ -1,19 +1,20 @@
package com.metis.flow.engine.impl; package com.metis.engine.impl;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.metis.constant.BaseConstant;
import com.metis.convert.BaseAppConvert;
import com.metis.domain.bo.BuildApp;
import com.metis.domain.bo.CreateApp;
import com.metis.domain.bo.UpdateApp;
import com.metis.domain.entity.App;
import com.metis.domain.entity.BaseApp;
import com.metis.domain.query.AppQuery;
import com.metis.engine.AppEngineService;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.constant.BaseConstant; import com.metis.service.BaseAppService;
import com.metis.flow.convert.BaseAppConvert; import com.metis.validator.ValidatorService;
import com.metis.flow.domain.bo.BuildApp;
import com.metis.flow.domain.bo.CreateApp;
import com.metis.flow.domain.bo.UpdateApp;
import com.metis.flow.domain.query.AppQuery;
import com.metis.flow.domain.entity.*;
import com.metis.flow.engine.AppEngineService;
import com.metis.flow.service.BaseAppService;
import com.metis.flow.validator.ValidatorService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,24 +1,24 @@
package com.metis.flow.engine.impl; package com.metis.engine.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.metis.flow.domain.context.RunningContext; import com.metis.domain.context.RunningContext;
import com.metis.flow.domain.context.RunningResult; import com.metis.domain.context.RunningResult;
import com.metis.flow.domain.context.SysContext; import com.metis.domain.context.SysContext;
import com.metis.flow.domain.entity.App; import com.metis.domain.entity.App;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.engine.AppEngineService; import com.metis.engine.AppEngineService;
import com.metis.flow.engine.AppFlowEngineRunnerService; import com.metis.engine.AppFlowEngineRunnerService;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.runner.FlowRunningContext; import com.metis.runner.FlowRunningContext;
import com.metis.flow.runner.NodeRunner; import com.metis.runner.NodeRunner;
import com.metis.flow.runner.RunnerResult; import com.metis.runner.RunnerResult;
import com.metis.flow.runner.factory.NodeRunnerFactory; import com.metis.runner.factory.NodeRunnerFactory;
import com.metis.utils.GenericInterfacesUtils; import com.metis.utils.GenericInterfacesUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -39,6 +39,7 @@ public class AppFlowEngineRunnerServiceImpl implements AppFlowEngineRunnerServic
@Override @Override
public RunnerResult running(FlowRunningContext context) { public RunnerResult running(FlowRunningContext context) {
App app = getApp(context); App app = getApp(context);
Assert.isTrue(ObjectUtil.isNotNull(app), "app为空");
// todo 构建运行实例, 并将运行实例放入上下文 // todo 构建运行实例, 并将运行实例放入上下文
Long instanceId = IdUtil.getSnowflakeNextId(); Long instanceId = IdUtil.getSnowflakeNextId();
// 构建系统上下文信息 // 构建系统上下文信息

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.enums; package com.metis.enums;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;

View File

@@ -1,12 +1,12 @@
package com.metis.facade; package com.metis.facade;
import com.metis.domain.bo.ProcessBo; import com.metis.domain.bo.ProcessBo;
import com.metis.flow.convert.GraphConvert; import com.metis.convert.GraphConvert;
import com.metis.flow.domain.bo.CreateApp; import com.metis.domain.bo.CreateApp;
import com.metis.flow.domain.bo.UpdateApp; import com.metis.domain.bo.UpdateApp;
import com.metis.flow.domain.entity.App; import com.metis.domain.entity.App;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import com.metis.flow.engine.AppEngineService; import com.metis.engine.AppEngineService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,4 +0,0 @@
package com.metis.flow.domain.entity.base;
public abstract class NodeConfig {
}

View File

@@ -1 +0,0 @@
package com.metis.flow.domain.entity.config;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.mapper; package com.metis.mapper;
import com.metis.flow.domain.entity.BaseApp; import com.metis.domain.entity.BaseApp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.runner; package com.metis.runner;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
/** /**
* 自定义节点运行器 * 自定义节点运行器

View File

@@ -1,4 +1,4 @@
package com.metis.flow.runner; package com.metis.runner;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@@ -1,11 +1,11 @@
package com.metis.flow.runner; package com.metis.runner;
import com.metis.flow.domain.context.RunningContext; import com.metis.domain.context.RunningContext;
import com.metis.flow.domain.context.RunningResult; import com.metis.domain.context.RunningResult;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import java.util.List; import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.runner; package com.metis.runner;
import com.metis.flow.domain.context.SysContext; import com.metis.domain.context.SysContext;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;

View File

@@ -1,9 +1,9 @@
package com.metis.flow.runner.factory; package com.metis.runner.factory;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.runner.CustomNodeRunner; import com.metis.runner.CustomNodeRunner;
import com.metis.flow.runner.NodeRunner; import com.metis.runner.NodeRunner;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@@ -1,9 +1,9 @@
package com.metis.flow.runner.factory; package com.metis.runner.factory;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.runner.CustomNodeRunner; import com.metis.runner.CustomNodeRunner;
import com.metis.flow.runner.NodeRunner; import com.metis.runner.NodeRunner;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;

View File

@@ -1,13 +1,13 @@
package com.metis.flow.runner.impl; package com.metis.runner.impl;
import com.metis.flow.domain.context.RunningContext; import com.metis.domain.context.RunningContext;
import com.metis.flow.domain.context.RunningResult; import com.metis.domain.context.RunningResult;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.config.node.EndNodeConfig; import com.metis.domain.entity.config.node.EndNodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.runner.NodeRunner; import com.metis.runner.NodeRunner;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,15 +1,15 @@
package com.metis.flow.runner.impl; package com.metis.runner.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.metis.flow.domain.context.RunningContext; import com.metis.domain.context.RunningContext;
import com.metis.flow.domain.context.RunningResult; import com.metis.domain.context.RunningResult;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.base.NodeVariable; import com.metis.domain.entity.base.NodeVariable;
import com.metis.flow.domain.entity.config.node.StartNodeConfig; import com.metis.domain.entity.config.node.StartNodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.runner.NodeRunner; import com.metis.runner.NodeRunner;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,8 +1,8 @@
package com.metis.flow.service; package com.metis.service;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.domain.query.AppQuery; import com.metis.domain.query.AppQuery;
import com.metis.flow.domain.entity.BaseApp; import com.metis.domain.entity.BaseApp;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.service.impl; package com.metis.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -6,10 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.metis.enums.YesOrNoEnum; import com.metis.enums.YesOrNoEnum;
import com.metis.flow.domain.query.AppQuery; import com.metis.domain.query.AppQuery;
import com.metis.flow.domain.entity.BaseApp; import com.metis.domain.entity.BaseApp;
import com.metis.flow.mapper.BaseAppMapper; import com.metis.mapper.BaseAppMapper;
import com.metis.flow.service.BaseAppService; import com.metis.service.BaseAppService;
import com.metis.utils.PageConditionUtil; import com.metis.utils.PageConditionUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,7 +1,7 @@
package com.metis.flow.validator; package com.metis.validator;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
/** /**
* 自定义节点验证器 * 自定义节点验证器

View File

@@ -1,7 +1,7 @@
package com.metis.flow.validator; package com.metis.validator;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
public interface EdgeValidator { public interface EdgeValidator {

View File

@@ -1,9 +1,9 @@
package com.metis.flow.validator; package com.metis.validator;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.base.NodeConfig; import com.metis.domain.entity.base.NodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.validator; package com.metis.validator;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;

View File

@@ -1,4 +1,4 @@
package com.metis.flow.validator; package com.metis.validator;
import lombok.Data; import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.metis.flow.validator; package com.metis.validator;
import com.metis.flow.domain.bo.BuildApp; import com.metis.domain.bo.BuildApp;
public interface ValidatorService { public interface ValidatorService {

View File

@@ -1,7 +1,7 @@
package com.metis.flow.validator.factory; package com.metis.validator.factory;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
import com.metis.flow.validator.EdgeValidator; import com.metis.validator.EdgeValidator;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@@ -1,9 +1,9 @@
package com.metis.flow.validator.factory; package com.metis.validator.factory;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.CustomNodeValidator; import com.metis.validator.CustomNodeValidator;
import com.metis.flow.validator.NodeValidator; import com.metis.validator.NodeValidator;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@@ -1,11 +1,11 @@
package com.metis.flow.validator.factory; package com.metis.validator.factory;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.CustomNodeValidator; import com.metis.validator.CustomNodeValidator;
import com.metis.flow.validator.EdgeValidator; import com.metis.validator.EdgeValidator;
import com.metis.flow.validator.NodeValidator; import com.metis.validator.NodeValidator;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;

View File

@@ -1,18 +1,18 @@
package com.metis.flow.validator.impl; package com.metis.validator.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.metis.flow.domain.bo.BuildApp; import com.metis.domain.bo.BuildApp;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Graph; import com.metis.domain.entity.base.Graph;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.*; import com.metis.validator.*;
import com.metis.flow.validator.factory.EdgeValidatorFactory; import com.metis.validator.factory.EdgeValidatorFactory;
import com.metis.flow.validator.factory.NodeValidatorFactory; import com.metis.validator.factory.NodeValidatorFactory;
import com.metis.utils.GenericInterfacesUtils; import com.metis.utils.GenericInterfacesUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -1,9 +1,9 @@
package com.metis.flow.validator.impl.edge; package com.metis.validator.impl.edge;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.enums.EdgeType; import com.metis.enums.EdgeType;
import com.metis.flow.validator.EdgeValidator; import com.metis.validator.EdgeValidator;
import com.metis.flow.validator.ValidatorResult; import com.metis.validator.ValidatorResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,13 +1,13 @@
package com.metis.flow.validator.impl.node; package com.metis.validator.impl.node;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.config.node.DocumentExtractorNodeConfig; import com.metis.domain.entity.config.node.DocumentExtractorNodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.NodeValidator; import com.metis.validator.NodeValidator;
import com.metis.flow.validator.ValidatorCodeService; import com.metis.validator.ValidatorCodeService;
import com.metis.flow.validator.ValidatorResult; import com.metis.validator.ValidatorResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,12 +1,12 @@
package com.metis.flow.validator.impl.node; package com.metis.validator.impl.node;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.config.node.EndNodeConfig; import com.metis.domain.entity.config.node.EndNodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.NodeValidator; import com.metis.validator.NodeValidator;
import com.metis.flow.validator.ValidatorResult; import com.metis.validator.ValidatorResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,16 +1,16 @@
package com.metis.flow.validator.impl.node; package com.metis.validator.impl.node;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.metis.flow.domain.entity.base.Edge; import com.metis.domain.entity.base.Edge;
import com.metis.flow.domain.entity.base.Node; import com.metis.domain.entity.base.Node;
import com.metis.flow.domain.entity.base.NodeVariable; import com.metis.domain.entity.base.NodeVariable;
import com.metis.flow.domain.entity.config.node.StartNodeConfig; import com.metis.domain.entity.config.node.StartNodeConfig;
import com.metis.flow.enums.NodeType; import com.metis.enums.NodeType;
import com.metis.flow.validator.NodeValidator; import com.metis.validator.NodeValidator;
import com.metis.flow.validator.ValidatorCodeService; import com.metis.validator.ValidatorCodeService;
import com.metis.flow.validator.ValidatorResult; import com.metis.validator.ValidatorResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

124
pom.xml
View File

@@ -24,8 +24,9 @@
<maven.compiler.target>17</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.vserion>3.3.4</spring-boot.vserion> <spring-boot.vserion>3.3.4</spring-boot.vserion>
<fastjson.version>2.0.45</fastjson.version> <fastjson.version>2.0.56</fastjson.version>
<lombok.version>1.18.34</lombok.version> <lombok.version>1.18.34</lombok.version>
<org.mapstruct.version>1.6.2</org.mapstruct.version>
<sanitizer.version>1.2.3</sanitizer.version> <sanitizer.version>1.2.3</sanitizer.version>
<langchain4j.version>1.0.0-beta2</langchain4j.version> <langchain4j.version>1.0.0-beta2</langchain4j.version>
<mybatis-plus.version>3.5.8</mybatis-plus.version> <mybatis-plus.version>3.5.8</mybatis-plus.version>
@@ -41,77 +42,60 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>1.0.0-beta2</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.mikesamuel</groupId>
<artifactId>json-sanitizer</artifactId>
<version>${sanitizer.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.24</version>
</dependency>
<!-- 类转换 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>1.0.0-beta2</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.mikesamuel</groupId>
<artifactId>json-sanitizer</artifactId>
<version>${sanitizer.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.24</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
</project> </project>