# Batch 2: ERP 采购订单审批集成 - 前端修改文档 ## 概述 本批次为 ERP 采购订单模块集成 BPM 流程审批功能,实现采购订单的审批流程化管理。 ## 涉及页面 - 修改页面:采购订单管理页面(新增提交审批、审批状态展示) - 新增配置:BPM 流程模型配置 --- ## API | 方法 | 路径 | 说明 | |------|------|------| | POST | /erp/purchase-order/submit | 提交采购订单审批 | **请求参数:** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 采购订单编号 | **响应:** ```json { "code": 0, "data": true, "msg": "操作成功" } ``` --- ## 前端修改点 ### 1. 采购订单列表页面修改 **文件路径:** `src/views/erp/purchase/order/index.vue` #### 1.1 新增提交审批按钮 在操作列新增"提交审批"按钮,仅草稿状态可见: ```vue ``` #### 1.2 新增提交审批方法 ```typescript /** 提交审批 */ const handleSubmit = async (id: number) => { try { await message.confirm('确认提交该采购订单进行审批?') await PurchaseOrderApi.submitPurchaseOrder(id) message.success('提交成功') await getList() } catch {} } ``` #### 1.3 修改状态列显示 ```vue ``` ### 2. API 接口文件修改 **文件路径:** `src/api/erp/purchase/order/index.ts` 新增提交审批接口: ```typescript // 提交采购订单审批 export const submitPurchaseOrder = async (id: number) => { return await request.post({ url: '/erp/purchase-order/submit?id=' + id }) } ``` ### 3. 字典类型确认 **文件路径:** `src/utils/dict.ts` 确保 `DICT_TYPE` 中已包含: ```typescript ERP_AUDIT_STATUS = 'erp_audit_status' ``` 字典数据需要包含以下值: - 0: 草稿(info 颜色) - 10: 审批中(warning 颜色) - 20: 审批通过(success 颜色) - 30: 审批不通过(danger 颜色) --- ## BPM 流程模型配置 ### 流程模型信息 在 BPM 管理后台创建流程模型: | 配置项 | 值 | |--------|-----| | 流程标识(Key) | erp-purchase-order-audit | | 流程名称 | ERP 采购订单审批流程 | | 流程分类 | 业务流程 | ### 流程设计建议 ``` 开始节点 → 部门主管审批 → 采购经理审批 → 结束节点 ``` 审批结果: - 通过:状态变为 20(审批通过) - 不通过:状态变为 30(审批不通过) - 取消:状态变为 0(草稿) --- ## 注意事项 1. 创建采购订单时,默认状态从"未审核"改为"草稿" 2. 只有草稿状态的订单才能提交审批 3. 审批中的订单不能编辑和删除 4. 审批不通过的订单可以重新编辑后再次提交 5. 需要先执行数据库脚本,再部署后端代码 6. 需要在 BPM 管理后台创建流程模型(Key: erp-purchase-order-audit) --- ## 后端新增/修改文件清单 ``` yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/ ├── enums/ │ ├── ErpAuditStatus.java (修改:新增 DRAFT、REJECT 状态) │ └── ErrorCodeConstants.java (修改:新增错误码) ├── dal/dataobject/purchase/ │ └ ErpPurchaseOrderDO.java (修改:新增 processInstanceId 字段) ├── service/purchase/ │ ├── ErpPurchaseOrderService.java (修改:新增接口方法) │ ├── ErpPurchaseOrderServiceImpl.java (修改:实现 BPM 集成) │ └── listener/ │ └── ErpPurchaseOrderStatusListener.java (新增:审批状态监听器) └── controller/admin/purchase/ └ ErpPurchaseOrderController.java (修改:新增提交审批接口) ``` --- ## 状态流转图 ``` ┌─────────────┐ │ 草稿 │ │ (status=0)│ └──────┬──────┘ │ 提交审批 ↓ ┌─────────────┐ │ 审批中 │ │ (status=10)│ └──────┬──────┘ │ 审批结果 ├──────────────┬──────────────┐ ↓ ↓ ↓ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 审批通过 │ │ 审批不通过 │ │ 取消 │ │ (status=20) │ │ (status=30) │ │ (status=0) │ └─────────────┘ └──────┬──────┘ └─────────────┘ │ 重新编辑 └──────────────┘ ``` --- **文档版本**: v1.0 **创建日期**: 2026-06-26