From 1ba0dbfde5634c8bf2ec20891d6b226b996f6b59 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 02 九月 2026 14:24:38 +0800
Subject: [PATCH] refactor(mes): 优化MES生产扫码入库功能支持多类型扫码
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java
index 8f55684..1d18be0 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java
@@ -17,6 +17,7 @@
return selectPage(reqVO, new LambdaQueryWrapperX<MesWmTransactionDO>()
.eqIfPresent(MesWmTransactionDO::getItemId, reqVO.getItemId())
.likeIfPresent(MesWmTransactionDO::getBatchCode, reqVO.getBatchCode())
+ .likeIfPresent(MesWmTransactionDO::getBagCode, reqVO.getBagCode())
.eqIfPresent(MesWmTransactionDO::getWarehouseId, reqVO.getWarehouseId())
.eqIfPresent(MesWmTransactionDO::getLocationId, reqVO.getLocationId())
.eqIfPresent(MesWmTransactionDO::getAreaId, reqVO.getAreaId())
@@ -29,4 +30,28 @@
.orderByDesc(MesWmTransactionDO::getTransactionTime));
}
+ /**
+ * 鏌ユ壘铏氭嫙绾胯竟搴撳簱瀛樿褰曞搴旂殑鍘熷鍑哄簱浠撳簱淇℃伅
+ * <p>
+ * 閫氳繃铏氭嫙绾胯竟搴撶殑 materialStockId锛屾壘鍒伴娆″叆搴撲簨鍔★紙IN锛夛紝
+ * 鍐嶉�氳繃 relatedTransactionId 鎵惧埌鍏宠仈鐨勫嚭搴撲簨鍔★紙OUT锛夛紝
+ * 鑾峰彇鐗╂枡浠庡摢涓疄闄呬粨搴撳嚭搴撹繘鍏ヨ櫄鎷熺嚎杈瑰簱鐨勩��
+ *
+ * @param materialStockId 铏氭嫙绾胯竟搴撳簱瀛樿褰� ID
+ * @return 鍘熷鍑哄簱浜嬪姟锛堝寘鍚� warehouseId/locationId/areaId锛夛紝涓嶅瓨鍦ㄨ繑鍥� null
+ */
+ default MesWmTransactionDO selectOriginalOutTransaction(Long materialStockId) {
+ // 1. 鎵惧埌璇ュ簱瀛樿褰曠殑棣栨鍏ュ簱浜嬪姟
+ MesWmTransactionDO firstInTransaction = selectOne(new LambdaQueryWrapperX<MesWmTransactionDO>()
+ .eq(MesWmTransactionDO::getMaterialStockId, materialStockId)
+ .eq(MesWmTransactionDO::getType, 1) // IN
+ .orderByAsc(MesWmTransactionDO::getId)
+ .last("LIMIT 1"));
+ if (firstInTransaction == null || firstInTransaction.getRelatedTransactionId() == null) {
+ return null;
+ }
+ // 2. 閫氳繃 relatedTransactionId 鎵惧埌鍘熷鍑哄簱浜嬪姟
+ return selectById(firstInTransaction.getRelatedTransactionId());
+ }
+
}
--
Gitblit v1.9.3