| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | .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,value=已退数量 |
| | | */ |
| | | @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); |
| | | |
| | | } |