ContractService.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. package com.fjhx.sale.service.contract;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
  5. import com.fjhx.customer.entity.customer.dto.CustomerDto;
  6. import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
  7. import com.fjhx.item.entity.product.dto.ProductInfoDto;
  8. import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
  9. import com.fjhx.sale.entity.contract.dto.ContractDto;
  10. import com.fjhx.sale.entity.contract.dto.ContractSelectDto;
  11. import com.fjhx.sale.entity.contract.dto.DecisionAidDto;
  12. import com.fjhx.sale.entity.contract.dto.PayDecisionAidDto;
  13. import com.fjhx.sale.entity.contract.po.Contract;
  14. import com.fjhx.sale.entity.contract.vo.*;
  15. import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
  16. import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
  17. import com.ruoyi.common.core.service.BaseService;
  18. import com.ruoyi.common.utils.wrapper.IWrapper;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * <p>
  23. * 外销合同表 服务类
  24. * </p>
  25. *
  26. * @author
  27. * @since 2023-04-17
  28. */
  29. public interface ContractService extends BaseService<Contract> {
  30. Page<ContractVo> getContractAndSamplePage(ContractSelectDto dto);
  31. /**
  32. * 外销合同表分页
  33. */
  34. Page<ContractVo> getPage(ContractSelectDto dto);
  35. /**
  36. * 外销合同表分页
  37. */
  38. Map<String,Object> getHeadStatistic(ContractSelectDto dto);
  39. /**
  40. * 外销合同表分页 不过滤权限
  41. */
  42. Page<ContractVo> getPage1(ContractSelectDto dto);
  43. /**
  44. * 利润预算分页
  45. */
  46. Page<ContractBudgetVo> getProfitBudgetPage(ContractSelectDto dto);
  47. Page<ContractBudgetVo> getProfitBudgetPage(ContractSelectDto dto, IWrapper<Contract> wrapper);
  48. /**
  49. * 利润预算表头部统计
  50. *
  51. * @param dto
  52. * @return
  53. */
  54. Map<String, Object> getProfitBudgetHeadStatistic(ContractSelectDto dto);
  55. /**
  56. * 利润结算分页
  57. */
  58. Page<ContractBudgetVo> getProfitClearingPage(ContractSelectDto dto);
  59. /**
  60. * 外销合同表明细
  61. */
  62. ContractVo detail(Long id);
  63. /**
  64. * 外销合同表新增
  65. */
  66. void add(ContractDto contractDto);
  67. /**
  68. * 外销合同表编辑
  69. */
  70. void edit(ContractDto contractDto);
  71. void saveOrEdit(ContractDto contract);
  72. /**
  73. * 外销合同作废
  74. */
  75. void cancellation(ContractDto contractDto);
  76. /**
  77. * 修改合同代理费
  78. */
  79. void modifyAgencyFee(ContractDto contractDto);
  80. /**
  81. * 外销合同表删除
  82. */
  83. void delete(Long id);
  84. /**
  85. * 根据客户ID查询未包装的订单
  86. * @param customerId
  87. * @return
  88. */
  89. List<ContractVo> getNoPackContractByCustomerId(String customerId);
  90. /**
  91. * 根据合同ID集合查询合同
  92. */
  93. List<Contract> getByIds(List<Long> ids);
  94. /**
  95. * 获取合同明细
  96. */
  97. ContractPdfInfoVo getContractPdfInfo(Long id);
  98. /**
  99. * 查询销售额(合同总金额)
  100. * @param id(买方公司ID)
  101. */
  102. ContractVo getSalesTotal(Long id);
  103. /**
  104. * 查询销售额(合同总金额)
  105. * @param id(买方公司ID)
  106. */
  107. Page<ContractVo> getSalesTotalList(Page<Object> page, Long id);
  108. /**
  109. * 查询指定客户的每月合同总额
  110. * @param dto
  111. */
  112. List<ContractVo> getAmount(CustomerDto dto);
  113. /**
  114. * 查询成交单统计(合同)
  115. * @param query
  116. * @return
  117. */
  118. List<SaleQuotationVo> contractStatistics(QueryWrapper<Object> query);
  119. /**
  120. * 销售趋势(数据看板-产品分析页面)
  121. * @param productInfoDto
  122. */
  123. List<Map<String, Object>> saleTrend(ProductInfoSelectDto productInfoDto);
  124. /**
  125. * 销售统计(数据看板-销售分析页面开发)
  126. */
  127. Map<String, Object> salesStatistics(ContractDto dto);
  128. /**
  129. * 国家销售统计(数据看板-销售分析页面开发)
  130. */
  131. List<ContractDto> countrySalesStatistics(ContractDto dto);
  132. /**
  133. * 客户销售统计(数据看板-销售分析页面开发)
  134. */
  135. List<ContractDto> customSalesStatistics(ContractDto dto);
  136. /**
  137. * 业务员销售统计(数据看板-销售分析页面开发)
  138. */
  139. List<ContractDto> salesmanSalesStatistics(ContractDto dto);
  140. /**
  141. * 产品销售统计(数据看板-销售分析页面开发)
  142. */
  143. List<ContractDto> productSalesStatistics(ContractDto dto);
  144. /**
  145. * 产品销售量统计(数据看板-销售分析页面开发)
  146. */
  147. List<ContractDto> salesVolumeStatistics(ContractDto dto);
  148. /**
  149. * 合同交接单
  150. */
  151. void contractHandover(ContractDto dto);
  152. /**
  153. * 合同销售统计(合同列表)
  154. */
  155. Map<String, Object> covenantStatistics(ContractDto dto);
  156. /**
  157. * 销售合同-》到账完成
  158. */
  159. void toTheAccount(Contract dto);
  160. /**
  161. * 决策辅助
  162. */
  163. DecisionAidVo decisionAid(DecisionAidDto dto);
  164. /**
  165. * 采购付款决策辅助
  166. */
  167. PayDecisionAidVo payDecisionAid(PayDecisionAidDto dto);
  168. /**
  169. * 获取合同相关的所有版本列表
  170. */
  171. List<ContractVo> getVersionList(Long id);
  172. /**
  173. * 获取合同相关的所有采购合同版本列表
  174. */
  175. List<EhsdPurchase> getPurchaseListByContractId(Long id);
  176. /**
  177. * 根据合同id获取合同的资金流水信息
  178. */
  179. List<AccountRunningWaterVo> getAccountRunningWaterByContractId(Long contractId);
  180. void updateContract(Contract contract);
  181. /**
  182. * 外销跟单分页
  183. */
  184. Page<ContractVo> getExportCopyList(ContractSelectDto dto);
  185. /**
  186. * 添加备注
  187. */
  188. void editContractRemark(ContractVo contractVo);
  189. /**
  190. * 合同结清
  191. */
  192. void settle(ContractDto dto);
  193. /**
  194. * 产品分析
  195. */
  196. Page<ProductAnalysisBo> productAnalysis(ContractSelectDto dto);
  197. Map<Long, Map<String, Object>> getProductPriceInfo(ProductInfoDto dto);
  198. /**
  199. * 修改合同生产标签
  200. */
  201. void updateProductionTag(ContractDto dto);
  202. /**
  203. * 销售出库
  204. */
  205. void saleOutbound(ContractDto dto);
  206. /**
  207. * 生产终止
  208. */
  209. void productionTermination(ContractDto dto);
  210. }