| | |
| | | # WM 仓储单据 BPM 审批 + 设备联动 - 实施进度 |
| | | |
| | | > 记录日期:2026-09-07 |
| | | > 状态:阶段1 分析完成,尚未改码;阶段2/3 尚未开始 |
| | | > 状态:阶段1 改码完成且 MES 模块编译通过、数据库字段已补;阶段2 已完成代码分析,尚未改码;阶段3 尚未开始 |
| | | |
| | | ## 需求 |
| | | |
| | |
| | | 2. 设备管理(设备台账)创建时自动入库设备仓,与库存联动。 |
| | | 3. 设备**复用物料主数据模型**(已确认)。 |
| | | |
| | | ## 阶段1:三大单据补齐 BPM 审批闭环 —— 分析完成,未改码 |
| | | ## 阶段1:三大单据补齐 BPM 审批闭环 —— 改码完成,编译通过 |
| | | |
| | | ### 已确认现状(可直接采信) |
| | | |
| | |
| | | 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:设备台账联动设备仓(未开始改码) |
| | | ### 已完成(改码) |
| | | |
| | | - 枚举:miscreceipt/miscissue 已加 `APPROVING(MesOrderStatusConstants.APPROVING, "审批中")`。 |
| | | - DO:三个 DO 均已加 `processInstanceId` 字段。 |
| | | - RespVO:三个单据 RespVO 均已加 `processInstanceId`。 |
| | | - Service 接口 + Impl:三个单据已加 `submit<Biz>Approval(id, processDefinitionKey)`、`update<Biz>AuditStatus(id, bpmResult)`(APPROVE→APPROVED, REJECT→PREPARE, CANCEL→CANCELED)、`get<Biz>ApprovalProcessDefinitionList()`(复用 `MesWmItemReceipt` 模式,过滤挂起、取最新版本)。三个新增常量分类:`APPROVE_CATEGORY_CODE = misc_receipt_approve / misc_issue_approve / return_vendor_approve`。 |
| | | - Controller:三个单据已加 `GET /approval-process-list`;`/submit` 改为带 `processDefinitionKey`,调用审批提交方法。 |
| | | - 监听器:已新增 `MesWmMiscReceiptStatusListener`、`MesWmMiscIssueStatusListener`、`MesWmReturnVendorStatusListener`,同 `MesWmItemReceiptStatusListener` 风格。 |
| | | - 编译:`mvn compile -pl yudao-module-mes -am -q` 通过。 |
| | | - 数据库(实际运行库 mom-xgdl): |
| | | - `mes_wm_misc_receipt`、`mes_wm_misc_issue` 原已有 `process_instance_id`。 |
| | | - `mes_wm_return_vendor` 已补 `process_instance_id VARCHAR(64)`(已验证生效)。 |
| | | |
| | | ### 未完成(阶段1 收尾) |
| | | |
| | | - 输出前端联调方案文档到 `docs/`。 |
| | | |
| | | ## 阶段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)。更新/删除/导入路径同步。 |
| | | |
| | | ### 阶段2 现状与分析结论(2026-09-07 补充) |
| | | |
| | | - 设备台账已定位:`MesDvMachineryServiceImpl.java`(需改入口文件),`createMachinery`/`updateMachinery`/`deleteMachinery` 当前均**无** `@Transactional`;仅有 `importMachineryList` 有 `@Transactional`。 |
| | | - 现有依赖:`machineryMapper`、`barcodeService`(自动生成条码 → `BarcodeBizTypeEnum.MACHINERY`=DV_MACHINERY=400)。 |
| | | - 需追加注入:`MdmItemApi`(mes 模块已依赖 yudao-module-mdm,且有现成注入先例)、`MesWmTransactionService`。 |
| | | -`MdmItemCreateReqDTO` 必填:code/name/categoryId/unitMeasureId/itemType;可选 warehouseId/warehouseCode/barCode/specification/remark。**无设备专用字段**,设备-物料关联依赖新增 `mes_dv_machinery.item_id` 保存返回的 itemId。 |
| | | - `MdmItemCreateReqDTO` 缺少 categoryId/unitMeasureId/itemType 的来源:设备 SaveReqVO 没有这些字段,**需明确默认物料分类、默认计量单位、物料类型(设备)**再实现(横线留待确定)。 |
| | | - 库存事务 DTO `MesWmTransactionSaveReqDTO` 必填:type(IN=正数)/bizType/bizId/bizCode/bizLineId/itemId/quantity/warehouseId/locationId/areaId。设备台账无独立行 ID,bizLineId 业务约定用**设备主键 id**。 |
| | | - 设备 StatusEnum 需确认(设备状态字段 `status` 已有,但其枚举命名与取值尚未核对;物料状态由 MDM 控制)。 |
| | | - 设备物料类型:当前 MDM 物料类型业务是否允许设备类型需确认,若只允许 1/2/3,则新增正式设备类型值并同步字典(不在 MES 内部硬编码未知类型)。 |
| | | - 设备「deleteMachinery」已有点检/保养/维修关联校验,删除库存校验可在库存事务存在性校验处补充。 |
| | | |
| | | (阶段2 尚未开始改码) |
| | | |
| | | ## 阶段3:独立设备入库单(未开始) |
| | | |
| | | - 新增 `mes_wm_equipment_receipt` 主表+明细表、DO/Mapper/Service/VO/Controller/枚举/业务常量,BPM 闭环,完成入库写设备仓。 |