订单流转与状态

一张订单。走完全程。

逐个点开各个阶段 —— 每个阶段都会展示其目标以及技术栈在此处的作用。Nordwerk 与普通 ERP 的区别在于:一个闭环的优化循环。

22
订单
8
机器
12
发货
6
维护

完整流程 PDF ↓

第一幕 · 前期洽谈
第二幕 · 订单 → 交付
第三幕 · 交付之后

Nordwerk 与普通 ERP 的区别所在。

一个闭环:机床数据回流,助力更优的生产。

机器
历史数据库
BI · 维护
数字孪生
生产

遥测 → 分析 → 优化参数 → 回到生产。

完整流程 —— 详细文档 +

Nordwerk — Order Flow & States (with Stack Coverage)

Purpose: The complete operation of the demo company Nordwerk Manufacturing (fictional B2B CNC/metal parts manufacturer, make-to-order) as a continuous flow — from the initial inquiry through order receipt to completed delivery, and further to service and complaints. For each phase, it outlines: which states an order passes through (business language + actual system status) and what our stack does — including equipment, production optimization, and Digital Twin.

Sister document: PROZESS-ROADMAP.md (steps P0–P12, personas, coverage). This document provides the state/process view with stack mapping.

Reading aid: Statuses are shown as business language technical Odoo status. ✅ = clickable read-only demo available. All figures/statuses are verified from the live demo database (met18/nordwerk), not invented.


1 · Overview

flowchart TD
    subgraph A["ACT I · Initiation"]
      P0["Web / Marketing\n(Inquiry)"] --> P1["Lead / CRM\nqualify"]
      P1 --> P2["Quotation + Calculation\n(Digital-Twin What-if)"]
      P2 --> P3["Order / PO\n★ ORDER RECEIPT"]
    end
    subgraph B["ACT II · Order → Delivery (Core)"]
      P3 --> P4["Production Planning\nMRP / Routing"]
      P4 --> P5["Procurement\nPurchasing + Goods Receipt"]
      P4 --> P6["Production\nControl Center · Equipment · Twin"]
      P5 --> P6
      P6 --> P7["Quality Assurance\nOK / NOK"]
      P7 --> P8["Warehouse / Picking\n+ Shipping"]
      P8 --> P9["★ DELIVERY\n+ Invoice"]
    end
    subgraph C["ACT III · Post-Delivery"]
      P9 --> P10["Service / Maintenance\n(Service Contract)"]
      P9 --> P11["Complaint /\nDamage Case"]
      P10 --> P12["Evaluation\nKPIs · CIP"]
      P11 --> P12
      P9 --> P12
    end
    P6 -. "Telemetry" .-> HIST[("Historian")]
    HIST -. "Optimization / predictive maintenance" .-> P6
    HIST -. "Process drift / OEE" .-> P12

Stack at a Glance

Component Role in the Flow Demo
ERP (Odoo) Home of all order states: Lead, Quotation, Order, Purchasing, Production, Warehouse, Invoice, Maintenance, Complaint erp-demo.indystry.works ↗ (demo/demo) ✅
BI (Metabase + Grafana) Utilization, OEE, Scrap, Process Drift, Mass Balance, Delivery Reliability, Management Dashboard bi-demo ↗ · grafana-demo ↗
Historian Time series (temperature/vibration) per machine → Optimization + predictive maintenance /historian/ →
Control Center / SCADA Live status of each machine (running / maintenance due / idle / fault) /leitstand/ →
Equipment Twin / 3D Plant → Line → Machine → Control CabinetWiring Diagram (master, troubleshoot) /anlage/ →
Digital Twin What-if simulation Throughput/Scrap/Costs — Quotation + Production Optimization twin-demo.indystry.works ↗
AI Search "Ask the Company" about products/machines/orders/manuals /suche/ →
Collaboration File space (quotations/drawings/inspection reports), versioned, commentable /zusammenarbeit/ →
Knowledge / Kiosk Manual, Compliance Register, App Launcher /wissen/ →
Operations / Status Services, Backups, Uptime — all self-hosted /status/ →

ACT I · Initiation

P0–P1 · Initial Contact & Lead Qualification

Goal: Capture inquiry, qualify, turn into opportunity. Steps: Website/inquiry → Create lead → Capture requirements → Qualification → Opportunity.

Business Language System Status crm.lead Trigger Who Next Step
New Lead New (New) Inquiry / Form Sandra, Marco qualify
Qualified Qualified (Qualified) Requirements/Budget clarified Marco, Lena create quotation
In Quotation Quotation (Proposition) Quotation sent Lena follow up
Won / Lost Won (Won) / lost Acceptance/Rejection Marco → Order (P3)
stateDiagram-v2
    [*] --> New
    New --> Qualified
    Qualified --> Quotation
    Quotation --> Won
    Quotation --> Lost
    Won --> [*]
    Lost --> [*]

What our stack does here: ERP/CRM manages the pipeline (Demo status: 2 new · 1 qualified · 1 in quotation · 2 won). AI Search finds customer history/similar inquiries. Web delivers the lead. Personas: Sandra (Marketing), Marco (Sales), Lena (Inside Sales), Customer.

P2 · Quotation, Calculation & Digital-Twin What-if

Goal: Technical clarification + reliable quotation with delivery date. Steps: Review drawing/specs → Feasibility → Calculation (material + time + machine) → Twin Simulation → Quotation.

Business Language System Status sale.order Trigger Who Next Step
Quotation (Draft) draft created from opportunity Lena send
Quotation Sent sent to customer Lena follow up / confirm

What our stack does here: ERP calculates automatically from Bill of Materials (BOM) + work plan. Digital Twin (twin-demo ↗) simulates throughput / scrap / costs as what-if before commitment → realistic price + delivery date. Collaboration keeps drawings/quotations versioned. Personas: Lena, Thomas (Production Planning), Petra (Feasibility), Customer.

P3 · Order & Order Confirmation — ★ Order Receipt

Goal: Make order binding — this is where order processing begins. Steps: Customer order → Review → Confirm → Order in ERP, confirmation to customer.

Business Language System Status sale.order Trigger Who Next Step
Order (Order Receipt) sale "Confirm" Lena triggers MRP + delivery
Completed / Locked done (locked) after processing System Archive
stateDiagram-v2
    [*] --> Quotation_draft
    Quotation_draft --> Quotation_sent: send
    Quotation_sent --> Order_sale: confirm ★
    Quotation_draft --> Order_sale: confirm ★
    Order_sale --> Completed_done
    Completed_done --> [*]

What our stack does here: Upon confirmation, ERP automatically generates manufacturing orders (MRP) and delivery (picking) — no duplicate entry. Demo status: 22 confirmed orders (sale) + 6 open quotations (draft). Personas: Lena, Birgit (Terms), Customer.


ACT II · Order → Delivery (Core)

P4 · Production Planning & Scheduling

Goal: Make order production-ready + schedule. Steps: Bill of Materials → Work plan/routing → Material requirements (MRP) → Scheduling → Machine/shift allocation.

What our stack does here: ERP/MRP generates requirements + manufacturing orders from the order. BI shows machine utilization per line (early bottlenecks). Control Center shows which machine is free/occupied. Equipment Twin provides the machine/line structure (3 lines, 8 machines). Personas: Thomas (Production Planning/PPC), Frank (Production Manager), Bernd (Purchasing Trigger).

P5 · Procurement & Goods Receipt

Goal: Provide materials on time and in the correct quantity.

Business Language System Status purchase.order Trigger Who
Inquiry / RFQ draft Requirement from MRP Bernd
Order Confirmed purchase Supplier selected Bernd
Completed done finalized System
stateDiagram-v2
    [*] --> RFQ_draft
    RFQ_draft --> Order_purchase: confirm
    Order_purchase --> Completed_done
    Completed_done --> [*]

Goods receipt runs as stock.picking (see P8 diagram, direction incoming). What our stack does here: ERP suggests orders based on requirements (Demo: 4 RFQ · 4 confirmed), books goods receipt + incoming inspection into inventory. Knowledge holds supplier certificates. Personas: Bernd (Purchasing), Klaus (Warehouse), Petra (Incoming QA), Supplier.

P6 · Production & Control Technology — Down to the Control Cabinet

Goal: Produce parts on time and to quality; master the equipment. Steps: Release manufacturing order → Set up → Production → Live Control Center → Operator feedback → Fault handling.

Business Language System Status mrp.production Trigger Who
Draft draft generated from order System
Confirmed / Scheduled confirmed released Thomas/Frank
In Progress progress Setup/Start Ali (Operator)
To Close to_close Quantity reported Ali
Completed done booked Frank
stateDiagram-v2
    [*] --> Draft_draft
    Draft_draft --> Confirmed_confirmed: release
    Confirmed_confirmed --> InProgress_progress: setup/start
    InProgress_progress --> ToClose_to_close: report quantity
    ToClose_to_close --> Completed_done: book
    Completed_done --> [*]

Demo status: 18 confirmed + 22 to_close (ongoing operation).

What our stack does here (core component):

  • Control Center / SCADA (/leitstand/ →) — Real-time tiles for all 8 machines with running / maintenance due / idle / fault + live temperature/vibration.
  • Equipment Twin / 3D (/anlage/ →) — Drilldown Plant → Line → Machine → Control Cabinet → Wiring Diagram (PLC, drives/VSD, terminals, fuses). For setup, understanding, troubleshooting.
  • Digital Twin (twin-demo ↗) — Simulation of the line (parameters, bottleneck).
  • Historian (/historian/ →) — Every time series per machine.
  • BI — Live dashboard (quantities, scrap, OEE).
  • ERP/BDE — Operator feedback Good/Scrap/Time (drives the mrp.production states above). Personas: Frank (Shift Supervisor), Ali (Operator), Jens (Maintenance/Automation).

P7 · Quality Assurance

Goal: Ensure and document conformity.

Business Language Status Trigger Who
Inspection Open — (Inspection Order) after production Petra/Ali
OK passed = true within limits Petra
NOK passed = false outside limits Petra → Block

What our stack does here: Measurement values per order (dimensional accuracy, surface roughness, weight) are stored in Warehouse (factory.quality_check) with limits; automatic OK/NOK evaluation. BI analyzes scrap rate / Cpk. Knowledge provides inspection report/certificate. (No separate Odoo Quality module — QA runs via Warehouse + BI.) Personas: Petra (QA), Ali (Self-Inspection), Frank.

P8 · Warehouse, Picking & Shipping

Goal: Prepare finished goods + pack.

Business Language System Status stock.picking Trigger Who
Draft draft from order System
Waiting for Material waiting / confirmed stock missing System
Ready assigned stock reserved Klaus
Completed done validated/booked Klaus
stateDiagram-v2
    [*] --> Draft_draft
    Draft_draft --> Waiting_confirmed: reserve
    Waiting_confirmed --> Ready_assigned: stock available
    Ready_assigned --> Completed_done: validate ★ Delivery
    Completed_done --> [*]

Demo status: 6 assigned (ready) · 8 confirmed (waiting) · 12 done (delivered). What our stack does here: ERP/Stock manages inventory in real time, picking + delivery note; operator app for mobile picking. Personas: Klaus (Warehouse/Shipping), Lena.

P9 · ★ Delivery & Invoicing

Goal: Deliver + invoice + payment.

Business Language System Status account.move Trigger Who
Delivery Booked stock.picking = done Shipping Klaus
Invoice (Draft) draft from delivery Birgit
Invoice Booked posted confirmed Birgit
Open / Paid payment_state not_paid → paid Payment Birgit
stateDiagram-v2
    [*] --> Delivery_done
    Delivery_done --> Invoice_draft: invoice
    Invoice_draft --> Invoice_posted: book
    Invoice_posted --> Open_not_paid
    Open_not_paid --> Paid_paid: payment received
    Paid_paid --> [*]

Demo status: 12 booked invoices (posted, open). Order invoicing: 12 invoiced · 10 to invoice · 6 open. What our stack does here: ERP/Accounting generates the invoice from the delivery (target: E-invoice/PEPPOL), payment matching + dunning. Status Board shows that everything is self-hosted + secured. Personas: Birgit (Accounting), Lena, Customer.


ACT III · Post-Delivery

P10 · Service & Maintenance (Service Contract)

Goal: Keep equipment/products operational; recurring revenues.

Business Language System Status maintenance.request Type Trigger
New Request New Request preventive/corrective Plan or fault
In Progress In Progress Scheduling
Repaired Repaired Job completed
Scrap Scrap not repairable
stateDiagram-v2
    [*] --> NewRequest
    NewRequest --> InProgress
    InProgress --> Repaired
    InProgress --> Scrap
    Repaired --> [*]
    Scrap --> [*]

Demo status: 6 requests across the 8 machines (preventive + corrective); e.g., "Turning Center B1: Maintenance due" — matches the Control Center status. What our stack does here: ERP/Maintenance manages equipment (= the 8 machines) + maintenance requests. Historian provides condition data (vibration/temperature) for predictive maintenance. Equipment Twin shows the same object's control cabinet + last maintenance. Personas: Sven (Service Technician), Jens (Maintenance), Birgit, Customer.

P11 · Damage & Complaint Management

Goal: Resolve faults/damages in a structured way + prevent recurrence.

Business Language System Status repair.order Trigger Who
Complaint Recorded draft Customer report Petra/Lena
Confirmed confirmed accepted Petra
In Repair under_repair Processing Sven
Completed done Closure Petra
stateDiagram-v2
    [*] --> Recorded_draft
    Recorded_draft --> Confirmed_confirmed
    Confirmed_confirmed --> InRepair_under_repair
    InRepair_under_repair --> Completed_done
    Completed_done --> [*]

Demo status: 4 complaints (draft) on NW products (dimensional deviation, scratch, crack, tolerance). What our stack does here: ERP/Repair manages the case; Knowledge documents root cause analysis (8D/CAPA); AI Search finds similar cases; Collaboration for case-specific coordination. Personas: Petra (QM), Sven (Service), Lena, Management, Customer.

P12 · Evaluation, KPIs & CIP

Goal: Control + improve. What our stack does here: BI (Metabase + Grafana) provides OEE, delivery reliability, scrap, contribution margin, process drift, mass balance, management dashboard. Historian is the data foundation. AI Search answers "Ask the numbers." Personas: Dr. Weber (CEO), Frank, Petra.


2 · Equipment, Control Technology & Digital Twin (In-Depth)

The part that distinguishes Nordwerk from pure ERP — the bridge from order to real machine.

Equipment Twin / 3D — Master & Troubleshoot (/anlage/ →)

Clickable drilldown, read-only, generic (no machine builder secrets):

Plant → Line (North/South/West) → Machine (8) → Control Cabinet → Component → Wiring Diagram

Per machine, a 3D model with hotspots (control/HMI, spindle, control cabinet); in the control cabinet PLC, drives/VSD, terminals, fuses → per component a Mermaid wiring diagram. Benefit: Understand setup, quickly navigate from machine to diagram in case of faults (persona Jens).

Control Center / SCADA — Real-Time Status (/leitstand/ →)

HMI tiles for all machines with running / maintenance due / idle / fault + current temperature/vibration. The same machines as in the ERP work center and Historian — one truth.

Digital Twin — What-if & Optimization (twin-demo.indystry.works ↗)

  • before the order (P2): Simulate throughput/scrap/costs → realistic quotation.
  • in operation (P6/P12): Test parameters and bottlenecks without stopping the real line.

Production Optimization — The Closed Control Loop

flowchart LR
    M["Machines\n(Production P6)"] -->|Telemetry| H[("Historian\nTemp/Vibration")]
    H --> BI["BI: Process Drift,\nMass Balance, OEE"]
    H --> PW["Predictive\nMaintenance → maintenance.request"]
    BI --> TW["Digital Twin:\nOptimize Parameters"]
    TW --> M
    PW --> M
  • Drift Detection: BI detects creeping deviation (process drift) earlier than final inspection.
  • Mass Balance: Mass balance dashboard reveals material/yield losses.
  • Predictive Maintenance: Rising vibration/temperature in Historian → maintenance request (P10) before machine failure (visible as "maintenance due" in Control Center).
  • Twin Feedback: Optimized parameters from simulation back into production.

3 · Cross-Cutting Processes (Across the Entire Flow)

Process What It Provides Demo
Collaboration File space (quotations, drawings, inspection reports, maintenance), versioned, commentable — case- and order-specific /zusammenarbeit/ →
Knowledge / Compliance / Kiosk Manual, Risk Register (ISO 9001 / IEC 62443), App Launcher /wissen/ →
AI Search "Ask the Company" about products/machines/orders/manuals/KPIs /suche/ →
Operations / Status Services, backups, uptime — self-hosted, no cloud lock-in /status/ →
Historian / Data Lake Every measurement/operational value securely stored + retrievable; basis for BI, Twin, Maintenance /historian/ →

4 · Master State Table (Reference)

Entity (Odoo Model) State Chain (Business Language → technical) Demo Status
Lead/Opportunity crm.lead New→Qualified→Quotation→Won/Lost (New/Qualified/Proposition/Won) 2/1/1/2
Quotation/Order sale.order Quotation draft→sent sentOrder sale→locked done 6 draft · 22 sale
Invoicing Status sale.order none no→to invoice to invoice→invoiced invoiced 6 · 10 · 12
Purchasing purchase.order RFQ draft→ordered purchase→completed done 4 · 4
Delivery/GR stock.picking draft→waiting confirmed/waiting→ready assignedcompleted done 8 · 6 · 12
Production mrp.production draftconfirmedprogressto_closedone 18 confirmed · 22 to_close
Quality factory.quality_check OK passed=true / NOK passed=false per order, 3 characteristics
Invoice account.move Draft draft→booked posted; open→paid (payment_state) 12 posted/open
Maintenance maintenance.request New Request→In Progress→Repaired→Scrap 6 requests
Complaint repair.order draftconfirmedunder_repairdone 4 draft

Entry point for visitors: The demo company hub /demos/ → bundles everything as "one company to click through."