# ERP 采购管理模块完善 - 前端变更文档 ## 概述 完善 ERP 采购管理模块,实现从采购申请到采购入库的完整流程管理。 **流程说明**: - **采购申请**:需要 BPM 审批,审批通过后可生成采购订单 - **采购订单**:由采购申请生成,无需审批,直接可进行入库操作 --- ## 一、前置条件 ### BPM 流程配置(采购申请) 采购申请审批需要 BPM 流程支持,必须先完成以下配置: 1. **创建采购申请审批分类**:在 BPM 流程分类中创建 `purchase_request_approve` 分类 2. **创建采购申请审批流程**:在 BPM 流程模型中创建采购申请审批流程 **执行 SQL**: ```sql -- 创建 BPM 采购申请审批分类 INSERT INTO bpm_category (id, name, code, description, status, sort, creator, create_time, updater, update_time, deleted) VALUES (101, '采购申请审批', 'purchase_request_approve', '采购申请审批流程分类', 0, 11, '1', NOW(), '1', NOW(), 0); ``` --- ## 二、功能清单 | 序号 | 功能模块 | 页面路径 | 功能说明 | |------|----------|----------|----------| | 1 | 采购申请 | `/erp/purchase/request` | 需求部门发起采购需求、BPM 审批、生成采购订单 | | 2 | 供应商管理 | `/erp/purchase/supplier` | 供应商主数据档案管理 | | 3 | 采购订单 | `/erp/purchase/order` | 采购订单管理(无需审批,由采购申请生成) | | 4 | 采购入库 | `/erp/purchase/in` | 到货入库、验收管理 | | 5 | 采购退货 | `/erp/purchase/return` | 采购退货管理 | | 6 | 采购统计 | `/erp/purchase/statistics` | 统计分析报表 | ### 采购流程说明 完整的采购流程为: **采购申请 -> 审批 -> 采购订单 -> 入库 -> 付款** 1. **采购申请**:需求部门发起采购需求,填写申请理由和产品明细 2. **审批**:通过 BPM 工作流进行审批 3. **采购订单**:审批通过后,选择供应商生成采购订单(无需再审批) 4. **入库**:供应商发货后,进行入库验收 5. **付款**:根据入库情况进行付款 **详细文档**:采购申请功能详见 `docs/erp_purchase_request_frontend.md` --- ## 三、供应商管理页面 ### 涉及页面 - `/erp/purchase/supplier/index` - 供应商列表 - `/erp/purchase/supplier/form` - 供应商表单 ### 新增字段 | 字段 | 类型 | 说明 | |------|------|------| | creditCode | String | 统一社会信用代码 | | bankName | String | 开户银行 | | bankAccount | String | 银行账号 | | address | String | 地址 | | contact | String | 联系人 | | phone | String | 联系电话 | | email | String | 邮箱 | | taxNo | String | 税号 | | qualification | String | 资质信息 | | cooperationTime | Date | 合作开始时间 | ### 前端表单修改 ```html 启用 禁用 ``` --- ## 四、采购入库页面(验收功能) ### 新增字段 | 字段 | 类型 | 说明 | |------|------|------| | inspectionStatus | Integer | 验收状态(0:待验收 1:已验收 2:验收不合格) | | inspectionTime | DateTime | 验收时间 | | inspectorId | Long | 遇收人员编号 | | inspectionResult | String | 验收结果 | ### 前端修改 ```html 验收 验收合格 验收不合格 ``` --- ## 五、采购统计页面 ### 涉及页面 - `/erp/purchase/statistics/index` - 采购统计首页 - `/erp/purchase/statistics/supplier` - 供应商供货统计 - `/erp/purchase/statistics/price` - 采购价格分析 - `/erp/purchase/statistics/uncompleted` - 未完成订单跟踪 ### API 变更 | 方法 | 路径 | 说明 | |------|------|------| | GET | /erp/purchase-statistics/summary | 采购汇总统计 | | GET | /erp/purchase-statistics/supplier | 供应商供货统计 | | GET | /erp/purchase-statistics/price | 采购价格分析 | | GET | /erp/purchase-statistics/uncompleted | 未完成订单跟踪 | #### 供应商供货统计响应 ```json { "code": 0, "data": [ { "supplierId": 1, "supplierName": "供应商A", "orderCount": 10, "orderAmount": 100000.00, "inCount": 8, "inAmount": 80000.00, "returnCount": 1, "returnAmount": 5000.00 } ], "msg": "操作成功" } ``` #### 采购价格分析响应 ```json { "code": 0, "data": [ { "productId": 1, "productName": "产品A", "productBarCode": "12345678", "avgPrice": 50.00, "minPrice": 45.00, "maxPrice": 55.00, "latestPrice": 52.00, "priceChangeRate": 4.0 } ], "msg": "操作成功" } ``` #### 未完成订单跟踪响应 ```json { "code": 0, "data": [ { "orderId": 1, "orderNo": "PO202401001", "supplierName": "供应商A", "orderTime": "2024-01-01", "productNames": "产品A,产品B", "orderAmount": 10000.00, "inAmount": 5000.00, "uncompletedAmount": 5000.00, "daysOverdue": 5 } ], "msg": "操作成功" } ``` --- ## 六、注意事项 1. **数据完整性**:供应商主数据需填写完整信息,包括信用代码、联系方式、银行信息等 2. **验收管理**:采购入库需进行验收,验收合格后才正式入库 3. **权限控制**:每个功能模块都有独立的权限控制,需配置角色权限 4. **数据追溯**:所有操作记录都有完整的创建人、创建时间、审批人、审批时间等信息