1847 lines
93 KiB
Markdown
1847 lines
93 KiB
Markdown
# 生产计划单 - 页面设计开发说明文档
|
||
|
||
> 版本: 1.5.0
|
||
> 创建日期: 2026-02-06
|
||
> 更新日期: 2026-02-13
|
||
> 来源系统: 升阳云ERP 演示系统;表与接口对齐《erp与mom数据库表映射对照表》以对接 MOM API
|
||
> 来源页面: `https://demo.rsun.vip/mp/plan/order/working?workType=0&fmConfig=010501,020501`
|
||
> 所属模块: 生产计划 > 生产计划单
|
||
> 前端路由: `/mp/plan/order/working`
|
||
> **关联文档**: [erp与mom数据库表映射对照表](db/erp与mom数据库表映射对照表.md)(生产计划模块表与字段映射、与 MOM API 对接时使用);[MOM系统数据升级方案-销售采购生产计划](db/mom系统数据升级方案-销售采购生产计划.md)(MOM 侧 erp_mp_* 镜像表与 pro_workorder 新增字段)
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
1. [页面概述](#1-页面概述)
|
||
2. [页面结构](#2-页面结构)
|
||
3. [列表页设计](#3-列表页设计)
|
||
4. [新增/编辑页设计](#4-新增编辑页设计)
|
||
5. [数据字段定义](#5-数据字段定义)
|
||
6. [按钮操作说明](#6-按钮操作说明)
|
||
7. [页面交互规则](#7-页面交互规则)
|
||
8. [接口调用说明](#8-接口调用说明)
|
||
9. [状态流转](#9-状态流转)
|
||
10. [业务规则](#10-业务规则)
|
||
11. [前端组件设计](#11-前端组件设计)
|
||
12. [数据模型](#12-数据模型)
|
||
|
||
---
|
||
|
||
## 1. 页面概述
|
||
|
||
### 1.1 功能说明
|
||
|
||
生产计划单页面用于管理企业的生产计划。生产计划单是连接销售订单与生产执行的核心环节,计划员基于销售订单引入产品物料信息,关联产品BOM,执行BOM运算以展开物料需求,并将生产任务下发至各车间。生产计划单是后续物料清单(MBOM)、采购计划、生产订单的数据来源。
|
||
|
||
### 1.2 业务场景
|
||
|
||
- **新建计划**: 计划员新建生产计划单,通过「引入」按钮选择销售订单/备货订单物料信息,关联产品BOM
|
||
- **BOM运算**: 计划审核后执行BOM计算,展开产品物料清单,生成物料需求(生产件、采购件、委外件)
|
||
- **BOM补料**: 对于不在标准BOM中的物料(如定制包装物),通过补料方式添加到计划中
|
||
- **下发车间**: 将物料清单中的加工件、装配件、委外件下发到对应车间生产
|
||
- **齐套检查**: 检查物料清单中物料的库存可用量,判断是否需要采购
|
||
- **采购计划**: 针对缺料物料生成采购计划单
|
||
- **审核流程**: 计划单创建后需经审核生效,审核后方可执行BOM运算和下发操作
|
||
|
||
### 1.3 URL路由参数
|
||
|
||
| 参数名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| workType | integer | 工作类型,0=生产计划单 |
|
||
| fmConfig | string | 表单配置编码,010501,020501 |
|
||
|
||
### 1.4 页面截图参考
|
||
|
||
以下截图均来自项目 `screenshot/` 目录(路径相对于项目根目录),用于开发时对照页面与交互。
|
||
|
||
| 截图文件 | 说明 |
|
||
|----------|------|
|
||
| `screenshot/生产计划-生产计划单-列表明细视图.png` | 列表页 - 明细视图(默认视图),侧重订单物料维度 |
|
||
| `screenshot/生产计划-生产计划单-列表单据视图.png` | 列表页 - 单据视图,工具栏显示「回明细」切换,侧重单据流程与批量操作 |
|
||
| `screenshot/生产计划-生产计划单-列表-点击物料名称弹窗.png` | 列表页 - 点击物料名称/物料清单列弹出的「物料清单」弹窗 |
|
||
| `screenshot/生产计划-生产计划单-单据详情.png` | 列表页 - 点击单据编码进入的详情/关联信息(可对应关联单据弹窗或查看页) |
|
||
| `screenshot/生产计划-生产计划单-新增初始化页.png` | 新增页 - 空白表单初始状态 |
|
||
| `screenshot/生产计划-生产计划单新增-引入业务订单.png` | 新增/编辑页 - 「引入」打开的「订单信息」选择弹窗(引入业务订单) |
|
||
| `screenshot/生产计划-生产计划单新增-订单BOM-选择EBOM单.png` | 表头「订单BOM」- 「选择」打开的「选择EBOM单」弹窗(可展开子件) |
|
||
| `screenshot/生产计划-生产计划单详情-订单BOM查看弹窗.png` | 表头「订单BOM」- 「查看」打开的 EBOM 详情弹窗 |
|
||
| `screenshot/生产计划-生产计划单-BOM运算.png` | 编辑/查看页 - BOM运算后含物料清单、操作列(齐套检查/BOM补料/生产补料) |
|
||
| `screenshot/生产计划-生产计划单详情-物料清单点击后弹窗.png` | 详情页 - 点击物料清单后弹出的物料清单弹窗 |
|
||
| `screenshot/生产计划-生产计划单详情-物料清单单据编码后打开页面.png` | 物料清单(MBOM)独立查看页 - 通过单据编码打开的页面,含上一条/下一条、翻单、物料信息表(需求数量、可用量、领用量) |
|
||
|
||
**同模块相关截图(可选参考):**
|
||
|
||
| 截图文件 | 说明 |
|
||
|----------|------|
|
||
| `screenshot/生产计划-物料清单-列表.png` | 生产计划 - 物料清单(MBOM)列表页 |
|
||
| `screenshot/生产计划-物料清单-详情.png` | 生产计划 - 物料清单详情页 |
|
||
| `screenshot/生产计划-计划执行明细表.png` | 计划执行明细表 |
|
||
| `screenshot/生产计划-计划执行汇总表.png` | 计划执行汇总表 |
|
||
| `screenshot/生产计划-采购计划单-列表.png` | 采购计划单列表 |
|
||
| `screenshot/生产计划-零部件订单-列表.png` | 零部件订单列表 |
|
||
| `screenshot/生产计划下发.png` | 计划下发相关界面 |
|
||
|
||
---
|
||
|
||
## 2. 页面结构
|
||
|
||
### 2.1 整体布局
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ 顶部导航栏 (64px) │
|
||
├────────┬────────────────────────────────────────────────────────┤
|
||
│ 左侧 │ 面包屑: 首页 / 生产计划 / 生产计划单 │
|
||
│ 菜单 │ ┌────────────────────────────────────────────────┐ │
|
||
│ (200px │ │ Tab标签: ● 生产计划单 │ │
|
||
│ /64px)│ ├────────────────────────────────────────────────┤ │
|
||
│ │ │ 查询区域 (搜索条件) │ │
|
||
│ 生产计 │ ├────────────────────────────────────────────────┤ │
|
||
│ 划 │ │ 工具栏 (操作按钮 + 快捷筛选标签) │ │
|
||
│ ├生产 │ ├────────────────────────────────────────────────┤ │
|
||
│ 计划 │ │ 数据表格 │ │
|
||
│ 单★ │ │ │ │
|
||
│ ├零部 │ │ │ │
|
||
│ 件订 │ ├────────────────────────────────────────────────┤ │
|
||
│ 单 │ │ 底部统计 + 分页组件 │ │
|
||
│ ├零部 │ └────────────────────────────────────────────────┘ │
|
||
│ 件计 │ │
|
||
│ 划单 │ │
|
||
│ ├物料 │ │
|
||
│ 清单 │ │
|
||
│ ├采购 │ │
|
||
│ 计划 │ │
|
||
│ 单 │ │
|
||
├────────┴────────────────────────────────────────────────────────┤
|
||
```
|
||
|
||
### 2.2 页面模式
|
||
|
||
| 模式 | 说明 | 入口 |
|
||
|------|------|------|
|
||
| 列表页 - 明细视图 | **默认视图**,以订单物料维度展示计划列表,侧重物料和销售订单信息 | 菜单点击「生产计划单」 |
|
||
| 列表页 - 单据视图 | 以计划单据维度展示列表,侧重单据流程管理 | 明细视图点击「单据」按钮切换 |
|
||
| 新增页 | 新建生产计划单,填写表头+引入订单信息 | 列表页点击「新增」按钮 |
|
||
| 编辑页 | 修改已有计划单(仅开立状态) | 单据视图点击「编辑」按钮 |
|
||
| 查看页 | 只读查看计划单详情(含物料清单、补料清单) | 单据视图点击「查看」按钮 |
|
||
|
||
### 2.3 列表页双视图概述
|
||
|
||
列表页提供 **明细视图** 和 **单据视图** 两种展示模式,通过工具栏左侧第一个按钮相互切换:
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ 明细视图(默认) 单据视图 │
|
||
│ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ [单据] 按钮 │ ──切换到单据视图──► │ [明细] 按钮 │ │
|
||
│ │ │ ◄──切换到明细视图── │ │ │
|
||
│ └─────────────┘ └─────────────┘ │
|
||
│ │
|
||
│ ● 侧重物料信息展示 ● 侧重单据流程管理 │
|
||
│ ● 含销售订单信息 ● 有复选框,支持批量操作 │
|
||
│ ● 无复选框 ● 操作列: 查看/编辑/删除 │
|
||
│ ● 含快捷产品筛选标签 ● 搜索含单据状态/业务状态 │
|
||
│ ● 底部显示计划数量汇总 ● 底部显示计划数量汇总 │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**两种视图对比总览:**
|
||
|
||
| 对比项 | 明细视图(默认) | 单据视图 |
|
||
|--------|-----------------|---------|
|
||
| 切换按钮 | 工具栏显示「单据」按钮 | 工具栏显示「明细」或「回明细」按钮 |
|
||
| 复选框列 | 无 | 有 |
|
||
| 序号列 | 有 | 无 |
|
||
| 搜索条件 | 销售订单号、单据编码、物料编码、物料名称、日期范围 | 单据编码、**单据状态**、**业务状态**、日期范围 |
|
||
| 工具栏按钮 | 单据、查询所有、新增、导出 | 明细、查询所有、新增、删除、审核、反审核 |
|
||
| 快捷筛选 | 有(产品类别标签,如"胶带""机柜""电脑") | 无 |
|
||
| 数据列 | 序号、销售员、销售订单号、订单交期、单据编码、物料名称、物料编码、数量、主计量、物料清单、单据状态、单据日期 | 单据编码、单据日期、单据状态、业务类型、业务部门、业务人员、业务状态、审核日期、操作 |
|
||
| 操作列 | 无(单据编码可点击查看详情) | 查看、编辑、删除(按状态显隐) |
|
||
| 批量操作 | 不支持 | 支持(删除、审核、反审核) |
|
||
| 底部统计 | 计划数量汇总 | 计划数量汇总 |
|
||
| 适用场景 | 计划员查看订单物料和计划进度 | 管理员进行单据审核管理 |
|
||
|
||
---
|
||
|
||
## 3. 列表页设计
|
||
|
||
### 3.1 明细视图(默认视图)
|
||
|
||
明细视图是进入生产计划单页面时的默认视图,侧重于展示计划对应的订单物料信息。
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单-列表明细视图.png`
|
||
|
||
#### 3.1.1 搜索条件区域
|
||
|
||
| 序号 | 字段名 | 标签 | 组件类型 | 宽度 | 说明 |
|
||
|------|--------|------|----------|------|------|
|
||
| 1 | salesOrderCode | 销售订单号 | el-input | 160px | 模糊搜索 |
|
||
| 2 | planCode | 单据编码 | el-input | 140px | 模糊搜索 |
|
||
| 3 | itemCode | 物料编码 | el-input | 140px | 模糊搜索 |
|
||
| 4 | itemName | 物料名称 | el-input | 140px | 模糊搜索 |
|
||
| 5 | startDate | 开始日期 | el-date-picker | 140px | 日期范围起 |
|
||
| 6 | endDate | 结束日期 | el-date-picker | 140px | 日期范围止 |
|
||
|
||
> **注意**: 明细视图的搜索条件没有「单据状态」和「业务状态」,但多了「销售订单号」和「物料编码」「物料名称」搜索。
|
||
|
||
#### 3.1.2 工具栏按钮
|
||
|
||
| 序号 | 按钮名称 | 图标 | 类型 | 权限标识 | 说明 |
|
||
|------|----------|------|------|----------|------|
|
||
| 1 | 单据 | - | primary | mp:plan:list | 切换到单据视图 |
|
||
| 2 | 查询所有 | el-icon-tickets | default | mp:plan:list | 重置搜索条件并查询所有 |
|
||
| 3 | 新增 | el-icon-plus | success | mp:plan:add | 打开新增计划单页面 |
|
||
| 4 | 导出 | el-icon-download | default | mp:plan:export | 导出计划列表到Excel |
|
||
|
||
#### 3.1.3 快捷筛选标签
|
||
|
||
工具栏按钮右侧显示一组产品类别快捷筛选标签(如 "胶带"、"机柜"、"电脑" 等),点击标签可快速按产品类别筛选列表数据。
|
||
|
||
| 属性 | 说明 |
|
||
|------|------|
|
||
| 来源 | 动态加载,来自系统中已有计划的产品类别 |
|
||
| 样式 | 文字标签,可点击,选中高亮 |
|
||
| 行为 | 点击标签筛选该类别产品的计划,再次点击取消筛选 |
|
||
|
||
#### 3.1.4 数据表格列定义
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 对齐 | 说明 |
|
||
|------|--------|--------|------|------|------|
|
||
| 1 | 序号 | - | 60px | center | 自动编号(无复选框) |
|
||
| 2 | 销售员 | salesUserName | 80px | center | 销售人员姓名 |
|
||
| 3 | 销售订单号 | salesOrderCode | 140px | left | 关联的销售订单编码 |
|
||
| 4 | 订单交期 | deliveryDate | 100px | center | 销售订单交货日期 |
|
||
| 5 | 单据编码 | planCode | 140px | left | 蓝色链接,可点击打开详情 |
|
||
| 6 | 物料名称 | itemName | 200px | left | 产品物料名称,可能显示为彩色链接 |
|
||
| 7 | 物料编码 | itemCode | 120px | left | 产品物料编码 |
|
||
| 8 | 数量 | totalQuantity | 120px | right | 计划生产总数量(保留2位小数) |
|
||
| 9 | 主计量 | unitName | 60px | center | 计量单位(台、个、只等) |
|
||
| 10 | 物料清单 | mbomStatus | 100px | center | BOM运算状态(显示"BOM运算"/"BOM运算,BOM补料"/空) |
|
||
| 11 | 单据状态 | status | 80px | center | 状态标签(开立/审核) |
|
||
| 12 | 单据日期 | planDate | 100px | center | 计划单创建日期 |
|
||
|
||
> **注意**: 明细视图没有操作列按钮,通过点击「单据编码」列蓝色链接来查看详情。
|
||
|
||
---
|
||
|
||
### 3.2 单据视图
|
||
|
||
单据视图侧重于计划单的单据流程管理,支持批量操作(审核、反审核、删除)。
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单-列表单据视图.png`
|
||
|
||
#### 3.2.1 搜索条件区域
|
||
|
||
| 序号 | 字段名 | 标签 | 组件类型 | 宽度 | 说明 |
|
||
|------|--------|------|----------|------|------|
|
||
| 1 | planCode | 单据编码 | el-input | 160px | 模糊搜索 |
|
||
| 2 | status | 单据状态 | el-select | 120px | 下拉选择,可清空 |
|
||
| 3 | businessStatus | 业务状态 | el-select | 120px | 下拉选择,可清空 |
|
||
| 4 | startDate | 开始日期 | el-date-picker | 140px | 日期范围起 |
|
||
| 5 | endDate | 结束日期 | el-date-picker | 140px | 日期范围止 |
|
||
|
||
> **注意**: 单据视图没有「销售订单号」「物料编码」「物料名称」,而是有「单据状态」和「业务状态」两个下拉选择。
|
||
|
||
**单据状态选项:**
|
||
|
||
| 值 | 标签 | 标签颜色 |
|
||
|----|------|----------|
|
||
| DRAFT | 开立 | info (灰色) |
|
||
| APPROVED | 审核 | success (绿色) |
|
||
|
||
**业务状态选项:**
|
||
|
||
| 值 | 标签 |
|
||
|----|------|
|
||
| NORMAL | 正常 |
|
||
| PAUSE | 暂停 |
|
||
| CANCEL | 取消 |
|
||
|
||
#### 3.2.2 工具栏按钮
|
||
|
||
| 序号 | 按钮名称 | 图标 | 类型 | 权限标识 | 说明 |
|
||
|------|----------|------|------|----------|------|
|
||
| 1 | 明细 | - | primary | mp:plan:list | 切换到明细视图 |
|
||
| 2 | 查询所有 | el-icon-tickets | default | mp:plan:list | 重置搜索条件并查询所有 |
|
||
| 3 | 新增 | el-icon-plus | success | mp:plan:add | 打开新增计划单页面 |
|
||
| 4 | 删除 | el-icon-delete | danger | mp:plan:remove | 批量删除选中记录(需勾选,disabled until selected) |
|
||
| 5 | 审核 | el-icon-check | primary | mp:plan:approve | 批量审核选中记录(需勾选,disabled until selected) |
|
||
| 6 | 反审核 | - | default | mp:plan:unapprove | 批量反审核选中记录(需勾选,disabled until selected) |
|
||
|
||
#### 3.2.3 数据表格列定义
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 对齐 | 排序 | 说明 |
|
||
|------|--------|--------|------|------|------|------|
|
||
| 0 | (复选框) | - | 55px | center | - | 多选列,用于批量操作 |
|
||
| 1 | 单据编码 | planCode | 140px | left | 否 | 可点击打开详情,如 SCJH000105 |
|
||
| 2 | 单据日期 | planDate | 120px | center | 是 ▼ | 默认降序排列 |
|
||
| 3 | 单据状态 | status | 80px | center | 否 | 状态标签(颜色区分) |
|
||
| 4 | 业务类型 | businessType | 100px | center | 否 | 如:生产计划 |
|
||
| 5 | 业务部门 | deptName | 100px | center | 否 | |
|
||
| 6 | 业务人员 | operatorName | 100px | center | 否 | |
|
||
| 7 | 业务状态 | businessStatus | 80px | center | 否 | 正常/暂停/取消 |
|
||
| 8 | 审核日期 | approveDate | 120px | center | 否 | 仅审核后显示 |
|
||
| 9 | 操作 | - | 160px | center | - | 操作按钮组(查看/编辑/删除) |
|
||
|
||
#### 3.2.4 单据视图操作列按钮
|
||
|
||
单据视图操作列按钮,所有状态统一显示:
|
||
|
||
| 按钮 | 颜色 | 权限 | 说明 |
|
||
|------|------|------|------|
|
||
| 查看 | success (绿色文字) | mp:plan:query | 打开查看页(只读) |
|
||
| 编辑 | primary (蓝色文字) | mp:plan:edit | 打开编辑页(仅开立状态可编辑,已审核状态可查看并反审核后编辑) |
|
||
| 删除 | danger (红色文字) | mp:plan:remove | 二次确认后删除(仅开立状态可删除) |
|
||
|
||
> **注意**: 所有状态的计划单都显示「查看」「编辑」「删除」三个按钮,但已审核状态的编辑实际以查看模式打开,删除操作会被拦截提示。
|
||
|
||
---
|
||
|
||
### 3.3 底部统计区域(两种视图通用)
|
||
|
||
| 组件 | 位置 | 说明 |
|
||
|------|------|------|
|
||
| 计划数量统计 | 底部左侧 | 显示 "计划数量:{totalQty}",汇总当前查询结果的总计划数量 |
|
||
|
||
### 3.4 分页组件(两种视图通用)
|
||
|
||
| 属性 | 值 | 说明 |
|
||
|------|------|------|
|
||
| 默认每页条数 | 100 | 可选: 10, 20, 50, 100 |
|
||
| 布局 | total, sizes, prev, pager, next, jumper | 完整分页 |
|
||
| 总条数显示 | 共 {total} 条 | 右侧显示 |
|
||
|
||
---
|
||
|
||
## 4. 新增/编辑页设计
|
||
|
||
### 4.1 页面布局
|
||
|
||
新增/编辑页面为独立的全屏页面(非弹窗),包含表头表单区和三个子表区。
|
||
|
||
> 截图参考: 新增初始页 `screenshot/生产计划-生产计划单-新增初始化页.png`;BOM运算后 `screenshot/生产计划-生产计划单-BOM运算.png`
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ 生产计划单 [保存][取消][审核][反审核][收起] │
|
||
├──────────────────────────────────────────────────────────────┤
|
||
│ 表头表单区 (4列布局,可折叠) │
|
||
│ ┌──────────┬──────────┬──────────┬──────────┐ │
|
||
│ │ 单据编码 │ 业务类型 │ 业务人员 │ 订单BOM │ │
|
||
│ │ 单据日期 │ 操作员 │ 业务单号 │ 版本号 │ │
|
||
│ │ 单据状态 │ 审核员 │ 订单交期 │ 版本说明 │ │
|
||
│ │ 业务状态 │ 审核日期 │ 备注 │ 生产总量 │ │
|
||
│ └──────────┴──────────┴──────────┴──────────┘ │
|
||
├──────────────────────────────────────────────────────────────┤
|
||
│ 订单信息 [+ 引入] │
|
||
│ ┌────┬────────┬──────┬────┬──────┬──────┬──┬──┐ │
|
||
│ │序号│物料编码 │物料名│主计│数量 │质量要│备│操│ │
|
||
│ │ │ │称 │量 │ │求 │注│作│ │
|
||
│ ├────┼────────┼──────┼────┼──────┼──────┼──┼──┤ │
|
||
│ │ 1 │0102.. │简易..│台 │100 │ │ │删│ │
|
||
│ └────┴────────┴──────┴────┴──────┴──────┴──┴──┘ │
|
||
├──────────────────────────────────────────────────────────────┤
|
||
│ 物料清单 │
|
||
│ ┌──┬──────┬────┬────┬──┬──────┬──────┬──┬────┬────┬────┬──┐ │
|
||
│ │序│单据编│单据│业务│状│物料编│物料名│主│供应│生产│下发│操│ │
|
||
│ │号│码 │状态│类型│态│码 │称 │量│方式│数量│车间│作│ │
|
||
│ └──┴──────┴────┴────┴──┴──────┴──────┴──┴────┴────┴────┴──┘ │
|
||
├──────────────────────────────────────────────────────────────┤
|
||
│ 补料清单 │
|
||
│ ┌──┬──────┬────┬────┬──┬──────┬──────┬──┬────┬────┬────┬──┬─┐│
|
||
│ │序│单据编│单据│业务│状│物料编│物料名│主│供应│生产│补料│补│备││
|
||
│ │号│码 │状态│类型│态│码 │称 │量│方式│数量│事由│料│注││
|
||
│ │ │ │ │ │ │ │ │ │ │ │ │日│ ││
|
||
│ └──┴──────┴────┴────┴──┴──────┴──────┴──┴────┴────┴────┴──┴─┘│
|
||
└──────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 4.2 表头表单字段
|
||
|
||
表头采用4列栅格布局(el-col :span="6"),每行4个字段。
|
||
|
||
| 序号 | 字段名 | 标签 | 组件类型 | 必填 | 默认值 | 可编辑 | 说明 |
|
||
|------|--------|------|----------|------|--------|--------|------|
|
||
| 1 | planCode | 单据编码 | el-input | 是 | 自动生成 | 否(只读) | 格式: SCJH000XXX,后端自动生成 |
|
||
| 2 | businessType | 业务类型 | el-select | 是 | 生产计划 | 否(只读) | 固定为"生产计划" |
|
||
| 3 | salesUserName | 业务人员 | el-input | 否 | - | 否(只读) | 引入订单后自动填充销售人员 |
|
||
| 4 | bomId | 订单BOM | el-input + 选择按钮 | 否 | - | 是 | 点击「选择」弹窗选择产品BOM版本 |
|
||
| 5 | planDate | 单据日期 | el-date-picker | 是 | 当天日期 | 是 | 日期选择器 |
|
||
| 6 | operatorName | 操作员 | el-input | 是 | 当前登录用户 | 否(只读) | 自动填充当前登录用户名 |
|
||
| 7 | salesOrderCode | 业务单号 | el-input | 否 | - | 否(只读) | 引入订单后自动填充销售订单号 |
|
||
| 8 | bomVersion | 版本号 | el-input | 否 | - | 否(只读) | 选择BOM后自动带入版本号 |
|
||
| 9 | status | 单据状态 | el-tag | - | 开立 | 否(只读) | 标签显示,开立=info(灰) |
|
||
| 10 | approverName | 审核员 | el-input | 否 | - | 否(只读) | 审核时自动填充 |
|
||
| 11 | deliveryDate | 订单交期 | el-date-picker | 否 | - | 否(只读) | 引入订单后自动填充交货日期 |
|
||
| 12 | versionDesc | 版本说明 | el-input | 否 | - | 否(只读) | 选择BOM后自动带入 |
|
||
| 13 | businessStatus | 业务状态 | el-select | 是 | 正常 | 是 | 下拉选择 |
|
||
| 14 | approveDate | 审核日期 | el-date-picker | 否 | - | 否(只读) | 审核时自动填充 |
|
||
| 15 | remark | 备注 | el-input(textarea) | 否 | - | 是 | 多行文本,最多500字 |
|
||
| 16 | totalQuantity | 生产总量 | el-input | 否 | 0.00 | 否(只读) | 自动计算,订单信息数量合计 |
|
||
|
||
**业务状态选项:**
|
||
|
||
| 值 | 标签 |
|
||
|----|------|
|
||
| NORMAL | 正常 |
|
||
| PAUSE | 暂停 |
|
||
| CANCEL | 取消 |
|
||
|
||
### 4.3 订单信息子表
|
||
|
||
订单信息子表位于表头下方,标题为「订单信息」。通过「引入」按钮从销售订单引入产品物料。
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 组件类型 | 必填 | 说明 |
|
||
|------|--------|--------|------|----------|------|------|
|
||
| 1 | 序号 | lineNo | 60px | 自动编号 | - | 行序号,自动递增 |
|
||
| 2 | 物料编码 | itemCode | 150px | el-input | 是 | 只读,引入订单后自动填充 |
|
||
| 3 | 物料名称 | itemName | 200px | el-input | - | 只读,引入订单后自动填充 |
|
||
| 4 | 主计量 | unitName | 80px | el-input | - | 只读,引入订单后自动填充 |
|
||
| 5 | 数量 | quantity | 120px | el-input-number | 是 | 可修改,引入后默认为订单数量 |
|
||
| 6 | 质量要求 | qualityReq | 150px | el-input | 否 | 文本输入,质量要求描述 |
|
||
| 7 | 备注 | remark | 120px | el-input | 否 | 行备注 |
|
||
| 8 | 操作 | - | 80px | el-button | - | 删除按钮 |
|
||
|
||
### 4.4 物料清单子表
|
||
|
||
物料清单子表显示BOM运算后的展开结果,标题为「物料清单」。该表数据由后端BOM运算自动生成。**查看模式(已审核计划)下**,物料清单的部分列可编辑(供应方式、下发车间、下发日期、下发开关),用于计划员在审核后灵活调整物料的供应与下发信息。
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 组件类型 | 可编辑 | 说明 |
|
||
|------|--------|--------|------|----------|--------|------|
|
||
| 1 | 序号 | - | 60px | 自动编号 | 否 | 自动编号 |
|
||
| 2 | 单据编码 | mbomCode | 140px | 文本 | 否 | 物料清单单据编码, **可点击,点击后打开查看物料清单页** |
|
||
| 3 | 单据状态 | mbomStatus | 80px | 标签 | 否 | 物料清单状态 |
|
||
| 4 | 业务类型 | businessType | 100px | 文本 | 否 | 如:生产计划 |
|
||
| 5 | 状态 | issueStatus | 80px | el-switch | 是 | 下发开关:ON=下发、OFF=撤销下发;**已下发行切换为OFF时需二次确认** |
|
||
| 6 | 物料编码 | itemCode | 140px | 文本 | 否 | 物料编码 |
|
||
| 7 | 物料名称 | itemName | 200px | 文本 | 否 | 物料名称 |
|
||
| 8 | 主计量 | unitName | 80px | 文本 | 否 | 计量单位 |
|
||
| 9 | 供应方式 | supplyType | 100px | el-select | 是 | 生产/加工/装配/委外/采购;**未下发状态均可修改**,修改后提示「修改成功」 ,**已下发状态不可修改**,提示"物料清单已经下发"|
|
||
| 10 | 生产数量 | productionQty | 120px | 文本 | 否 | 需要生产/采购的数量 |
|
||
| 11 | 下发车间 | workshopName | 120px | el-select | 条件 | 下发目标车间;**已下发(ISSUED)状态下禁用编辑**,提示「已下发状态下无法修改生产车间」 |
|
||
| 12 | 下发日期 | issueDate | 120px | el-date-picker | 条件 | 下发日期;**已下发(ISSUED)状态下禁用编辑**,提示「已下发状态下无法修改生产日期」 |
|
||
| 13 | 操作 | - | 100px | 按钮组 | - | **√ 齐套检查**(检查该行物料库存齐套)、**BOM补料**(打开BOM补料弹窗)、**生产补料**(打开生产补料弹窗);审核且BOM运算后显示 |
|
||
|
||
> **编辑条件说明**: 物料清单在计划状态为「审核(APPROVED)」且已完成BOM运算(即 mbomList 非空)时允许编辑,包括查看模式下。已下发(ISSUED)状态的行,仅「供应方式」和「下发开关(撤销下发)」可操作,「下发车间」和「下发日期」禁用。
|
||
|
||
### 4.5 补料清单子表
|
||
|
||
补料清单子表用于BOM计算后的物料补充,标题为「补料清单」。
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 说明 |
|
||
|------|--------|--------|------|------|
|
||
| 1 | 序号 | - | 60px | 自动编号 |
|
||
| 2 | 单据编码 | supCode | 140px | 补料单据编码 |
|
||
| 3 | 单据状态 | supStatus | 80px | 补料清单状态 |
|
||
| 4 | 业务类型 | businessType | 100px | 业务类型 |
|
||
| 5 | 状态 | issueStatus | 80px | 状态 |
|
||
| 6 | 物料编码 | itemCode | 140px | 物料编码 |
|
||
| 7 | 物料名称 | itemName | 200px | 物料名称 |
|
||
| 8 | 主计量 | unitName | 80px | 计量单位 |
|
||
| 9 | 供应方式 | supplyType | 100px | 供应方式 |
|
||
| 10 | 生产数量 | productionQty | 120px | 生产数量 |
|
||
| 11 | 补料事由 | supReason | 150px | 补料原因说明 |
|
||
| 12 | 补料日期 | supDate | 120px | 补料日期 |
|
||
| 13 | 备注 | remark | 120px | 备注 |
|
||
|
||
### 4.6 引入订单弹窗
|
||
|
||
点击订单信息区域的「引入」按钮,打开销售订单选择弹窗(目标系统中弹窗标题为「订单信息」)。
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单新增-引入业务订单.png`
|
||
|
||
| 属性 | 值 |
|
||
|------|------|
|
||
| 弹窗标题 | 选择销售订单 / 订单信息(目标系统) |
|
||
| 弹窗宽度 | 1000px |
|
||
| 弹窗高度 | 自适应,最大70vh |
|
||
| 关闭方式 | 右上角 X 按钮、取消按钮 |
|
||
| 选择模式 | 可勾选多条订单或多条订单明细行(多选) |
|
||
|
||
**弹窗搜索区:**
|
||
|
||
| 组件 | 说明 |
|
||
|------|------|
|
||
| 销售单号/订单编码 | 模糊搜索销售订单编码 |
|
||
| 物料编码 | 可选,模糊搜索物料 |
|
||
| 物料名称 | 模糊搜索物料名称 |
|
||
| 开始日期、结束日期 | 可选,日期范围筛选 |
|
||
| 搜索按钮 | primary类型,执行搜索 |
|
||
| 查询所有按钮 | 清空条件并刷新列表(目标系统) |
|
||
|
||
**弹窗列表结构(目标系统为层级表格):**
|
||
|
||
- **父行**(订单头):业务人员、业务单号、订单交期、交期状态、业务类型、备注;左侧可展开/收起箭头。
|
||
- **子行**(订单明细,展开后显示):物料编码、物料名称、主计量、数量、包装件数、备注等。
|
||
- 选择可在父行勾选(整单引入)或子行勾选(按明细行引入),依产品实现。底部「确定」将所选内容合并引入到表单「订单信息」子表。
|
||
|
||
**弹窗列表表格列(平铺模式时):**
|
||
|
||
| 序号 | 列标题 | 字段名 | 宽度 | 说明 |
|
||
|------|--------|--------|------|------|
|
||
| 0 | (复选框) | - | 55px | 多选列 |
|
||
| 1 | 订单编码 | orderCode | 140px | 销售订单编码 |
|
||
| 2 | 物料编码 | itemCode | 140px | |
|
||
| 3 | 物料名称 | itemName | 200px | |
|
||
| 4 | 型号规格 | specification | 150px | |
|
||
| 5 | 主计量 | unitName | 80px | 计量单位 |
|
||
| 6 | 订单数量 | orderQty | 100px | |
|
||
| 7 | 已计划数量 | plannedQty | 100px | 已被其他计划引用的数量 |
|
||
| 8 | 可用数量 | availableQty | 100px | 订单数量 - 已计划数量 |
|
||
| 9 | 交货日期 | deliveryDate | 120px | |
|
||
|
||
**引入交互:**
|
||
- 勾选一条或多条订单明细行,点击「确定」按钮
|
||
- 引入后自动填充订单信息子表:物料编码、物料名称、主计量、数量
|
||
- 同时自动填充表头:业务人员(销售人员)、业务单号(销售订单号)、订单交期
|
||
- 引入后数量可修改,支持分批次计划
|
||
|
||
### 4.7 选择BOM弹窗(选择EBOM单)
|
||
|
||
点击表头「订单BOM」旁的「选择」按钮,打开BOM选择弹窗(目标系统中弹窗标题为「选择EBOM单」)。
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单新增-订单BOM-选择EBOM单.png`
|
||
|
||
| 属性 | 值 |
|
||
|------|------|
|
||
| 弹窗标题 | 选择产品BOM / 选择EBOM单(目标系统) |
|
||
| 弹窗宽度 | 建议 1000px,最大高度 70vh |
|
||
| 选择模式 | 单选(每行复选框选一条EBOM) |
|
||
| 数据范围 | 仅显示引入产品对应的已审核EBOM(同一产品可有多个BOM版本) |
|
||
|
||
**主表列(目标系统):** EBOM单号、物料编码、物料名称、母件基数、版本号、版本说明、图纸号、单据日期、复选框。
|
||
|
||
**行展开(目标系统):** 主行可展开显示该EBOM的**子件明细**,列:物料编码、物料名称、主计量、领料方式、分子、固定用量、备注。便于选择前查看BOM结构。
|
||
|
||
**分页:** 共 N 条、100条/页、上一页/下一页、前往 N 页;底部「确定」「取消」。
|
||
|
||
**选择交互:**
|
||
- 勾选一条EBOM后点击「确定」,弹窗关闭,自动填充表头「订单BOM」(EBOM单号或显示名)、「版本号」、「版本说明」
|
||
- 如产品仅有一个BOM版本,可自动带入无需手动选择
|
||
|
||
---
|
||
|
||
## 5. 数据字段定义
|
||
|
||
### 5.1 生产计划单表头字段(erp_mp_plan)
|
||
|
||
> 字段定义以 **《erp数据库设计-数据字典》** 与 **erp数据库设计-DDL.sql** 为准;API 路径见数据字典 8.1:`/mp/plan/order`。
|
||
|
||
| 字段名 | 数据库字段 | 类型 | 长度 | 必填 | 默认值 | 说明 |
|
||
|--------|-----------|------|------|------|--------|------|
|
||
| 计划ID | plan_id | bigint | - | 是 | AUTO | 主键,自增 |
|
||
| 租户ID | tenant_id | varchar | 20 | 是 | - | 多租户隔离 |
|
||
| 计划编码 | plan_code | varchar | 32 | 是 | 自动生成 | 格式: SCJH + 6位流水号 |
|
||
| 计划日期 | plan_date | date | - | 是 | 当天 | 单据创建日期 |
|
||
| 单据状态 | status | varchar | 20 | 是 | DRAFT | 开立/审核 |
|
||
| 业务状态 | business_status | varchar | 20 | 否 | NORMAL | 正常/暂停/取消 |
|
||
| 业务类型 | business_type | varchar | 20 | 否 | NULL | 业务类型,如生产计划 |
|
||
| 工作类型 | work_type | int | - | 是 | 0 | 0=生产计划单/1=零部件计划/2=零部件订单 |
|
||
| 销售订单ID | sales_order_id | bigint | - | 否 | - | 外键 → erp_sl_order |
|
||
| 销售订单编码 | sales_order_code | varchar | 32 | 否 | - | 冗余 |
|
||
| 销售员ID | sales_user_id | bigint | - | 否 | - | 销售员ID |
|
||
| 销售员名称 | sales_user_name | varchar | 50 | 否 | - | 冗余 |
|
||
| 交货日期 | delivery_date | date | - | 否 | - | 订单交货日期 |
|
||
| BOM ID | bom_id | bigint | - | 否 | - | 外键 → erp_md_bom |
|
||
| BOM版本 | bom_version | varchar | 20 | 否 | - | BOM版本号 |
|
||
| BOM说明 | bom_desc | varchar | 200 | 否 | - | BOM版本说明 |
|
||
| 生产总量 | total_quantity | decimal | 18,4 | 否 | 0 | 订单物料数量合计 |
|
||
| 备注 | remark | varchar | 500 | 否 | - | |
|
||
| 操作员ID | operator_id | bigint | - | 否 | - | 操作员ID |
|
||
| 操作员名称 | operator_name | varchar | 50 | 否 | - | 操作员名称 |
|
||
| 审核员ID | approver_id | bigint | - | 否 | - | 审核员ID |
|
||
| 审核员名称 | approver_name | varchar | 50 | 否 | - | 审核员名称 |
|
||
| 审核日期 | approve_date | datetime | - | 否 | - | 审核日期 |
|
||
| 删除标志 | del_flag | char | 1 | 是 | 0 | 0存在/1删除 |
|
||
| 创建者 | create_by | varchar | 64 | 否 | - | |
|
||
| 创建时间 | create_time | datetime | - | 否 | - | |
|
||
| 更新者 | update_by | varchar | 64 | 否 | - | |
|
||
| 更新时间 | update_time | datetime | - | 否 | - | |
|
||
|
||
### 5.2 生产计划明细字段(erp_mp_plan_line)
|
||
|
||
> 与 **erp数据库设计-DDL.sql** 中 `erp_mp_plan_line` 一致。供应方式在物料清单(erp_mp_mbom)中维护,计划明细行无 supply_type。
|
||
|
||
| 字段名 | 数据库字段 | 类型 | 长度 | 必填 | 默认值 | 说明 |
|
||
|--------|-----------|------|------|------|--------|------|
|
||
| 明细ID | line_id | bigint | - | 是 | AUTO | 主键,自增 |
|
||
| 计划ID | plan_id | bigint | - | 是 | - | 外键 → erp_mp_plan.plan_id |
|
||
| 计划单编码 | plan_code | varchar | 32 | 是 | - | 冗余 |
|
||
| 行号 | line_no | int | - | 是 | - | 行序号 |
|
||
| 销售订单明细ID | sales_line_id | bigint | - | 否 | - | 外键 → erp_sl_order_line.line_id |
|
||
| 跟单编号 | track_code | varchar | 32 | 否 | - | 跟单编号 |
|
||
| 物料ID | item_id | bigint | - | 是 | - | 外键 → erp_md_item.item_id |
|
||
| 物料编码 | item_code | varchar | 32 | 是 | - | 冗余 |
|
||
| 物料名称 | item_name | varchar | 100 | 是 | - | 冗余 |
|
||
| 规格型号 | specification | varchar | 200 | 否 | - | |
|
||
| 计量单位ID | unit_id | bigint | - | 否 | - | 外键 → 计量单位 |
|
||
| 计量单位 | unit_name | varchar | 20 | 否 | - | 冗余 |
|
||
| 数量 | quantity | decimal | 18,4 | 是 | 0 | 计划生产数量 |
|
||
| 质量要求 | quality_req | varchar | 200 | 否 | - | 质量要求描述 |
|
||
| 备注 | remark | varchar | 200 | 否 | - | |
|
||
| 删除标志 | del_flag | char | 1 | 是 | 0 | 0存在/1删除 |
|
||
| 租户ID | tenant_id | varchar | 20 | 是 | - | |
|
||
|
||
### 5.3 物料清单字段(erp_mp_mbom / erp_mp_mbom_line)
|
||
|
||
物料清单由 BOM 运算自动生成。**erp_mp_mbom** 表头字段见《erp数据库设计-数据字典》8.2(API 路径 `/mp/plan/mbom`),含 mbom_id、plan_id、plan_code、item_id、supply_type、**quantity**(生产数量)、issue_status、workshop_id 等。**erp_mp_mbom_line** 主键为 **line_id**,含 mbom_id、mbom_code、line_no、parent_item_id、bom_level、item_id、quantity、base_qty、loss_rate、supply_type 等(见 erp数据库设计-DDL.sql)。与 MOM 表映射见 **《erp与mom数据库表映射对照表》** 第 7 节(erp_mp_mbom/erp_mp_mbom_line → MOM 镜像表及 pro_workorder/pro_workorder_bom)。
|
||
|
||
### 5.4 与MOM系统表映射关系(对接MOM API时使用)
|
||
|
||
生产计划单页面**主数据与业务接口以 ERP 表为准**(erp_mp_plan、erp_mp_plan_line、erp_mp_mbom、erp_mp_mbom_line)。根据 **《erp与mom数据库表映射对照表》** 与 **《MOM系统数据升级方案-销售采购生产计划》**:
|
||
|
||
- **MOM 升级后**:MOM 侧存在与 ERP 同名的 **镜像表**(erp_mp_plan、erp_mp_plan_line、erp_mp_mbom、erp_mp_mbom_line),计划审核后可 1:1 同步到 MOM 镜像表(主键一致)。
|
||
- **下发车间**:由后端按供应方式将 erp_mp_plan/erp_mp_mbom 拆解写入 MOM 业务表 pro_workorder、pro_workorder_bom;pro_workorder 新增 plan_id、plan_code、bom_version、delivery_date、mbom_id、mbom_code 等字段(见升级方案)。
|
||
|
||
完整字段与值转换见 **《erp与mom数据库表映射对照表》** 第 2.5 节、第 7 节。
|
||
|
||
| ERP表名 | MOM 镜像表(1:1) | MOM 业务表(下发时) | 说明 |
|
||
|---------|-------------------|----------------------|------|
|
||
| erp_mp_plan | erp_mp_plan | pro_workorder | 计划单→镜像表;下发时 plan_code→source_code,并写入 plan_id、plan_code 等 |
|
||
| erp_mp_plan_line | erp_mp_plan_line | pro_workorder_bom | 计划明细→镜像表;下发时 item_id→product_id、quantity 等 |
|
||
| erp_mp_mbom | erp_mp_mbom | pro_workorder(拆解) | 物料清单→镜像表;下发时按供应方式拆解为多个工单 |
|
||
| erp_mp_mbom_line | erp_mp_mbom_line | pro_workorder_bom | 物料清单明细→镜像表;下发时写入工单BOM |
|
||
|
||
**关键字段对接(ERP → pro_workorder,下发时):**
|
||
|
||
| ERP 表.字段 | MOM 表.字段 | 说明 |
|
||
|-------------|-------------|------|
|
||
| erp_mp_plan.plan_code | pro_workorder.source_code | 计划编码作为来源单据编码 |
|
||
| erp_mp_plan.status | pro_workorder.status | 状态值需转换:DRAFT→PREPARE, APPROVED→CONFIRMED, CLOSED→FINISHED |
|
||
| erp_mp_plan.work_type | pro_workorder.workorder_type | 0→SELF, 1→SELF, 2→OUTSOURCE |
|
||
| erp_mp_plan.delivery_date | pro_workorder.request_date | 订单交期→需求日期 |
|
||
| erp_mp_plan.total_quantity | pro_workorder.quantity | 生产总量→生产数量 |
|
||
| erp_mp_plan_line.item_id | pro_workorder.product_id | 产品物料ID |
|
||
| erp_mp_plan_line.quantity | pro_workorder.quantity | 计划数量 |
|
||
| erp_mp_mbom.supply_type | pro_workorder.workorder_type | 供应方式→工单类型(生产/加工/装配→SELF,委外→OUTSOURCE,采购→不建工单) |
|
||
| erp_mp_mbom_line.* | pro_workorder_bom.* | 明细字段见《erp与mom数据库表映射对照表》7.3 节;ERP 主键为 line_id |
|
||
|
||
---
|
||
|
||
## 6. 按钮操作说明
|
||
|
||
### 6.1 明细视图工具栏按钮
|
||
|
||
#### 6.1.1 「单据」按钮(视图切换)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 始终可用 |
|
||
| 操作 | 切换到单据视图,重新加载列表数据 |
|
||
| 权限 | mp:plan:list |
|
||
| 效果 | 搜索区域、工具栏、表格列全部切换为单据视图样式 |
|
||
|
||
#### 6.1.2 查询所有按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 始终可用 |
|
||
| 操作 | 清空所有搜索条件(包括快捷筛选标签选择),重新加载列表(pageNum=1) |
|
||
| 权限 | mp:plan:list |
|
||
|
||
#### 6.1.3 新增按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 始终可用 |
|
||
| 操作 | 路由跳转到新增生产计划单页面 |
|
||
| 权限 | mp:plan:add |
|
||
| 路由 | `/mp/plan/orderadd?open=addStatus&workType=0&fmConfig=010501,020501` |
|
||
|
||
#### 6.1.4 导出按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 始终可用 |
|
||
| 操作 | 按当前搜索条件导出计划列表到Excel |
|
||
| 权限 | mp:plan:export |
|
||
|
||
### 6.2 单据视图工具栏按钮
|
||
|
||
#### 6.2.1 「明细」按钮(视图切换)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 始终可用 |
|
||
| 操作 | 切换到明细视图,重新加载列表数据 |
|
||
| 权限 | mp:plan:list |
|
||
|
||
#### 6.2.2 删除按钮(批量)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 勾选一条或多条记录(否则disabled) |
|
||
| 前置校验 | 仅开立(DRAFT)状态允许删除;已审核状态记录跳过并提示 |
|
||
| 操作 | 弹出确认框:"确认删除选中的{n}条计划记录?",确认后调用删除接口 |
|
||
| 权限 | mp:plan:remove |
|
||
|
||
#### 6.2.3 审核按钮(批量)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 勾选一条或多条记录(否则disabled) |
|
||
| 前置校验 | 仅开立(DRAFT)状态允许审核;需要至少有1条订单明细 |
|
||
| 操作 | 弹出确认框,确认后批量审核 |
|
||
| 权限 | mp:plan:approve |
|
||
| 结果 | status → APPROVED,自动记录审核员和审核日期 |
|
||
|
||
#### 6.2.4 反审核按钮(批量)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发条件 | 勾选一条或多条记录(否则disabled) |
|
||
| 前置校验 | 仅审核(APPROVED)状态允许反审核;需检查是否已执行BOM运算或下发 |
|
||
| 操作 | 弹出确认框,确认后批量反审核 |
|
||
| 权限 | mp:plan:unapprove |
|
||
| 结果 | status → DRAFT,清空审核员和审核日期 |
|
||
|
||
### 6.3 新增/编辑页按钮
|
||
|
||
#### 6.3.1 保存按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 页面右上角 |
|
||
| 颜色 | primary (蓝色) |
|
||
| 触发条件 | 表单校验通过 |
|
||
| 操作 | 保存计划表头和订单信息数据 |
|
||
| 成功提示 | "保存成功" |
|
||
| 失败提示 | 显示后端返回的错误信息 |
|
||
|
||
#### 6.3.2 取消按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 保存按钮右侧 |
|
||
| 颜色 | default (灰色) |
|
||
| 操作 | 如有未保存修改,弹出确认框"有未保存的数据,确认离开?";返回列表页 |
|
||
|
||
#### 6.3.3 审核按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 取消按钮右侧 |
|
||
| 颜色 | success (绿色) |
|
||
| 显示条件 | 仅在编辑模式且 status = DRAFT 时启用(新增页disabled) |
|
||
| 前置条件 | 需先保存,至少有1条订单明细 |
|
||
| 操作 | 调用审核接口,成功后页面变为只读 |
|
||
|
||
#### 6.3.4 反审核按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 审核按钮右侧 |
|
||
| 颜色 | warning (橙色) |
|
||
| 显示条件 | 仅在查看模式且 status = APPROVED 时启用 |
|
||
| 前置条件 | 该计划未执行BOM运算或所有物料清单未下发 |
|
||
| 操作 | 调用反审核接口,成功后页面变为可编辑 |
|
||
|
||
#### 6.3.5 收起/展开按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 页面右上角最右侧 |
|
||
| 操作 | 折叠/展开表头表单区域,仅显示子表明细 |
|
||
|
||
#### 6.3.6 引入按钮(订单信息子表)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 订单信息区域右上角 |
|
||
| 颜色 | primary (蓝色) |
|
||
| 操作 | 打开销售订单选择弹窗,引入订单物料行 |
|
||
| 显示条件 | 仅编辑状态显示 |
|
||
|
||
#### 6.3.7 BOM运算按钮(审核后显示)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 物料清单区域上方 |
|
||
| 显示条件 | 仅计划已审核(APPROVED)且已选择BOM时显示 |
|
||
| 操作 | 调用BOM运算接口,后端展开产品BOM生成物料清单 |
|
||
| **重新运算** | 当物料清单已有数据(mbomList非空)时,点击BOM运算弹出确认对话框:「确认是否重新执行物料计算?」(type: warning);用户确认后方调用接口,后端自动**删除未下发的MBOM记录**后重新生成,避免重复数据;已下发(ISSUED)的MBOM保留不受影响 |
|
||
| 结果 | 物料清单子表填充数据,显示所有需要的物料(按供应方式分类) |
|
||
|
||
#### 6.3.8 BOM补料按钮
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 物料清单区域 |
|
||
| 显示条件 | 仅BOM运算完成后显示 |
|
||
| 操作 | 打开补料弹窗,选择额外物料添加到补料清单 |
|
||
|
||
#### 6.3.9 订单BOM「查看」按钮(查看/已审核时)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 表头「订单BOM」字段右侧,当已选择BOM后显示 |
|
||
| 颜色 | primary(蓝色文字链接) |
|
||
| 显示条件 | 查看页或编辑/新增页已填写订单BOM时显示 |
|
||
| 操作 | 打开「EBOM详情」弹窗,展示 EBOM单号、业务类型、物料编码/名称、属性(母件基数、图纸号、版本号、版本说明)及BOM组件表;只读 |
|
||
|
||
#### 6.3.10 订单信息「BOM计算」「物料清单」按钮(审核后)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 订单信息区域右上角(计划已审核后与「引入」的显示逻辑可二选一或并存) |
|
||
| BOM计算 | 蓝色按钮,点击调用BOM运算接口,刷新物料清单、补料清单子表 |
|
||
| 物料清单 | 绿色按钮,可打开销售订单中产品的物料清单列表 **列表标题:「生产计划单号-产品物料编码-产品名称-计划生产总数量」- 物料清单, 列表显示字段:序号 物料编码 物料名称 主计量单位 需求量 可用量 领用量 供应方式** |
|
||
|
||
#### 6.3.11 物料清单子表操作列(齐套检查 / BOM补料 / 生产补料)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 物料清单子表每行「操作」列 |
|
||
| 显示条件 | 计划已审核且已执行BOM运算后 |
|
||
| 齐套检查 | 链接「√ 齐套检查」:检查该行物料库存,弹窗或行内展示**序号 物料编码 物料名称 主计量单位 需求量 可用量 缺少量 计划采购 采购订单 采购到货 入库数量 供应方式** |
|
||
| BOM补料 | 链接「BOM补料」:打开BOM补料弹窗,提交后写入补料清单 |
|
||
| 生产补料 | 链接「生产补料」:打开生产补料弹窗,提交后写入补料清单 |
|
||
|
||
#### 6.3.12 记录导航「上一条」「下一条」
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 表头区域右侧或订单信息区块上方 |
|
||
| 显示条件 | 查看/编辑单条计划且存在多条计划记录时 |
|
||
| 操作 | 上一条:加载上一条计划详情并刷新表单;下一条:加载下一条计划详情并刷新表单 |
|
||
|
||
#### 6.3.13 查看页顶部工具栏(新增/编辑/审核/反审核/打印/操作/收起)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 适用 | 查看生产计划单页面 |
|
||
| 按钮 | 新增、编辑、审核、反审核、打印、操作(下拉)、收起;与新增/编辑页差异:无「保存」「取消」,有「新增」「编辑」「打印」「操作」 |
|
||
| 编辑 | 点击后跳转编辑页或当前页切换为编辑模式 |
|
||
| 操作下拉 | 可包含打印、导出、复制等,依产品定义 |
|
||
|
||
#### 6.3.14 物料清单下发开关(下发/撤销下发)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 物料清单子表每行「状态」列(el-switch 组件) |
|
||
| 显示条件 | 计划已审核(APPROVED)且已完成BOM运算 |
|
||
| 下发(ON) | 开关从 OFF 切换到 ON 时执行下发操作;前置校验:必须已选择下发车间,否则提示「请先选择下发车间」并回退开关状态;校验通过后调用下发接口 `PUT /mp/plan/issue/{mbomId}` |
|
||
| **撤销下发(OFF)** | 开关从 ON 切换到 OFF 时弹出确认对话框:「撤销下发」(type: warning);用户确认后调用撤销下发接口 `PUT /erp/mp/mbom/revoke-issue/{mbomId}`;撤销后 issueStatus 清空,但保留下发车间和下发日期信息以便调整后重新下发;撤销成功后自动刷新计划数据 |
|
||
| 取消确认 | 用户点击取消时,开关回退到之前的状态,不执行任何操作 |
|
||
|
||
#### 6.3.15 物料清单供应方式修改
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 物料清单子表每行「供应方式」列(el-select 组件) |
|
||
| 显示条件 | 计划已审核(APPROVED)且已完成BOM运算 |
|
||
| 可编辑范围 | **未下发状态下可修改供应方式** |
|
||
| 操作 | 选择新的供应方式后调用更新接口,成功后提示「修改成功」 |
|
||
| 选项 | 生产(PRODUCTION)、加工(MACHINING)、装配(ASSEMBLY)、委外(OUTSOURCE)、采购(PURCHASE) |
|
||
| 转委外按钮 | 供应方式旁可能存在「转委外」快捷按钮,点击直接将供应方式改为委外 |
|
||
|
||
---
|
||
|
||
## 7. 页面交互规则
|
||
|
||
### 7.1 列表页通用交互
|
||
|
||
| 序号 | 交互场景 | 交互规则 |
|
||
|------|----------|----------|
|
||
| 1 | 页面首次加载 | 默认以明细视图加载第1页数据,按单据日期降序排列 |
|
||
| 2 | 搜索操作 | 点击搜索按钮,重置pageNum=1,保持当前pageSize不变 |
|
||
| 3 | 单据编码点击 | 点击单据编码列蓝色链接:可**弹窗展示关联单据**(物料清单MBOM、采购计划单等),或路由跳转查看页;弹窗标题为「{单据编码} - {产品/物料名称}」 |
|
||
| 4 | 状态标签 | 用el-tag组件渲染:开立=info(灰), 审核=success(绿) |
|
||
| 5 | 空数据状态 | 列表无数据时显示空状态图标和"暂无数据"文字 |
|
||
| 6 | 视图切换 | 切换视图时保留搜索条件中的公共字段(单据编码、日期范围),清空视图特有字段 |
|
||
| 7 | 底部汇总 | 两种视图均显示"计划数量:{total}"汇总 |
|
||
|
||
### 7.2 明细视图特有交互
|
||
|
||
| 序号 | 交互场景 | 交互规则 |
|
||
|------|----------|----------|
|
||
| 1 | 快捷筛选标签 | 点击产品类别标签,按该类别筛选;再次点击取消筛选 |
|
||
| 2 | 无批量操作 | 明细视图无复选框,不支持批量选择和批量操作 |
|
||
| 3 | 物料名称/物料清单点击 | 点击**物料名称**或**物料清单**列,打开「物料清单」弹窗:标题为「{计划编码} {物料编码} {物料名称} {数量} - 物料清单」,表格列:序号、物料编码、物料名称、主计量、需求量、可用量、领用量、供应方式;可用量为负表示缺料;弹窗只读,仅有关闭按钮 |
|
||
| 4 | 物料清单列 | 显示BOM运算状态文字("BOM运算""BOM运算,BOM补料""生产补料"或空) |
|
||
|
||
### 7.3 单据视图特有交互
|
||
|
||
| 序号 | 交互场景 | 交互规则 |
|
||
|------|----------|----------|
|
||
| 1 | 批量选择 | 复选框勾选多条记录后,批量操作按钮(删除/审核/反审核)启用;未勾选时置灰disabled |
|
||
| 2 | 操作列 | 所有状态显示查看+编辑+删除三个按钮,但已审核状态的删除操作会被后端拦截 |
|
||
| 3 | 单条删除 | 点击行操作列「删除」→ 确认弹窗 → 调用删除接口 → 刷新列表 |
|
||
| 4 | 批量删除 | 勾选记录 → 点击工具栏「删除」→ 校验状态 → 确认弹窗 → 调用删除接口 |
|
||
| 5 | 批量审核 | 勾选记录 → 点击工具栏「审核」→ 校验状态和明细 → 确认弹窗 → 调用审核接口 |
|
||
| 6 | 批量反审核 | 勾选记录 → 点击工具栏「反审核」→ 校验状态和下游引用 → 确认弹窗 → 调用反审核接口 |
|
||
|
||
### 7.4 新增/编辑页交互
|
||
|
||
| 序号 | 交互场景 | 交互规则 |
|
||
|------|----------|----------|
|
||
| 1 | 页面加载(新增) | 自动填充:单据编码(调接口获取)、单据日期(当天)、操作员(当前用户)、业务类型(生产计划)、业务状态(正常)、生产总量(0.00) |
|
||
| 2 | 页面加载(编辑) | 调用详情接口加载计划表头、订单信息、物料清单、补料清单数据 |
|
||
| 3 | 引入订单 | 点击「引入」按钮 → 打开订单选择弹窗 → 勾选订单明细行 → 确认引入 → 自动填充订单信息子表和表头关联字段 |
|
||
| 4 | 引入后修改数量 | 引入的订单物料数量可以修改,支持分批次计划(如订单100台,本次计划50台) |
|
||
| 5 | 选择BOM | 引入订单后,点击「订单BOM」的「选择」按钮 → 弹窗显示该产品的所有审核BOM版本 → 选择一个BOM → 自动填充版本号和版本说明 |
|
||
| 6 | 保存操作 | 前端表单校验 → 校验通过调用保存接口 → 成功提示 → 页面变为编辑模式 |
|
||
| 7 | 审核操作 | 需先保存 → 确认弹窗 → 调用审核接口 → 成功后页面变只读,出现BOM运算按钮 |
|
||
| 8 | BOM运算 | 审核后点击BOM运算 → 后端展开BOM → 物料清单子表填充数据 → 可进行下发、齐套检查 |
|
||
| 8a | **BOM重新运算** | 当物料清单已有数据时,点击BOM运算 → 弹出确认框「确认是否重新执行物料计算?」(warning) → 确认后调用接口 → 后端删除MBOM后重新生成 → 刷新物料清单 |
|
||
| 9 | 反审核操作 | 确认弹窗 → 调用反审核接口 → 成功后页面变可编辑(需检查无下游引用) |
|
||
| 10 | 表头折叠 | 点击「收起」→ 表头表单区域收起,仅显示子表明细;点击「展开」→ 恢复 |
|
||
| 11 | 离开页面 | 有未保存修改时,触发 `beforeRouteLeave` 提示确认 |
|
||
| 12 | 生产总量自动计算 | 订单信息中物料数量的合计值自动更新到表头「生产总量」字段 |
|
||
| 13 | **查看模式物料清单编辑** | 计划已审核(APPROVED)且已完成BOM运算后,即使在查看模式下,物料清单子表的供应方式、下发车间、下发日期、下发开关仍可编辑操作 |
|
||
| 14 | **撤销下发** | 物料清单行已下发(ISSUED)状态时,切换下发开关为OFF → 弹出确认框「撤销下发」(warning) → 确认后调用撤销下发接口 → issueStatus 清空,保留车间和日期 → 刷新计划数据 |
|
||
| 15 | **已下发行编辑限制** | 已下发(ISSUED)状态的物料清单行:「下发车间」下拉框禁用(disabled),尝试修改提示「下发状态下无法修改生产车间」;「下发日期」日期选择器禁用(disabled),尝试修改提示「下发状态下无法修改生产日期」 |
|
||
| 16 | **供应方式修改** | 物料清单行的供应方式在未下发状态下可修改,修改后调用更新接口,成功提示「修改成功」 |
|
||
|
||
### 7.5 表单校验规则
|
||
|
||
#### 表头校验
|
||
|
||
| 字段 | 规则 | 提示信息 |
|
||
|------|------|----------|
|
||
| planCode | 必填 | 单据编码不能为空 |
|
||
| planDate | 必填 | 单据日期不能为空 |
|
||
| businessStatus | 必填 | 业务状态不能为空 |
|
||
|
||
#### 订单信息校验
|
||
|
||
| 字段 | 规则 | 提示信息 |
|
||
|------|------|----------|
|
||
| itemCode | 必填 | 请引入订单物料 |
|
||
| quantity | 必填,min=0.01 | 数量必须大于0 |
|
||
|
||
#### 业务校验
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 至少一行订单明细 | 保存时至少要有一条订单物料行 |
|
||
| 审核前需保存 | 审核操作前需先保存当前数据 |
|
||
| BOM运算前需审核 | BOM运算只能在审核后执行 |
|
||
| BOM运算前需选择BOM | 必须先选择产品BOM后才能执行BOM运算 |
|
||
|
||
### 7.6 弹窗与对话框交互(用户操作与弹窗对应关系)
|
||
|
||
以下为根据目标ERP系统采集的**按钮/链接点击后弹窗**交互说明,便于前端实现与设计对齐。
|
||
|
||
#### 7.6.1 列表页 - 点击「单据编码」→ 关联单据弹窗
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单-单据详情.png`(点击单据编码后详情/关联信息)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发 | 列表页(明细视图或单据视图)点击表格中「单据编码」蓝色链接 |
|
||
| 弹窗标题 | 「{单据编码} - {产品/物料名称}」,如:SCJH000084 - 组装电脑 |
|
||
| 弹窗宽度 | 建议 900px~1000px |
|
||
| 内容 | 表格展示**关联单据**(该计划单下游生成的单据) |
|
||
| 表格列 | 序号、单据编码、单据类型、单据日期、单据状态、业务类型、业务状态 |
|
||
| 数据示例 | 物料清单(MBOM)、采购计划单(CGJH) 等 |
|
||
| 操作 | 仅右上角关闭按钮;无确定/取消,只读浏览 |
|
||
|
||
#### 7.6.2 列表页 - 点击「物料名称」/「物料清单」→ 物料清单明细弹窗
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单-列表-点击物料名称弹窗.png`
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发 | 明细视图表格中点击「物料名称」或「物料清单」列(某一行) |
|
||
| 弹窗标题 | 「{计划编码} {物料编码} {物料名称} {数量} - 物料清单」,如:SCJH000106 0102000001 简易机 1 - 物料清单 |
|
||
| 弹窗宽度 | 建议 1000px |
|
||
| 内容 | 该计划行对应的 BOM 展开明细(需求量、可用量、领用量) |
|
||
| 表格列 | 序号、物料编码、物料名称、主计量、需求量、可用量、领用量、供应方式 |
|
||
| 业务说明 | 可用量为负表示缺料,需采购或补料 |
|
||
| 操作 | 仅右上角关闭按钮;只读,无编辑与确定/取消 |
|
||
|
||
#### 7.6.3 表单页 - 订单信息「引入」→ 订单信息选择弹窗
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单新增-引入业务订单.png`
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发 | 新增/编辑页「订单信息」区域点击「引入」按钮 |
|
||
| 弹窗标题 | 「订单信息」 |
|
||
| 弹窗宽度 | 建议 1000px,高度最大 70vh |
|
||
| 搜索区 | 销售单号、物料编码、物料名称、开始日期、结束日期;按钮「搜索」「查询所有」 |
|
||
| 列表结构 | **层级表格**:父行=销售订单(业务人员、业务单号、订单交期、交期状态、业务类型、备注),可展开;子行=订单明细(物料编码、物料名称、主计量、数量、包装件数、备注) |
|
||
| 选择方式 | 可勾选**多条订单**或**多条订单明细行**(复选框在父行或子行,依产品实现);支持多选后一次引入 |
|
||
| 底部 | 分页(共 N 条、100条/页、上一页/下一页、前往 N 页)、「确定」「取消」 |
|
||
| 确定后 | 将所选订单明细合并写入表单「订单信息」子表,并填充表头:业务人员、业务单号、订单交期(取第一个选中订单或合并规则) |
|
||
|
||
#### 7.6.4 表单页 - 订单BOM「选择」→ 选择EBOM单弹窗
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单新增-订单BOM-选择EBOM单.png`
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发 | 新增/编辑页表头「订单BOM」旁点击「选择」按钮 |
|
||
| 弹窗标题 | 「选择EBOM单」 |
|
||
| 弹窗宽度 | 建议 1000px,高度最大 70vh |
|
||
| 列表列 | EBOM单号、物料编码、物料名称、母件基数、版本号、版本说明、图纸号、单据日期、复选框(单选) |
|
||
| 行展开 | 主行可展开查看该 EBOM 的**子件明细**(物料编码、物料名称、主计量、领料方式、分子、固定用量、备注) |
|
||
| 分页 | 共 N 条、100条/页、上一页/下一页、前往 N 页 |
|
||
| 底部按钮 | 「确定」「取消」 |
|
||
| 确定后 | 将选中 EBOM 的 EBOM单号/显示名、版本号、版本说明回填到表头「订单BOM」「版本号」「版本说明」 |
|
||
|
||
#### 7.6.5 表单页 - 订单BOM「查看」→ EBOM详情弹窗
|
||
|
||
> 截图参考: `screenshot/生产计划-生产计划单详情-订单BOM查看弹窗.png`
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 触发 | 查看/编辑页表头「订单BOM」已填写时,显示「查看」按钮,点击打开 |
|
||
| 弹窗标题 | 「{EBOM单号}-{业务类型}」,如:EBOM000781-机械BOM |
|
||
| 弹窗宽度 | 建议 900px |
|
||
| 内容结构 | **EBOM信息**:EBOM单号、业务类型、物料编码、物料名称;**属性**:母件基数、图纸号、版本号、版本说明;**BOM组件表**:序号、物料编码、物料名称、主计量、用料方式、分子、固定用量(可为开关) |
|
||
| 操作 | 只读查看,仅关闭按钮;若存在固定用量等可操作项,按产品定义为仅查看或可编辑 |
|
||
|
||
#### 7.6.6 表单页 - 订单信息「BOM计算」「物料清单」按钮(审核后)
|
||
|
||
> 物料清单弹窗截图: `screenshot/生产计划-生产计划单详情-物料清单点击后弹窗.png`;独立页截图: `screenshot/生产计划-生产计划单详情-物料清单单据编码后打开页面.png`
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 显示条件 | 计划已审核(APPROVED)后,订单信息区域**上方**显示「BOM计算」「物料清单」按钮(替代或与「引入」并存逻辑依产品而定:新增/未引入时显示引入,已审核且已有订单行时可显示 BOM计算、物料清单) |
|
||
| BOM计算 | 点击后调用 BOM 运算接口,刷新「物料清单」「补料清单」子表数据 |
|
||
| 物料清单 | 点击后可打开物料清单汇总弹窗或跳转物料清单(MBOM)列表/详情,依产品实现 |
|
||
|
||
#### 7.6.7 表单页 - 物料清单子表「操作」列(齐套检查 / BOM补料 / 生产补料)
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 显示位置 | 计划已审核且已执行 BOM 运算后,「物料清单」子表每行「操作」列 |
|
||
| 操作项 | **√ 齐套检查**:检查该行物料库存齐套情况,可弹窗或行内展示可用量、缺料数;**BOM补料**:打开 BOM 补料弹窗,为该计划/物料追加补料;**生产补料**:打开生产补料弹窗,录入生产补料 |
|
||
| 交互 | 齐套检查可为弹窗只读;BOM补料/生产补料为表单弹窗,提交后更新「补料清单」子表 |
|
||
|
||
#### 7.6.8 表单页 - 记录导航「上一条」「下一条」
|
||
|
||
| 项目 | 说明 |
|
||
|------|------|
|
||
| 位置 | 表头区域右侧或订单信息区块上方 |
|
||
| 显示条件 | 查看/编辑单条计划时,当存在多条计划记录时显示 |
|
||
| 操作 | 「上一条」:加载上一条计划详情并刷新表单;「下一条」:加载下一条计划详情并刷新表单;顺序可按计划编码或单据日期,与列表查询条件一致 |
|
||
|
||
---
|
||
|
||
## 8. 接口调用说明
|
||
|
||
### 8.1 接口总览
|
||
|
||
| 序号 | 功能 | 方法 | 路径 | 说明 |
|
||
|------|------|------|------|------|
|
||
| 1 | 查询计划列表(明细) | GET | /mp/plan/list | 分页查询,明细视图(含订单物料维度) |
|
||
| 2 | 查询计划列表(单据) | GET | /mp/plan/order/list | 分页查询,单据视图(计划单维度) |
|
||
| 3 | 获取计划详情 | GET | /mp/plan/{planId} | 获取单条计划表头+订单信息+物料清单+补料清单 |
|
||
| 4 | 新增计划 | POST | /mp/plan | 创建新计划 |
|
||
| 5 | 修改计划 | PUT | /mp/plan | 更新计划表头+订单信息 |
|
||
| 6 | 删除计划 | DELETE | /mp/plan/{planIds} | 批量删除计划 |
|
||
| 7 | 审核计划 | PUT | /mp/plan/approve/{planId} | 审核单据 |
|
||
| 8 | 反审核计划 | PUT | /mp/plan/unapprove/{planId} | 反审核单据 |
|
||
| 9 | 获取计划编码 | GET | /mp/plan/genCode | 生成新的计划编码 |
|
||
| 10 | BOM运算 | POST | /mp/plan/bomCalc/{planId} | 执行BOM运算展开物料清单 |
|
||
| 11 | BOM补料 | POST | /mp/plan/supplement/{planId} | 添加补料物料 |
|
||
| 12 | 下发车间 | PUT | /mp/plan/issue/{mbomId} | 下发物料清单到车间 |
|
||
| 13 | 齐套检查 | GET | /mp/plan/kitCheck/{planId} | 检查物料齐套情况 |
|
||
| 14 | 导出计划 | GET | /mp/plan/export | 导出计划列表到Excel |
|
||
| 15 | 查询可引入订单 | GET | /sl/order/available | 获取可引入的销售订单明细 |
|
||
| 16 | 查询BOM列表 | GET | /rd/ebom/listByItem/{itemId} | 获取指定产品的BOM列表 |
|
||
| 17 | **撤销下发** | PUT | /erp/mp/mbom/revoke-issue/{mbomId} | 撤销已下发的物料清单行 |
|
||
|
||
**说明(与MOM对接):** 上表路径为 **ERP 侧接口**(可为网关前缀 `/erp` 下的 `/erp/mp/plan` 等),对应数据库表为 **erp_mp_plan**、**erp_mp_plan_line**、**erp_mp_mbom**、**erp_mp_mbom_line**(表与字段以《erp数据库设计-数据字典》及 DDL 为准)。生产计划单页面的增删改查、审核、BOM运算、齐套检查等均调用上述 ERP 接口。**MOM 侧**(见《MOM系统数据升级方案-销售采购生产计划》):计划审核后可 1:1 同步到 MOM 的 **erp_mp_*** 镜像表;**下发车间** 时由后端按供应方式拆解写入 `pro_workorder`、`pro_workorder_bom`(plan_id、plan_code、bom_version、delivery_date、mbom_id、mbom_code 等见映射表 5.4 与《erp与mom数据库表映射对照表》)。若前端或中台需**直接调用 MOM API**,查询计划层可用 MOM 的 erp_mp_* 镜像表接口(若已实施);查询工单列表、工单报工等使用 MOM 的 pro_workorder 相关接口与字段(workorder_code、source_code=plan_code、status 枚举 CONFIRMED/PRODUCING/FINISHED 等)。
|
||
|
||
### 8.2 接口详细说明
|
||
|
||
#### 8.2.1 查询计划列表(明细视图)
|
||
|
||
```
|
||
GET /mp/plan/list
|
||
```
|
||
|
||
**请求参数:**
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| pageNum | integer | 否 | 页码,默认1 |
|
||
| pageSize | integer | 否 | 每页数,默认100 |
|
||
| planCode | string | 否 | 单据编码(模糊) |
|
||
| salesOrderCode | string | 否 | 销售订单号(模糊) |
|
||
| itemCode | string | 否 | 物料编码(模糊) |
|
||
| itemName | string | 否 | 物料名称(模糊) |
|
||
| beginDate | string | 否 | 开始日期 (yyyy-MM-dd) |
|
||
| endDate | string | 否 | 结束日期 (yyyy-MM-dd) |
|
||
| workType | integer | 否 | 工作类型,0=生产计划单 |
|
||
|
||
**响应示例:**
|
||
|
||
```json
|
||
{
|
||
"total": 101,
|
||
"rows": [
|
||
{
|
||
"planId": 105,
|
||
"planCode": "SCJH000105",
|
||
"planDate": "2026-02-04",
|
||
"status": "APPROVED",
|
||
"salesUserName": "张键",
|
||
"salesOrderCode": "XSDD000090",
|
||
"deliveryDate": "2026-02-06",
|
||
"itemId": 100,
|
||
"itemCode": "0102000001",
|
||
"itemName": "简易机",
|
||
"unitName": "台",
|
||
"totalQuantity": 100.00,
|
||
"mbomStatus": "BOM运算",
|
||
"businessStatus": "正常",
|
||
"approveDate": "2026-02-06"
|
||
}
|
||
],
|
||
"code": 200,
|
||
"msg": "查询成功",
|
||
"totalQuantitySum": 32434255
|
||
}
|
||
```
|
||
|
||
#### 8.2.2 获取计划详情
|
||
|
||
```
|
||
GET /mp/plan/{planId}
|
||
```
|
||
|
||
**响应示例:**
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"data": {
|
||
"planId": 105,
|
||
"planCode": "SCJH000105",
|
||
"planDate": "2026-02-04",
|
||
"status": "APPROVED",
|
||
"businessType": "PRODUCTION",
|
||
"businessStatus": "NORMAL",
|
||
"salesOrderId": 90,
|
||
"salesOrderCode": "XSDD000090",
|
||
"salesUserName": "张键",
|
||
"deliveryDate": "2026-02-06",
|
||
"bomId": 50,
|
||
"bomVersion": "1.0",
|
||
"bomDesc": "",
|
||
"totalQuantity": 100.00,
|
||
"operatorName": "njrsun",
|
||
"approverName": "njrsun",
|
||
"approveDate": "2026-02-06",
|
||
"remark": "",
|
||
"lines": [
|
||
{
|
||
"lineId": 1001,
|
||
"planId": 105,
|
||
"lineNo": 1,
|
||
"itemId": 100,
|
||
"itemCode": "0102000001",
|
||
"itemName": "简易机",
|
||
"unitName": "台",
|
||
"quantity": 100.00,
|
||
"qualityReq": "",
|
||
"remark": ""
|
||
}
|
||
],
|
||
"mbomList": [
|
||
{
|
||
"mbomId": 201,
|
||
"mbomCode": "MBOM000169",
|
||
"planId": 105,
|
||
"status": "APPROVED",
|
||
"businessType": "PRODUCTION",
|
||
"itemId": 200,
|
||
"itemCode": "0301000001",
|
||
"itemName": "底架组件",
|
||
"unitName": "套",
|
||
"supplyType": "ASSEMBLY",
|
||
"productionQty": 100.00,
|
||
"issueStatus": "NOT_ISSUED",
|
||
"workshopName": ""
|
||
}
|
||
],
|
||
"supplementList": []
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 8.2.3 新增计划
|
||
|
||
```
|
||
POST /mp/plan
|
||
```
|
||
|
||
**请求体:**
|
||
|
||
```json
|
||
{
|
||
"planDate": "2026-02-06",
|
||
"businessStatus": "NORMAL",
|
||
"salesOrderId": 90,
|
||
"salesOrderCode": "XSDD000090",
|
||
"salesUserName": "张键",
|
||
"deliveryDate": "2026-02-06",
|
||
"bomId": 50,
|
||
"bomVersion": "1.0",
|
||
"remark": "",
|
||
"lines": [
|
||
{
|
||
"lineNo": 1,
|
||
"itemId": 100,
|
||
"itemCode": "0102000001",
|
||
"itemName": "简易机",
|
||
"unitName": "台",
|
||
"quantity": 100.00,
|
||
"qualityReq": ""
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 8.2.4 修改计划
|
||
|
||
```
|
||
PUT /mp/plan
|
||
```
|
||
|
||
**请求体:** 同新增,但包含 `planId` 和各明细行的 `lineId`。
|
||
|
||
**注意:** 修改时采用全量提交策略,后端根据lineId判断新增/修改/删除。
|
||
|
||
#### 8.2.5 删除计划
|
||
|
||
```
|
||
DELETE /mp/plan/{planIds}
|
||
```
|
||
|
||
**业务规则:**
|
||
- 仅允许删除开立(DRAFT)状态的计划
|
||
- 删除时同时删除订单明细行记录
|
||
- 逻辑删除(del_flag = 1)
|
||
|
||
#### 8.2.6 审核计划
|
||
|
||
```
|
||
PUT /mp/plan/approve/{planId}
|
||
```
|
||
|
||
**业务规则:**
|
||
- 仅开立(DRAFT)状态允许审核
|
||
- 至少有一条订单明细
|
||
- 审核后自动填充审核员和审核日期
|
||
- status → APPROVED
|
||
|
||
#### 8.2.7 反审核计划
|
||
|
||
```
|
||
PUT /mp/plan/unapprove/{planId}
|
||
```
|
||
|
||
**业务规则:**
|
||
- 仅审核(APPROVED)状态允许反审核
|
||
- 需校验是否已执行BOM运算,若已执行则需先清除物料清单
|
||
- 需校验物料清单中是否有已下发的记录
|
||
- 反审核后清空审核员和审核日期
|
||
- status → DRAFT
|
||
|
||
#### 8.2.8 BOM运算
|
||
|
||
```
|
||
POST /mp/plan/bomCalc/{planId}
|
||
```
|
||
|
||
**业务规则:**
|
||
- 仅已审核(APPROVED)状态且已选择BOM的计划可执行
|
||
- 展开产品BOM,按供应方式(生产、加工、装配、委外、采购)分类生成物料清单
|
||
- 自动计算各物料的需求数量
|
||
- 如存在孪生物料,按优先级和库存情况自动替换
|
||
|
||
**响应:**
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"msg": "BOM运算完成",
|
||
"data": {
|
||
"mbomCount": 5,
|
||
"totalItems": 12
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 8.2.9 下发车间
|
||
|
||
```
|
||
PUT /mp/plan/issue/{mbomId}
|
||
```
|
||
|
||
**业务规则:**
|
||
- 将物料清单行下发到指定车间
|
||
- 下发后在MOM系统创建对应的生产工单
|
||
- issueStatus → ISSUED
|
||
|
||
#### 8.2.10 撤销下发
|
||
|
||
```
|
||
PUT /erp/mp/mbom/revoke-issue/{mbomId}
|
||
```
|
||
|
||
**请求参数:**
|
||
|
||
| 参数名 | 类型 | 必填 | 说明 |
|
||
|--------|------|------|------|
|
||
| mbomId | long | 是 | 物料清单ID(路径参数) |
|
||
|
||
**业务规则:**
|
||
- 仅允许已下发(ISSUED)状态的物料清单行执行撤销操作
|
||
- 撤销后 issueStatus 清空(设为 null)
|
||
- **保留** workshopId、workshopName、issueDate 等字段,方便用户调整后重新下发
|
||
- 自动更新 update_time 时间戳
|
||
|
||
**响应示例:**
|
||
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"msg": "撤销下发成功"
|
||
}
|
||
```
|
||
|
||
**后端实现要点:**
|
||
- Controller 层: `MpMbomController` 新增 `PUT /erp/mp/mbom/revoke-issue/{mbomId}`
|
||
- Service 接口: `IMpMbomService` 新增 `revokeIssue(Long mbomId)` 方法
|
||
- Service 实现: `MpMbomServiceImpl` 实现撤销逻辑(校验 MBOM 存在且为 ISSUED 状态 → 清空 issueStatus → 更新时间戳)
|
||
|
||
#### 8.2.11 导出计划
|
||
|
||
```
|
||
GET /mp/plan/export
|
||
```
|
||
|
||
**请求参数:** 同查询列表参数。
|
||
|
||
**响应:** 返回Excel文件流
|
||
|
||
---
|
||
|
||
## 9. 状态流转
|
||
|
||
### 9.1 单据状态流转图
|
||
|
||
```
|
||
┌──────────────┐
|
||
│ │
|
||
┌─────────► 开立(DRAFT) ◄──────────┐
|
||
│ │ │ │
|
||
│ └──────┬───────┘ │
|
||
│ │ │
|
||
│ [审核操作] [反审核操作]
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌──────────────┐ │
|
||
│ │ │ │
|
||
└──────────┤ 审核(APPROVED)├───────────┘
|
||
│ │
|
||
└──────┬───────┘
|
||
│
|
||
[BOM运算]
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ │
|
||
│ BOM运算完成 │
|
||
│ │
|
||
└──────┬───────┘
|
||
│
|
||
[下发车间]
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ │
|
||
│ 生产执行中 │
|
||
│ │
|
||
└──────────────┘
|
||
```
|
||
|
||
### 9.2 状态说明
|
||
|
||
| 状态 | 编码 | 可执行操作 | 说明 |
|
||
|------|------|-----------|------|
|
||
| 开立 | DRAFT | 编辑、保存、删除、审核 | 初始状态,可自由编辑 |
|
||
| 审核 | APPROVED | 查看、反审核、BOM运算、下发、齐套检查、导出 | 生效状态,不可编辑表头和订单信息 |
|
||
|
||
### 9.3 BOM运算状态
|
||
|
||
| 状态 | 说明 |
|
||
|------|------|
|
||
| 未运算 | 审核后初始状态,物料清单为空 |
|
||
| BOM运算 | 已执行BOM运算,物料清单已展开 |
|
||
| BOM运算,BOM补料 | 已执行BOM运算且有补料记录 |
|
||
|
||
### 9.4 物料清单下发状态
|
||
|
||
| 状态 | 编码 | 说明 |
|
||
|------|------|------|
|
||
| 未下发 | NOT_ISSUED | 初始状态,物料清单行尚未下发到车间 |
|
||
| 已下发 | ISSUED | 已下发到车间,MOM系统已创建对应工单 |
|
||
| 部分下发 | PARTIAL_ISSUED | 部分数量已下发 |
|
||
|
||
---
|
||
|
||
## 10. 业务规则
|
||
|
||
### 10.1 编码规则
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 前缀 | SCJH |
|
||
| 流水号 | 6位数字,不足补零 |
|
||
| 格式 | SCJH000001, SCJH000002, ... |
|
||
| 生成方式 | 后端自动生成,不可手动修改 |
|
||
|
||
### 10.2 引入订单规则
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 来源 | 仅可引入已审核的销售订单/备货订单中供货方式为"计划生产"的物料 |
|
||
| 数量限制 | 引入数量不能超过订单可用数量(订单数量 - 已被其他计划引入数量) |
|
||
| 数量可修改 | 引入后可修改数量,支持分批次计划 |
|
||
| 多订单引入 | 同一计划单可引入多个销售订单的物料(一般为同一产品的不同订单) |
|
||
| 重复引入 | 已引入的订单行不允许重复引入 |
|
||
|
||
### 10.3 BOM运算规则
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 前置条件 | 计划已审核、已选择产品BOM |
|
||
| 展开方式 | 按BOM层级逐级展开,直到最底层物料 |
|
||
| 供应分类 | 按物料供应方式(生产、加工、装配、委外、采购)分类生成物料清单 |
|
||
| 数量计算 | 根据BOM用量比例和计划数量自动计算各物料需求量 |
|
||
| 孪生物料 | 如配置了孪生物料(可替换物料),按优先级和库存可用量自动选择 |
|
||
| 重复运算 | 可重新执行BOM运算,前端弹出确认对话框「确认是否重新执行物料计算?」 |
|
||
| **重新运算后端逻辑** | 后端在创建新MBOM前,先查询该计划下已有的MBOM记录:**删除未下发(非ISSUED)状态的MBOM及其明细行(mbom_line)**,防止产生重复数据;**已下发(ISSUED)的MBOM保留不动**;仅为没有已下发MBOM对应的计划明细行重新创建MBOM |
|
||
|
||
### 10.4 下发规则
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| 下发顺序 | 通常先下发委外件→加工件→装配件→最后产成品 |
|
||
| 齐套检查 | 下发前建议执行齐套检查,确认物料库存充足 |
|
||
| 下发前置 | 下发前必须已选择下发车间,否则提示「请先选择下发车间」并阻止下发 |
|
||
| 部分下发 | 支持部分数量下发 |
|
||
| 下发结果 | 下发后在MOM系统自动创建生产工单 |
|
||
| **撤销下发** | 已下发(ISSUED)的物料清单行可撤销下发:前端弹出确认对话框「撤销下发」;确认后调用 `PUT /erp/mp/mbom/revoke-issue/{mbomId}`;撤销后 issueStatus 清空(设为 null),但**保留**下发车间和下发日期信息,用户可调整后重新下发 |
|
||
| **已下发行编辑限制** | 已下发(ISSUED)状态的物料清单行:「下发车间」和「下发日期」禁止修改(el-select/el-date-picker disabled),尝试修改分别提示「下发状态下无法修改生产车间」和「下发状态下无法修改生产日期」;「供应方式」不受限制,可随时修改 |
|
||
|
||
### 10.5 下游引用规则
|
||
|
||
| 引用场景 | 影响 |
|
||
|----------|------|
|
||
| 已执行BOM运算 | 反审核前需先清除物料清单 |
|
||
| 物料清单已下发 | 不允许反审核、不允许删除 |
|
||
| 已生成采购计划 | 需关注采购计划联动 |
|
||
|
||
---
|
||
|
||
## 11. 前端组件设计
|
||
|
||
### 11.1 文件结构
|
||
|
||
```
|
||
src/
|
||
├── api/
|
||
│ └── mp/
|
||
│ └── plan.js # 生产计划单相关API接口定义
|
||
├── views/
|
||
│ └── mp/
|
||
│ └── plan/
|
||
│ ├── index.vue # 列表页入口(含明细视图+单据视图切换)
|
||
│ ├── list.vue # 列表页实现组件
|
||
│ ├── form.vue # 新增/编辑/查看页
|
||
│ └── components/
|
||
│ ├── DetailViewTable.vue # 明细视图表格组件
|
||
│ ├── DocumentViewTable.vue # 单据视图表格组件
|
||
│ ├── PlanHeaderForm.vue # 表头表单组件
|
||
│ ├── OrderLineTable.vue # 订单信息子表组件(可编辑)
|
||
│ ├── MbomTable.vue # 物料清单子表组件(只读)
|
||
│ ├── SupplementTable.vue # 补料清单子表组件(只读)
|
||
│ ├── OrderSelectDialog.vue # 销售订单选择弹窗组件
|
||
│ └── BomSelectDialog.vue # BOM选择弹窗组件
|
||
```
|
||
|
||
### 11.2 API接口文件
|
||
|
||
```javascript
|
||
// src/api/mp/plan.js
|
||
import request from '@/utils/request'
|
||
|
||
// 查询计划列表(明细视图)
|
||
export function listPlan(query) {
|
||
return request({
|
||
url: '/mp/plan/list',
|
||
method: 'get',
|
||
params: query
|
||
})
|
||
}
|
||
|
||
// 查询计划列表(单据视图)
|
||
export function listPlanOrder(query) {
|
||
return request({
|
||
url: '/mp/plan/order/list',
|
||
method: 'get',
|
||
params: query
|
||
})
|
||
}
|
||
|
||
// 获取计划详情
|
||
export function getPlan(planId) {
|
||
return request({
|
||
url: '/mp/plan/' + planId,
|
||
method: 'get'
|
||
})
|
||
}
|
||
|
||
// 新增计划
|
||
export function addPlan(data) {
|
||
return request({
|
||
url: '/mp/plan',
|
||
method: 'post',
|
||
data: data
|
||
})
|
||
}
|
||
|
||
// 修改计划
|
||
export function updatePlan(data) {
|
||
return request({
|
||
url: '/mp/plan',
|
||
method: 'put',
|
||
data: data
|
||
})
|
||
}
|
||
|
||
// 删除计划
|
||
export function delPlan(planIds) {
|
||
return request({
|
||
url: '/mp/plan/' + planIds,
|
||
method: 'delete'
|
||
})
|
||
}
|
||
|
||
// 审核计划
|
||
export function approvePlan(planId) {
|
||
return request({
|
||
url: '/mp/plan/approve/' + planId,
|
||
method: 'put'
|
||
})
|
||
}
|
||
|
||
// 反审核计划
|
||
export function unapprovePlan(planId) {
|
||
return request({
|
||
url: '/mp/plan/unapprove/' + planId,
|
||
method: 'put'
|
||
})
|
||
}
|
||
|
||
// 获取计划编码
|
||
export function genPlanCode() {
|
||
return request({
|
||
url: '/mp/plan/genCode',
|
||
method: 'get'
|
||
})
|
||
}
|
||
|
||
// BOM运算
|
||
export function bomCalc(planId) {
|
||
return request({
|
||
url: '/mp/plan/bomCalc/' + planId,
|
||
method: 'post'
|
||
})
|
||
}
|
||
|
||
// BOM补料
|
||
export function supplement(planId, data) {
|
||
return request({
|
||
url: '/mp/plan/supplement/' + planId,
|
||
method: 'post',
|
||
data: data
|
||
})
|
||
}
|
||
|
||
// 下发车间
|
||
export function issueMbom(mbomId, data) {
|
||
return request({
|
||
url: '/mp/plan/issue/' + mbomId,
|
||
method: 'put',
|
||
data: data
|
||
})
|
||
}
|
||
|
||
// 齐套检查
|
||
export function kitCheck(planId) {
|
||
return request({
|
||
url: '/mp/plan/kitCheck/' + planId,
|
||
method: 'get'
|
||
})
|
||
}
|
||
|
||
// 导出计划
|
||
export function exportPlan(query) {
|
||
return request({
|
||
url: '/mp/plan/export',
|
||
method: 'get',
|
||
params: query,
|
||
responseType: 'blob'
|
||
})
|
||
}
|
||
|
||
// 查询可引入订单
|
||
export function listAvailableOrders(query) {
|
||
return request({
|
||
url: '/sl/order/available',
|
||
method: 'get',
|
||
params: query
|
||
})
|
||
}
|
||
|
||
// 查询产品BOM列表
|
||
export function listBomByItem(itemId) {
|
||
return request({
|
||
url: '/rd/ebom/listByItem/' + itemId,
|
||
method: 'get'
|
||
})
|
||
}
|
||
```
|
||
|
||
### 11.3 路由配置
|
||
|
||
```javascript
|
||
// src/router/modules/mp.js
|
||
{
|
||
path: '/mp',
|
||
component: Layout,
|
||
redirect: '/mp/plan/order/working',
|
||
name: 'Mp',
|
||
meta: { title: '生产计划', icon: 'el-icon-date' },
|
||
children: [
|
||
{
|
||
path: 'plan/order/working',
|
||
name: 'PlanOrder',
|
||
component: () => import('@/views/mp/plan/list'),
|
||
meta: { title: '生产计划单', icon: 'el-icon-document' }
|
||
},
|
||
{
|
||
path: 'plan/orderadd',
|
||
name: 'PlanOrderAdd',
|
||
component: () => import('@/views/mp/plan/form'),
|
||
meta: { title: '新增生产计划单', activeMenu: '/mp/plan/order/working' },
|
||
hidden: true
|
||
},
|
||
{
|
||
path: 'plan/orderedit/:planId',
|
||
name: 'PlanOrderEdit',
|
||
component: () => import('@/views/mp/plan/form'),
|
||
meta: { title: '编辑生产计划单', activeMenu: '/mp/plan/order/working' },
|
||
hidden: true
|
||
},
|
||
{
|
||
path: 'plan/orderview/:planId',
|
||
name: 'PlanOrderView',
|
||
component: () => import('@/views/mp/plan/form'),
|
||
meta: { title: '查看生产计划单', activeMenu: '/mp/plan/order/working' },
|
||
hidden: true
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 12. 数据模型
|
||
|
||
### 12.1 表关系图
|
||
|
||
```
|
||
┌──────────────────────────┐
|
||
│ erp_sl_order │
|
||
│ (销售订单) │
|
||
│ │
|
||
│ order_id (PK) │
|
||
│ order_code │
|
||
│ sales_user_name │
|
||
│ delivery_date │
|
||
└──────────┬───────────────┘
|
||
│ 1:N (引入)
|
||
▼
|
||
┌──────────────────────────┐ ┌──────────────────────────┐
|
||
│ erp_mp_plan │ │ erp_md_bom │
|
||
│ (生产计划单/表头) │────►│ (产品BOM) │
|
||
│ │ │ │
|
||
│ plan_id (PK) │ │ bom_id (PK) │
|
||
│ plan_code (UK) │ │ bom_code │
|
||
│ sales_order_id (FK)──────┼──► │ item_id │
|
||
│ bom_id (FK) ─────────────┼──► │ version │
|
||
│ status │ └──────────────────────────┘
|
||
│ total_quantity │
|
||
└──────────┬───────────────┘
|
||
│ 1:N
|
||
▼
|
||
┌──────────────────────────┐
|
||
│ erp_mp_plan_line │ ┌──────────────────────────┐
|
||
│ (计划明细/订单信息) │ │ erp_md_item │
|
||
│ │ │ (物料档案) │
|
||
│ line_id (PK) │ │ │
|
||
│ plan_id (FK) ────────────┼──► │ item_id (PK) │
|
||
│ item_id (FK) ────────────┼──► │ item_code │
|
||
│ quantity │ │ item_name │
|
||
│ quality_req │ │ supply_type │
|
||
└──────────────────────────┘ └──────────────────────────┘
|
||
|
||
┌──────────────────────────┐
|
||
│ erp_mp_mbom │
|
||
│ (物料清单/BOM运算结果) │
|
||
│ │
|
||
│ mbom_id (PK) │
|
||
│ mbom_code │
|
||
│ plan_id (FK) ────────────┼──► erp_mp_plan.plan_id
|
||
│ plan_code │
|
||
│ item_id (FK) ────────────┼──► erp_md_item.item_id
|
||
│ supply_type │
|
||
│ quantity │ (生产数量,与数据字典一致)
|
||
│ issue_status │
|
||
└──────────┬───────────────┘
|
||
│ 1:N
|
||
▼
|
||
┌──────────────────────────┐
|
||
│ erp_mp_mbom_line │
|
||
│ (物料清单明细) │
|
||
│ │
|
||
│ line_id (PK) │ (与 DDL 一致,主键为 line_id)
|
||
│ mbom_id (FK) ────────────┼──► erp_mp_mbom.mbom_id
|
||
│ mbom_code │
|
||
│ item_id (FK) ────────────┼──► erp_md_item.item_id (子件物料)
|
||
│ quantity │
|
||
│ base_qty, loss_rate │
|
||
│ supply_type │
|
||
└──────────────────────────┘
|
||
```
|
||
|
||
### 12.2 MOM系统表映射(与《erp与mom数据库表映射对照表》一致)
|
||
|
||
生产计划单页面涉及的 ERP 表与 MOM 表对应关系如下(含 **MOM 升级后** 的镜像表,见《MOM系统数据升级方案-销售采购生产计划》)。**对接 MOM API 时** 需区分:查询计划层数据可使用 MOM 侧 **erp_mp_*** 镜像表;查询工单/报工使用 **pro_workorder**、**pro_workorder_bom** 及字段名(详见映射表文档第 7 节)。
|
||
|
||
| ERP表名 | MOM 镜像表(1:1) | MOM 业务表(下发时) | 说明 |
|
||
|---------|-------------------|----------------------|------|
|
||
| erp_mp_plan | erp_mp_plan | pro_workorder | 计划审核后同步到镜像表;下发时拆解为工单,plan_code→source_code,并写入 plan_id、plan_code、bom_version、delivery_date、mbom_id 等 |
|
||
| erp_mp_plan_line | erp_mp_plan_line | pro_workorder_bom | 计划明细同步到镜像表;下发时 item_id→product_id 等 |
|
||
| erp_mp_mbom | erp_mp_mbom | pro_workorder (拆解) | 物料清单同步到镜像表;下发时按供应方式拆解为多个子工单 |
|
||
| erp_mp_mbom_line | erp_mp_mbom_line | pro_workorder_bom | 物料清单明细同步到镜像表;下发时写入工单BOM |
|
||
| erp_md_item | - | md_item | 物料档案 |
|
||
| erp_md_bom | - | md_bom | 产品BOM |
|
||
| erp_sl_order | erp_sl_order | - | 销售订单(MOM 镜像表存订单;工单通过 source_code 等关联) |
|
||
|
||
**MOM 侧关键字段(对接工单 API 时使用):** `pro_workorder.plan_id`、`pro_workorder.plan_code`、`pro_workorder.source_code`(= plan_code)、`pro_workorder.status`(CONFIRMED/PRODUCING/FINISHED 等)、`pro_workorder.workorder_type`(SELF/OUTSOURCE)、`pro_workorder.request_date`(= delivery_date)、`pro_workorder.delivery_date`、`pro_workorder.quantity`(= total_quantity)、`pro_workorder.bom_version`、`pro_workorder.mbom_id`、`pro_workorder.mbom_code`;`pro_workorder_bom.product_id`、`pro_workorder_bom.quantity` 等。完整字段与值转换见《erp与mom数据库表映射对照表》7.1~7.3 节。
|
||
|
||
### 12.3 数据同步方向
|
||
|
||
```
|
||
ERP (erp_mp_plan / erp_mp_plan_line / erp_mp_mbom / erp_mp_mbom_line)
|
||
│
|
||
├── 审核后 1:1 同步 ──► MOM 镜像表 (erp_mp_plan / erp_mp_plan_line / erp_mp_mbom / erp_mp_mbom_line)
|
||
│
|
||
└── 下发车间时 ──► MOM 业务表: erp_mp_plan/erp_mp_mbom → pro_workorder(按供应方式拆解)
|
||
erp_mp_plan_line/erp_mp_mbom_line → pro_workorder_bom
|
||
```
|
||
|
||
- **同步方向**: ERP → MOM(单向同步)
|
||
- **镜像表同步**: 计划审核后,ERP 表 1:1 同步到 MOM 同名 erp_mp_* 表(主键一致,见《MOM系统数据升级方案-销售采购生产计划》)
|
||
- **下发触发**: 物料清单**下发车间**时,由后端按供应方式拆解写入 pro_workorder、pro_workorder_bom(plan_id、plan_code、bom_version、delivery_date、mbom_id、mbom_code 等写入 pro_workorder)
|
||
- **同步方式**: 生产/加工/装配→SELF,委外→OUTSOURCE;采购不建工单,走采购计划/到货通知
|
||
- **接口约定**: 页面增删改查、审核、BOM 运算、齐套检查等调用 **ERP 接口**(操作 erp_mp_* 表);MOM 若已实施升级方案,可提供对 erp_mp_* 镜像表的查询接口;工单列表/报工等使用 MOM 的 pro_workorder、pro_workorder_bom 及对应 API
|
||
|
||
---
|
||
|
||
## 附录A: 状态标签颜色映射
|
||
|
||
```javascript
|
||
// 状态标签类型映射
|
||
const statusTagMap = {
|
||
'DRAFT': 'info', // 灰色 - 开立
|
||
'APPROVED': 'success' // 绿色 - 审核
|
||
}
|
||
|
||
// 状态标签文字映射
|
||
const statusLabelMap = {
|
||
'DRAFT': '开立',
|
||
'APPROVED': '审核'
|
||
}
|
||
|
||
// 业务状态映射
|
||
const businessStatusMap = {
|
||
'NORMAL': '正常',
|
||
'PAUSE': '暂停',
|
||
'CANCEL': '取消'
|
||
}
|
||
|
||
// 物料清单下发状态映射
|
||
const issueStatusMap = {
|
||
'NOT_ISSUED': '未下发',
|
||
'ISSUED': '已下发',
|
||
'PARTIAL_ISSUED': '部分下发'
|
||
}
|
||
|
||
// 供应方式映射
|
||
const supplyTypeMap = {
|
||
'PRODUCTION': '生产',
|
||
'MACHINING': '加工',
|
||
'ASSEMBLY': '装配',
|
||
'OUTSOURCE': '委外',
|
||
'PURCHASE': '采购'
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 附录B: 权限标识汇总
|
||
|
||
| 权限标识 | 说明 | 对应操作 | 所属视图 |
|
||
|----------|------|----------|----------|
|
||
| mp:plan:list | 列表查询 | 查看计划列表、视图切换 | 通用 |
|
||
| mp:plan:query | 详情查询 | 查看计划详情 | 单据视图 |
|
||
| mp:plan:add | 新增 | 新增计划单 | 通用 |
|
||
| mp:plan:edit | 编辑 | 修改计划单 | 单据视图 |
|
||
| mp:plan:remove | 删除 | 删除计划单 | 单据视图 |
|
||
| mp:plan:approve | 审核 | 审核计划单 | 单据视图 |
|
||
| mp:plan:unapprove | 反审核 | 反审核计划单 | 单据视图 |
|
||
| mp:plan:export | 导出 | 导出计划列表 | 明细视图 |
|
||
| mp:plan:bomCalc | BOM运算 | 执行BOM运算 | 编辑页 |
|
||
| mp:plan:issue | 下发 | 下发物料清单到车间 | 编辑页 |
|
||
| mp:plan:kitCheck | 齐套检查 | 检查物料齐套情况 | 编辑页 |
|
||
| mp:plan:supplement | 补料 | BOM补料操作 | 编辑页 |
|
||
|
||
---
|
||
|
||
## 附录C: 与产品BOM页面的关联说明
|
||
|
||
生产计划单页面与产品BOM页面存在紧密的业务关联:
|
||
|
||
| 关联点 | 说明 |
|
||
|--------|------|
|
||
| 选择BOM | 生产计划单中选择的「订单BOM」来自产品BOM页面创建的已审核BOM记录 |
|
||
| BOM运算 | BOM运算时读取选中BOM的物料清单,按层级展开为物料需求 |
|
||
| BOM版本 | 支持选择同一产品的不同BOM版本用于不同计划 |
|
||
| 数据流向 | 产品BOM(EBOM)→ 生产计划BOM运算 → 物料清单(MBOM)→ 下发车间 |
|
||
|
||
---
|
||
|
||
## 修订历史
|
||
|
||
| 版本 | 日期 | 修订内容 | 修订人 |
|
||
|------|------|----------|--------|
|
||
| 1.0.0 | 2026-02-06 | 初始版本,基于目标ERP系统采集分析,完整页面设计开发说明 | System |
|
||
| 1.1.0 | 2026-02-07 | 补充用户交互与弹窗:列表点击单据编码/物料名称弹窗、引入订单信息弹窗、选择EBOM单/EBOM详情弹窗、订单信息BOM计算与物料清单按钮、物料清单操作列(齐套检查/BOM补料/生产补料)、上一条/下一条、查看页顶部工具栏 | System |
|
||
| 1.2.0 | 2026-02-07 | 对齐《erp与mom数据库表映射对照表》:新增 5.4 与MOM表映射关系、8.1 接口与MOM对接说明、12.2/12.3 表映射与同步方向,便于与 MOM 系统 API 对接 | System |
|
||
| 1.3.0 | 2026-02-07 | 更新页面截图参考:全部引用改为项目 screenshot/ 目录下生产计划单相关截图;1.4 完善截图对照表并增加同模块相关截图;3.1/3.2、4.1/4.6/4.7、7.6 各节补充对应截图路径 | System |
|
||
| 1.4.0 | 2026-02-07 | 对齐 prd/db 数据库文档:5.1/5.2 表头与明细字段与《erp数据库设计-数据字典》及 DDL 一致(plan 表补 sales_user_id/operator_id/approver 等,total_quantity 18,4;plan_line 用 sales_line_id/track_code/unit_id,quantity 18,4,移除 supply_type);5.3 物料清单引用数据字典 8.2 与 DDL;5.4/12.2/12.3 补充 MOM 镜像表及下发链路;12.1 数据模型图 erp_mp_mbom 用 quantity、erp_mp_mbom_line 主键 line_id;8.1 接口说明与 MOM 对接描述更新;关联文档增加升级方案 | System |
|
||
| 1.5.0 | 2026-02-13 | 完善生产计划单MBOM功能:(1) 查看模式下物料清单可编辑——已审核计划在查看页支持修改供应方式、下发车间、下发日期、下发开关(canEditMbom 移除查看模式限制);(2) BOM重新运算——物料清单已有数据时增加确认对话框,后端删除未下发MBOM后重新生成,防止重复;(3) 撤销下发——新增 PUT /erp/mp/mbom/revoke-issue/{mbomId} 接口及前端确认交互,撤销后清空 issueStatus 但保留车间/日期信息;(4) 已下发行编辑限制——下发车间/下发日期在 ISSUED 状态下禁用并提示错误;(5) 供应方式修改成功提示「修改成功」;新增 6.3.14(下发/撤销下发开关)、6.3.15(供应方式修改)按钮说明,更新 4.4 物料清单子表列定义、7.4 交互规则、8.1/8.2.10 接口、10.3 BOM运算规则、10.4 下发规则 | System |
|