feat(mes): 新增 yudao-module-mes 模块骨架

新增 MES(制造执行系统)模块,包含 7 个业务域子包:
- md:基础数据(物料、客户、供应商、车间、工位、BOM)
- cal:日历排班(班次、班组、排班计划、假期)
- dv:设备管理(设备台账、点检、保养、维修)
- tm:工具管理(工具类型、工具台账)
- pro:生产管理(工序、工艺路线、工单、任务、报工、安灯)
- qc:质量管理(检验模板、IQC/IPQC/OQC/RQC、缺陷)
- wm:仓库管理(仓库/库区/库位、库存、出入库、调拨、盘点)

具体变更:
1. 新增 yudao-module-mes 模块(pom.xml + 目录结构)
2. 注册到根 pom.xml 和 yudao-server pom.xml
3. 新增 ErrorCodeConstants(1-040-000-000 段,按业务域加前缀)
4. 新增 DictTypeConstants、MesWebConfiguration(Swagger 分组)
5. 新增各层 package-info.java 说明
This commit is contained in:
YunaiV
2026-02-14 23:07:58 +08:00
parent 566f5a12b7
commit 6d0569bcbd
17 changed files with 257 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
<!-- <module>yudao-module-erp</module>-->
<!-- <module>yudao-module-ai</module>-->
<!-- <module>yudao-module-iot</module>-->
<module>yudao-module-mes</module>
</modules>
<name>${project.artifactId}</name>

65
yudao-module-mes/pom.xml Normal file
View File

@@ -0,0 +1,65 @@
<?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>cn.iocoder.boot</groupId>
<artifactId>yudao</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>yudao-module-mes</artifactId>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<description>
mes 模块下制造执行系统Manufacturing Execution System
例如说:基础数据、排班日历、设备管理、工具管理、生产管理、质量管理、仓库管理等等
</description>
<dependencies>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<!-- Web 相关 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-security</artifactId>
</dependency>
<!-- DB 相关 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-redis</artifactId>
</dependency>
<!-- 工具类相关 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-excel</artifactId>
</dependency>
<!-- Test 测试相关 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,4 @@
/**
* MES 日历排班Calendar / Shift Planning班次、班组、班组成员、排班计划、假期设置等生产人员轮班与工作日历
*/
package cn.iocoder.yudao.module.mes.controller.admin.cal;

View File

@@ -0,0 +1,4 @@
/**
* MES 设备管理Device / Equipment Management设备类型、设备台账、点检计划与记录、保养记录、维修工单等设备全生命周期管理
*/
package cn.iocoder.yudao.module.mes.controller.admin.dv;

View File

@@ -0,0 +1,4 @@
/**
* MES 基础数据Master Data物料、物料分类、计量单位、客户、供应商、车间、工位、BOM、SOP、SIP 等制造基础主数据
*/
package cn.iocoder.yudao.module.mes.controller.admin.md;

View File

@@ -0,0 +1,4 @@
/**
* MES 生产管理Production工序、工艺路线、生产工单、生产任务、报工反馈、流转卡、安灯、停机记录等核心生产执行
*/
package cn.iocoder.yudao.module.mes.controller.admin.pro;

View File

@@ -0,0 +1,4 @@
/**
* MES 质量管理Quality Control检验模板、质检指标、来料检IQC、过程检IPQC、出货检OQC、退货检RQC、缺陷管理
*/
package cn.iocoder.yudao.module.mes.controller.admin.qc;

View File

@@ -0,0 +1,4 @@
/**
* MES 工具管理Tool Management工具类型、工具台账管理生产所需的刀具、模具、夹具等工装资源
*/
package cn.iocoder.yudao.module.mes.controller.admin.tm;

View File

@@ -0,0 +1,4 @@
/**
* MES 仓库管理Warehouse Management仓库/库区/库位、库存台账、批次/SN、出入库采购/生产/销售/外协/其他)、调拨、盘点、条码
*/
package cn.iocoder.yudao.module.mes.controller.admin.wm;

View File

@@ -0,0 +1,6 @@
/**
* 提供 RESTful API 给前端:
* 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目
* 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分
*/
package cn.iocoder.yudao.module.mes.controller;

View File

@@ -0,0 +1,10 @@
package cn.iocoder.yudao.module.mes.enums;
/**
* MES 字典类型的枚举类
*
* @author 芋道源码
*/
public interface DictTypeConstants {
}

View File

@@ -0,0 +1,96 @@
package cn.iocoder.yudao.module.mes.enums;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
/**
* MES 错误码枚举类
* <p>
* 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 基础数据-产品BOM1-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, "库存记录不存在");
}

View File

@@ -0,0 +1,6 @@
/**
* 属于 mes 模块的 framework 封装
*
* @author 芋道源码
*/
package cn.iocoder.yudao.module.mes.framework;

View File

@@ -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");
}
}

View File

@@ -0,0 +1,4 @@
/**
* mes 模块的 web 配置
*/
package cn.iocoder.yudao.module.mes.framework.web;

View File

@@ -0,0 +1,10 @@
/**
* mes 包下制造执行系统Manufacturing Execution System
* 例如说:基础数据、排班日历、设备管理、工具管理、生产管理、质量管理、仓库管理等等
*
* 1. Controller URL以 /mes/ 开头,避免和其它 Module 冲突
* 2. DataObject 表名:以 mes_ 开头,方便在数据库中区分
*
* 注意,由于 Mes 模块下,容易和其它模块重名,所以类名都加了 Mes 的前缀~
*/
package cn.iocoder.yudao.module.mes;

View File

@@ -115,6 +115,13 @@
<!-- <version>${revision}</version>-->
<!-- </dependency>-->
<!-- MES 制造执行系统相关模块 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-mes</artifactId>
<version>${revision}</version>
</dependency>
<!-- spring boot 配置所需依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>