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