# 元利 MES 项目详细流程图

生成日期：2026-05-25  
依据文档：`元利项目详细分析.md`

说明：
- 本文把 `元利项目详细分析.md` 中的页面、存储过程、SAP 调用、看板和新增隐性需求整理为可维护的 Mermaid 流程图。
- 图中页面路径以 `src/views/...` 为主，过程名称以文档分析到的 `CreateData(type, name, params)` 调用为主。
- `type=11` 通常表示查询/读取或通用执行，`type=12` 通常表示写入/业务动作，具体仍以后端实现为准。

## 1. 系统总体架构流程

```mermaid
flowchart TD
  U[用户/班组/计划/质检/设备/管理层] --> FE[Vue 2.7 前端页面]
  FE --> ROUTE[动态菜单/路由/权限]
  ROUTE --> PAGE[src/views 业务页面]

  PAGE --> CD[CreateData type + procedure + params]
  CD --> ED[ExecDatabase 统一后端接口]
  ED --> SP[SQL Server 存储过程]
  SP --> DB[(YL_MESDB)]

  PAGE --> B1[src/api/b1s.js]
  B1 --> SAP[SAP B1 Service Layer]
  SP --> SAPDB[(SAP.SBO_YL 跨库/同步表)]

  PAGE --> TM[tm 仓储/条码任务接口]
  TM --> WMS[库存/条码任务服务]

  DB --> VIEW[业务视图/报表视图]
  VIEW --> PAGE
  VIEW --> DASH[生产/装配/质检/机加/综合看板]
  SAPDB --> VIEW
  SAP --> PAGE
  WMS --> PAGE
```

关键链路：
- 前端页面不直接写 SQL，而是通过 `CreateData` 组装过程名和参数。
- SAP 既有前端直接调用 B1 Service Layer，也有 SQL 跨库或同步表读取。
- 看板主要读存储过程和视图，本身通常不维护业务数据。

## 2. 登录、菜单、权限与页面访问流程

```mermaid
flowchart TD
  A[进入登录页 src/views/login] --> B[输入工号/密码]
  B --> C[登录基础数据_人员信息_登陆检查密码]
  C --> D{校验通过?}
  D -- 否 --> E[提示登录失败]
  D -- 是 --> F[写入 Token/用户信息]
  F --> G[加载用户角色/菜单权限]
  G --> H[登录基础数据_二级菜单/角色权限]
  H --> I[生成动态路由]
  I --> J[进入 Layout]
  J --> K[侧边栏/标签页/AppMain]
  K --> L[打开具体业务页面]
```

涉及页面：
- `src/views/login/index.vue`
- `src/views/layout/Layout.vue`
- `src/views/layout/components/Sidebar`
- `src/views/SystemMaintenance/MenuManagement`
- `src/views/SystemMaintenance/SystemRrolemaintenance`

## 3. 基础资料维护总流程

```mermaid
flowchart TD
  A[系统基础资料] --> B[人员/组织/角色]
  A --> C[工位/设备/SAP Resource]
  A --> D[班次/人员绑定]
  A --> E[工序/物料/图纸/产品结构]

  B --> B1[PersonnelManagement/OrgManagement/SystemRole]
  B1 --> B2[人员、岗位、班组、权限]

  C --> C1[WorkstationManagement]
  C1 --> C2[维护工位]
  C2 --> C3{是否同步 SAP Resource?}
  C3 -- 是 --> C4[POST/PATCH /Resources]
  C3 -- 否 --> C5[仅 MES 保存]
  C4 --> C6[记录同步状态/失败原因]
  C5 --> C6

  C --> C7[DeviceInformation]
  C7 --> C8[设备名称/型号/类型/工位/点检/能力]

  D --> D1[ShiftManagement/PersonnelBinding]
  D1 --> D2[班次规则/人员工位绑定]

  E --> E1[ProcedureManagement]
  E1 --> E2[工序基础数据]
  E2 --> E3{是否同步 SAP RouteStages?}
  E3 -- 是 --> E4[POST/PATCH /RouteStages]
  E3 -- 否 --> E5[MES 本地维护]
```

维护口径：
- 缺勤人员不能由看板维护，必须来自班次/排班、人员工位绑定和实到来源。
- 设备 OEE 基础数据应分散在设备档案、工位、工艺、采集配置中维护，不应只靠看板公式。

## 4. 工艺、图纸、标准工艺、生产工艺流程

```mermaid
flowchart TD
  A[产品/物料/图纸基础] --> B[产品结构维护 CraftMaintain]
  A --> C[零件图纸 PartDrawing]
  A --> D[工艺图纸 ProcessDrawing]
  A --> E[工序基础 ProcedureManagement]

  B --> F[制定标准工艺 ProcessesDevelop]
  C --> F
  D --> F
  E --> F

  F --> G[标准工艺库]
  G --> G1[工序顺序]
  G --> G2[标准工时/准备工时]
  G --> G3[是否关键工序]

  G --> H[生产工艺 ProcessProduct]
  H --> I{订单是否已有生产工艺?}
  I -- 是 --> J[编辑订单级生产工艺]
  I -- 否 --> K[按物料带出标准工艺草稿]
  K --> L{用户保存?}
  L -- 否 --> M[不写入生产工艺]
  L -- 是 --> N[写入生产工艺库]

  J --> O[启用/下发生产工艺]
  N --> O
  O --> P[生成任务可用工艺快照]
  P --> Q[排产/报工/质检/看板读取]
```

关键结论：
- `关键工序` 应在标准工艺和生产工艺维护。
- 生产任务下发时应快照关键工序和标准工时，避免后续改标准工艺影响历史任务。
- 质检大屏、机加大屏只读取关键工序，不作为维护入口。

## 5. 生产订单、机加排产与 SAP 回写流程

```mermaid
flowchart TD
  A[SAP/MES 生产订单同步] --> B[MES_接口_生产计划]
  B --> C[待排产 SelfMakePlan]
  C --> D[选择订单/工序/设备/工位/时间]
  D --> E[排产保存]
  E --> F[MES_接口_生产计划_生产任务]
  F --> G[任务排产状态=已排产]

  E --> H{是否回写 SAP 生产订单日期?}
  H -- 是 --> I[PATCH /ProductionOrders]
  I --> J{SAP 回写成功?}
  J -- 是 --> K[记录同步成功]
  J -- 否 --> L[记录失败原因/待重试]
  H -- 否 --> M[仅 MES 排产]

  G --> N[已排产 SelfMakePlando/SelfMakePlandone]
  N --> O[生产计划跟踪/及时开工/机加中心]
```

涉及页面：
- `PlanManagement/SelfMakePlan`
- `PlanManagement/SelfMakePlando`
- `PlanManagement/SelfMakePlandone`
- `ProductionManagement/ProductionPlanTrack`
- `AnomalousManagement/PunctualWork`

风险点：
- MES 排产成功但 SAP 回写失败时，需要保留同步状态和失败原因。
- 已排产页面新增历史工时、总工时后，必须明确工时来源是生产报工、质检、异常还是设备采集。

## 6. 装配排产、外购申请与 SAP 流程

```mermaid
flowchart TD
  A[装配/电气/系统相关订单] --> B[InstallMakePlan 待排产]
  B --> C[选择装配任务/计划时间/优先级]
  C --> D[保存装配排产]
  D --> E[生成装配生产任务]

  C --> F{需要采购申请?}
  F -- 是 --> G[POST /PurchaseRequests]
  G --> H{SAP 采购申请成功?}
  H -- 是 --> I[记录 SAP 采购请求号]
  H -- 否 --> J[记录失败/允许重试]
  F -- 否 --> K[不生成采购申请]

  D --> L{是否回写 SAP 生产订单?}
  L -- 是 --> M[PATCH /ProductionOrders]
  M --> N[同步派工/日期/说明]
  L -- 否 --> O[仅 MES 保存]

  E --> P[InstallMakePlanDo/装配中心/装配看板]
```

涉及页面：
- `PlanManagement/InstallMakePlan`
- `PlanManagement/InstallMakePlanDo`
- `ProductionManagement/AssemblyCenter`
- `装配任务看板`

新增需求影响：
- 发料齐套时间、装配完成时间、手续确认、送检状态会反向要求装配排产和装配中心补字段。

## 7. 机加生产执行流程

```mermaid
flowchart TD
  A[已排产机加任务] --> B[MachiningCenter 机加中心]
  B --> C{任务是否可开工?}
  C -- 否 --> C1[显示不可操作原因: 未齐套/上序未合格/异常/编程未完成/设备占用]
  C -- 是 --> D[开始加工/开工]

  D --> E[操作记录表写入开始时间/人员/设备]
  E --> F[加工过程]
  F --> G{是否异常?}
  G -- 是 --> H[直接报异常]
  H --> I[AbnormalControl 异常管控]
  I --> F

  F --> J[结束报工]
  J --> K[写入 YL_加工中心_操作记录表]
  K --> L[更新完成数量/工时/任务状态]

  L --> M{是否需要质检?}
  M -- 是 --> N[进入质检任务/序检/首检/终检]
  M -- 否 --> O[进入下序或完成]

  O --> P{是否入库/转序/外协?}
  P -- 转序 --> A
  P -- 入库 --> Q[入库/库存任务]
  P -- 外协 --> R[外协流程]
```

涉及对象：
- `YL_加工中心_操作记录表`
- `MES_接口_生产计划_生产任务`
- `View_生产订单_MES`
- `ProductionManagement/MachiningCenter`

新增需求影响：
- 编程任务完成状态可能成为开工前置条件。
- 设备采集工时、程序工时、人工报工工时需要区分。
- 条码拣配会影响齐套、发料、可开工状态。

## 8. 装配中心执行流程

```mermaid
flowchart TD
  A[已排产装配任务] --> B[AssemblyCenter 装配中心]
  B --> C[查询 SAP/MES 订单、物料、发料、齐套]
  C --> D{发料/齐套是否满足?}
  D -- 否 --> E[缺件/待发料/不可开工]
  E --> F[缺件明细/预计可执行时间]
  D -- 是 --> G[开始装配]

  G --> H[装配报工/工时记录]
  H --> I{是否产生异常?}
  I -- 是 --> J[直接报异常 -> AbnormalControl]
  I -- 否 --> K[继续装配]

  K --> L[装配完成/更新任务状态]
  L --> M{是否需要送检?}
  M -- 是 --> N[送检/质检任务]
  M -- 否 --> O[入库/发货/后续确认]

  L --> P[手续确认报表]
  P --> Q{手续确认完成?}
  Q -- 否 --> R[待办保留]
  Q -- 是 --> S[从待办消失]

  O --> T[装配看板/生产任务看板]
```

关键新增字段：
- 发料齐套时间
- 装配完成时间
- 送检状态/送检时间
- 手续确认、确认人、确认时间
- 当前对应人员/当前对应内容

## 9. 质检业务流程

```mermaid
flowchart TD
  A[质检任务来源] --> A1[机加报工后待检]
  A --> A2[装配送检]
  A --> A3[采购入库检]
  A --> A4[序检收检/外协收检]
  A --> A5[退库/销售退货/其他入库]

  A1 --> B[QualityCenter/CheckTask]
  A2 --> B
  A3 --> B
  A4 --> B
  A5 --> B

  B --> C[录入检验结果]
  C --> D{合格?}
  D -- 是 --> E[合格数量/质检完成]
  D -- 否 --> F[不合格处理 Unqualified]

  F --> G{处置方式}
  G -- 返工 --> H[回生产/返修]
  G -- 报废 --> I[报废记录]
  G -- 让步接收 --> J[让步接收字段]
  G -- 复检 --> K[生成复检/再次检验]

  E --> L{是否 SAP 收货/库存动作?}
  L -- 是 --> M[PurchaseDeliveryNotes 或库存任务]
  L -- 否 --> N[MES 本地完成]

  J --> O[让步接收记录查询页]
  E --> P[质检看板/及时检验/生产日报]
```

涉及页面：
- `QualityManagement/QualityCenter`
- `QualityManagement/CheckTask/processReceive`
- `QualityManagement/CheckTask/purchaseIncoming`
- `QualityManagement/CheckTask/final`
- `QualityManagement/Unqualified`
- `QualityManagement/QualityDetails`

新增需求影响：
- 及时检验要以生产完成/报工完成时间为起点。
- 关键工序要从工艺/任务快照读取。
- 让步接收记录页只查询，不应成为维护入口。

## 10. 外协业务流程

```mermaid
flowchart TD
  A[生产任务指派对象=外协] --> B[OutsourceMange 外协管理]
  B --> C[生成外协任务/采购申请]
  C --> D{是否提交 SAP 采购申请?}
  D -- 是 --> E[POST /PurchaseRequests]
  E --> F{SAP 成功?}
  F -- 是 --> G[记录采购请求/单据关系]
  F -- 否 --> H[记录失败/重试]
  D -- 否 --> I[MES 本地外协任务]

  G --> J[外协加工/供应商交付]
  I --> J
  J --> K[序检收检/外协收货]
  K --> L[记录供应商/SAP采购收货单号/指派对象]
  L --> M{质检合格?}
  M -- 是 --> N[SAP PurchaseDeliveryNotes/入库]
  M -- 否 --> O[不合格/返修/让步]
  N --> P[外协报表/供应商质量统计]
  O --> P
```

涉及页面：
- `ProductionManagement/OutsourceMange`
- `ProductionManagement/OutsourceSheet`
- `ProductionManagement/SaleOutsourceMange`
- `QualityManagement/CheckTask/processReceive`

关键修正：
- 供应商、SAP 采购收货单号、指派对象应在外协/序检收检链路维护，报表只消费这些字段。

## 11. 工时、SAP 工时校验与投料流程

```mermaid
flowchart TD
  A[报工/设备采集/质检/装配] --> B[工时来源汇总]
  B --> B1[人工报工工时]
  B --> B2[设备运行工时]
  B --> B3[程序工时]
  B --> B4[质检/装配/设计/编程工时]

  B1 --> C[Workhours/Timesheet/WorkHoursCheck]
  B2 --> C
  B3 --> C
  B4 --> C

  C --> D[工时校验]
  D --> E{是否提交 SAP?}
  E -- 否 --> F[MES 工时报表/绩效]
  E -- 是 --> G[GET /ProductionOrders]
  G --> H[匹配 SAP 工序/资源]
  H --> I[POST /InventoryGenExits 投料]
  H --> J[PATCH /ProductionOrders 更新工序资源/工时]
  I --> K{SAP 成功?}
  J --> K
  K -- 是 --> L[记录提交成功]
  K -- 否 --> M[记录失败原因/允许重试]
```

涉及页面：
- `ProductionManagement/WorkHoursCheck`
- `ProductionManagement/WorkhoursEdit`
- `ProductionManagement/Workhours`
- `ProductionManagement/Timesheet`

风险点：
- 程序工时、设备工时、人工工时不是同一口径。
- 上 SAP 的工时要明确是否包含设计、编程、质检、装配、异常。

## 12. 异常管控流程

```mermaid
flowchart TD
  A[报工/质检/外协/装配/设计/编程页面] --> B[选择任务]
  B --> C[点击报异常]
  C --> D[带出任务/订单/工序/人员信息]
  D --> E[填写异常类型/说明/附件]
  E --> F[选择审批人 多选]
  F --> G[保存异常]
  G --> H[AbnormalControl 异常管控]

  H --> I[审批人待办可见]
  I --> J{任一审批人处理?}
  J -- 否 --> K[异常未关闭]
  J -- 是 --> L[记录实际处理人]
  L --> M[异常进入下一状态/关闭]

  K --> N[影响任务可操作性/及时开工/看板]
  M --> O[任务恢复或结束]
```

关键规则：
- 多审批人不是会签，是多人可见、一人处理。
- 异常需要带业务域、任务、工序、责任部门，否则看板异常数会混淆。

## 13. 生产订单关闭与 SAP 状态同步流程

```mermaid
flowchart TD
  A[生产订单关闭 PlannOrderClose] --> B[查询可关闭订单]
  B --> C[选择单个或批量订单]
  C --> D[二次确认]
  D --> E[逐单 PATCH /ProductionOrders]
  E --> F{单据关闭成功?}
  F -- 是 --> G[记录成功/更新 MES 状态]
  F -- 否 --> H[记录失败原因]
  H --> I[失败项重试]
  G --> J[刷新关闭页]
  H --> J
  J --> K[影响排产页/生产中心/手续确认/看板]
```

要求：
- 批量关闭不应“一条失败全批失败”，应逐单记录成功/失败。
- 关闭结果要被排产、生产中心、装配看板、手续确认报表识别。

## 14. 看板数据汇总流程

```mermaid
flowchart TD
  A[主系统业务数据] --> B[统一视图/存储过程]
  C[SAP 同步表/跨库表] --> B
  D[设备采集缓存/历史] --> B
  E[质检记录/报工记录] --> B

  B --> P[生产任务看板]
  B --> Q[装配任务看板]
  B --> R[质检任务看板]
  B --> S[机加设备生产运营看板]
  B --> T[TableTV 工位监控]
  B --> U[board_view 综合大屏]

  P --> P1[齐套率/待排产/未及时开工/加急/未入库]
  Q --> Q1[装配任务/发货状态/缺件/异常/缺勤]
  R --> R1[未清/及时率/关键工序/当天完成]
  S --> S1[设备状态/在制/关键工序/缺勤/OEE]
  U --> U1[合同进度/工时/采购/库存/OEE]
```

看板治理规则：
- 看板只展示和钻取，不作为主维护入口。
- SAP 类指标必须有同步时间和同步状态。
- `GETDATE()` 型实时指标如要做日报/历史回看，应补统计日期或日快照。
- `board_view` 中 OEE、采购、库存等占位指标上线前必须接真实数据或隐藏。

## 15. 新增需求与维护入口判断流程

```mermaid
flowchart TD
  A[收到新增需求/新增字段] --> B{字段性质是什么?}
  B -- 主数据 --> C[找基础维护页: 人员/班次/工位/设备/工序/工艺]
  B -- 订单过程数据 --> D[找业务页: 计划/排产/装配/机加/质检]
  B -- SAP 同步数据 --> E[找 SAP 同步表/接口/同步时间]
  B -- 设备采集数据 --> F[找采集原始表/设备状态历史/任务绑定]
  B -- 人工确认 --> G[待办页维护并记录确认人时间]
  B -- 计算指标 --> H[统一视图/过程/快照]

  C --> I{现有页面能承载?}
  D --> I
  E --> I
  F --> I
  G --> I
  H --> I

  I -- 是 --> J[扩展现有页面/过程]
  I -- 否 --> K[新增维护页或业务页]
  J --> L[同步菜单/权限/日志/历史策略]
  K --> L
  L --> M[检查影响看板/报表/SAP/历史数据]
  M --> N[开发排期]
```

典型判断：
- 缺勤人员：先确认排班/应到和实到来源；没有维护入口则新增或扩展排班/出勤维护。
- 关键工序：在标准工艺和生产工艺维护，任务下发快照，看板只读取。
- 让步接收：质检中心维护，记录页只查询。
- OEE：设备采集、报工、质检、工艺标准工时共同计算，不是人工维护字段。

## 16. 端到端生产业务主流程

```mermaid
flowchart TD
  A[SAP/MES 生产订单] --> B[工艺准备]
  B --> B1[标准工艺]
  B1 --> B2[生产工艺]
  B2 --> B3[任务工艺快照]

  A --> C[计划排产]
  C --> C1[机加排产]
  C --> C2[装配排产]
  C1 --> D[生产执行]
  C2 --> E[装配执行]

  D --> F[报工/工时/设备采集]
  E --> G[装配报工/发料/齐套/送检]

  F --> H[质检]
  G --> H
  H --> I{质量结果}
  I -- 合格 --> J[入库/转序/交付]
  I -- 不合格 --> K[返工/报废/让步接收/复检]
  K --> D

  J --> L[工时校验/SAP 投料/订单状态]
  L --> M[订单关闭]
  M --> N[报表/看板/日报]

  D --> O[异常管控]
  E --> O
  H --> O
  O --> N

  N --> P[管理层 KPI/现场大屏/追溯查询]
```

这个主流程是后续所有新增需求的评估底图：任何新增字段都要判断它落在工艺准备、计划排产、生产执行、质检、入库交付、SAP 回写、看板报表中的哪一环。
