From 5d818f39c862884b7087488d588fef5b7ce47386 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 28 十月 2026 18:33:55 +0800
Subject: [PATCH] feat(mes): 增加销售退货单与出库单关联功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/returnsales/MesWmReturnSalesLineMapper.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/returnsales/MesWmReturnSalesLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/returnsales/MesWmReturnSalesLineMapper.java
index d097aa0..086a34f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/returnsales/MesWmReturnSalesLineMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/returnsales/MesWmReturnSalesLineMapper.java
@@ -1,12 +1,17 @@
package cn.iocoder.yudao.module.mes.dal.mysql.wm.returnsales;
+import cn.iocoder.yudao.framework.common.core.KeyValue;
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.returnsales.vo.line.MesWmReturnSalesLinePageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnsales.MesWmReturnSalesLineDO;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import java.math.BigDecimal;
+import java.util.Collection;
import java.util.List;
/**
@@ -34,4 +39,31 @@
.eq(MesWmReturnSalesLineDO::getReturnId, returnId));
}
+ default List<MesWmReturnSalesLineDO> selectListByProductSalesLineIds(Collection<Long> productSalesLineIds) {
+ return selectList(new LambdaQueryWrapperX<MesWmReturnSalesLineDO>()
+ .in(MesWmReturnSalesLineDO::getProductSalesLineId, productSalesLineIds));
+ }
+
+ /**
+ * 缁熻姣忎釜閿�鍞嚭搴撹宸茶閫�璐х殑鏁伴噺锛氭帓闄ゅ凡鍙栨秷鐨勯��璐у崟鍜屽凡鍒犻櫎鐨勮
+ *
+ * @param productSalesLineIds 閿�鍞嚭搴撹 ID 闆嗗悎
+ * @param canceledStatus 閫�璐у崟宸插彇娑堢姸鎬�
+ * @param excludeReturnId 闇�瑕佹帓闄ょ殑閫�璐у崟 ID锛堟牎楠屽綋鍓嶉��璐у崟鑷韩鐨勫彲閫�鏁伴噺鏃朵娇鐢級锛屽彲涓虹┖
+ * @return key=閿�鍞嚭搴撹 ID锛寁alue=宸查��鏁伴噺
+ */
+ @Select("<script>" +
+ "SELECT rl.product_sales_line_id AS `key`, IFNULL(SUM(rl.quantity), 0) AS `value` " +
+ "FROM mes_wm_return_sales_line rl " +
+ "INNER JOIN mes_wm_return_sales rs ON rs.id = rl.return_id AND rs.deleted = 0 AND rs.status != #{canceledStatus} " +
+ "<if test='excludeReturnId != null'>AND rs.id != #{excludeReturnId} </if>" +
+ "WHERE rl.deleted = 0 AND rl.product_sales_line_id IN " +
+ "<foreach collection='productSalesLineIds' item='id' open='(' separator=',' close=')'>#{id}</foreach> " +
+ "GROUP BY rl.product_sales_line_id" +
+ "</script>")
+ List<KeyValue<Long, BigDecimal>> selectReturnedQuantityList(
+ @Param("productSalesLineIds") Collection<Long> productSalesLineIds,
+ @Param("canceledStatus") Integer canceledStatus,
+ @Param("excludeReturnId") Long excludeReturnId);
+
}
--
Gitblit v1.9.3