package cn.superdesk.uniorder.dao.mapper.invoice.supplier;

import cn.superdesk.uniorder.dao.entity.invoice.supplier.InvoiceApplySupplierXGoods;
import cn.superdesk.uniorder.dto.param.invoice.supplier.InvoiceApplySupplierOpDetailInnerGoodsListQueryCriteria;
import cn.superdesk.uniorder.dto.vo.invoice.supplier.InvoiceApplySupplierDetailDimGoodsItemVo;
import cn.superdesk.uniorder.dto.vo.invoice.supplier.InvoiceApplySupplierXUnifiedOrderGoodsEdVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2020/11/4 上午11:44
 * @UpdateUser: linjinyu
 * @UpdateDate: 2020/11/4 上午11:44
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface InvoiceApplySupplierXGoodsMapperEx {

	List<InvoiceApplySupplierDetailDimGoodsItemVo> getInvoiceApplySupplierDetailInnerGoodsList(InvoiceApplySupplierOpDetailInnerGoodsListQueryCriteria queryCriteria);

	/**
	 * 用于 发票申请 排除已开票的商品
	 * * 装的是 基于 某对账单Sn 查出这个对账单 商品 已申请开票
	 *
	 * @param accountingOrderSn
	 * @return
	 */
	List<InvoiceApplySupplierXUnifiedOrderGoodsEdVo> getInvoiceApplyXUnifiedOrderGoodsEd(@Param("accountingOrderSn") String accountingOrderSn);

	Integer checkInvoiceApplyStatusByAccountingOrderSn(@Param("accountingOrderSn") String accountingOrderSn);

	int deleteByInvoiceApplySn(@Param("invoiceApplySn") String invoiceApplySn);

	int deleteByInvoiceApplySns(@Param("invoiceApplySns") List<String> invoiceApplySns);

	int insertBatch(List<InvoiceApplySupplierXGoods> processList);
}