yueli
9eb4792d4a
feat(return): 退回流水看板接口与权限收口
新增只读台账接口:
- GET /api/v1/outbound/returns 退回流水(分页 + 关键词 + 类型 + 时间过滤)
返回 原出库单号 / 物料名称 / 规格 / SKU / 退回类型 / 退回数量 / 原因 /
操作人 / 退回时间 / 公司。出库单号经 trans_outbound 批量补齐,物料名按
多态来源批量解析,均为批量查询无 N+1。
权限收口(配合 db_migrations 里的三个权限码):
- return-from-outbound inventory_stocktake:operation -> outbound_return
- GET /stock/defective inventory_stocktake -> defective_list
- restock inventory_stocktake:operation -> defective_restock
- scrap inventory_stocktake:operation -> defective_scrap
- change-status inventory_stocktake:operation -> stock_change_status
原先这四个接口搭的是「盲盘作业」权限的便车,职责错配、审计不合规。
实测 SALES(销售)角色持有 inventory_stocktake,意味着销售人员能读整份
不良品台账——与业务对台账可见性的要求不符。全部改用无冒号专用码后,
实测「只授予 inventory_stocktake:operation」对四个接口均返回 403,便车已封。
trans_return 补 company_name 快照:
退回流水的隔离判定原先只能靠 join 链推,而库存行会被入库模块物理删除
(实测 1077 条出库记录中已有 7 条悬空),链路一断记录就会对普通用户
静默消失。改由退回时落快照,隔离不再依赖任何 join。
2026-09-16 16:45:52 +08:00
..
2026-09-16 16:45:52 +08:00
2026-01-26 13:47:53 +08:00
2026-01-26 13:47:53 +08:00