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; /** * MES 销售退货单行 Mapper * * @author 超级管理员 */ @Mapper public interface MesWmReturnSalesLineMapper extends BaseMapperX { default PageResult selectPage(MesWmReturnSalesLinePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(MesWmReturnSalesLineDO::getReturnId, reqVO.getReturnId()) .eqIfPresent(MesWmReturnSalesLineDO::getItemId, reqVO.getItemId()) .orderByDesc(MesWmReturnSalesLineDO::getId)); } default List selectListByReturnId(Long returnId) { return selectList(new LambdaQueryWrapperX() .eq(MesWmReturnSalesLineDO::getReturnId, returnId)); } default void deleteByReturnId(Long returnId) { delete(new LambdaQueryWrapperX() .eq(MesWmReturnSalesLineDO::getReturnId, returnId)); } default List selectListByProductSalesLineIds(Collection productSalesLineIds) { return selectList(new LambdaQueryWrapperX() .in(MesWmReturnSalesLineDO::getProductSalesLineId, productSalesLineIds)); } /** * 统计每个销售出库行已被退货的数量:排除已取消的退货单和已删除的行 * * @param productSalesLineIds 销售出库行 ID 集合 * @param canceledStatus 退货单已取消状态 * @param excludeReturnId 需要排除的退货单 ID(校验当前退货单自身的可退数量时使用),可为空 * @return key=销售出库行 ID,value=已退数量 */ @Select("") List> selectReturnedQuantityList( @Param("productSalesLineIds") Collection productSalesLineIds, @Param("canceledStatus") Integer canceledStatus, @Param("excludeReturnId") Long excludeReturnId); }