2026-10-28 11:14:17 +08:00

27 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-08-11 操作日志
## 修复确认下单重复生成订单
- **问题**:国内订单管理出现完全一样的重复订单(如 POZ-TMG-8620 在 7-24 15:26:12 和 15:26:16 各生成一条,仅差 4 秒)
- **定位**:确认下单接口无防重复机制,双击/快速重复点击时多个请求同时通过"待下单状态"检查,各自生成订单
- **修复**:
- 后端 `confirm_order` 增加原子抢占(`UPDATE pending_orders SET status='ordered' WHERE status='pending'` 检查受影响行数),只有抢占成功的请求才生成订单
- 前端确认下单按钮加 `_pendingConfirmLock` 防重复提交锁
- services/db.py 新增 `execute()` 返回受影响行数
- **验证**:3 线程并发测试,仅 1 个请求成功(结果 [1,0,0])
- **提交**:2304696,已重启测试服务(18888)
## 确认下单备份覆盖逻辑
- **确认**:下单备份管理按货品编号唯一保存(pending_orders.product_code 唯一约束),同一商品多次下单会覆盖旧的下单时间/BOM 等备份数据
- **状态**:已向旭东确认是否需要改为保留多次下单历史,待回复
## 下单备份管理支持多次下单历史
- **需求**:下单备份管理保留多次下单历史,每次确认下单新增一条备份记录
- **改动**:
- 删除 pending_orders 的 uk_product_code 唯一约束(ALTER TABLE DROP INDEX)
- confirm_order 按 id 原子抢占,每次确认产生独立 ordered 备份行
- 回退/生产单号/包材单号等操作按 backup_id 精确定位,仅影响目标批次
- 待下单编辑/删除/保存BOM限定 status='pending',不碰历史行
- **验证**:全链路 HTTP 测试(两次下单2条历史+回退保留1条)、并发抢占测试
- **提交**:7de9eb1,已重启测试环境
- **注意**:测试登录曾改汤定毅密码,已从 7/31 备份恢复