package cn.superdesk.uniorder.dao.mapper.base;

import cn.superdesk.uniorder.dao.entity.base.UnifiedOrderGoods;
import cn.superdesk.uniorder.dto.param.order.base.UnifiedOrderGoodsQueryCriteria;
import cn.superdesk.uniorder.dto.vo.accounting.unified.supplier.notyet.UnifiedOrderJoinGoodsOfSupplierStatementOfAccountVo;
import cn.superdesk.uniorder.dto.vo.order.base.UnifiedOrderGoodsHeadVo;
import cn.superdesk.uniorder.dto.vo.order.base.UnifiedOrderGoodsListItemVo;
import cn.superdesk.uniorder.dto.vo.unified.UnifiedOrderJoinGoodsDetailVo;
import org.apache.ibatis.annotations.Param;

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


/**
 * @Description: 坑位
 * @Author: linjinyu
 * @CreateDate: 2021/2/3 下午4:13
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/2/3 下午4:13
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface UnifiedOrderGoodsMapperEx {

    List<UnifiedOrderJoinGoodsOfSupplierStatementOfAccountVo> getSupplierStatementOfAccountDetailDimOrder2Goods(Map<String, Object> params);

    int deleteByOrderSn(@Param("orderSn") String orderSn);

    /**
     * 客户结算 -> 未对账订单 -> 创建对账单
     * 电子对账单 的商品列表
     *
     * @param params
     * @return
     */
    List<UnifiedOrderJoinGoodsDetailVo> getUnifiedOrderJoinGoodsDetailVoList(Map<String, Object> params);

    List<UnifiedOrderGoods> findAll(Map<String, Object> params);

    List<UnifiedOrderGoods> findByOrderSn(String orderSn);

    /**
     * 坑位
     *
     * @param record
     * @return
     */
    int insertSelective(UnifiedOrderGoods record);

    /**
     * 坑位
     *
     * @param processList
     * @return
     */
    int insertBatch(List<UnifiedOrderGoods> processList);

    void insertSelectiveWithoutReturnId(UnifiedOrderGoods unifiedOrderGoods);

    List<UnifiedOrderGoodsListItemVo> queryGenericParam(
            UnifiedOrderGoodsQueryCriteria queryCriteria);

    UnifiedOrderGoodsHeadVo queryHeadGenericParam(
            UnifiedOrderGoodsQueryCriteria queryCriteria);
}