化妆品生产制造模块

对齐 Odoo 19 Manufacturing Order 闭环 — 从配方到完工的完整执行链路

1. 模块总览

架构分层

核心组件说明
页面层ProductionOrderList / Detail / WorkOrderExecution / WorkOrderList / WorkOrderDispatchBoard / WeighingStation用户操作入口
服务层MrpProductionService · MrpWorkorderService · MrpAvailabilityService · MesStudioRuntimeService · QualityCheckService业务逻辑
数据层MrpProduction · MrpWorkorder · MrpBom · MrpRouting · MrpWorkcenter · StockLot · QualityCheck · QualityAlert领域模型
API层/api/v1/manufacturing/*外部 ERP 对接

关键文件清单

文件职责
Data/ShopFloor/MrpProduction.cs生产工单实体 + 11 状态枚举 + 辅助状态枚举
Data/ShopFloor/MrpWorkorder.cs工序工单实体(含拆分、质检阻塞、让步放行)
Services/ShopFloor/MrpProductionService.cs核心服务,13 个生命周期方法
Services/ShopFloor/IMrpProductionService.cs接口 + DTO 定义
Components/Pages/ShopFloor/ProductionOrderList.razor生产订单列表 — 看板式 + 快捷操作
Components/Pages/ShopFloor/ProductionOrderDetail.razor生产订单详情 — 逐步推进 + 版本冻结 + 工序管理
Components/Pages/ShopFloor/WorkOrderExecution.razor工单执行页
Components/Pages/Manufacturing/ManufacturingExtensions.razor拆解单 / 委外单 / 返工桥接

2. 生产工单状态机

                    Draft → Confirmed → (VersionFrozen) → MaterialPreparing
                      → MaterialReady → InProgress → ToQC → ToRelease → Done

              特殊状态: OnHold(挂起) / Cancelled(取消) / Blocked(阻断)

11 种状态枚举

状态中文可进入的前置状态
0Draft草稿
1Confirmed已确认Draft
2Planned已排产Confirmed / Draft
3MaterialPreparing备料中Confirmed / VersionFrozen / Planned / OnHold
4MaterialReady待开工MaterialPreparing / Confirmed / Planned
5InProgress生产中MaterialReady / Confirmed / Planned / OnHold
6ToQC待质检InProgress / MaterialReady
7ToRelease待放行ToQC
8Done已完成InProgress / ToQC / ToRelease / MaterialReady
9Cancelled已取消Done 之前任意状态
10OnHold已挂起InProgress / MaterialReady

3. 完整操作流程

1 创建工单 CreateProduction
前置条件
操作结果
Draft
关键动作
选产品/输批号,自动生成编号
2 确认 ConfirmProduction
前置条件
Status == Draft
操作结果
Confirmed
关键动作
物料可用性检查(Odoo 对标)
3 冻结版本 FreezeVersion
前置条件
Status ∈ {Confirmed, Planned, VersionFrozen}
操作结果
VersionFrozen
关键动作
BOM/工艺/质检 JSON 快照锁定
4 派生工序 GenerateWorkorders
前置条件
Status ∉ {Done, Cancelled}
操作结果
→ MrpWorkorder 列表
关键动作
从 BOM.Processes 创建,自动关联批记录和质检任务
💡 幂等:已有则复用
5 备料 StartMaterialPreparation
前置条件
Status ∈ {Confirmed, VersionFrozen, Planned, OnHold}
操作结果
MaterialPreparing
关键动作
称量=Pending
6 物料齐套 MarkMaterialsReady
前置条件
Status ∈ {MaterialPreparing, Confirmed, Planned}
操作结果
MaterialReady
关键动作
预留=FullyReserved, 称量=Approved
7 开工 StartProduction
前置条件
Status ∈ {MaterialReady, Confirmed, Planned, OnHold}
操作结果
InProgress
关键动作
ActualStartTime 记录,批记录=InProgress
8 工单执行 WorkOrder
前置条件
已有派生工序
操作结果
Ready→InProgress→Done
关键动作
暂停/报废/拆分/质检阻塞/让步放行
9 提交质检 SubmitToQc
前置条件
Status ∈ {InProgress, MaterialReady}
操作结果
ToQC
关键动作
Quality=PendingInspection
10 提交放行 SubmitToRelease
前置条件
Status == ToQC
操作结果
ToRelease(通过校验时)
关键动作
5 项校验:工序/批记录/质检/偏差。失败→Blocked
💡 无质检标准/批记录时跳过
11 QA放行 ReleaseProduction
前置条件
QA && Status == ToRelease
操作结果
Released
关键动作
记录放行人/时间
12 完工 CompleteProduction
前置条件
Status ∈ {InProgress, ToQC, ToRelease, MaterialReady}
操作结果
Done
关键动作
ActualEndTime, FinishedGoodsMove=Pending

4. 页面导航指南

📋 生产订单列表

路由/shopfloor/production-orders

功能

  • 看板式统计(待推进 / 待放行 / 阻断异常 / 已完工)
  • 快捷操作:开始(Draft → InProgress)、完工(InProgress → Done)
  • 按状态/批号/工单号筛选

适用角色:生产主管、车间主任

📝 生产订单详情

路由/shopfloor/production-orders/details

功能

  • 逐步操作:确认 → 备料 → 齐套 → 开工 → 提交质检 → 提交放行 → QA放行 → 完工
  • 版本冻结、工序管理、偏差跟踪

适用角色:生产主管、QA

⚙ 工单执行

路由/shopfloor/workorders/execute

  • 开工/暂停/报废/质检/让步放行
  • 工时记录/表单填写

角色:操作员

📊 工单列表

路由/shopfloor/workorders

  • 工序工单一览
  • 按状态/工作中心筛选

角色:生产主管

🔧 制造扩展

路由/manufacturing/extensions

  • 拆解单/分包/返工/日历

角色:工艺工程师

⚖ 称量站

路由/shopfloor/weighing

  • 线边称量配料
  • 扫码校验/偏差记录

🛑 工单派工板

路由/shopfloor/workorder-dispatch

  • 按工作中心/技能分配
  • 产能负载可视化

5. 快捷操作路径

演示环境一键完工

路径:生产订单列表 → 开始完工

内部自动串行:ConfirmProduction → StartProduction → SubmitToQc → SubmitToRelease → ReleaseProduction → CompleteProduction。若无质检标准/批记录模板,对应校验自动跳过。

6. 常见问题与排查

❓ 点击 [完工] 报错 [提交放行前置校验未通过] 怎么办?

检查:① 工序全 Done;② 批记录已批准(如有);③ 质检 Passed;④ 无未关闭偏差。未配置质检标准时自动跳过校验。

❓ 为什么没有生成质检任务?

在派生工序时自动创建。前提:① 存在适用的 QualityPoints;② 工单有 LotNumber。通过 /settings/setup 导入演示数据获得预配置质检标准。

❓ 工序从哪里来?

从 BOM.Processes 按 StepNumber 自动派生。需在配方设计器中关联 MrpRouting。无工艺步骤时提示 [未配置可派生的工艺步骤]。

❓ 工单可以跳步骤吗?

允许跨状态跳转(如 Confirmed 直跳 InProgress)。但 SubmitToRelease 严格校验——工序和质检必须先完成。

❓ 批记录在哪里填写?

MES Studio 动态表单,在 WorkOrderExecution 中自动加载。也可通过 /shopfloor/batchrecords 进入。

❓ 如何拆分生产工单?

① 详情页 Draft 状态点 [拆分子单](多级 BOM);② WorkOrderExecution 中拆分单个工序。

❓ 备料和称量的关系?

备料设称量=Pending;物料齐套后称量→Approved。实际称量在 /shopfloor/weighing 称量站操作。

BlazorFactory MES — 化妆品行业制造执行系统

对齐 Odoo 19 Manufacturing | 版本 1.0

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.