返回博客列表

制造业 ERP 单据状态流转的前后端协作

2026-06-0811 分钟阅读
制造业系统ERPSpring Boot
本文目录
  1. ERP 单据为什么不是普通表单
  2. 常见单据状态
  3. 列表、详情和操作区要保持一致
  4. 权限会影响单据流转
  5. 字段、枚举和接口联调
  6. 异常提示要贴近业务
  7. 前后端协作的重点
  8. 收获

工厂 ERP SaaS 系统里,很多页面看起来像表单和列表,但真正的复杂点不在 CRUD,而在单据状态、权限边界、库存影响和前后端协作。采购入库、销售出库、生产领料、库存盘点这些流程,都不是简单地保存一条记录,而是会影响后续业务动作。

这篇文章整理我在 ERP 项目中参与模块开发和接口联调时的一些理解。

ERP 单据为什么不是普通表单

普通后台表单通常关注字段是否填完整、能不能保存、列表能不能查到。但 ERP 单据还要关注业务动作是否成立。

以采购入库为例,一个入库单可能经历:

  1. 新建草稿。
  2. 填写供应商、物料、仓库、数量等信息。
  3. 提交审核。
  4. 审核通过后影响库存。
  5. 后续可能关联财务应付或采购订单状态。

所以页面上的一个按钮,背后可能影响库存、审批、财务、日志和权限。前端不能只管提交表单,还要理解当前状态下用户到底能做什么。

常见单据状态

制造业 ERP 里,单据状态通常会影响页面按钮、字段是否可编辑、列表筛选和接口调用。

一个简化的状态流转可以是:

状态含义页面表现
草稿用户正在编辑,还未进入正式流程可编辑、可删除、可提交
待审核已提交,等待负责人处理大多数字段只读,可撤回或审核
已审核业务确认生效只读,可进行后续业务动作
已驳回审核不通过,需要修改可编辑后重新提交
已作废单据不再有效只读,通常不可继续操作

前端要做的不是把所有按钮都放出来,而是根据状态展示当前真正可执行的动作。这样既能减少误操作,也能让用户理解业务流程。

列表、详情和操作区要保持一致

ERP 页面常见问题是:列表显示一个状态,详情页按钮却允许另一个动作,或者操作成功后列表没有刷新,导致用户以为系统没有变化。

比较稳妥的做法是让列表、详情和操作区遵循同一套状态判断:

  • 列表用于快速筛选和批量查看状态。
  • 详情页展示完整字段、审批记录和操作记录。
  • 操作区只展示当前状态下允许的动作。
  • 操作成功后刷新详情和列表,避免状态不一致。

如果状态判断只散落在不同页面里,后期维护会很难。即使前端不一定负责全部状态规则,也要和后端约定清楚状态枚举和可操作动作。

权限会影响单据流转

多租户 ERP 还要考虑权限。不同企业、部门和岗位看到的数据不一样,能执行的动作也不一样。

权限通常可以分几层:

  • 租户隔离:A 企业不能看到 B 企业的数据。
  • 菜单权限:用户是否能进入某个模块。
  • 按钮权限:用户是否能新增、审核、作废、导出。
  • 数据权限:用户能看全部数据、部门数据,还是自己的数据。

前端页面需要根据权限控制菜单、按钮和操作入口,但真正的数据安全必须由后端兜底。前端隐藏按钮只是体验优化,不能作为权限的唯一依据。

字段、枚举和接口联调

ERP 页面字段多,接口联调时容易出现几个问题:

  • 前端字段名和后端字段名不一致。
  • 枚举值能保存,但页面展示文案不清楚。
  • 搜索条件和分页参数与后端约定不一致。
  • 金额、数量、日期等字段格式需要统一。
  • 后端校验失败时,前端提示不够具体。

这类问题看起来不难,但会直接影响用户使用。尤其是单据页面,用户经常需要录入大量字段,如果错误提示不清楚,排查成本会很高。

异常提示要贴近业务

ERP 系统里的错误提示不能只写“操作失败”。例如:

  • 库存不足,不能销售出库。
  • 单据已审核,不能继续编辑。
  • 当前用户没有审核权限。
  • 物料未维护仓库信息。
  • 盘点单已作废,不能再次提交。

这些提示越接近业务,用户越容易自己判断下一步怎么处理。前端在展示错误时,也应该尽量保留后端返回的业务原因,而不是统一吞成通用提示。

前后端协作的重点

ERP 单据流转里,前后端协作最重要的是把“状态”和“动作”说清楚。

我理解比较好的协作方式是:

  1. 后端定义状态枚举和每个状态允许的业务动作。
  2. 前端根据状态和权限渲染按钮。
  3. 所有关键操作都由后端再次校验,避免越权或状态过期。
  4. 操作完成后返回最新状态,前端刷新页面。
  5. 异常返回明确业务原因,前端给出可理解提示。

这样可以减少前端猜逻辑,也能避免状态流转在不同页面表现不一致。

收获

ERP 项目让我意识到,企业系统里很多页面不是视觉复杂,而是业务状态复杂。一个单据从草稿到审核再到生效,背后关联权限、库存、财务和流程记录。

前端开发如果只把它当成表单,就很容易忽略业务边界;但如果能理解状态流转和操作规则,就能把页面做得更稳定,也能更好地和后端、测试、业务人员沟通。