diff --git a/pom.xml b/pom.xml
index b4016c70ce..a9c15ea005 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,7 @@
+
+ * mes 系统,使用 1-040-000-000 段
+ */
+public interface ErrorCodeConstants {
+
+ // ========== MES 基础数据-物料分类(1-040-100-000) ==========
+ ErrorCode MD_ITEM_TYPE_NOT_EXISTS = new ErrorCode(1_040_100_000, "物料分类不存在");
+
+ // ========== MES 基础数据-计量单位(1-040-101-000) ==========
+ ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "计量单位不存在");
+
+ // ========== MES 基础数据-物料(1-040-102-000) ==========
+ ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在");
+
+ // ========== MES 基础数据-客户(1-040-103-000) ==========
+ ErrorCode MD_CLIENT_NOT_EXISTS = new ErrorCode(1_040_103_000, "客户不存在");
+
+ // ========== MES 基础数据-供应商(1-040-104-000) ==========
+ ErrorCode MD_VENDOR_NOT_EXISTS = new ErrorCode(1_040_104_000, "供应商不存在");
+
+ // ========== MES 基础数据-车间(1-040-105-000) ==========
+ ErrorCode MD_WORKSHOP_NOT_EXISTS = new ErrorCode(1_040_105_000, "车间不存在");
+
+ // ========== MES 基础数据-工位(1-040-106-000) ==========
+ ErrorCode MD_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_106_000, "工位不存在");
+
+ // ========== MES 基础数据-产品BOM(1-040-107-000) ==========
+ ErrorCode MD_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_107_000, "产品BOM不存在");
+
+ // ========== MES 日历排班-班次(1-040-200-000) ==========
+ ErrorCode CAL_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "班次不存在");
+
+ // ========== MES 日历排班-班组(1-040-201-000) ==========
+ ErrorCode CAL_TEAM_NOT_EXISTS = new ErrorCode(1_040_201_000, "班组不存在");
+
+ // ========== MES 日历排班-排班计划(1-040-202-000) ==========
+ ErrorCode CAL_PLAN_NOT_EXISTS = new ErrorCode(1_040_202_000, "排班计划不存在");
+
+ // ========== MES 设备管理-设备类型(1-040-300-000) ==========
+ ErrorCode DV_MACHINERY_TYPE_NOT_EXISTS = new ErrorCode(1_040_300_000, "设备类型不存在");
+
+ // ========== MES 设备管理-设备台账(1-040-301-000) ==========
+ ErrorCode DV_MACHINERY_NOT_EXISTS = new ErrorCode(1_040_301_000, "设备不存在");
+
+ // ========== MES 设备管理-点检计划(1-040-302-000) ==========
+ ErrorCode DV_CHECK_PLAN_NOT_EXISTS = new ErrorCode(1_040_302_000, "点检计划不存在");
+
+ // ========== MES 设备管理-维修工单(1-040-303-000) ==========
+ ErrorCode DV_REPAIR_NOT_EXISTS = new ErrorCode(1_040_303_000, "维修工单不存在");
+
+ // ========== MES 工具管理-工具类型(1-040-400-000) ==========
+ ErrorCode TM_TOOL_TYPE_NOT_EXISTS = new ErrorCode(1_040_400_000, "工具类型不存在");
+
+ // ========== MES 工具管理-工具台账(1-040-401-000) ==========
+ ErrorCode TM_TOOL_NOT_EXISTS = new ErrorCode(1_040_401_000, "工具不存在");
+
+ // ========== MES 生产管理-工序(1-040-500-000) ==========
+ ErrorCode PRO_PROCESS_NOT_EXISTS = new ErrorCode(1_040_500_000, "工序不存在");
+
+ // ========== MES 生产管理-工艺路线(1-040-501-000) ==========
+ ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在");
+
+ // ========== MES 生产管理-生产工单(1-040-502-000) ==========
+ ErrorCode PRO_WORKORDER_NOT_EXISTS = new ErrorCode(1_040_502_000, "生产工单不存在");
+
+ // ========== MES 生产管理-生产任务(1-040-503-000) ==========
+ ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "生产任务不存在");
+
+ // ========== MES 质量管理-检验模板(1-040-600-000) ==========
+ ErrorCode QC_TEMPLATE_NOT_EXISTS = new ErrorCode(1_040_600_000, "检验模板不存在");
+
+ // ========== MES 质量管理-质检指标(1-040-601-000) ==========
+ ErrorCode QC_INDEX_NOT_EXISTS = new ErrorCode(1_040_601_000, "质检指标不存在");
+
+ // ========== MES 质量管理-缺陷类型(1-040-602-000) ==========
+ ErrorCode QC_DEFECT_NOT_EXISTS = new ErrorCode(1_040_602_000, "缺陷类型不存在");
+
+ // ========== MES 仓库管理-仓库(1-040-700-000) ==========
+ ErrorCode WM_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_040_700_000, "仓库不存在");
+
+ // ========== MES 仓库管理-库区(1-040-701-000) ==========
+ ErrorCode WM_STORAGE_AREA_NOT_EXISTS = new ErrorCode(1_040_701_000, "库区不存在");
+
+ // ========== MES 仓库管理-库位(1-040-702-000) ==========
+ ErrorCode WM_STORAGE_LOCATION_NOT_EXISTS = new ErrorCode(1_040_702_000, "库位不存在");
+
+ // ========== MES 仓库管理-库存(1-040-703-000) ==========
+ ErrorCode WM_MATERIAL_STOCK_NOT_EXISTS = new ErrorCode(1_040_703_000, "库存记录不存在");
+
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/package-info.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/package-info.java
new file mode 100644
index 0000000000..3ef57e7bd1
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/package-info.java
@@ -0,0 +1,6 @@
+/**
+ * 属于 mes 模块的 framework 封装
+ *
+ * @author 芋道源码
+ */
+package cn.iocoder.yudao.module.mes.framework;
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/config/MesWebConfiguration.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/config/MesWebConfiguration.java
new file mode 100644
index 0000000000..9959e4ad32
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/config/MesWebConfiguration.java
@@ -0,0 +1,24 @@
+package cn.iocoder.yudao.module.mes.framework.web.config;
+
+import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration;
+import org.springdoc.core.models.GroupedOpenApi;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * mes 模块的 web 组件的 Configuration
+ *
+ * @author 芋道源码
+ */
+@Configuration(proxyBeanMethods = false)
+public class MesWebConfiguration {
+
+ /**
+ * mes 模块的 API 分组
+ */
+ @Bean
+ public GroupedOpenApi mesGroupedOpenApi() {
+ return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("mes");
+ }
+
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/package-info.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/package-info.java
new file mode 100644
index 0000000000..630641a494
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/framework/web/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * mes 模块的 web 配置
+ */
+package cn.iocoder.yudao.module.mes.framework.web;
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/package-info.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/package-info.java
new file mode 100644
index 0000000000..e9c462be18
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/package-info.java
@@ -0,0 +1,10 @@
+/**
+ * mes 包下,制造执行系统(Manufacturing Execution System)。
+ * 例如说:基础数据、排班日历、设备管理、工具管理、生产管理、质量管理、仓库管理等等
+ *
+ * 1. Controller URL:以 /mes/ 开头,避免和其它 Module 冲突
+ * 2. DataObject 表名:以 mes_ 开头,方便在数据库中区分
+ *
+ * 注意,由于 Mes 模块下,容易和其它模块重名,所以类名都加了 Mes 的前缀~
+ */
+package cn.iocoder.yudao.module.mes;
diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml
index 97ee0daf38..6f1e5e721b 100644
--- a/yudao-server/pom.xml
+++ b/yudao-server/pom.xml
@@ -115,6 +115,13 @@
+
+