23a7fc65f1487acac462806de58dbafb085af750
一、后端按「订单」分组(原为平铺明细列表) 有 scrap_request_no → 按单号分组; 无单号(历史直接报废)→ 按 操作时间(精确到分钟) + 操作人 虚拟分组, 生成 LEGACY-<yyyyMMddHHmm>-<操作人> 形式的虚拟单号,避免历史数据成为无主记录。 每单返回 items 明细数组、损失合计、报废总数、申请人(取自 ScrapApproval)。 二、物料解析改为批量预加载 原实现逐条记录 N+1 查询,且 5 条来源路径(stock_buy/semi/product、 trans_borrow、trans_repair)各自 query.get()。改为按 (source_table, stock_id) 收集 ID → 批量 joinedload 查询 → 内存拼装。 三、损失金额改为按权限可见 原 /records 无条件剥离 total_loss,导致持有 scrap_list:loss_amount 的角色 也看不到金额,与权限元素的存在相矛盾。改为对齐 outbound 的 filter_item_by_permissions:无权限置 None,前端 v-if 隐藏整列。 四、新增 keyword / search_type 高级搜索参数 (单号/SKU 在 SQL 层过滤,操作人/申请人/物料名在分组后过滤) 五、修复申请人显示 ScrapApproval._user_name() 返回 '杜邢宸/duxingchen' 全名,统一经 _display_name() 去掉 '/账号' 后缀。 前端 scrap/index.vue 重写为 el-table type=expand 嵌套表格,对齐出库记录版式, 搜索区改用统一 el-form inline 版式(含重置按钮)。 实测:3 单(1 张申请单 2 明细 + 1 组 legacy 合并 2 条),申请人/损失合计/ 虚拟单号均正确。
Description
No description provided
Languages
Python
70.2%
CSS
14.9%
Vue
7.6%
HTML
4.2%
TypeScript
3.1%