维修与拆解

Odoo 维修单和拆解单为什么不是一回事:修复、换件、回收与逆向制造边界讲透

看起来都像“把坏东西处理一下”,但 repair 和 unbuild 在目标、库位、追溯和业务责任上完全不同。用错对象,后面的库存解释会越来越乱。

制造
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

先说结论

Odoo 的维修单(Repair Order)和拆解单(Unbuild Order)不是一对同义词。

它们看起来都像“处理坏件”,但回答的问题完全不同:

  • 维修单:这件东西还作为“原产品”存在,只是要修、换件、回收部分零件后再交回去
  • 拆解单:这件东西作为成品身份要被反向拆开,退回组件层

所以你要先问的不是“哪个按钮都能做”,而是:

这次业务的目标,是恢复原物,还是撤销原物。

维修单为什么更像服务 / 返修流程

repair.order 里有很明显的结构:

  • 被维修产品本体
  • 新增零件 move
  • 拆下零件去向
  • 回收零件去向
  • 是否保修内
  • 与销售单 / 退货单的绑定

这说明 Repair 的核心不是“拆 BOM”,而是围绕一个待修物展开换件、返还、收费、责任归属

它甚至专门区分多个库位:

  • 产品来源库位
  • 修好后成品去向
  • 新加零件去向
  • 拆下零件去向
  • 回收零件去向

这是一条服务型、过程型链路。

拆解单为什么更像逆向制造

mrp.unbuild 关注的是:

  • 以哪张 MO 或哪份成品记录为依据
  • 要把成品拆回哪些组件
  • 追溯链如何反向连接
  • 相关 consume / produce moves 如何生成

它的本质是:把一个“已成为成品”的东西重新分解回组件结构。因此重点是 BOM、move、lot、追溯,而不是维修责任和收费语义。

为什么很多团队会用错

因为现场口头都会说“这个坏了,拆一拆 / 修一修”。但系统对象必须分清:

适合 Repair 的情况

  • 更换某个零件后,产品本体还叫原来的那件
  • 要记录保修、收费、客户返回、返修责任
  • 要区分拆下件是报废、回收还是保留

适合 Unbuild 的情况

  • 成品身份本身不再保留
  • 目标是回收组件库存
  • 要按 BOM / lot 追溯逆向展开

用错对象会带来什么问题

如果本该维修却走拆解:

  • 你会丢失换件、收费、保修这些语义
  • 现场难解释“修完后交回的是谁”

如果本该拆解却走维修:

  • 你会得到很多服务流程字段
  • 却得不到真正的逆向 BOM 组件回流逻辑

最常见的误区

1. 以为 Repair 就是“轻量版 Unbuild”

不是。两者目标不同。

2. 以为 Unbuild 更底层,所以都能覆盖

也不对。它不天然覆盖维修收费、保修和返还语义。

3. 以为维修后的旧件去哪里不重要

Repair 恰恰非常强调 removed parts 和 recycle location。

4. 以为两者差别只在界面

差别在库存 move、追溯和业务责任模型。

排错顺序

当业务说“这单到底该用维修还是拆解”,按这个顺序问:

  1. 产品修完后还保留原身份吗
  2. 目标是换件返还还是拆回组件
  3. 是否涉及保修 / 收费 / 客户退回
  4. 是否需要明确 removed parts 与 recycle 去向
  5. 是否必须沿 BOM 和 lot 做逆向追溯

一句话记忆法

Repair 是修好并交回原物,Unbuild 是撤销成品并退回组件。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。