From 381e02b9eccbe953b31d09f2af1c2ce77c816140 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 14:51:05 +0800
Subject: [PATCH] fix(mes): 隔离设备物料并支持销售产品映射
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
index 0b02f4c..70ff95e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
@@ -5,6 +5,7 @@
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.mes.controller.admin.wm.transaction.vo.MesWmTransactionPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
@@ -14,6 +15,8 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.transaction.MesWmTransactionMapper;
+import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper;
+import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
@@ -47,6 +50,8 @@
@Resource
private MesWmMaterialStockService materialStockService;
@Resource
+ private MesWmMaterialStockMapper materialStockMapper;
+ @Resource
private MesWmBatchService batchService;
@Resource
private MesMdmItemService mdmItemService;
@@ -71,7 +76,7 @@
// 1.3 鍏ュ簱浜嬪姟锛氭壒娆″彿鏍¢獙 + batchId/batchCode 浜掕ˉ
checkBatch(reqDTO, inbound);
// 1.4 鍏ュ簱浜嬪姟锛氬簱浣嶆贩鏀捐鍒欐牎楠�
- if (inbound) {
+ if (inbound && !ObjUtil.equal(reqDTO.getBizType(), MesBizTypeConstants.WM_STOCK_IMPORT_IN)) {
materialStockService.checkAreaMixingRule(reqDTO.getAreaId(), reqDTO.getItemId(), reqDTO.getBatchId());
}
// 1.5 鍏宠仈浜嬪姟鏍¢獙
@@ -83,7 +88,10 @@
boolean isInbound = transactionType != null && transactionType.isInbound();
if (reqDTO.getMaterialStockId() != null) {
// 浼犲叆浜� materialStockId锛岀洿鎺ヤ娇鐢�
- materialStock = materialStockService.getMaterialStock(reqDTO.getMaterialStockId());
+ materialStock = ObjUtil.equal(reqDTO.getBizType(), MesBizTypeConstants.WM_STOCK_IMPORT_IN)
+ ? materialStockMapper.selectOne(new LambdaQueryWrapperX<MesWmMaterialStockDO>()
+ .eq(MesWmMaterialStockDO::getId, reqDTO.getMaterialStockId()).last("FOR UPDATE"))
+ : materialStockService.getMaterialStock(reqDTO.getMaterialStockId());
if (materialStock == null) {
throw exception(WM_MATERIAL_STOCK_NOT_EXISTS);
}
--
Gitblit v1.9.3