From 5c4c0848ed95a95559250822f28a482a4ae268b5 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期五, 06 六月 2025 15:24:06 +0800 Subject: [PATCH] 模型仓库 --- iailab-module-mhub/iailab-module-mhub-biz/db/mysql.sql | 212 +++++++++++++++++ iailab-module-mhub/iailab-module-mhub-biz/doc/img_3.png | 0 iailab-module-mhub/iailab-module-mhub-biz/pom.xml | 180 +++++++++++++++ iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/MhubServiceApplication.java | 32 ++ iailab-module-mhub/iailab-module-mhub-biz/doc/img_6.png | 0 iailab-module-mhub/iailab-module-mhub-biz/doc/c++代码生成.md | 0 iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/mdk/package-info.java | 1 iailab-module-mhub/iailab-module-mhub-biz/doc/img_4.png | 0 iailab-module-mhub/iailab-module-mhub-api/pom.xml | 70 +++++ iailab-module-mhub/iailab-module-mhub-biz/doc/img_2.png | 0 iailab-module-mhub/iailab-module-mhub-biz/doc/img_1.png | 0 iailab-module-mhub/pom.xml | 43 +++ iailab-module-mhub/iailab-module-mhub-biz/doc/img.png | 0 iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/common/package-info.java | 1 iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/package-info.java | 1 iailab-module-mhub/iailab-module-mhub-biz/doc/img_5.png | 0 iailab-module-mhub/iailab-module-mhub-biz/src/main/resources/application.yml | 174 ++++++++++++++ iailab-module-mhub/iailab-module-mhub-biz/doc/img_7.png | 0 18 files changed, 714 insertions(+), 0 deletions(-) diff --git a/iailab-module-mhub/iailab-module-mhub-api/pom.xml b/iailab-module-mhub/iailab-module-mhub-api/pom.xml new file mode 100644 index 0000000..25a64c2 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-api/pom.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>com.iailab</groupId> + <artifactId>iailab-module-mhub</artifactId> + <version>${revision}</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>iailab-module-mhub-api</artifactId> + <packaging>jar</packaging> + <name>${project.artifactId}</name> + + <dependencies> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common</artifactId> + </dependency> + + <!-- Web 相关 --> + <dependency> + <groupId>org.springdoc</groupId> + <artifactId>springdoc-openapi-ui</artifactId> + <scope>provided</scope> + </dependency> + + <!-- 参数校验 --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-validation</artifactId> + <optional>true</optional> + </dependency> + + <!-- RPC 远程调用相关 --> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-openfeign</artifactId> + <optional>true</optional> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <version>3.3.0</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + <configuration> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/db/mysql.sql b/iailab-module-mhub/iailab-module-mhub-biz/db/mysql.sql new file mode 100644 index 0000000..2023ae8 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/db/mysql.sql @@ -0,0 +1,212 @@ +CREATE database if NOT EXISTS `iailab_plat_mhub` default character set utf8mb4 collate utf8mb4_general_ci; +USE `iailab_plat_mhub`; + + +----------MDK模型配置业务表---------------------------------------------------------- + -- ---------------------------- +-- Table structure for t_mdk_repository +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_repository`; +CREATE TABLE `t_mdk_repository` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库名称', + `is_private` int NOT NULL DEFAULT 1 COMMENT '是否私有', + `belong_to` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所属人', + `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_name`(`name` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'MDK模型仓库' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for t_mdk_model_file +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_model_file`; +CREATE TABLE `t_mdk_model_file` ( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `repository_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '仓库id', + `py_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型名称', + `py_chinese_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型中文名称', + `file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '源文件保存路径', + `py_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型类型', + `pkg_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '包名', + `class_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '类名', + `py_module` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型路径', + `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'icon图片名', + `menu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属菜单', + `group_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属组', + `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本号', + `author_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '作者姓名', + `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_repository_id`(`repository_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'MDK模型文件' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_mdk_model_method +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_model_method`; +CREATE TABLE `t_mdk_model_method` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `file_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '模型文件id', + `method_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型方法名', + `data_length` int NULL DEFAULT 1 COMMENT '输入个数', + `model` int NULL DEFAULT 0 COMMENT '是否有model(0:否,1:是)', + `result_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '结果key', + `sort` integer, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_file_id`(`file_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'MDK模型方法' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_model_file_setting +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_model_setting`; +CREATE TABLE `t_mdk_model_setting` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `method_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '方法id', + `setting_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'key', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数名称', + `value` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数默认值', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '输入类型', + `value_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数类型', + `max` int NULL DEFAULT NULL COMMENT '最大值', + `min` int NULL DEFAULT NULL COMMENT '最小值', + `sort` integer, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_method_id`(`method_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型方法参数关' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for t_mdk_file_release +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_file_release`; +CREATE TABLE `t_mdk_file_release` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `file_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件名ID', + `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件名', + `file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件保存路径', + `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本号', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `create_time` datetime NULL DEFAULT NULL COMMENT '生成时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_file_id`(`file_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'MDK模型发布历史' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for t_mpk_setting_select +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_setting_select`; +CREATE TABLE `t_mdk_setting_select` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `setting_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '参数id', + `select_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'key', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称', + `sort` integer, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_setting_id`(`setting_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '参数选项关联表' ROW_FORMAT = Dynamic; + +DROP TABLE IF EXISTS `t_mdk_icon`; +CREATE TABLE `t_mdk_icon` +( + `id` varchar(36) NOT NULL COMMENT 'id', + `icon_name` varchar(36) NOT NULL COMMENT '图标名称', + `icon_desc` varchar(36) DEFAULT NULL COMMENT '图标描述', + `sort` integer DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'MDK平台图标' ROW_FORMAT = Dynamic; + +DROP TABLE IF EXISTS `t_mdk_menu`; +CREATE TABLE `t_mdk_menu` +( + `id` varchar(36) NOT NULL COMMENT 'id', + `name` varchar(36) NOT NULL COMMENT '名称', + `sort` integer DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型文件菜单' ROW_FORMAT = Dynamic; + +DROP TABLE IF EXISTS `t_mdk_group`; +CREATE TABLE `t_mdk_group` +( + `id` varchar(36) NOT NULL COMMENT 'id', + `menu_id` varchar(36) NOT NULL COMMENT '菜单', + `name` varchar(36) NOT NULL COMMENT '名称', + `sort` integer DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模型文件分组' ROW_FORMAT = Dynamic; + + +----------MPK模型封装业务表---------------------------------------------------------- +-- ---------------------------- +-- Table structure for t_mdk_project +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_project`; +CREATE TABLE `t_mdk_project` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `project_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '项目名称', + `project_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '项目编码', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '项目表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for t_mdk_project_model +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_project_model`; +CREATE TABLE `t_mdk_project_model` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `project_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '项目id', + `model_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '模型id', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_project_id`(`project_id` ASC) USING BTREE, + INDEX `idx_model_id`(`model_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '项目模型关联表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for t_mdk_project_package +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_project_package`; +CREATE TABLE `t_mdk_project_package` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `project_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '项目id', + `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件名', + `file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件路径', + `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本号', + `log` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新日志', + `model_names` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '打包模型名称(“,”分割)', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_project_id`(`project_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '项目打包历史记录表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Table structure for t_mdk_package_list +-- ---------------------------- +DROP TABLE IF EXISTS `t_mdk_package_list`; +CREATE TABLE `t_mdk_package_list` +( + `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id', + `package_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '项目id', + `model_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件名', + `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本号', + `sort` integer DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_package_id`(`package_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '项目打包模型列表' ROW_FORMAT = DYNAMIC; \ No newline at end of file diff --git "a/iailab-module-model/iailab-module-model-biz/doc/c++\344\273\243\347\240\201\347\224\237\346\210\220.md" "b/iailab-module-mhub/iailab-module-mhub-biz/doc/c++\344\273\243\347\240\201\347\224\237\346\210\220.md" similarity index 100% rename from "iailab-module-model/iailab-module-model-biz/doc/c++\344\273\243\347\240\201\347\224\237\346\210\220.md" rename to "iailab-module-mhub/iailab-module-mhub-biz/doc/c++\344\273\243\347\240\201\347\224\237\346\210\220.md" diff --git a/iailab-module-model/iailab-module-model-biz/doc/img.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_1.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_1.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_1.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_1.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_2.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_2.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_2.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_2.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_3.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_3.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_3.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_3.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_4.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_4.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_4.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_4.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_5.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_5.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_5.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_5.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_6.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_6.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_6.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_6.png Binary files differ diff --git a/iailab-module-model/iailab-module-model-biz/doc/img_7.png b/iailab-module-mhub/iailab-module-mhub-biz/doc/img_7.png similarity index 100% rename from iailab-module-model/iailab-module-model-biz/doc/img_7.png rename to iailab-module-mhub/iailab-module-mhub-biz/doc/img_7.png Binary files differ diff --git a/iailab-module-mhub/iailab-module-mhub-biz/pom.xml b/iailab-module-mhub/iailab-module-mhub-biz/pom.xml new file mode 100644 index 0000000..7547f31 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/pom.xml @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.iailab</groupId> + <artifactId>iailab-module-mhub</artifactId> + <version>${revision}</version> + </parent> + + <artifactId>iailab-module-mhub-biz</artifactId> + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <easypoi.version>4.1.0</easypoi.version> + <commons.io.version>2.11.0</commons.io.version> + <velocity.version>1.7</velocity.version> + </properties> + + <dependencies> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-env</artifactId> + </dependency> + <!-- 业务组件 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-biz-data-permission</artifactId> + </dependency> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-biz-tenant</artifactId> + </dependency> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-biz-ip</artifactId> + </dependency> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-module-mhub-api</artifactId> + <version>${revision}</version> + </dependency> + + <!-- Web 相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-security</artifactId> + </dependency> + + <!-- DB 相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-mybatis</artifactId> + </dependency> + + <!-- RPC 远程调用相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-rpc</artifactId> + </dependency> + <!-- 监控相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-monitor</artifactId> + </dependency> + + <!-- Test 测试相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-test</artifactId> + <scope>test</scope> + </dependency> + + <!-- 工具类相关 --> + <dependency> + <groupId>com.iailab</groupId> + <artifactId>iailab-common-excel</artifactId> + </dependency> + + <!-- Registry 注册中心相关 --> + <dependency> + <groupId>com.alibaba.cloud</groupId> + <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> + </dependency> + + <!-- Config 配置中心相关 --> + <dependency> + <groupId>com.alibaba.cloud</groupId> + <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> + </dependency> + + <!-- 引用POI --> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi</artifactId> + <version>4.1.1</version> + </dependency> + + <!-- 引用MDK --> + <dependency> + <groupId>com.iail</groupId> + <artifactId>IAILMDK</artifactId> + <version>0.94.9</version> + </dependency> + + <!-- MPK --> + <dependency> + <groupId>cn.afterturn</groupId> + <artifactId>easypoi-base</artifactId> + <version>${easypoi.version}</version> + </dependency> + <dependency> + <groupId>cn.afterturn</groupId> + <artifactId>easypoi-web</artifactId> + <version>${easypoi.version}</version> + </dependency> + <dependency> + <groupId>cn.afterturn</groupId> + <artifactId>easypoi-annotation</artifactId> + <version>${easypoi.version}</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons.io.version}</version> + </dependency> + <dependency> + <artifactId>velocity</artifactId> + <groupId>org.apache.velocity</groupId> + <version>${velocity.version}</version> + </dependency> + </dependencies> + <build> + <!-- 设置构建的 jar 包名 --> + <finalName>${project.artifactId}</finalName> + <plugins> + <!-- 打包 --> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${spring.boot.version}</version> + <executions> + <execution> + <goals> + <goal>repackage</goal> <!-- 将引入的 jar 打入其中 --> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>flatten-maven-plugin</artifactId> + <version>1.1.0</version> + <configuration> + <updatePomFile>true</updatePomFile> + <flattenMode>resolveCiFriendliesOnly</flattenMode> + </configuration> + <executions> + <execution> + <id>flatten</id> + <phase>process-resources</phase> + <goals> + <goal>flatten</goal> + </goals> + </execution> + <execution> + <id>flatten.clean</id> + <phase>clean</phase> + <goals> + <goal>clean</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/MhubServiceApplication.java b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/MhubServiceApplication.java new file mode 100644 index 0000000..40f5e1f --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/MhubServiceApplication.java @@ -0,0 +1,32 @@ +package com.iailab; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableAsync; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年06月06日 + */ +@EnableAsync +@SpringBootApplication +@Slf4j +public class MhubServiceApplication implements CommandLineRunner { + + + public static void main(String[] args) { + SpringApplication.run(MhubServiceApplication.class, args); + } + + /** + * 容器初始化后加载路由 + * + * @param strings + */ + @Override + public void run(String... strings) { + } +} \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/common/package-info.java b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/common/package-info.java new file mode 100644 index 0000000..9bb6040 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/common/package-info.java @@ -0,0 +1 @@ +package com.iailab.module.mhub.common; \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/mdk/package-info.java b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/mdk/package-info.java new file mode 100644 index 0000000..b2feb93 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/mdk/package-info.java @@ -0,0 +1 @@ +package com.iailab.module.mhub.mdk; \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/package-info.java b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/package-info.java new file mode 100644 index 0000000..ba4d305 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/src/main/java/com/iailab/module/mhub/package-info.java @@ -0,0 +1 @@ +package com.iailab.module.mhub; \ No newline at end of file diff --git a/iailab-module-mhub/iailab-module-mhub-biz/src/main/resources/application.yml b/iailab-module-mhub/iailab-module-mhub-biz/src/main/resources/application.yml new file mode 100644 index 0000000..02dbfb8 --- /dev/null +++ b/iailab-module-mhub/iailab-module-mhub-biz/src/main/resources/application.yml @@ -0,0 +1,174 @@ +--- #################### 注册中心 + 配置中心相关配置 #################### +spring: + application: + name: model-server + + profiles: + active: @profiles.active@ + cloud: + nacos: + server-addr: @nacos.server@ # Nacos 服务器地址 + username: @nacos.username@ + password: @nacos.password@ + discovery: # 【配置中心】配置项 + namespace: @profiles.active@ + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + metadata: + version: @nacos.metadata.version@ # 服务实例的版本号,可用于灰度发布 + config: # 【注册中心】配置项 + namespace: @profiles.active@ + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务 + + config: + import: + - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置 + - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置 + + # Servlet 配置 + servlet: + # 文件上传相关配置项 + multipart: + max-file-size: 16MB # 单个文件大小 + max-request-size: 32MB # 设置总上传的文件大小 + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类 + + # Jackson 配置项 + jackson: + serialization: + write-dates-as-timestamps: true # 设置 LocalDateTime 的格式,使用时间戳 + write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401 + write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 + fail-on-empty-beans: false # 允许序列化无属性的 Bean + + # Cache 配置项 + cache: + type: REDIS + redis: + time-to-live: 1h # 设置过期时间为 1 小时 + +server: + port: 8989 + +logging: + file: + name: @log.path@/log/${spring.application.name}.log # 日志文件名,全路径 + level: + org: + springframework: + boot: + autoconfigure: + logging: info + +--- #################### 接口文档配置 #################### + +springdoc: + api-docs: + enabled: true # 1. 是否开启 Swagger 接文档的元数据 + path: /v3/api-docs + swagger-ui: + enabled: true # 2.1 是否开启 Swagger 文档的官方 UI 界面 + path: /swagger-ui.html + default-flat-param-object: true + +knife4j: + enable: true + basic: + enable: false + username: admin + password: admin + setting: + enableFooter: false + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + global-config: + db-config: + id-type: AUTO # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 + # id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 + # id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 + # id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + logic-delete-value: 1 # 逻辑已删除值(默认为 1) + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + banner: false # 关闭控制台的 Banner 打印 + type-aliases-package: ${iailab.info.base-package}.*.entity + mapper-locations: classpath*:/mapper/**/*.xml + encryptor: + password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成 + +mybatis-plus-join: + banner: false # 关闭控制台的 Banner 打印 + +# Spring Data Redis 配置 +spring: + data: + redis: + repositories: + enabled: false # 项目未使用到 Spring Data Redis 的 Repository,所以直接禁用,保证启动速度 + +# VO 转换(数据翻译)相关 +easy-trans: + is-enable-global: true # 启用全局翻译(拦截所有 SpringMVC ResponseBody 进行自动翻译 )。如果对于性能要求很高可关闭此配置,或通过 @IgnoreTrans 忽略某个接口 + is-enable-cloud: false # 禁用 TransType.RPC 微服务模式 + +--- #################### RPC 远程调用相关配置 #################### + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + # Producer 配置项 + producer: + group: ${spring.application.name}_PRODUCER # 生产者分组 + +spring: + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + # Kafka Producer 配置项 + producer: + acks: 1 # 0-不应答。1-leader 应答。all-所有 leader 和 follower 应答。 + retries: 3 # 发送失败时,重试发送的次数 + value-serializer: org.springframework.kafka.support.serializer.JsonSerializer # 消息的 value 的序列化 + # Kafka Consumer 配置项 + consumer: + auto-offset-reset: earliest # 设置消费者分组最初的消费进度为 earliest 。可参考博客 https://blog.csdn.net/lishuangzhe7047/article/details/74530417 理解 + value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + properties: + spring.json.trusted.packages: '*' + # Kafka Consumer Listener 监听器配置 + listener: + missing-topics-fatal: false # 消费监听接口监听的主题不存在时,默认会报错。所以通过设置为 false ,解决报错 + + +--- #################### 平台相关配置 #################### + +iailab: + info: + version: 1.0.0 + base-package: com.iailab.module.model + web: + admin-ui: + url: # Admin 管理后台 UI 的地址 + swagger: + title: 模型管理 + description: 模型管理 + version: ${iailab.info.version} + base-package: ${iailab.info.base-package} + tenant: # 多租户相关配置项 + enable: true + ignore-tables: + - qrtz_blob_triggers + app: + app-key: mhub + app-secret: 85b0df7edc3df3611913df34ed695011 + core-host: 127.0.0.1 + + +debug: true diff --git a/iailab-module-mhub/pom.xml b/iailab-module-mhub/pom.xml new file mode 100644 index 0000000..ea88fe3 --- /dev/null +++ b/iailab-module-mhub/pom.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.iailab</groupId> + <artifactId>iailab-plat</artifactId> + <version>${revision}</version> + </parent> + <artifactId>iailab-module-mhub</artifactId> + <packaging>pom</packaging> + <modules> + <module>iailab-module-mhub-biz</module> + <module>iailab-module-mhub-api</module> + </modules> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <build> + <pluginManagement> + <plugins> + <!-- maven-surefire-plugin 插件,用于运行单元测试。 --> + <!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 --> + </plugins> + </pluginManagement> + </build> + + +</project> \ No newline at end of file -- Gitblit v1.9.3