b271ca3a497ceeb6cf2040fa5d934c78b5128ec9
背景 ---- 1) **单内撕裂**:原 /transfer 收的是**明细行 ID**,只更新那一行。一张单有 2 条明细时,转交后一条归接收人、另一条仍是原借用人 —— 前端按 borrow_no 聚合便同时显示两个名字(实测 BOR-20260917-0001:108→测试 / 109→杜邢宸)。 2) **单向强塞**:原实现发起即生效,接收人在毫不知情的情况下背上资产责任。 本次改动 ---- · 新增 borrow_no —— 单据身份。一次转交要覆盖该单**多行**,单行 ID 表达不了 覆盖范围;accept 时据此批量更新。borrow_id 保留为「发起时的代表明细」供追溯。 · 新增 status —— PENDING / ACCEPTED / REJECTED 状态机。 · 存量 1 行按旧语义(发起即生效)标记为 ACCEPTED 并回填 borrow_no: 它事实上已经生效,若标 PENDING,接收人会收到一条早已生效的待办。 · 建 borrow_no / status / (to_user_id,status) 索引,后者支撑「待我接收」查询。 同单号同一时刻只允许一条 PENDING(应用层强制),避免两个接收人争抢同一批实物。
Description
No description provided
Languages
Python
70.2%
CSS
14.9%
Vue
7.6%
HTML
4.2%
TypeScript
3.1%