# 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:各加 `submitApproval(id, key)`、`updateAuditStatus(id, bpmResult)`、`getApprovalProcessDefinitionList()`;改 `submit` 不再伪造已审批。 4. Controller:各加 `get-approval-process-list`、`submit-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`