package com.fjhx.sale.service.contract;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
import com.fjhx.customer.entity.customer.dto.CustomerDto;
import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
import com.fjhx.item.entity.product.dto.ProductInfoDto;
import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
import com.fjhx.sale.entity.contract.dto.ContractDto;
import com.fjhx.sale.entity.contract.dto.ContractSelectDto;
import com.fjhx.sale.entity.contract.dto.DecisionAidDto;
import com.fjhx.sale.entity.contract.dto.PayDecisionAidDto;
import com.fjhx.sale.entity.contract.po.Contract;
import com.fjhx.sale.entity.contract.vo.*;
import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
import com.ruoyi.common.core.service.BaseService;
import com.ruoyi.common.utils.wrapper.IWrapper;
import java.util.List;
import java.util.Map;
/**
*
* 外销合同表 服务类
*
*
* @author
* @since 2023-04-17
*/
public interface ContractService extends BaseService {
Page getContractAndSamplePage(ContractSelectDto dto);
/**
* 外销合同表分页
*/
Page getPage(ContractSelectDto dto);
/**
* 外销合同表分页
*/
Map getHeadStatistic(ContractSelectDto dto);
/**
* 外销合同表分页 不过滤权限
*/
Page getPage1(ContractSelectDto dto);
/**
* 利润预算分页
*/
Page getProfitBudgetPage(ContractSelectDto dto);
Page getProfitBudgetPage(ContractSelectDto dto, IWrapper wrapper);
/**
* 利润预算表头部统计
*
* @param dto
* @return
*/
Map getProfitBudgetHeadStatistic(ContractSelectDto dto);
/**
* 利润结算分页
*/
Page getProfitClearingPage(ContractSelectDto dto);
/**
* 外销合同表明细
*/
ContractVo detail(Long id);
/**
* 外销合同表新增
*/
void add(ContractDto contractDto);
/**
* 外销合同表编辑
*/
void edit(ContractDto contractDto);
void saveOrEdit(ContractDto contract);
/**
* 外销合同作废
*/
void cancellation(ContractDto contractDto);
/**
* 修改合同代理费
*/
void modifyAgencyFee(ContractDto contractDto);
/**
* 外销合同表删除
*/
void delete(Long id);
/**
* 根据客户ID查询未包装的订单
* @param customerId
* @return
*/
List getNoPackContractByCustomerId(String customerId);
/**
* 根据合同ID集合查询合同
*/
List getByIds(List ids);
/**
* 获取合同明细
*/
ContractPdfInfoVo getContractPdfInfo(Long id);
/**
* 查询销售额(合同总金额)
* @param id(买方公司ID)
*/
ContractVo getSalesTotal(Long id);
/**
* 查询销售额(合同总金额)
* @param id(买方公司ID)
*/
Page getSalesTotalList(Page