From 0f792c9b3b88dc4b1b7b306f89e257d931d2d0bd Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 18 七月 2026 15:38:57 +0800
Subject: [PATCH] 代码提交

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/transaction/MesWmTransactionMapper.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 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 fee5fe3..878347e 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
@@ -1,6 +1,9 @@
 package cn.iocoder.yudao.module.mes.dal.mysql.wm.transaction;
 
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+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.wm.transaction.MesWmTransactionDO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -10,4 +13,44 @@
 @Mapper
 public interface MesWmTransactionMapper extends BaseMapperX<MesWmTransactionDO> {
 
+    default PageResult<MesWmTransactionDO> selectPage(MesWmTransactionPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<MesWmTransactionDO>()
+                .eqIfPresent(MesWmTransactionDO::getItemId, reqVO.getItemId())
+                .likeIfPresent(MesWmTransactionDO::getBatchCode, reqVO.getBatchCode())
+                .eqIfPresent(MesWmTransactionDO::getWarehouseId, reqVO.getWarehouseId())
+                .eqIfPresent(MesWmTransactionDO::getLocationId, reqVO.getLocationId())
+                .eqIfPresent(MesWmTransactionDO::getAreaId, reqVO.getAreaId())
+                .eqIfPresent(MesWmTransactionDO::getType, reqVO.getType())
+                .eqIfPresent(MesWmTransactionDO::getBizType, reqVO.getBizType())
+                .likeIfPresent(MesWmTransactionDO::getBizCode, reqVO.getBizCode())
+                .eqIfPresent(MesWmTransactionDO::getMaterialStockId, reqVO.getMaterialStockId())
+                .geIfPresent(MesWmTransactionDO::getTransactionTime, reqVO.getStartTime())
+                .leIfPresent(MesWmTransactionDO::getTransactionTime, reqVO.getEndTime())
+                .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