【导出收尾】/export-stocktake 会话 active 且 mode=blind 时,汇总表/差异明细/账实相符/未盘点四张 Sheet 的 账面数与差异数一律输出 '—',实盘数照常输出。会话 finished 后自动解锁 —— 盘点结束后核对差异是正常流程,否则报告本身没法用。 批量替换时误伤了 update_stocktake_quantity 里的差异计算,被静态检查脚本 抓出(会拿占位符 '—' 做减法),已改回按真实账面值计算。 【动盘算法】get_active_locations(company_name, days=30, top_n=50) 近 N 天异动最频繁的库位。出库经 (source_table, stock_id) 回查库存表取库位 (trans_outbound.warehouse_location 历史上 900 条里 829 条为空,实测回查 覆盖率 298/299);入库以库存表自身的 in_date / production_date 计时; 借出用 trans_borrow.location。报废/维修表无库位字段,未纳入。 【范围冻结】/draft/start-new 移除 scope_type=active 的 400 拦截,改为在开单时算出活跃库位并**冻结**进 scope_config。必须开单时算好 —— 若各接口实时计算,两次调用之间活跃度变化 会导致范围漂移,结束盘点时把已掉出范围的库存误判成盘亏。 【同源过滤】all-items / merged-list / generate-missing 三者都读同一份冻结的 scope_config。generate-missing 是重中之重:漏盘比对 只针对范围内库存,绝不把范围外未盘库存标成盘亏。 merged-list 一并加了过滤(原指令未提),否则抽屉仍会列出范围外物资, 与「总品项」对不上。 【前端】移除「活跃库位抽盘」的 disabled。 实测(IRIS,全仓 1126 → 抽盘 537): 生成盘亏 537 条 | 落在抽盘范围内 537 | 落在范围外 0 导出: 盲盘 active → 账面数/差异数 = '—';盲盘 finished → 76 / -76(解锁)
Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.
Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.