编辑 | blame | 历史 | 原始文档

WM 仓储单据 BPM 审批 + 设备联动 - 实施进度

记录日期:2026-09-07
状态:阶段1 分析完成,尚未改码;阶段2/3 尚未开始

需求

  1. 设备入库、废旧物资出入库(杂项出入库)、物资退货(供应商退货)等全类型单据,实现线上创建、审批、查询,**全部接入真实 BPM 审批**。
  2. 设备管理(设备台账)创建时自动入库设备仓,与库存联动。
  3. 设备**复用物料主数据模型**(已确认)。

阶段1:三大单据补齐 BPM 审批闭环 —— 分析完成,未改码

已确认现状(可直接采信)

  • MesOrderStatusConstants:PREPARE=0, APPROVING=2, APPROVED=3, FINISHED=4, CANCELLED=5。
  • 状态枚举:
  • MesWmMiscReceiptStatusEnum / MesWmMiscIssueStatusEnum:只有 PREPARE/APPROVED/FINISHED/CANCELED,**缺 APPROVING,需新增**。
  • MesWmReturnVendorStatusEnum:已有 APPROVING(待拣货)。
  • 三个 DO(MesWmMiscReceiptDO/MesWmMiscIssueDO/MesWmReturnVendorDO):均无 processInstanceId 字段,需新增。
  • 三个 Service/Impl:miscreceipt、miscissue 的 submit* 直接 PREPARE→APPROVED(无 BPM);returnvendor 已有 APPROVING→(stock)→APPROVED→(finish)→FINISHED。三者均已有完整库存流水 MesWmTransactionService.createTransactionList,库存只在 finish 中执行。
  • Controller:miscreceipt 有 /submit(仅 id)//finish//cancel,无 submit-approval/process-list。

标准 BPM 模板(复用)

  • MesWmItemReceiptController/submit-approval?id=&processDefinitionKey=
  • MesWmItemReceiptService.submitItemReceiptApproval(id, key) + updateItemReceiptAuditStatus(id, bpmResult)(APPROVE→APPROVED, REJECT→PREPARE, CANCEL→CANCELED)。
  • MesWmItemReceiptStatusListener:监听 BpmProcessInstanceStatusEvent,分类 item_receipt_approve

下一步要改(未开始)

  1. 枚举:miscreceipt/miscissue 各加 APPROVING(MesOrderStatusConstants.APPROVING, "审批中")
  2. DO:三个 DO 各加 processInstanceId
  3. Service 接口 + Impl:各加 submit<Biz>Approval(id, key)update<Biz>AuditStatus(id, bpmResult)get<Biz>ApprovalProcessDefinitionList();改 submit<Biz> 不再伪造已审批。
  4. Controller:各加 get-approval-process-listsubmit-approval
  5. RespVO:各加 processInstanceId(前端据此判"未提交审批")。
  6. 新增 3 个监听器:MesWmMiscReceiptStatusListener/MesWmMiscIssueStatusListener/MesWmReturnVendorStatusListener,分类 misc_receipt_approve/misc_issue_approve/return_vendor_approve
  7. 数据库:三个表各加 process_instance_id VARCHAR(64)(遵守 sql-syntax/sql-script 规范)。

阶段2:设备台账联动设备仓(未开始改码)

  • 关键事实:MdmItemApi.createItem(MdmItemCreateReqDTO) 可建物料(必填 code/name/categoryId/unitMeasureId/itemType);MesDvMachineryDO 无 item_id;内置设备仓 id=5 / 库区 SYS-EQUIP-LOC-01(id=11) / 库位 SYS-EQUIP-BIN-01(id=10)。
  • 方案:createMachinery 加事务 → 建 MDM 物料 → 插设备台账(item_id) → 自动生成条码 → MesWmTransactionService 入设备仓(IN, qty=1)。更新/删除/导入路径同步。

阶段3:独立设备入库单(未开始)

  • 新增 mes_wm_equipment_receipt 主表+明细表、DO/Mapper/Service/VO/Controller/枚举/业务常量,BPM 闭环,完成入库写设备仓。

注意

  • 前端 mom-pro2-before 只读,只输出 docs/ 联调方案文档。
  • 跨模块改动后:mvn compile -pl yudao-module-mes -am -q
  • 详情见计划文件:C:\Users\云\.claude\plans\optimized-honking-pearl.md