c5356a27ed87b09fba707a1ae658729880421884
问题:前面几个报废提交里,inventory-backend/app/models/transaction.py 已经 引用了 db_migrations/phase14_defective_goods_location_snapshot.sql(两处注释 指向它),但**该文件本身没被提交** —— 代码与迁移对不上,别人拉下来跑不起来。 内容:为 trans_defective_goods 增加 warehouse_location / batch_number 两列, 并从源库存行回填存量。 为什么需要这两列:报废台账页与报废申请单明细上,凡是不良品来源的行,库位与 批次此前一律显示 "-" —— 因为应用层硬编码了空串,理由是「源库存行可能已被 物理删除」。该担忧对 material_name/spec_model 成立(所以它们有冗余快照), 但库位/批次当时**没有**快照列,一律置空等于放弃了「源行还在」这个绝大多数 情形。补上快照后,退回那一刻 stock_row 已 with_for_update() 锁在手里, 库位/批次随手可取,落库后即使源行日后被删除,报表依然有值。 口径:存「原库位」(这批货最初在哪),与三张库存表来源的报废记录一致; 不良品区的位置本系统未记录。batch_number 对 stock_product 来源存的是 serial_number(成品表无 batch_number 列),与 scrap.py 的 _from_stock 对齐。 安全性:纯追加式 DDL,无 NOT NULL、无 DEFAULT,幂等可重复执行。 已在本机执行验证:存量 1 行全部回填,源行已删取不到 0 行。
Description
No description provided
Languages
Python
70.2%
CSS
14.9%
Vue
7.6%
HTML
4.2%
TypeScript
3.1%