# MES **Repository Path**: duling/mes ## Basic Information - **Project Name**: MES - **Description**: 半导体MES芯片制造系统 - **Primary Language**: C# - **License**: OSL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-07 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MES制造执行系统 ## 项目简介 MES(Manufacturing Execution System)制造执行系统是一个专为半导体/晶圆制造厂设计的综合性生产管理平台。本系统基于.NET 8技术栈开发,旨在优化生产工作流、跟踪制造过程,管理与ERP、EAP和SPC系统的集成。 ## 核心特性 ### 🏭 分布式工作流引擎 - 支持万级并发批次的实时处理 - 基于Redis的分布式锁和状态管理 - RabbitMQ异步任务处理 - 流式数据处理,支持大数据量传输 - 审计日志采用区块链技术,确保不可篡改 ### 📊 完整的生产管理模块 - **系统管理**:用户、角色、权限、菜单管理 - **工艺管理**:工艺菜单、工步、工序、流程定义 - **物料管理**:原材料、库存、监控、事务记录 - **设备管理**:设备、设备组、工作站、状态监控 - **质量管理**:SPC统计过程控制、量测数据、Chart分析 - **在制品管理**:批次跟踪、投批、加工历史 - **特殊功能**:测机、暖机、先行片、跳站管理 ### 🔧 技术特点 - 基于FreeSQL的多数据库支持 - 支持PostgreSQL、MySQL、SQL Server - 前端采用Vue3 + TypeScript + Composition API - 响应式设计,支持多终端访问 - 完善的权限管控和审计追踪 ## 系统架构 ### 技术栈 - **后端**:ASP.NET Core 8.0, C# - **数据库**:MySQL (默认) 或 PostgreSQL, Redis (缓存) - **消息队列**:RabbitMQ (可选) - **ORM**:FreeSQL 3.5.x - **认证**:JWT Bearer tokens - **前端**:Vue 3.5.x + Composition API, TypeScript - **UI库**:Element Plus - **状态管理**:Pinia - **构建工具**:Vite 7.x - **样式**:Tailwind CSS 4.x, SCSS ### 模块架构 ``` MES系统 ├── 10 系统模块 (systemMgr) - 权限和基础数据管理 │ ├── 101 部门管理 (dept) │ ├── 102 用户管理 (user) │ ├── 103 用户组管理 (userGroup) │ ├── 104 角色管理 (role) │ ├── 105 菜单管理 (menu) │ └── 106 字典管理 (dict) ├── 20 工艺菜单模块 (recipeMgr) - 工艺流程定义 │ └── 201 工艺菜单管理 (recipe) ├── 30 原材料模块 (materialsMgr) - 物料全生命周期管理 │ ├── 301 库房管理 (warehouse) │ ├── 302 原材料管理 (materials) │ ├── 303 物料管理 (materialReceiv) │ ├── 304 物料监控 (materialMonitor) │ ├── 305 物料操作历史 (materialTransHistory) │ └── 306 接收物料历史 (materialReceiveHistory) ├── 40 设备模块 (eqpMgr) - 设备和资源管理 │ ├── 401 工作站管理 (workstation) │ ├── 402 设备管理 (eqp) │ ├── 403 设备组管理 (eqpGroup) │ ├── 404 设备状态管理 (eqpStatus) │ ├── 405 设备预约 (eqpReserv) │ └── 406 设备加工历史 (eqpProcessHistory) ├── 50 测量计划模块 (spcMgr) - 质量控制和分析 │ ├── 501 过程控制规则管理 (rule) │ ├── 502 EDC管理 (edc) │ ├── 503 Chart管理 (chart) │ └── 504 抽片规则管理 (measurementRule) ├── 60 工艺流程模块 (flowMgr) - 流程设计和版本控制 │ ├── 601 工步管理 (step) │ ├── 602 工序管理 (subPlan) │ ├── 603 工序段管理 (stage) │ ├── 604 流程管理 (process) │ ├── 605 工艺流程管理 (flow) │ ├── 606 返工管理 (rework) │ ├── 607 循环管理 (loop) │ ├── 608 超时管理 (qTime) │ ├── 609 超时监控 (qTimeMonitor) │ ├── 610 OCAP流程设定 (ocapFlow) │ ├── 611 RRC流程设定 (rrcFlow) │ └── 612 SRC流程设定 (srcFlow) ├── 70 产品模块 (prodMgr) - 产品和产品组管理 │ ├── 701 产品管理 (prod) │ └── 702 产品组管理 (prodGroup) ├── 80 片盒模块 (cassetteMgr) - 片盒和清洗管理 │ ├── 801 片盒设置 (cassette) │ └── 802 清洗设置 (cassetteClean) ├── 90 在制品管理模块 (wipMgr) - 批次加工管理 │ ├── 901 建批计划 (lotPlan) │ ├── 902 投批 (waferStart) │ ├── 903 批次信息 (singleLot) │ ├── 904 多批次加工管理 (multiLot) │ ├── 905 组Batch加工管理 (batchLot) │ ├── 906 批次预设暂停 (futureHold) │ ├── 907 批次加工历史 (lotTransHistory) │ └── 908 OCAP单 (ocap) ├── 100 统计过程控制模块 (measurementMgr) - 量测数据分析 │ ├── 1001 量测看图分析 (analysis) │ └── 1002 量测数据历史 (edcData) ├── 110 订单模块 (orderMgr) - 订单和出货管理 │ ├── 1101 订单管理 (order) │ ├── 1102 出货统计 (orderStatisticsReport) │ └── 1103 历史订单 (orderHistory) ├── 120 跨厂区代工模块 (crossFabOEMMgr) - 代工业务管理 │ ├── 1201 代工订单 (crossFabSetup) │ ├── 1202 代工交付 (crossFab) │ └── 1203 代工质检 (crossFabQC) ├── 130 加工限制模块 (trackInConstraintMgr) - 进站限制管理 │ ├── 1301 设备进站限制 (ecs) │ ├── 1302 污染等级管控 (pollutionLevel) │ └── 1303 特殊站检查项设置 (checkCust) ├── 140 测机模块 (autoMonitorMgr) - 设备测机管理 │ ├── 1401 测机管理 (autoMonitorSetup) │ ├── 1402 自动触发测机 (emas) │ ├── 1403 降档 (downgrade) │ └── 1404 测机历史 (autoMonitorHistory) ├── 150 暖机模块 (seasonMgr) - 设备暖机管理 │ ├── 1501 暖机管理 (season) │ └── 1502 暖机历史 (seasonHistory) ├── 160 先行片模块 (pilotMgr) - 先行片管理 │ ├── 1601 先行片管理 (pilotWafer) │ └── 1602 先行片历史 (pilotHistory) ├── 170 跳站模块 (repositionMgr) - 批次跳站管理 │ ├── 1701 自动跳站 (autoReposition) │ ├── 1702 批次跳站 (lotSampling) │ └── 1703 批量跳站 (smartSampling) └── 180 系统监控 (systemMonitor) - 系统日志和监控 ├── 1801 在线用户 (onlineUser) ├── 1802 登录日志 (loginLog) ├── 1803 操作日志 (operationLog) └── 1804 系统日志 (systemLog) ``` ## 工作流引擎设计 ### 核心概念 1. **Step(工步)** - 最小原子操作单元 - 普通加工站点 (P) - 量测站点 (M) - 分批站点 (S) - 合批站点 (M) - 虚拟加工站点 (V) 2. **SubPlan(工序)** - 多个工步组成,支持分支条件判断 3. **Process(工序段)** - 多个工序组成,支持Rework和Loop 4. **Flow(流程)** - 完整的工艺流程,由多个Process组成 ### 功能特性 - ✅ 支持流程分支和条件判断 - ✅ Rework返工管理(指定次数限制) - ✅ Loop循环管理(指定次数限制) - ✅ Q-time管控(毫秒到天级别) - ✅ 设备组、产品组、工艺菜单组绑定 - ✅ 流程激活、冻结、OA签核 - ✅ 版本控制和变更管理 ## 快速开始 ### 环境要求 - .NET 8.0 SDK - MySQL 8.0+ 或 PostgreSQL 12+ - Redis 6.x+ - RabbitMQ 3.9.x+ (可选) - Node.js 18+ - pnpm 8+ ### 安装步骤 1. **克隆仓库** ```bash git clone https://github.com/your-org/mes.git cd mes ``` 2. **后端配置** ```bash cd MESAPI dotnet restore dotnet build # 配置 appsettings.json 中的数据库连接 dotnet run ``` 3. **前端配置** ```bash cd MESUI pnpm install pnpm dev ``` 4. **数据库初始化** ```bash # 运行数据库迁移 dotnet ef database update ``` ### 配置说明 #### appsettings.json ```json { "ConnectionStrings": { "Default": "Server=localhost;Database=MES;Uid=root;Pwd=your_password" }, "Redis": { "ConnectionString": "localhost:6379" }, "RabbitMQ": { "HostName": "localhost", "Port": 5672, "UserName": "guest", "Password": "guest" } } ``` ## API文档 启动后端服务后,访问: - Swagger文档:`http://localhost:5000/swagger` - API版本:`/api/v1` ## 功能模块详解 ### 1. 在制品管理(WIP) - **批次创建**:支持产品选择和物料消耗 - **批次跟踪**:实时状态、位置、工艺信息 - **批次操作**:暂停、释放、跳站、分批、合批、报废、恢复 - **加工历史**:完整的批次生命周期记录 ### 2. 设备管理 - **设备建模**:设备基本信息和属性配置 - **设备组管理**:设备分组和批量操作 - **状态监控**:实时设备状态和历史记录 - **设备预约**:批次对特定设备的预约锁定 ### 3. 质量管理(SPC) - **Chart配置**:支持X-Bar、R、S等多种控制图 - **规则管理**:WE1-WE9等Westgard规则 - **OCAP流程**:异常处理和纠正措施 - **实时监控**:数据收集和违规提醒 ### 4. 特殊功能 #### 测机管理(Auto Monitor) - 设备工艺验证 - PM后验证 - 自动触发机制(By Batch/Time/Count) - 降档处理 #### 暖机管理(Season) - 设备闲置后的工艺验证 - Chamber级监控 - 自动解除限制 #### 先行片管理(Pilot) - 长时间闲置或Run货后的验证 - 自动触发和重试机制 - 分批支持 ## 高级特性 ### 1. 分布式工作流 ```csharp // 示例:创建并执行批次流程 var workflowEngine = new DistributedWorkflowEngine(); await workflowEngine.ExecuteWorkflowAsync(new WorkflowRequest { LotId = "LOT001", FlowId = "FLOW-001", Priority = 1, Parameters = new Dictionary { ["Product"] = "PRODUCT-A", ["Quantity"] = 25 } }); ``` ### 2. 流式数据处理 ```csharp // 大批量量测数据处理 await streamingProcessor.ProcessLargeDatasetAsync( dataStream, async data => { await spcService.CollectDataAsync(data); await auditLogger.LogAsync($"Collected data: {data.Id}"); } ); ``` ### 3. 审计日志 ```csharp // 不可篡改的操作记录 await auditService.LogAsync(new AuditEvent { UserId = "USER001", Action = "LOT_TRACK_IN", TargetId = "LOT001", Data = JsonConvert.SerializeObject(lotData), PreviousHash = "0x..." }); ``` ## 目标用户 - 生产操作员和工程师 - 质量控制人员 - 设备维护人员 - 生产计划员和管理者 - 系统管理员 ## 系统特点 - 优化生产工作流和跟踪制造过程 - 管理设备、物料、批次和质量控制 - 与ERP、EAP(设备自动化程序)和SPC系统集成 - 基于角色的访问控制和用户组管理 - 完整的审计日志记录 ## 部署指南 ### Docker部署 ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d ``` ### Kubernetes部署 ```bash # 应用配置 kubectl apply -f k8s/ # 检查状态 kubectl get pods -n mes ``` ## 开发规范 ### 代码规范 - C#遵循Microsoft编码规范 - TypeScript遵循ESLint规则 - 提交信息遵循Conventional Commits ### 分支策略 - main:生产环境 - develop:开发环境 - feature/*:功能分支 - hotfix/*:紧急修复 ## 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交代码 4. 创建Pull Request ## 许可证 本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 ## 联系我们 - 项目地址:https://github.com/your-org/mes - 问题反馈:https://github.com/your-org/mes/issues - 邮箱:mes-support@yourcompany.com ## 更新日志 ### v2.0.0 (2025-12-14) - 完成系统模块化重构 - 新增分布式工作流引擎 - 全面升级到.NET 10 - 前端全面采用Composition API - 新增质量管理和SPC模块 - 增强设备管理和批次跟踪功能 ### v1.0.0 (2023-12-01) - 项目初始化 - 基础功能实现 ## 功能实现状态 (Implementation Status) | 模块 (Module) | 子模块 (Sub-Module) | 状态 (Status) | 说明 (Note) | | :--- | :--- | :--- | :--- | | **系统模块** | 所有子模块 | ✅ 已完成 | 包含用户、角色、菜单等 | | **工艺菜单** | 工艺菜单管理 | ✅ 已完成 | | | **原材料** | 库房、物料等 | ✅ 已完成 | | | **设备模块** | 设备、工作站等 | ✅ 已完成 | | | **测量计划** | SPC规则、Chart等 | ✅ 已完成 | | | **工艺流程** | 工步、流程等 | ✅ 已完成 | | | **产品模块** | 产品、产品组 | ✅ 已完成 | | | **片盒模块** | 片盒、清洗 | ✅ 已完成 | | | **在制品** | 批次管理等 | ✅ 已完成 | | | **订单模块** | 订单、出货 | ✅ 已完成 | | | **跨厂区** | 代工订单等 | ✅ 已完成 | | | **测机模块** | 测机管理等 | ✅ 已完成 | (AutoMonitor/MstMgr) | | **暖机模块** | 暖机管理 | ✅ 已完成 | (Season/WarmUp) | | **加工限制** | 进站限制、污染等级 | ✅ 已完成 | (ProcessLimit) | | **先行片** | 先行片记录、历史 | ✅ 已完成 | (PilotWafer) | | **跳站模块** | 自动、批次、批量跳站 | ✅ 已完成 | (RepositionMgr) | | **系统监控** | 在线用户、日志等 | ✅ 已完成 | (SystemMonitor) |