|
|
f5aa2f481b
|
feat(scan): 出库/借库扫码增加未扫清单弹窗
- 扫码进度条旁新增「未扫清单 (N)」按钮(有未扫满物料时显示)
- 弹窗列出计划中未扫满的物料:名称/规格/计划数量/已扫数量/待扫数量
- 提供「去扫码」快捷跳转,方便补扫漏掉的物料
- 未扫满 = 计划数量 > 已扫数量(含完全未扫和扫了一部分的情况)
|
2026-08-31 14:53:20 +08:00 |
|
|
|
e026c00a85
|
refactor(outbound): 移除扫码出库页的强制完结按钮
- 删除 create.vue 中「强制完结此单」按钮及对应逻辑
- 完结功能保留在出库审批列表页(approval/index.vue)
- 出库执行页聚焦扫码作业
|
2026-08-31 14:38:51 +08:00 |
|
|
|
e492000c3e
|
feat(scan): 出库/借库扫码进度显示 + 重复扫码确认
- 出库 create.vue + 借库 borrow.vue 均增加扫码进度条
显示: 已扫/总数 种 + 已扫/总数 件 + 进度百分比
- 重复扫码时不再直接 +1,改为弹窗确认「确认 +1 / 取消」
防止手滑重复扫或误操作
- 扫码进度条选中审批单后显示
|
2026-08-31 14:35:26 +08:00 |
|
|
|
5abc504619
|
feat(outbound): 审批列表页增加完结按钮 + 优化缺货提示文案
- 去掉缺货提醒末尾的『是否查看?』(纯文案,保持强提醒但不承诺展示清单)
- approval/index.vue 对已通过(status=1)的审批单新增「完结」按钮
库管/主管/超管可见,完结后从已通过列表移除
- 筛选区新增「已完结」状态选项,状态标签支持 status=4
|
2026-08-31 10:46:33 +08:00 |
|
|
|
39f3f8af45
|
feat(outbound): 审批单手动完结/作废功能
- 后端: outbound_service 新增 close_request 方法(状态 1-已通过 → 4-已完结)
- 后端: 新增 POST /api/v1/outbound/request/<id>/close 接口
- 模型: status_text 数组增加「已完结」
- 前端: create.vue 审批单选择区新增「强制完结此单」按钮
完结后刷新列表,该单从已通过下拉中移除
- 权限: 超级管理员/审批人/拥有 outbound_create:operation 的用户可完结(库管可操作)
|
2026-08-31 10:15:33 +08:00 |
|
|
|
b6ec45a8b8
|
feat(outbound): 出库流程强化(缺料防漏 + 完全移除直接出库)
① BOM 清单 SKU 改为规格型号(getBomWithStock 返回 children 无 sku,只有 child_spec)
② 缺货清单自动写入出库申请备注(借鸡生蛋:历史欠料永久留存在申请单)
③ 打印单底部增加欠料待补签收区(补料人签字/日期)
④ 有缺料时阻断式二次确认,防手快漏看
⑤ 完全移除直接出库模式,所有出库必须按单出库
- create.vue 删除 radio 切换、direct 相关逻辑
- 提交前强制校验已选择审批申请单
|
2026-08-31 09:37:14 +08:00 |
|
|
|
a4bd6f54d4
|
feat(outbound): BOM 出库增加清单打印与缺货持久化提醒
- BOM 弹窗物料清单增加「本次结果」列(可出/缺货未出)
- 增加「打印 BOM 清单」按钮,可打印当前 BOM 的完整出库清单
- 缺货物料持久化到 localStorage,下次打开同一 BOM 时自动提示历史缺货记录
防止重复出库或漏出
- 打印区域使用与 A4 出库单一致的 iframe 打印机制
|
2026-08-31 09:26:53 +08:00 |
|
|
|
57a6ab38d1
|
fix(outbound): 修复选单列表移除按钮排序后索引错位导致删错行
- 表格绑定 sortedSelectedItems(按库位排序),但移除按钮用 $index 操作原始 selectedItems
- 排序后索引与原始数组不一致,导致删除错误的行
- 改为按 uniqueKey 精确定位删除
|
2026-08-13 17:17:54 +08:00 |
|
|
|
9c0414b802
|
fix(outbound): 出库备注改为必填,按单出库自动填充申请原因
- 备注字段新增 required 校验规则
- placeholder 从「可选填」改为「请填写出库原因」
- 按单出库模式选择申请单后,自动将申请原因填入备注
|
2026-08-07 15:58:59 +08:00 |
|
|
|
a8a0290cd8
|
fix: outbound total_amount 改为需权限 outbound_list:total_amount,库管无此权限则隐藏总金额
|
2026-07-21 09:49:46 +08:00 |
|
|
|
35690c5b8f
|
fix: 出库列表 permissionMap 基础列改为 null(始终可见),对齐 inbound 模式;单价/小计保留权限控制
|
2026-07-21 09:39:16 +08:00 |
|
|
|
5b1cd4d8d0
|
fix: 扫码出库类型改为必选,移除默认值SALES
- outbound_type 默认值: SALES → '' (空)
- el-select 新增 clearable
- rules 新增 outbound_type required 校验
|
2026-07-16 13:13:08 +08:00 |
|
|
|
329820117f
|
perf: 消除 outbound/borrow BOM 匹配的 while(true) 全量加载
## 后端
- outbound.py: 新增 POST /api/v1/outbound/bom-match-stock 端点
接收 child_ids[],服务端按 base_id IN 查询三表有库存记录并返回
## 前端
- outbound.ts: 新增 bomMatchStock(childIds) API 函数
- Selection.vue: loadAllStockForBom (while(true) 全量) → loadStockForBom (单次 API)
- borrow/apply/index.vue: 同上
## 效果
- BOM 匹配从 ~90 次 HTTP 请求降为 1 次
- 浏览器内存从 ~18000 条降为 ~8-50 条
|
2026-07-15 17:52:08 +08:00 |
|
|
|
2556b77530
|
perf: 系统级性能优化与并发安全修复
## 并发安全修复 (4处)
- scrap.py: 报废执行添加 SELECT FOR UPDATE 悲观锁,消除 TOCTOU 竞态
- stock.py (adjust_stock): 盘点调整添加 for_update=True 行锁
- outbound_service.py: 低库存预警 SMTP 调用移到 commit 之后,避免长事务
- trans_service.py: execute_dispatch 按 (source_table, id) 排序 items,消除死锁风险
## N+1 查询优化 (2处)
- inventory_task.py: _prefetch_inventory_map 单条 UNION ALL+GROUP BY 替代循环内逐条查询(N*4次→2次)
- stock.py (export_stocktake): get_borrowed_qty 批量 GROUP BY 替代逐条 TransBorrow 查询(~18000次→1次)
## BOM 列表性能重构
- bom_service.py: get_bom_list 单条 GROUP BY+string_agg+分页,消除 N+1 循环查询
- bom_service.py: 新增 get_bom_summary (轻量 GROUP BY category+COUNT)
- bom.py: 新增 /api/v1/bom/summary 路由,/list 支持 category 过滤
## Odoo 基础信息懒加载
- base_service.py: 新增 get_odoo_summary (GROUP BY category+COUNT)
- base.py: 新增 /api/v1/inbound/base/odoo-summary 路由
- buyOdoo.vue: 懒加载分组架构 (fetchOdooSummary + loadGroupItems)
- material_base.ts: 新增 getOdooSummary API
## 前端 Bug 修复
- BomManage.vue: 懒加载分组 (fetchBomSummary + loadGroupItems + collapse)
- BomManage.vue: 适配新 API 格式 (res.data.items 替代 res.data)
- buyOdoo.vue: 移除 "点击展开加载" 文字
- Selection.vue + borrow/apply/index.vue: openBomSelect 适配新 API 格式
|
2026-07-15 17:37:57 +08:00 |
|
|
|
4934cd4d8f
|
feat: 采购管理税率+分开单价总价列 + 按单出/借库锁定扫描 + 含税法计算
- purchase: 新增tax_rate字段(model+service+frontend), 表格拆分为不含税单价/总价/税率三列
- buy.vue: 含税法计算(含税总价=数量×含税单价), 含税总价自动计算可手动覆盖
- create.vue: 按单出库模式下未选审批单时锁定摄像头和SKU输入
- borrow.vue: 未选审批单时锁定摄像头和SKU输入
- deploy_production.sql: 整合全部数据库变更(表结构+权限码+角色分配)
|
2026-07-15 16:07:59 +08:00 |
|
|
|
8d78ed9306
|
feat: 全局跨域公司选择器 + 权限页crossDomain开关
- 新增CompanySelector组件: 仅crossDomain权限或SUPER_ADMIN可见
- 权限分配页: 全局系统特权下新增"允许全局跨域"操作权限checkbox
- 入库汇总/出库记录搜索栏嵌入CompanySelector
- PermissionConfig: transformData识别crossDomain为操作权限码
|
2026-07-15 11:11:49 +08:00 |
|
|
|
6a895347d0
|
V3.51
|
2026-06-25 15:44:31 +08:00 |
|
|
|
c1092407ad
|
V3.50
|
2026-06-25 15:21:43 +08:00 |
|
|
|
f27488e693
|
V3.39版本推送,出库选单依据BOM子件0的逻辑修改
|
2026-06-01 09:28:22 +08:00 |
|
|
|
c0ab3ce6d2
|
perf: 消除 BOM 齐套分析的全量库存拉取和 O(N·M) 嵌套循环,改为使用后端返回的 current_stock
|
2026-05-19 10:07:05 +08:00 |
|
|
|
f9dd8b6536
|
版本变更3.22
|
2026-05-15 13:03:13 +08:00 |
|
|
|
857ff958bc
|
版本变更3.19
|
2026-05-14 18:01:28 +08:00 |
|
|
|
3c9d7a999d
|
fix(purchase): 审批人下拉隐藏角色/物料搜索下拉/价格弹窗确认/图片必填校验
|
2026-05-12 17:27:51 +08:00 |
|
|
|
e1e0bc1104
|
版本变更3.17
|
2026-05-12 14:07:26 +08:00 |
|
|
|
048317ee5e
|
feat(branding): 更新系统名称为 MOM / Manufacturing Operations Management
|
2026-05-12 14:01:20 +08:00 |
|
|
|
183b93012e
|
4.28
|
2026-04-28 16:07:11 +08:00 |
|
|
|
62c0e3738e
|
fix(outbound+trans): 修复POST接口错误数据清洗导致的sku/quantity字段被清除Bug,并新增出库审批工作流全链路
|
2026-04-28 16:02:34 +08:00 |
|
|
|
e08eaff40a
|
feat(outbound): 库存列表按规格+库位聚合 + BOM明细类型修复
|
2026-04-28 09:23:59 +08:00 |
|
|
|
2006b7275f
|
fix(outbound): 终极护航版confirmPrint,iframe克隆样式+强制分页CSS
|
2026-04-21 14:39:48 +08:00 |
|
|
|
dd54e047dd
|
fix(outbound): 重构confirmPrint为iframe打印模式,彻底粉碎全局CSS高度锁死
|
2026-04-21 14:35:34 +08:00 |
|
|
|
f53b16f512
|
fix(outbound): 重构@media print,解除el-container/el-main/el-scrollbar父级裁剪锁定
|
2026-04-21 14:26:11 +08:00 |
|
|
|
8583b811e1
|
fix(outbound): 将@media print移至非scoped样式,解除body/html高度锁死实现自由分页
|
2026-04-21 14:01:20 +08:00 |
|
|
|
6f5a7cf0db
|
fix(outbound): #print-area改为absolute解除高度锁死,新增行防断裂保护
|
2026-04-21 13:55:26 +08:00 |
|
|
|
01ce9c1432
|
fix(outbound): 修复预览弹窗el-table打印分页截断问题
|
2026-04-21 13:25:15 +08:00 |
|
|
|
0ab7050e03
|
feat(outbound): 批量模式下支持点击整行切换选中状态
|
2026-04-21 13:20:13 +08:00 |
|
|
|
cd714d0c16
|
feat(outbound): 优化批量操作UX,改为进入/退出批量模式设计
|
2026-04-21 13:14:50 +08:00 |
|
|
|
a6409ac091
|
feat(outbound): 添加批量移除和一键清空功能
|
2026-04-21 13:11:29 +08:00 |
|
|
|
eba558c9d9
|
feat(outbound): 优化按 BOM 添加逻辑,支持缺件时按现有库存部分出库
|
2026-04-21 13:06:03 +08:00 |
|
|
|
a5a35777b5
|
fix(inventory): 修复 BOM 齐套分析时 allStockData 未加载导致可用库存为 0
|
2026-04-20 18:44:35 +08:00 |
|
|
|
466e94c4dd
|
fix(inventory): 修复 BOM 编辑回显显示 ID 及出库齐套分析库存为 0 的问题
|
2026-04-20 18:30:51 +08:00 |
|
|
|
30ab1c186c
|
fix: filter zero quantity items in inventory export and add batch/sn traceability to outbound record details
|
2026-04-07 16:41:53 +08:00 |
|
|
|
c57c84f142
|
fix(outbound): map warehouse location field correctly and implement natural sorting by location path for picking route optimization
|
2026-04-02 17:54:09 +08:00 |
|
|
|
d0cac14a33
|
fix(outbound): fix row-key collision causing UI select-all bug and false duplicate warnings in stock selection
|
2026-04-02 17:48:06 +08:00 |
|
|
|
a8119dd577
|
fix(permission): force inject view-level permission checks for all unprotected root nodes
|
2026-03-25 10:21:28 +08:00 |
|
|
|
d5d12a8df5
|
3.24部署版本
|
2026-03-24 16:19:47 +08:00 |
|
|
|
93dc375ba4
|
perf: replace client-side pagination with server-side pagination in stock selection dialog and fix duplicate variable in semi.vue
|
2026-03-23 14:52:01 +08:00 |
|
|
|
08c921fe66
|
feat: standardize default page size to 20, add pagination to pick list, and fix table horizontal scrollbar visibility
|
2026-03-23 14:38:08 +08:00 |
|
|
|
71e5f075d2
|
feat: implement composite debounced search with prepended select and wipe out duplicate root permission nodes
|
2026-03-20 10:26:45 +08:00 |
|
|
|
990399a408
|
feat: implement cross-table search and debounced dynamic search for borrow and return records
|
2026-03-20 09:58:42 +08:00 |
|
|
|
74089c7d7d
|
fix: clean orphaned permission tree nodes and enhance outbound search with material name/spec model
|
2026-03-20 09:53:32 +08:00 |
|