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

1.8 KiB
Raw Permalink Blame History

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 备份恢复