From bc9d77f6061a5c7f7deceaabc7c5ed6c17ad8c2f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 12 十月 2026 14:19:37 +0800
Subject: [PATCH] fix(wm/productissue): 修复物料匹配校验逻辑并迁移至 MDM 物料服务
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java | 35 ++++++++++++++++++++---------------
1 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java
index ee24926..cbcaf18 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueServiceImpl.java
@@ -8,7 +8,7 @@
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskIssueDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDetailDO;
@@ -20,8 +20,8 @@
import cn.iocoder.yudao.module.mes.enums.wm.MesWmProductIssueStatusEnum;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockReserveBizTypeEnum;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskIssueService;
import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
@@ -72,7 +72,7 @@
@Resource
private MesProTaskIssueMapper taskIssueMapper;
@Resource
- private MesMdItemService mdmItemService;
+ private MesMdmItemService mdmItemService;
@Resource
private MesWmTransactionService wmTransactionService;
@Resource
@@ -91,11 +91,11 @@
validateProductIssueSaveData(createReqVO);
// 2. 浠� task 鑷姩甯﹀叆 workOrderId 鍜� workstationId
- MesProTaskDO task = taskService.validateTaskExists(createReqVO.getTaskId());
- if (createReqVO.getWorkOrderId() == null) {
+ MesProTaskDO task = createReqVO.getTaskId() != null ? taskService.validateTaskExists(createReqVO.getTaskId()) : null;
+ if (task != null && createReqVO.getWorkOrderId() == null) {
createReqVO.setWorkOrderId(task.getWorkOrderId());
}
- if (createReqVO.getWorkstationId() == null) {
+ if (task != null && createReqVO.getWorkstationId() == null) {
createReqVO.setWorkstationId(task.getWorkstationId());
}
@@ -115,11 +115,11 @@
validateProductIssueSaveData(updateReqVO);
// 2. 浠� task 鑷姩甯﹀叆 workOrderId 鍜� workstationId
- MesProTaskDO task = taskService.validateTaskExists(updateReqVO.getTaskId());
- if (updateReqVO.getWorkOrderId() == null) {
+ MesProTaskDO task = updateReqVO.getTaskId() != null ? taskService.validateTaskExists(updateReqVO.getTaskId()) : null;
+ if (task != null && updateReqVO.getWorkOrderId() == null) {
updateReqVO.setWorkOrderId(task.getWorkOrderId());
}
- if (updateReqVO.getWorkstationId() == null) {
+ if (task != null && updateReqVO.getWorkstationId() == null) {
updateReqVO.setWorkstationId(task.getWorkstationId());
}
@@ -275,7 +275,7 @@
}
// 鎵归噺鏌ヨ鐗╂枡淇℃伅锛堣幏鍙� unitMeasureId锛�
- Map<Long, MesMdItemDO> itemMap = mdmItemService.getItemMap(
+ Map<Long, MesMdmItemDO> itemMap = mdmItemService.getItemMap(
CollectionUtils.convertSet(lines, MesWmProductIssueLineDO::getItemId));
// 鑾峰彇鏄庣粏鍒楄〃锛岀敤浜庢彁鍙� batchCode
@@ -291,7 +291,7 @@
}
// 鑾峰彇鐗╂枡鍗曚綅
- MesMdItemDO item = itemMap.get(line.getItemId());
+ MesMdmItemDO item = itemMap.get(line.getItemId());
Long unitMeasureId = item != null ? item.getUnitMeasureId() : null;
// 鑾峰彇鎵规鍙凤細鍙栬琛岀涓�涓槑缁嗙殑 batchCode
@@ -398,10 +398,10 @@
*/
private void validateProductIssueSaveData(MesWmProductIssueSaveReqVO reqVO) {
validateCodeUnique(reqVO.getId(), reqVO.getCode());
- // 鏍¢獙 task 瀛樺湪
- MesProTaskDO task = taskService.validateTaskExists(reqVO.getTaskId());
- // 鏍¢獙 task 鍏宠仈鐨勫伐鍗曞凡纭
- Long workOrderId = reqVO.getWorkOrderId() != null ? reqVO.getWorkOrderId() : task.getWorkOrderId();
+ // 鏍¢獙 task 瀛樺湪锛堢敓浜т换鍔¢潪蹇呭~锛屾湭閫夋椂璺宠繃锛�
+ MesProTaskDO task = reqVO.getTaskId() != null ? taskService.validateTaskExists(reqVO.getTaskId()) : null;
+ // 鏍¢獙鍏宠仈鐨勫伐鍗曞凡纭
+ Long workOrderId = reqVO.getWorkOrderId() != null ? reqVO.getWorkOrderId() : (task != null ? task.getWorkOrderId() : null);
if (workOrderId != null) {
workOrderService.validateWorkOrderConfirmed(workOrderId);
}
@@ -410,4 +410,9 @@
}
}
+ @Override
+ public List<MesWmProductIssueDO> getFinishedIssuesByWorkOrderId(Long workOrderId) {
+ return issueMapper.selectListByWorkOrderIdAndStatus(workOrderId, MesWmProductIssueStatusEnum.FINISHED.getStatus());
+ }
+
}
--
Gitblit v1.9.3