编辑 | blame | 历史 | 原始文档

Batch 3: ERP 销售订单审批集成 - 前端修改文档

概述

本批次为 ERP 销售订单模块集成 BPM 流程审批功能,实现销售订单的审批流程化管理。与 Batch 2 采购订单审批集成类似。

涉及页面

  • 修改页面:销售订单管理页面(新增提交审批、审批状态展示)
  • 新增配置:BPM 流程模型配置

API

方法 路径 说明
POST /erp/sale-order/submit 提交销售订单审批

请求参数:

参数 类型 必填 说明
id Long 销售订单编号

响应:

{
  "code": 0,
  "data": true,
  "msg": "操作成功"
}

前端修改点

1. 销售订单列表页面修改

文件路径: src/views/erp/sale/order/index.vue

1.1 新增提交审批按钮

在操作列新增"提交审批"按钮,仅草稿状态可见:

<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:sale-order:update']"
      v-if="scope.row.status === 0"
    >
      编辑
    </el-button>
    <el-button
      link
      type="primary"
      @click="handleSubmit(scope.row.id)"
      v-hasPermi="['erp:sale-order:update']"
      v-if="scope.row.status === 0"
    >
      提交审批
    </el-button>
    <el-button
      link
      type="primary"
      @click="handleApprove(scope.row.id)"
      v-hasPermi="['erp:sale-order:update-status']"
      v-if="scope.row.status === 10"
    >
      审批通过
    </el-button>
    <el-button
      link
      type="danger"
      @click="handleDelete(scope.row.id)"
      v-hasPermi="['erp:sale-order:delete']"
      v-if="scope.row.status === 0 || scope.row.status === 30"
    >
      删除
    </el-button>
  </template>
</el-table-column>

1.2 新增提交审批方法

/** 提交审批 */
const handleSubmit = async (id: number) => {
  try {
    await message.confirm('确认提交该销售订单进行审批?')
    await SaleOrderApi.submitSaleOrder(id)
    message.success('提交成功')
    await getList()
  } catch {}
}

1.3 修改状态列显示

<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>

2. API 接口文件修改

文件路径: src/api/erp/sale/order/index.ts

新增提交审批接口:

// 提交销售订单审批
export const submitSaleOrder = async (id: number) => {
  return await request.post({ url: '/erp/sale-order/submit?id=' + id })
}

BPM 流程模型配置

流程模型信息

在 BPM 管理后台创建流程模型:

配置项
流程标识(Key) erp-sale-order-audit
流程名称 ERP 销售订单审批流程
流程分类 业务流程

流程设计建议

开始节点 → 销售主管审批 → 财务审批 → 结束节点

注意事项

  1. 创建销售订单时,默认状态从"未审核"改为"草稿"
  2. 只有草稿状态的订单才能提交审批
  3. 审批中的订单不能编辑和删除
  4. 审批不通过的订单可以重新编辑后再次提交
  5. 需要先执行数据库脚本,再部署后端代码
  6. 需要在 BPM 管理后台创建流程模型(Key: erp-sale-order-audit)

后端新增/修改文件清单

yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/
├── enums/
│   └── ErrorCodeConstants.java (修改:新增错误码)
├── dal/dataobject/sale/
│   └── ErpSaleOrderDO.java (修改:新增 processInstanceId 字段)
├── service/sale/
│   ├── ErpSaleOrderService.java (修改:新增接口方法)
│   ├── ErpSaleOrderServiceImpl.java (修改:实现 BPM 集成)
│   └── listener/
│       └── ErpSaleOrderStatusListener.java (新增:审批状态监听器)
└── controller/admin/sale/
    └── ErpSaleOrderController.java (修改:新增提交审批接口)

文档版本: v1.0
创建日期: 2026-06-26