| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package cn.iocoder.yudao.module.erp.dal.mysql.purchase; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseReturnItemDO; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; |
| | | |
| | | /** |
| | | * ERP éè´é货项 Mapper |
| | | * |
| | | * @author èéæºç |
| | | */ |
| | | @Mapper |
| | | public interface ErpPurchaseReturnItemMapper extends BaseMapperX<ErpPurchaseReturnItemDO> { |
| | | |
| | | default List<ErpPurchaseReturnItemDO> selectListByReturnId(Long returnId) { |
| | | return selectList(ErpPurchaseReturnItemDO::getReturnId, returnId); |
| | | } |
| | | |
| | | default List<ErpPurchaseReturnItemDO> selectListByReturnIds(Collection<Long> returnIds) { |
| | | return selectList(ErpPurchaseReturnItemDO::getReturnId, returnIds); |
| | | } |
| | | |
| | | default int deleteByReturnId(Long returnId) { |
| | | return delete(ErpPurchaseReturnItemDO::getReturnId, returnId); |
| | | } |
| | | |
| | | /** |
| | | * åºäºéè´è®¢åç¼å·ï¼æ¥è¯¢æ¯ä¸ªéè´è®¢å项çéè´§æ°éä¹å |
| | | * |
| | | * @param returnIds å
¥åºè®¢å项ç¼å·æ°ç» |
| | | * @return keyï¼éè´è®¢å项ç¼å·ï¼valueï¼éè´§æ°éä¹å |
| | | */ |
| | | default Map<Long, BigDecimal> selectOrderItemCountSumMapByReturnIds(Collection<Long> returnIds) { |
| | | if (CollUtil.isEmpty(returnIds)) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | // SQL sum æ¥è¯¢ |
| | | List<Map<String, Object>> result = selectMaps(new QueryWrapper<ErpPurchaseReturnItemDO>() |
| | | .select("order_item_id, SUM(count) AS sum_count") |
| | | .groupBy("order_item_id") |
| | | .in("return_id", returnIds)); |
| | | // è·å¾æ°é |
| | | return convertMap(result, obj -> (Long) obj.get("order_item_id"), obj -> (BigDecimal) obj.get("sum_count")); |
| | | } |
| | | |
| | | } |