Files
my-mom-system/prd/采购管理.md

749 lines
35 KiB
Markdown
Raw Normal View History

2026-03-06 02:02:59 +08:00
# 采购管理模块 PRD复刻升阳云ERP
> 目标系统演示环境:`https://demo.rsun.vip`租户1001
>
> 账号:`admin` / 密码:`admin4321`
## 相关文档
| 文档 | 说明 |
|------|------|
| [采购管理-前端开发规范.md](./采购管理-前端开发规范.md) | UI组件规范、字段验证、API接口、技术栈 |
| [采购管理-数据模型.md](./采购管理-数据模型.md) | 数据库表结构、实体关系、视图设计 |
## 模块概述
### 业务定位
采购管理模块是 ERP 系统的核心业务模块之一,负责从供应商建档、采购订单、到货验收、采购入库、采购发票到退货的完整采购业务闭环管理。
### 核心业务流程
```
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 供应商档案 │───>│ 采购计划 │───>│ 采购订单 │───>│ 采购到货 │───>│ 采购入库 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ 采购发票 │ │ 采购退货 │
└──────────┘ └──────────┘
┌──────────┐
│ 应付结算 │
└──────────┘
```
### 单据流转关系
| 上游单据 | 当前单据 | 下游单据 |
|----------|----------|----------|
| - | 原料供应商 | 采购订单 |
| 生产计划/销售订单 | 采购计划 | 采购订单 |
| 采购计划 | 采购订单 | 采购到货单 |
| 采购订单 | 采购到货单 | 采购入库单 |
| 采购到货单 | 采购入库单 | 库存 |
| 采购到货单 | 采购发票 | 应付账款 |
| 采购到货单 | 采购退货单 | 退货出库单 |
---
## 1. 模块入口与页面清单
### 1.1 菜单结构
**一级菜单**:采购管理
**二级菜单列表**
| 序号 | 菜单名称 | 页面路径 | 功能说明 |
|------|----------|----------|----------|
| 1 | 原料供应商 | `/po/purchase/supplier` | 供应商档案管理 |
| 2 | 市场价格表 | `/po/purchase/price` | 物料市场价格维护 |
| 3 | 采购订单 | `/po/purchase/order/plan` | 采购订单管理 |
| 4 | 备库订单 | `/po/purchase/order/append` | 备库采购订单 |
| 5 | 采购到货单 | `/po/purchase/checkin` | 采购到货登记 |
| 6 | 采购发票 | `/po/purchase/pofapiao` | 采购发票管理 |
| 7 | 采购退货单 | `/po/purchase/reject` | 采购退货管理 |
| 8 | 采购执行明细表 | `/po/purchase/detail` | 采购执行明细报表 |
| 9 | 采购执行汇总表 | `/po/purchase/total` | 采购执行汇总报表 |
| 10 | 采购到货明细表 | `/po/purchase/line` | 到货明细报表 |
| 11 | 采购发票明细表 | `/po/purchase/fapiaoreport` | 发票明细报表 |
---
## 2. 页面功能详述
### 2.1 原料供应商
**页面路径**`/po/purchase/supplier`
**页面用途**:管理原料供应商的基础信息,包括供应商名称、联系方式、开票信息等。
#### 页面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 查询区域 │
│ [供应商名称] [业务联系人] [供应料品▼] [搜索] │
├─────────────────────────────────────────────────────────────────┤
│ 操作按钮 │
│ [查询所有] [新增] [导入] [导出] [打印] [清空] │
├─────────────────────────────────────────────────────────────────┤
│ 数据表格 │
│ 序号│供应商名称│简称│公司地址│电话│业务联系人│手机号│供应料品│状态│操作 │
│ ─────────────────────────────────────────────────────────────── │
│ 1 │ xxx │xx │xxx │xxx │ xxx │xxx │xxx │正常│查看 修改 删除│
│ ... │
├─────────────────────────────────────────────────────────────────┤
│ 分页区域:共 XX 条 [100条/页▼] [<] [1] [>] 前往 [1] 页 │
└─────────────────────────────────────────────────────────────────┘
```
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 供应商名称 | 文本框 | 模糊查询 |
| 业务联系人 | 文本框 | 模糊查询 |
| 供应料品 | 下拉选择 | 物料类型筛选 |
#### 列表字段
| 字段名 | 数据类型 | 说明 |
|--------|----------|------|
| 序号 | Integer | 行号 |
| 供应商名称 | String | 供应商全称 |
| 简称 | String | 供应商简称 |
| 公司地址 | String | 公司地址 |
| 电话 | String | 联系电话 |
| 业务联系人 | String | 业务联系人姓名 |
| 手机号 | String | 业务联系人手机 |
| 供应料品 | String | 供应物料类型 |
| 状态 | String | 正常/停用 |
#### 操作按钮
| 按钮 | 功能说明 |
|------|----------|
| 查询所有 | 清空查询条件,查询所有数据 |
| 新增 | 打开新增供应商弹窗 |
| 导入 | 批量导入供应商数据Excel |
| 导出 | 导出当前列表数据Excel |
| 打印 | 打印当前列表 |
| 清空 | 清空所有数据(危险操作) |
| 查看 | 查看供应商详情(只读) |
| 修改 | 编辑供应商信息 |
| 删除 | 删除供应商(需确认) |
#### 新增/修改弹窗
**弹窗结构**
```
┌────────────────────────────────────────────────────────┐
│ 供应商 [×] │
├────────────────────────────────────────────────────────┤
│ *供应商名称: [____________] 供应商别名: [____________] │
│ 简称: [____________] 所属省/市: [请选择▼] │
│ 供应料品: [请选择▼] 供应商分类: [请选择▼] │
│ 供应商等级: [请选择▼] 公司地址: [____________] │
│ 邮编: [____________] 电话: [____________] │
│ 备注: [____________] 状态: ○正常 ○停用 │
│ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ [开票信息] [业务联系人] [财务联系人] │ │
│ ├──────────────────────────────────────────────────┤ │
│ │ 开户行: [____________] │ │
│ │ 地址电话: [____________] │ │
│ │ 账号: [____________] │ │
│ │ 税号: [____________] │ │
│ └──────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────┤
│ [确定] [取消] │
└────────────────────────────────────────────────────────┘
```
**字段说明**
| 字段名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| 供应商名称 | 文本 | 是 | 供应商全称 |
| 供应商别名 | 文本 | 否 | 别名 |
| 简称 | 文本 | 否 | 供应商简称 |
| 所属省/市 | 级联选择 | 否 | 省市二级选择 |
| 供应料品 | 下拉多选 | 否 | 可供应的物料类型 |
| 供应商分类 | 下拉 | 否 | 核心供应商/普通供应商等 |
| 供应商等级 | 下拉 | 否 | A/B/C/D级 |
| 公司地址 | 文本 | 否 | 详细地址 |
| 邮编 | 文本 | 否 | 邮政编码 |
| 电话 | 文本 | 否 | 固定电话 |
| 备注 | 文本域 | 否 | 备注信息 |
| 状态 | 单选 | 否 | 默认"正常" |
**Tab页-开票信息**
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 开户行 | 文本 | 银行名称 |
| 地址电话 | 文本 | 开票地址电话 |
| 账号 | 文本 | 银行账号 |
| 税号 | 文本 | 税务登记号 |
**Tab页-业务联系人**
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 联系人 | 文本 | 联系人姓名 |
| 手机号 | 文本 | 手机号码 |
**Tab页-财务联系人**
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 联系人 | 文本 | 联系人姓名 |
| 手机号 | 文本 | 手机号码 |
---
### 2.2 采购订单
**页面路径**`/po/purchase/order/plan?needType=0`
**页面用途**:管理采购订单,支持从采购计划引入物料需求或手工新增采购订单。
#### 页面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 查询区域 │
│ [跟单编号] [单据编码] [供应商] [物料编码] [物料名称] │
│ [开始日期] - [结束日期] [搜索] │
├─────────────────────────────────────────────────────────────────┤
│ 操作按钮 │
│ [单据] [查询所有] [新增] [导出] │
│ 料品分类快捷筛选: [成品] [装配件] [零部件] [原材料] [五金件] ... │
├─────────────────────────────────────────────────────────────────┤
│ 数据表格 │
│ 序号│跟单编号│计划编号│单据编码│单据状态│供应商│物料名称│物料编码│需求日期│采购数量│到货数量│单据日期│
│ ─────────────────────────────────────────────────────────────── │
│ 1 │XSDD000062│CGJH000027│CGDD000041│审核│xxx│xxx│xxx│2026-1-31│100│100│2026-1-25│
│ ... │
├─────────────────────────────────────────────────────────────────┤
│ 底部统计:订单数量: X,XXX,XXX 到货数量: X,XXX,XXX │
│ 分页区域:共 XX 条 [100条/页▼] [<] [1] [>] 前往 [1] 页 │
└─────────────────────────────────────────────────────────────────┘
```
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 跟单编号 | 文本框 | 关联销售订单编号 |
| 单据编码 | 文本框 | 采购订单编码 |
| 供应商 | 文本框 | 供应商名称 |
| 物料编码 | 文本框 | 物料编码 |
| 物料名称 | 文本框 | 物料名称 |
| 日期范围 | 日期范围 | 单据日期范围 |
#### 列表字段
| 字段名 | 数据类型 | 说明 |
|--------|----------|------|
| 序号 | Integer | 行号 |
| 跟单编号 | String | 关联的销售订单号 |
| 计划编号 | String | 关联的采购计划号 |
| 单据编码 | String | 采购订单编码 |
| 单据状态 | String | 开立/审核/关闭 |
| 供应商 | String | 供应商名称 |
| 物料名称 | String | 物料名称 |
| 物料编码 | String | 物料编码 |
| 需求日期 | Date | 需求到货日期 |
| 采购数量 | Decimal | 采购数量 |
| 到货数量 | Decimal | 已到货数量 |
| 单据日期 | Date | 订单创建日期 |
#### 新增采购订单页面
**页面路径**`/po/purchase/orderadd0?open=addStatus`
**页面布局**
```
┌─────────────────────────────────────────────────────────────────┐
│ 采购订单 │
│ [保存] [取消] [审核] [反审核] [收起]│
├─────────────────────────────────────────────────────────────────┤
│ 基础信息区域 │
│ 单据编码: [自动生成] 业务类型: [原材料▼] 操作员: admin │
│ 单据日期: [2026-01-25] 单据类型: [采购订单] 供方: [____] [选择] │
│ 单据状态: 开立 采购部门: [请选择▼] 到货日期: [选择日期]│
│ 业务状态: [正常▼] 采购人员: [请选择▼] 采购合同: [上传] │
│ 审核员: 合同号: [____] │
│ 审核日期: 备注信息: [____] │
│ 用料需求: [订单用料] │
├─────────────────────────────────────────────────────────────────┤
│ 物料信息 [引入] [新增物料] │
│ ───────────────────────────────────────────────────────────────── │
│ 序号│跟单编号│计划单号│物料编码│物料名称│型号规格│主计量│需求日期│数量│单价│金额│到货数量│采购说明│操作│
│ ... │
└─────────────────────────────────────────────────────────────────┘
```
**基础信息字段**
| 字段名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| 单据编码 | 文本 | 自动 | 系统自动生成 |
| 单据日期 | 日期 | 是 | 默认当天 |
| 单据状态 | 显示 | - | 开立/审核/关闭 |
| 业务状态 | 下拉 | 否 | 正常/暂停/取消 |
| 业务类型 | 下拉 | 是 | 原材料/零部件/成品等 |
| 单据类型 | 下拉 | 是 | 采购订单(固定) |
| 采购部门 | 下拉 | 否 | 部门选择 |
| 采购人员 | 下拉 | 否 | 需先选择部门 |
| 操作员 | 显示 | - | 当前登录用户 |
| 审核员 | 显示 | - | 审核人员 |
| 审核日期 | 显示 | - | 审核时间 |
| 用料需求 | 下拉 | 是 | 订单用料/备库用料 |
| 供方 | 弹窗选择 | 否 | 选择供应商 |
| 到货日期 | 日期 | 否 | 预计到货日期 |
| 采购合同 | 文件 | 否 | 上传合同附件 |
| 合同号 | 文本 | 否 | 合同编号 |
| 备注信息 | 文本 | 否 | 备注 |
**物料明细字段**
| 字段名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| 序号 | Integer | - | 行号 |
| 跟单编号 | String | - | 关联销售订单 |
| 计划单号 | String | - | 关联采购计划 |
| 物料编码 | String | 是 | 物料编码 |
| 物料名称 | String | - | 物料名称 |
| 型号规格 | String | - | 规格型号 |
| 主计量 | String | - | 计量单位 |
| 需求日期 | Date | 否 | 需求日期 |
| 数量 | Decimal | 是 | 采购数量 |
| 单价 | Decimal | 否 | 采购单价 |
| 金额 | Decimal | - | 数量×单价(自动计算) |
| 到货数量 | Decimal | - | 已到货数量 |
| 采购说明 | String | 否 | 采购备注 |
**选择供应商弹窗**
| 字段名 | 说明 |
|--------|------|
| 供应商名称 | 筛选条件 |
| 业务联系人 | 筛选条件 |
| 电话 | 显示字段 |
| 手机号 | 显示字段 |
| 状态 | 显示字段 |
**引入弹窗(采购计划单明细)**
| 字段名 | 说明 |
|--------|------|
| 跟单编号 | 筛选条件 |
| 料品大类 | 筛选条件 |
| 物料编码 | 筛选条件 |
| 物料名称 | 筛选条件 |
| 计划单号 | 列表字段 |
| 销售员 | 列表字段 |
| 订单交期 | 列表字段 |
| 需求日期 | 列表字段 |
| 需求数量 | 列表字段 |
| 已采数量 | 列表字段 |
| 未采数量 | 列表字段 |
---
### 2.3 采购到货单
**页面路径**`/po/purchase/checkin`
**页面用途**:记录采购物料的到货情况,支持从采购订单引入生成到货单。
#### 页面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 查询区域 │
│ [跟单编号] [单据编码] [供应商] [物料编码] [物料名称] │
│ [开始日期] - [结束日期] [搜索] │
├─────────────────────────────────────────────────────────────────┤
│ 操作按钮 │
│ [单据] [查询所有] [新增] [导出] │
│ 料品分类快捷筛选: [成品] [装配件] [零部件] [原材料] [五金件] ... │
├─────────────────────────────────────────────────────────────────┤
│ 数据表格 │
│ 序号│跟单编号│单据编码│单据状态│供应商│物料名称│物料编码│到货数量│入库数量│单据日期│
│ ─────────────────────────────────────────────────────────────── │
│ 1 │XSDD000049│CGDH000046│审核│湖南飞沃新能源...│风机旋涡气泵│0302000002│10.00│0.00│...│
│ ... │
├─────────────────────────────────────────────────────────────────┤
│ 底部统计:到货数量: X,XXX,XXX 入库数量: X,XXX,XXX │
│ 分页区域 │
└─────────────────────────────────────────────────────────────────┘
```
#### 列表字段
| 字段名 | 数据类型 | 说明 |
|--------|----------|------|
| 序号 | Integer | 行号 |
| 跟单编号 | String | 关联销售订单号 |
| 单据编码 | String | 到货单编码 |
| 单据状态 | String | 开立/审核/关闭 |
| 供应商 | String | 供应商名称 |
| 物料名称 | String | 物料名称 |
| 物料编码 | String | 物料编码 |
| 到货数量 | Decimal | 到货数量 |
| 入库数量 | Decimal | 已入库数量 |
| 单据日期 | Date | 到货日期 |
---
### 2.4 采购发票
**页面路径**`/po/purchase/pofapiao`
**页面用途**:管理采购发票信息,记录供应商开具的发票,用于财务核算和应付账款管理。
#### 页面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 查询区域 │
│ [单据编码] [供应商名称] [发票号码] [开始日期] - [结束日期] [搜索] │
├─────────────────────────────────────────────────────────────────┤
│ 操作按钮 │
│ [单据] [查询所有] [新增] [导出] │
├─────────────────────────────────────────────────────────────────┤
│ 数据表格 │
│ 序号│单据编码│单据日期│单据状态│业务类型│厂家名称│发票号码│发票金额│税率│税额│财务状态│
│ ─────────────────────────────────────────────────────────────── │
│ 1 │CGFP000010│2026-1-11│开立│原材料发票│湖南飞沃...│33333│55.00│9%│13.00│录入│
│ ... │
├─────────────────────────────────────────────────────────────────┤
│ 底部统计:金额: X,XXX,XXX.XX 税额: XXX,XXX.XX │
│ 分页区域 │
└─────────────────────────────────────────────────────────────────┘
```
#### 列表字段
| 字段名 | 数据类型 | 说明 |
|--------|----------|------|
| 序号 | Integer | 行号 |
| 单据编码 | String | 发票单据编码 |
| 单据日期 | Date | 单据日期 |
| 单据状态 | String | 开立/审核/退回 |
| 业务类型 | String | 原材料发票/零部件发票等 |
| 厂家名称 | String | 供应商名称 |
| 发票号码 | String | 发票号 |
| 发票金额 | Decimal | 发票金额(不含税) |
| 税率 | String | 税率百分比 |
| 税额 | Decimal | 税额 |
| 财务状态 | String | 录入/入账 |
---
### 2.5 采购退货单
**页面路径**`/po/purchase/reject`
**页面用途**:管理采购退货,记录因质量问题或其他原因需要退回给供应商的物料。
#### 页面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 查询区域 │
│ [跟单编号] [单据编码] [物料编码] [物料名称] │
│ [开始日期] - [结束日期] [搜索] │
├─────────────────────────────────────────────────────────────────┤
│ 操作按钮 │
│ [单据] [查询所有] [新增] [导出] │
├─────────────────────────────────────────────────────────────────┤
│ 数据表格 │
│ 序号│跟单编号│单据编码│单据状态│供应商│物料名称│物料编码│退货数量│出库数量│补收数量│单据日期│
│ ─────────────────────────────────────────────────────────────── │
│ 1 │XSDD000022│CGTH000004│审核│湖南飞沃...│角铁│0404000001│10.00│0.00│0.00│2026-1-2│
│ ... │
├─────────────────────────────────────────────────────────────────┤
│ 底部统计:退货数量: XXX 出库数量: X │
│ 分页区域 │
└─────────────────────────────────────────────────────────────────┘
```
#### 列表字段
| 字段名 | 数据类型 | 说明 |
|--------|----------|------|
| 序号 | Integer | 行号 |
| 跟单编号 | String | 关联销售订单号 |
| 单据编码 | String | 退货单编码 |
| 单据状态 | String | 开立/审核 |
| 供应商 | String | 供应商名称 |
| 物料名称 | String | 物料名称 |
| 物料编码 | String | 物料编码 |
| 退货数量 | Decimal | 退货数量 |
| 出库数量 | Decimal | 已出库数量 |
| 补收数量 | Decimal | 补收数量 |
| 单据日期 | Date | 退货日期 |
---
### 2.6 采购执行明细表
**页面路径**`/po/purchase/detail`
**页面用途**:按物料明细维度展示采购执行情况,包括订单数量、到货数量、未到数量等。
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 跟单编号 | 文本框 | 关联销售订单 |
| 业务类型 | 下拉 | 原材料/零部件等 |
| 用料方式 | 下拉 | 订单用料/备库用料 |
| 数据范围 | 下拉 | 筛选范围 |
| 日期范围 | 日期 | 单据日期范围 |
#### 列表字段
| 字段名 | 说明 |
|--------|------|
| 序号 | 行号 |
| 跟单编号 | 关联销售订单 |
| 采购单号 | 采购订单号 |
| 用料需求 | 订单用料/备库用料 |
| 物料编码 | 物料编码 |
| 物料名称 | 物料名称 |
| 需求日期 | 需求日期 |
| 订购数量 | 采购数量 |
| 已到数量 | 已到货数量 |
| 未到数量 | 未到货数量 |
---
### 2.7 采购执行汇总表
**页面路径**`/po/purchase/total`
**页面用途**:按物料维度汇总展示采购执行情况。
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 业务类型 | 下拉 | 原材料/零部件等 |
| 用料方式 | 下拉 | 订单用料/备库用料 |
| 数据范围 | 下拉 | 筛选范围 |
| 日期范围 | 日期 | 单据日期范围 |
#### 列表字段
| 字段名 | 说明 |
|--------|------|
| 序号 | 行号 |
| 料品大类 | 物料大类 |
| 料品分类 | 物料分类 |
| 物料编码 | 物料编码 |
| 物料名称 | 物料名称 |
| 采购数量 | 总采购数量 |
| 已订数量 | 已下单数量 |
| 未订数量 | 未下单数量 |
| 到货数量 | 已到货数量 |
| 入库数量 | 已入库数量 |
---
### 2.8 采购到货明细表
**页面路径**`/po/purchase/line`
**页面用途**:展示采购到货的明细记录。
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 跟单编号 | 文本框 | 关联销售订单 |
| 供应商 | 文本框 | 供应商名称 |
| 物料编码 | 文本框 | 物料编码 |
| 物料名称 | 文本框 | 物料名称 |
| 日期范围 | 日期 | 到货日期范围 |
#### 列表字段
| 字段名 | 说明 |
|--------|------|
| 序号 | 行号 |
| 跟单编号 | 关联销售订单 |
| 用料需求 | 订单用料/备库用料 |
| 采购单号 | 采购订单号 |
| 供应商 | 供应商名称 |
| 物料编码 | 物料编码 |
| 物料名称 | 物料名称 |
| 采购数量 | 采购数量 |
| 到货数量 | 到货数量 |
| 单据日期 | 采购单日期 |
| 到货日期 | 到货日期 |
---
### 2.9 采购发票明细表
**页面路径**`/po/purchase/fapiaoreport`
**页面用途**:展示采购发票的明细记录。
#### 查询条件
| 字段名 | 类型 | 说明 |
|--------|------|------|
| 跟单编号 | 文本框 | 关联销售订单 |
| 单据编号 | 文本框 | 发票单据编号 |
| 供应商名称 | 文本框 | 供应商名称 |
| 日期范围 | 日期 | 单据日期范围 |
#### 列表字段
| 字段名 | 说明 |
|--------|------|
| 序号 | 行号 |
| 单据编号 | 发票单据编号 |
| 单据日期 | 单据日期 |
| 业务类型 | 发票业务类型 |
| 供应商名称 | 供应商名称 |
| 发票号码 | 发票号 |
| 税率 | 税率 |
| 开票数量 | 开票数量 |
| 发票金额 | 发票金额 |
| 税额 | 税额 |
| 价税合计 | 含税总额 |
---
## 3. 单据状态流转
### 3.1 采购订单状态
```
┌────────┐ 保存 ┌────────┐ 审核 ┌────────┐
│ 新建 │ ──────────> │ 开立 │ ──────────> │ 审核 │
└────────┘ └────────┘ └────────┘
│ │
│ 反审核 │ 关闭
▼ ▼
┌────────┐ ┌────────┐
│ 开立 │ │ 关闭 │
└────────┘ └────────┘
```
### 3.2 采购到货单状态
```
┌────────┐ 保存 ┌────────┐ 审核 ┌────────┐
│ 新建 │ ──────────> │ 开立 │ ──────────> │ 审核 │
└────────┘ └────────┘ └────────┘
```
### 3.3 采购发票状态
```
┌────────┐ 保存 ┌────────┐ 审核 ┌────────┐ 入账 ┌────────┐
│ 新建 │ ──────────> │ 开立 │ ──────────> │ 审核 │ ──────────> │ 入账 │
└────────┘ └────────┘ └────────┘ └────────┘
│ 退回
┌────────┐
│ 退回 │
└────────┘
```
---
## 4. 业务规则
### 4.1 供应商管理
1. 供应商名称不允许重复
2. 停用状态的供应商不能被选择用于新建采购订单
3. 存在关联采购订单的供应商不能删除
### 4.2 采购订单
1. 采购订单可以从采购计划引入,也可以手工新增
2. 已审核的采购订单不能修改,需先反审核
3. 存在到货记录的采购订单不能删除
4. 采购订单审核后才能生成到货单
### 4.3 采购到货
1. 到货数量不能超过采购订单的未到货数量
2. 到货单审核后才能进行入库操作
3. 到货单可以分批到货
### 4.4 采购发票
1. 发票金额应与到货金额匹配
2. 已入账的发票不能修改
3. 发票可以退回重新开具
### 4.5 采购退货
1. 退货数量不能超过到货数量减去已入库数量
2. 退货单审核后才能出库
---
## 5. 任务完成说明
### 5.1 已完成的页面采集
| 序号 | 页面名称 | 采集状态 | 说明 |
|------|----------|----------|------|
| 1 | 原料供应商-列表 | ✅ 完成 | 列表、新增弹窗、查看弹窗 |
| 2 | 采购订单-列表 | ✅ 完成 | 列表页面 |
| 3 | 采购订单-新增 | ✅ 完成 | 新增页面、选择供应商弹窗、引入弹窗 |
| 4 | 采购到货单-列表 | ✅ 完成 | 列表页面 |
| 5 | 采购发票-列表 | ✅ 完成 | 列表页面 |
| 6 | 采购退货单-列表 | ✅ 完成 | 列表页面 |
| 7 | 采购执行明细表 | ✅ 完成 | 报表页面 |
| 8 | 采购执行汇总表 | ✅ 完成 | 报表页面 |
| 9 | 采购到货明细表 | ✅ 完成 | 报表页面 |
| 10 | 采购发票明细表 | ✅ 完成 | 报表页面 |
### 5.2 文档交付清单
| 文档 | 状态 | 说明 |
|------|------|------|
| 采购管理.md | ✅ 完成 | PRD功能文档本文档 |
| 采购管理-前端开发规范.md | 待完成 | UI组件规范、API接口规范 |
| 采购管理-数据模型.md | 待完成 | 数据库表结构、ER图 |
### 5.3 前端开发关键点
1. **统一布局模式**:查询区 + 操作按钮区 + 数据表格 + 分页
2. **弹窗交互**:新增/编辑/查看使用弹窗形式,详情页使用单独页面
3. **表单验证**:必填项验证、数据格式验证
4. **状态展示**:不同状态使用不同颜色标签展示
5. **金额计算**:数量、单价、金额三者联动计算
6. **引入功能**:支持从上游单据引入明细数据
### 5.4 开发优先级建议
| 优先级 | 页面 | 原因 |
|--------|------|------|
| P0 | 原料供应商 | 基础档案,其他页面依赖 |
| P0 | 采购订单 | 核心业务单据 |
| P1 | 采购到货单 | 入库前置流程 |
| P1 | 采购发票 | 财务核算需要 |
| P2 | 采购退货单 | 异常流程处理 |
| P3 | 各类报表 | 统计分析,可后期完善 |