Date: 10/22/2026Category: GoWind风行Tag: Golang, GoWind, ERP, 数据一致性
本文回答一个问题:"审批完的采购单自动生成应付、收货自动回写库存、低库存自动起草补货单"——同一句"数据全打通",为什么有的链路用硬事务、有的用软失败、有的用事务后 defer?
GoWind ERP(采购/库存/财务三大模块)的 README 把"单据驱动单据"当核心卖点,而代码里真正值得学的是它对一致性等级的分层:不同链路按"失败的代价"选了三种不同的机制——硬同事务、软失败人工补、单体 SAGA 缝。这篇文章把这三种机制各拆到底,再补一刀贯穿全库的并发武器:SQL 条件更新。
