package cn.iocoder.yudao.module.system.dal.mysql.biz;

import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.biz.RefundSettlementOrderItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 退住结算单详情 Mapper
 *
 * @author 系统管理员
 */
@Mapper
public interface RefundSettlementOrderItemMapper extends BaseMapperX<RefundSettlementOrderItemDO> {

    /**
     * 批量查询：按长者 + 费用类型汇总退住结算单的实际退款金额（actual_refund_amount）
     *
     * 说明：
     * 1) rso.tenant_id 用于租户隔离
     * 2) rso.status=1 仅取已结算单据
     * 3) 通过 source_item_id -> elderly_expense_item.type 精确归类四大费用
     */
    List<Map<String, Object>> selectRetreatRefundDeductGrouped(@Param("tenantId") Long tenantId,
                                                               @Param("elderIds") List<Long> elderIds);

}
