package com.fjhx.sale.service.contract;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.sale.entity.contract.dto.ContractProductDto;
import com.fjhx.sale.entity.contract.dto.ContractProductSelectDto;
import com.fjhx.sale.entity.contract.po.ContractProduct;
import com.fjhx.sale.entity.contract.vo.ContractProductVo;
import com.ruoyi.common.core.service.BaseService;

import java.util.List;


/**
 * <p>
 * 外销合同-产品 服务类
 * </p>
 *
 * @author
 * @since 2023-04-17
 */
public interface ContractProductService extends BaseService<ContractProduct> {

    /**
     * 外销合同-产品分页
     */
    Page<ContractProductVo> getPage(ContractProductSelectDto dto);

    /**
     * 采购交接单 分页
     */
    Page<ContractProductVo> getPage1(ContractProductSelectDto dto);

    /**
     * 外销合同-根据多个明细ID集合查询合同产品
     */
    List<ContractProductVo> getListDetail(List<Long> ids);

    List<ContractProductVo> getListDetailByContractId(List<Long> contractIds);

    /**
     * 外销合同-产品明细
     */
    ContractProductVo detail(Long id);

    /**
     * 外销合同-产品新增
     */
    void add(ContractProductDto contractProductDto);

    /**
     * 外销合同-产品编辑
     */
    void edit(ContractProductDto contractProductDto);

    /**
     * 外销合同-产品删除
     */
    void delete(Long id);

    /**
     * 根据合同ID和客户ID查询未包装的产品
     * @param customerId
     * @return
     */
    List<ContractProductVo> getNoPackContractProductById(String customerId, String contractIds);

    /**
     * ehsd-交接单分页
     */
    Page<ContractProductVo> getEHSDPage(ContractProductSelectDto dto);

    /**
     * ehsd-待质检分页
     */
    Page<ContractProductVo> getEHSDQualityPage(ContractProductSelectDto dto);

    /**
     * 合同交接单--分页
     */
    Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto);
}
