package com.dk.mdm.mapper.mac;

import com.dk.mdm.model.pojo.mac.AccountItem;
import com.dk.common.mapper.BaseMapper;
import com.dk.mdm.model.query.mac.AccountItemQuery;
import com.dk.mdm.model.response.mac.AccountItemResponse;
import org.springframework.stereotype.Repository;

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

/**
*  账务明细 Mapper
*/
@Repository
public interface AccountItemMapper extends BaseMapper<AccountItem>{
    /**
     * @desc : 查询应收账款明细-数量
     * @author : 付斌
     * @date : 2024-02-28 10:18
     */
    Long countByCond(AccountItemQuery accountItemQuery);
    /**
     * @desc : 查询应收账款明细
     * @author : 付斌
     * @date : 2024-02-28 10:18
     */
    List<AccountItemResponse> getReceivableAccountItem(AccountItemQuery accountItemQuery);

    /**
     * @desc : 查询应付账款明细
     * @author : 付斌
     * @date : 2024-02-28 10:18
     */
    List<AccountItemResponse> getPayableAccountItem(AccountItemQuery accountItemQuery);

    /**
     * @desc : 查询应收账款明细(锁表)
     * @author : 付斌
     * @date : 2024-02-28 10:18
     */
    List<AccountItemResponse> getReceivableAccountItemForUpdate(AccountItemQuery accountItemQuery);

    /**
     * @desc   : 查询收款总额
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    Map<String, Object> getSumAmtRec(String id);

    /**
     * @desc   : 查询收款总额（锁定金额）
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    Map<String, Object> getSumAmtRecLock(String id);

    /**
     * @desc   : 查询付款总额
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    Map<String, Object> getSumAmtPay(String id);

    /**
     * @desc   : 查询订单未出库金额
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    Map<String, Object> getSumAmtOrder(String id);

    /**
     * @desc   : 查询采购未入库金额
     * @author : 付斌
     * @date   : 2024-03-09 11:36
     */
    Map<String, Object> getSumAmtPur(String id);

    /**
     * @desc   : 查询应收收款总额（制单员权限）
     * @author : 周兴
     * @date   : 2024-04-03 11:36
     */
    Map<String, Object> getReceivableAccountSum(AccountItemQuery accountItemQuery);
}

