e9468673c0824c2d6408f8898ed5736c1129bb9e
【后端】 - 新增 GET /stocktake/recommend-locations?days=30&top_n=50 调 get_active_locations 返回推荐库位 full_path 列表 + moves/sku_count/ last_move 明细。只推荐不落库,days/top_n 做范围钳制(1~365 / 1~500)。 - /draft/start-new 在 scope_type=active 时不再自行计算活跃库位,改为读取 payload 的 scope_config.locations 并校验归一化(去空白、去重、保序、 空列表 400、上限 2000)。范围决定权交还前端 UI —— 否则用户手改的勾选 会被后端覆盖。 【前端】欢迎页选中「活跃库位抽盘」时展开配置区: - 「近 30 天最活跃的前 [N] 个库位」+【获取推荐】 - el-tree(show-checkbox)数据取自 /v1/warehouse/tree,按公司前缀过滤 (IRIS 只留 Y*,LICA 只留 C*/L*,复用 getAllowedLocPrefixes) - 获取推荐后 setCheckedKeys 自动勾选;用户可自由增删 - 提交时 getCheckedNodes().map(n => n.full_path) 打包进 scope_config.locations 两个实现细节: - 推荐里有、但树上勾不到的库位(不在当前公司前缀内等)会明确告警并打印, 不让它们静默落选 —— 否则工人以为盘到了、实际没进范围。 - 已选库位数实时显示,因为 el-tree 默认级联:勾一个父节点会连带勾中整棵 子树,规模可能远超推荐数量,需要让用户看得见。 实测: recommend-locations(top_n=10) → 10 个库位 + 明细 start-new 传 3 个库位 → 落库正是这 3 个,总品项 36(全仓 1126) 不传 locations → 400;勾选为空 → 400 公司前缀过滤: IRIS→8 个(Y1~Y8),LICA→25 个,无越界
Description
No description provided
Languages
Python
70.2%
CSS
14.9%
Vue
7.6%
HTML
4.2%
TypeScript
3.1%