Files
my-mom-system/prd/采购管理.md
panchengyong c28ada5050 commit content
2026-03-06 02:02:59 +08:00

749 lines
35 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 采购管理模块 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 | 各类报表 | 统计分析,可后期完善 |