问题: 1. 准确性 bug: 前端用 getStockList({pageSize:10, keyword}) 模糊搜索 + find() 当 SKU 前缀相同、目标不在前10条时,误报'未找到该物料库存' 2. 性能: 每次扫码全表 ilike %x% 搜索 3 张表,不走索引 修复: - 后端 get_stock_info 改为精确匹配(==)优先,未命中再回退模糊搜索 - 新增 GET /inbound/stock/scan 扫码精确匹配接口,返回唯一命中 - 前端 onScanSuccess/handleManualInput 改用 scanStockByBarcode 一次请求直接命中,不再依赖 pageSize:10 + find()
## stock.py - 新增 GET /draft/merged-list: UNION ALL三表+LEFT JOIN draft 数据库级 LIMIT/OFFSET 分页,不再加载全量到Python内存 - 参数: session_id, keyword, status_filter, page, pageSize - 返回: list, total, total_scanned (已扫去重数) ## stock.ts - 新增 getDraftMergedList() API函数 ## stocktake/index.vue - fetchInventoryList: 改用merged-list单次调用替代99999全量+find() - resumeSession: limit 99999→1 先检查存在,再limit 500加载
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>