本批次为 ERP 采购订单模块集成 BPM 流程审批功能,实现采购订单的审批流程化管理。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /erp/purchase-order/submit | 提交采购订单审批 |
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 采购订单编号 |
响应:
{
"code": 0,
"data": true,
"msg": "操作成功"
}
文件路径: src/views/erp/purchase/order/index.vue
在操作列新增"提交审批"按钮,仅草稿状态可见:
<el-table-column label="操作" align="center" fixed="right" width="200">
<template #default="scope">
<el-button
link
type="primary"
@click="handleUpdate(scope.row.id)"
v-hasPermi="['erp:purchase-order:update']"
v-if="scope.row.status === 0"
>
编辑
</el-button>
<el-button
link
type="primary"
@click="handleSubmit(scope.row.id)"
v-hasPermi="['erp:purchase-order:update']"
v-if="scope.row.status === 0"
>
提交审批
</el-button>
<el-button
link
type="primary"
@click="handleApprove(scope.row.id)"
v-hasPermi="['erp:purchase-order:update-status']"
v-if="scope.row.status === 10"
>
审批通过
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['erp:purchase-order:delete']"
v-if="scope.row.status === 0 || scope.row.status === 30"
>
删除
</el-button>
</template>
</el-table-column>
/** 提交审批 */
const handleSubmit = async (id: number) => {
try {
await message.confirm('确认提交该采购订单进行审批?')
await PurchaseOrderApi.submitPurchaseOrder(id)
message.success('提交成功')
await getList()
} catch {}
}
<el-table-column label="状态" align="center" prop="status" width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.ERP_AUDIT_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
文件路径: src/api/erp/purchase/order/index.ts
新增提交审批接口:
// 提交采购订单审批
export const submitPurchaseOrder = async (id: number) => {
return await request.post({ url: '/erp/purchase-order/submit?id=' + id })
}
文件路径: src/utils/dict.ts
确保 DICT_TYPE 中已包含:
ERP_AUDIT_STATUS = 'erp_audit_status'
字典数据需要包含以下值:
- 0: 草稿(info 颜色)
- 10: 审批中(warning 颜色)
- 20: 审批通过(success 颜色)
- 30: 审批不通过(danger 颜色)
在 BPM 管理后台创建流程模型:
| 配置项 | 值 |
|---|---|
| 流程标识(Key) | erp-purchase-order-audit |
| 流程名称 | ERP 采购订单审批流程 |
| 流程分类 | 业务流程 |
开始节点 → 部门主管审批 → 采购经理审批 → 结束节点
审批结果:
- 通过:状态变为 20(审批通过)
- 不通过:状态变为 30(审批不通过)
- 取消:状态变为 0(草稿)
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