Commit Graph

676 Commits

Author SHA1 Message Date
cb1d385e77 V3.73,9.8推送 2026-09-08 11:27:53 +08:00
9fc6ff00f9 feat(bom): 出库/借库清单头部 BOM 号后显示父件物料名
- selectedBomLabel 追加父件名(优先候选列表 parent_name,回退最近详情 parent_name)
- 主清单与欠料待补清单两处头部同时生效;取不到名称时退回原格式
2026-09-08 11:13:42 +08:00
02f74278df feat(bom): 归档业务闭环——状态筛选+归档/取消归档入口
- get_bom_list/get_bom_summary 状态过滤支持 archived,enabled 语义改为“启用且未归档”
- get_bom_list 输出补 is_archived;新增 update_archived 与 POST /bom/archive(整组切换归档、清缓存、审计)
- “未指定版本自动取最新”硬化为仅认启用且未归档(get_bom_detail / get_bom_no_by_parent)
- 前端:状态按钮组加“归档”;列表状态列区分归档;操作列加“归档/取消归档”按钮
2026-09-08 11:13:38 +08:00
1daa60590c feat(bom): BOM 管理页 UI——子件版本下拉、只读启停、状态按钮组、公司筛选、手风琴、详情 loading
- 自制件子件行内版本下拉(必选,默认最新启用,外购件不显示);保存/草稿带引用版本
- 查看/只读态“是否启用”开关解耦,切换走独立启停接口
- 状态筛选改 el-radio-group 按钮组(默认启用)
- 顶部接入 CompanySelector,父件/子件物料搜索联动公司并标注公司
- 分类手风琴(全部展开临时关手风琴)与详情弹窗 v-loading;列表默认只显示启用
2026-09-08 10:14:51 +08:00
424df231d5 feat(bom): 前端 BOM API——候选版本、独立启停、物料搜索支持公司
- bom.ts 新增 getChildBomVersions(候选版本) 与 updateBomStatus(独立启停)
- inbound/buy.ts searchMaterialBase 增加可选 company 参数(跨域按公司过滤)
2026-09-08 10:14:47 +08:00
7d9828e403 feat: BOM套餐添加弹窗齐套清单显示自制件子件版本号 2026-09-07 18:03:43 +08:00
3dd8458de0 feat: BOM 子件展示自制件 BOM 版本号——子件列表与出库/借库 BOM 清单打印均显示 2026-09-07 18:01:16 +08:00
d182af7d2a feat: 采购申请支持整批修改重提——批次主行对有被驳回明细的批次一键载入全部被驳明细重提 2026-09-07 17:08:37 +08:00
d163a36117 feat: 采购申请被驳回单支持「修改重提」——预填原单内容改后重新提交 2026-09-07 17:02:04 +08:00
fd55b7adfe perf: 摄像头扫码重构——动态 qrbox 聚焦框、720p、CODE_128/QR 白名单,提升平板扫码体验 2026-09-07 15:53:11 +08:00
220f73acbd feat: 首页全局搜索支持按 SKU 查库位——采购/半成品/成品库存纳入搜索并显示库位 2026-09-07 15:47:25 +08:00
803e8a1532 fix: 出库申请的出库类型改为不默认、必填校验(不能为空提交) 2026-09-07 14:04:34 +08:00
859d783b5c V3.72,9.7推送 2026-09-07 14:02:55 +08:00
478b90fe50 feat: 出库类型贯穿申请→扫码出库——申请单加 outbound_type,申请时选类型、扫码出库自动带出 2026-09-07 14:01:13 +08:00
eaafeaf24e feat: 出库类型新增「维修出库(REPAIR)」下拉选项与记录类型/标签映射 2026-09-07 13:51:38 +08:00
3bd19c1ab5 feat: 借库审批支持手动完结——已通过(status=1)单可强制完结,库管/主管/超管可见 2026-09-04 14:52:31 +08:00
27fb34807d V3.71,9.4推送 2026-09-04 12:02:43 +08:00
1527d552d4 feat: 出库/借库记录记录并展示库位快照(DB加列+后端写入+记录页展示) 2026-09-04 11:42:44 +08:00
8e561836eb feat: 库位按物料公司白名单显示——WarehouseSelector 支持 allowedTopPrefixes,IRIS 仅显 Y、LICA 显 C/L 2026-09-04 11:02:03 +08:00
7cdc0bc3a1 perf: 库位选择器改为按需懒加载——新增 /warehouse/children 接口,WarehouseSelector 移除全量树依赖 2026-09-04 10:51:49 +08:00
0535cd8bd7 fix: 借库申请页预计归还日期禁止选择早于当日 2026-09-04 09:58:48 +08:00
2acbd00222 fix: 修正报废/库存调整/维修入库模块前端权限码与权限表不一致(scrap_list/stock_adjustment/维修统一 operation) 2026-09-04 09:27:55 +08:00
e61351b0ca fix: 借库审批页按钮权限码改为 op_borrow_approval:operation(主管看不到审批按钮) 2026-09-04 09:23:33 +08:00
4f8d765bb3 V3.70,9.2推送 2026-09-02 18:39:36 +08:00
87919146de fix: 基础信息参考价格可修改——脏检查白名单补全 referencePrice 2026-09-02 18:39:17 +08:00
129cb1119f fix: 出库选单 BOM 下拉唯一值修复,打印模板补齐欠料待补区与借库对齐 2026-09-02 18:39:17 +08:00
ec9aafbe51 feat: 借库归还日期贯穿申请/审批/扫码借库;BOM 套餐添加与打印、缺货写入申请原因 2026-09-02 18:39:17 +08:00
bf7b2cc6d3 feat: BOM 库存接口支持按版本查询,修复同一编号多版本下拉回显错乱 2026-09-02 18:39:17 +08:00
ee22927660 fix: 解耦 Webhook 身份证与库存序列号,恢复批号入库纯净
- 前端:新增临时字段 form.track_id 存 16位身份证,Batch 时 form.serial_number 清空
- 前端:submitForm 不再把身份证补进 payload.serial_number,改为透传 payload.track_id
- 后端:StockSemi 仅存 serial_number(Batch 为空),notify_track 优先用 track_id
2026-09-01 16:44:48 +08:00
c3637e0c25 fix: 出库备注欠料改用实时库存计算,不再自动填历史欠料
- buildRemarkWithShortage 改用 bomDetailList 实时 shortage(需量-当前库存)
- 库存补足后,欠料不再自动拼进出库备注(原 localStorage 历史记录一直带出)
2026-09-01 16:35:32 +08:00
8fd4a2ae53 style: 采购申请'完结本批'按钮样式统一为出库审批的 plain 实心样式
- 去掉 link 文字样式,改用 type=danger plain size=small,与出库审批完结按钮一致
2026-09-01 16:23:44 +08:00
4e09860b36 feat: 采购申请完结功能移到批次主行,与出库审批一致
- 移除展开行内的单条完结按钮(需点开),改为主行'完结本批'直接可见
- 后端 batch-approve 支持 action=close(批次内已通过→已完结)
- 超管/库管在主行操作列即可看到并完结
2026-09-01 16:21:48 +08:00
8c554fdd3b fix: 采购申请完结按钮不显示——v-else-if 被注释打断关联
- v-if 与 v-else-if 之间的 HTML 注释破坏 Vue 关联,导致完结按钮不渲染
- 移除注释,超管/库管在'已通过'单均显示完结按钮
2026-09-01 16:18:07 +08:00
fbb4160787 feat: 采购申请新增库管'完结'功能(仿出库审批)
- 后端:approve 接口支持 action=close(已通过→已完结 status 1→4),模型 status_text 支持已完结
- 前端:采购申请状态tab加'已完结',已通过单显示'完结'按钮(库管)
2026-09-01 16:15:48 +08:00
def701fc74 fix: 半成品 Batch 模式序列号界面留空,提交时补回 Track 身份证
- Batch 模式序列号输入框不再显示 16 位身份证,避免误导
- 提交 payload 时若为 Batch 且扫过码,补回身份证供 Webhook 通知 Track
2026-09-01 15:53:02 +08:00
db22065790 fix: 半成品扫码入库按 external_serial 精准判定模式并恢复批号联动
- external_serial 有值 → SN + 填外部序列号;为空 → Batch(不再因身份证有值误切 SN)
- Batch 模式恢复批号自增(onMaterialSelected→checkHistoryAndSetMode),空时兜底 000001
- Batch 下 16 位身份证回填序列号字段,随提交载荷供 Webhook 通知 Track
2026-09-01 15:45:16 +08:00
3d5a9afeda fix: 扫码入库序列号映射优先 external_serial + 半成品自动切换 SN/Batch
- form.serial_number = external_serial || serial_number(优先真实自定义序列号)
- 半成品:扫码后按有无序列号自动切换 SN/Batch 模式,并解除历史锁定
- 修复 onMaterialSelected 未 await checkHistoryAndSetMode 的竞态
2026-09-01 15:11:24 +08:00
bee037f925 feat: MOM 扫码入库对接 Track 产品身份证自动填充
- 半成品/成品入库弹窗顶部新增'扫码入库'按钮,打开扫码面板(扫码枪/摄像头)
- 扫码 Track 身份证后自动填充物料信息与序列号,不再二次搜索
- 后端新增 track_query_service(httpx 调 Track lookup)、track-lookup 接口
- 入库成功后 notify_track 通知 Track 闭环
2026-09-01 13:52:56 +08:00
5bd6fc6272 fix(web): 出库记录类型映射补充 LOSS(盘亏出库) 中文显示
扫码出库下拉存在「盘亏出库 LOSS」选项,历史记录中已存在 LOSS 类型数据,
但出库记录页 formatType/getTagType 翻译表缺失 LOSS 映射,导致记录原样显示英文 LOSS。
补充映射后 LOSS 显示为中文「盘亏出库」黄色标签,与其他出库类型口径一致。
2026-08-31 16:12:18 +08:00
893e7250db fix(api): update-stocktake-quantity 按 session_id 隔离更新,防止跨会话误改
后端 update_stocktake_quantity 原只按 stock_id+source_table 查草稿,
不同盘点会话会相互覆盖实盘数。后端增加 session_id 过滤,
前端 handleQuantityChange 配套传入当前会话ID,API 类型同步补全。
2026-08-31 16:00:20 +08:00
7ac41bf6fd fix(web): 继续上次盘点不再拉取全量草稿,直接复用首条草稿的 session_id
resumeSession 原在 limit=1 探测后,又发起 limit=500 请求只为取出 session_id,
会触发后端 /draft/list 的全量 N+1 查询导致启动卡顿。
改为直接从第一条草稿提取 session_id,恢复会话零冗余请求。
2026-08-31 16:00:06 +08:00
5249649cfa fix(stocktake): 扫码未找到物料时显示友好提示而非原始 404 错误
- 识别 HTTP 404 状态码 → 显示『条码 [xxx] 未在库存系统中找到,请确认条码是否正确』
- 其他错误 → 显示『查询失败: xxx』
- 扫码失败时振动反馈
2026-08-31 15:21:18 +08:00
7a3ffd8ba5 feat(stocktake): 重复扫码提示并确认是否修改
问题: 同一个码扫两遍输入两个数,后端 draft/add 直接覆盖,无任何提示
可能误改已盘数量

改进:
- 后端 draft/list 支持 uuid 过滤,可精确查某物料是否已盘
- 扫码弹输入框前,先精确查询该物料是否已盘
- 已盘过 → 弹窗提示『当前实盘为 X,是否修改?』
  确认后预填旧值供修改,取消则不改变
2026-08-31 15:13:52 +08:00
2eee792059 fix(stocktake): 删除 pinScannedItem 后多余的右花括号
多余的 } 导致 script 括号不匹配,SFC 解析错乱报 Unexpected token
2026-08-31 15:06:30 +08:00
cf76310340 fix(stocktake): 修复模板中 TS 类型注解导致的编译错误
row-class-name 的 (row: any) 在 Vue 模板中不合法,去掉类型注解
2026-08-31 15:03:22 +08:00
c6e8c887ec perf(stocktake): 应盘清单分页 + 扫码置顶高亮
性能修复(解决打开费劲):
- get_all_stocktake_items 改为分页返回 {items(当前页), total, total_scanned}
  不再三次 .all() 全量加载 + 内存排序
- 前端 fetchAllStockItems 分页拉取(每页200),stats 用后端返回的 total
  不依赖全量数组长度

体验优化:
- 扫码成功后将物品置顶到当前表格第一行并浅绿高亮3秒
  库管无需翻页找刚扫的物品,'嘀'一下确认数量即可继续
- 主表格行高亮样式 .just-scanned-row
2026-08-31 14:59:22 +08:00
f5aa2f481b feat(scan): 出库/借库扫码增加未扫清单弹窗
- 扫码进度条旁新增「未扫清单 (N)」按钮(有未扫满物料时显示)
- 弹窗列出计划中未扫满的物料:名称/规格/计划数量/已扫数量/待扫数量
- 提供「去扫码」快捷跳转,方便补扫漏掉的物料
- 未扫满 = 计划数量 > 已扫数量(含完全未扫和扫了一部分的情况)
2026-08-31 14:53:20 +08:00
7e281cf285 fix(stocktake): 盘库扫码改为精确匹配,修复漏匹配与性能问题
问题:
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()
2026-08-31 14:49:24 +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