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 page, Long id); /** * 查询指定客户的每月合同总额 * @param dto */ List getAmount(CustomerDto dto); /** * 查询成交单统计(合同) * @param query * @return */ List contractStatistics(QueryWrapper query); /** * 销售趋势(数据看板-产品分析页面) * @param productInfoDto */ List> saleTrend(ProductInfoSelectDto productInfoDto); /** * 销售统计(数据看板-销售分析页面开发) */ Map salesStatistics(ContractDto dto); /** * 国家销售统计(数据看板-销售分析页面开发) */ List countrySalesStatistics(ContractDto dto); /** * 客户销售统计(数据看板-销售分析页面开发) */ List customSalesStatistics(ContractDto dto); /** * 业务员销售统计(数据看板-销售分析页面开发) */ List salesmanSalesStatistics(ContractDto dto); /** * 产品销售统计(数据看板-销售分析页面开发) */ List productSalesStatistics(ContractDto dto); /** * 产品销售量统计(数据看板-销售分析页面开发) */ List salesVolumeStatistics(ContractDto dto); /** * 合同交接单 */ void contractHandover(ContractDto dto); /** * 合同销售统计(合同列表) */ Map covenantStatistics(ContractDto dto); /** * 销售合同-》到账完成 */ void toTheAccount(Contract dto); /** * 决策辅助 */ DecisionAidVo decisionAid(DecisionAidDto dto); /** * 采购付款决策辅助 */ PayDecisionAidVo payDecisionAid(PayDecisionAidDto dto); /** * 获取合同相关的所有版本列表 */ List getVersionList(Long id); /** * 获取合同相关的所有采购合同版本列表 */ List getPurchaseListByContractId(Long id); /** * 根据合同id获取合同的资金流水信息 */ List getAccountRunningWaterByContractId(Long contractId); void updateContract(Contract contract); /** * 外销跟单分页 */ Page getExportCopyList(ContractSelectDto dto); /** * 添加备注 */ void editContractRemark(ContractVo contractVo); /** * 合同结清 */ void settle(ContractDto dto); /** * 产品分析 */ Page productAnalysis(ContractSelectDto dto); Map> getProductPriceInfo(ProductInfoDto dto); /** * 修改合同生产标签 */ void updateProductionTag(ContractDto dto); /** * 销售出库 */ void saleOutbound(ContractDto dto); /** * 生产终止 */ void productionTermination(ContractDto dto); }