yueli
b8d18c71d8
fix(stocktake): 盘点链路按公司隔离,开启新盘点不再清空整表
修复三处跨公司数据污染:
1. /draft/start-new 原本执行 StocktakeDraft.query.all() 后逐条 delete,
任一库管点「开启新盘点」就会物理删除全公司所有人的盘点进度。
改为只签发新 session_id,历史数据原样保留;清理走 /draft/clear,
且强制要求 session_id(不传直接 400),杜绝误清整表。
2. get_stock_info() 全局按 barcode/sku 匹配三张库存表,不同公司的同码
物料互相串货。新增 company_name 参数,精确与模糊两段查询均经由 base
关系按 material_base.company_name 过滤;草稿去重键同步改为
(uuid, session_id, company_name)。
3. 盘点相关读写接口统一施加公司隔离:/draft/list、/draft/add、/draft/clear、
/variance-report、/draft/merged-list、/stocktake/all-items、
/stocktake/generate-missing、/stocktake/update-quantity、/export-stocktake、
/adjust、/scan。
顺带修复 /export-stocktake:差异与相符两张 Sheet 原本不按 session 过滤,
过去依赖 start-new 清空整表才恰好等价于当前会话,现显式按 session_id 过滤,
否则历史会话会被一并导出。
新增接口:
- GET /stocktake/companies 盘点页公司下拉(普通用户只返回本公司,
避免复用 /inbound/buy/options 时因缺 inbound_buy 权限而 403)
- GET /draft/active-session 该公司最近一次活跃会话,供多设备加入
2026-09-11 11:33:12 +08:00
..
2026-09-10 14:16:27 +08:00
2026-09-11 10:34:15 +08:00
2026-07-15 11:11:40 +08:00
2026-09-11 10:34:15 +08:00
2026-09-10 14:16:27 +08:00
2026-09-11 10:34:15 +08:00
2026-09-10 14:16:27 +08:00
2026-09-11 11:33:12 +08:00