| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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.ErpPurchaseInItemDO; |
| | | 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 ErpPurchaseInItemMapper extends BaseMapperX<ErpPurchaseInItemDO> { |
| | | |
| | | default List<ErpPurchaseInItemDO> selectListByInId(Long inId) { |
| | | return selectList(ErpPurchaseInItemDO::getInId, inId); |
| | | } |
| | | |
| | | default List<ErpPurchaseInItemDO> selectListByInIds(Collection<Long> inIds) { |
| | | return selectList(ErpPurchaseInItemDO::getInId, inIds); |
| | | } |
| | | |
| | | default int deleteByInId(Long inId) { |
| | | return delete(ErpPurchaseInItemDO::getInId, inId); |
| | | } |
| | | |
| | | /** |
| | | * åºäºéè´è®¢åç¼å·ï¼æ¥è¯¢æ¯ä¸ªéè´è®¢å项çå
¥åºæ°éä¹å |
| | | * |
| | | * @param inIds å
¥åºè®¢å项ç¼å·æ°ç» |
| | | * @return keyï¼éè´è®¢å项ç¼å·ï¼valueï¼å
¥åºæ°éä¹å |
| | | */ |
| | | default Map<Long, BigDecimal> selectOrderItemCountSumMapByInIds(Collection<Long> inIds) { |
| | | if (CollUtil.isEmpty(inIds)) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | // SQL sum æ¥è¯¢ |
| | | List<Map<String, Object>> result = selectMaps(new QueryWrapper<ErpPurchaseInItemDO>() |
| | | .select("order_item_id, SUM(count) AS sum_count") |
| | | .groupBy("order_item_id") |
| | | .in("in_id", inIds)); |
| | | // è·å¾æ°é |
| | | return convertMap(result, obj -> (Long) obj.get("order_item_id"), obj -> (BigDecimal) obj.get("sum_count")); |
| | | } |
| | | |
| | | } |