ContractController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. package com.fjhx.sale.controller.contract;
  2. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.fjhx.account.entity.account.vo.AccountRunningWaterVo;
  6. import com.fjhx.flow.entity.flow.dto.FlowResult;
  7. import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
  8. import com.fjhx.item.entity.product.dto.ProductInfoDto;
  9. import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
  10. import com.fjhx.sale.entity.contract.dto.*;
  11. import com.fjhx.sale.entity.contract.po.Contract;
  12. import com.fjhx.sale.entity.contract.vo.*;
  13. import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
  14. import com.fjhx.sale.service.contract.ContractService;
  15. import com.ruoyi.common.core.domain.BaseSelectDto;
  16. import com.ruoyi.common.utils.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * <p>
  24. * 外销合同表 前端控制器
  25. * </p>
  26. *
  27. * @author
  28. * @since 2023-04-17
  29. */
  30. @RestController
  31. @RequestMapping("/contract")
  32. public class ContractController {
  33. @Autowired
  34. private ContractService contractService;
  35. /**
  36. * 外销合同表分页
  37. */
  38. @PostMapping("/page")
  39. public Page<ContractVo> page(@RequestBody ContractSelectDto dto) {
  40. return contractService.getPage(dto);
  41. }
  42. /**
  43. * 外销合同表头部统计
  44. */
  45. @PostMapping("/getHeadStatistic")
  46. public Map<String, Object> getHeadStatistic(@RequestBody ContractSelectDto dto) {
  47. return contractService.getHeadStatistic(dto);
  48. }
  49. /**
  50. * 外销合同与样品单合并分页
  51. */
  52. @PostMapping("/contractAndSamplePage")
  53. public Page<ContractVo> getContractAndSamplePage(@RequestBody ContractSelectDto dto) {
  54. return contractService.getContractAndSamplePage(dto);
  55. }
  56. /**
  57. * 外销合同表分页 不过滤权限
  58. */
  59. @PostMapping("/page1")
  60. public Page<ContractVo> page1(@RequestBody ContractSelectDto dto) {
  61. return contractService.getPage1(dto);
  62. }
  63. /**
  64. * 外销合同表明细
  65. */
  66. @PostMapping("/detail")
  67. public ContractVo detail(@RequestBody ContractSelectDto dto) {
  68. return contractService.detail(dto);
  69. }
  70. /**
  71. * 外销合同表新增
  72. */
  73. @PostMapping("/add")
  74. public void add(@RequestBody ContractDto contractDto) {
  75. contractService.add(contractDto);
  76. }
  77. // /**
  78. // * 外销合同表编辑
  79. // */
  80. // @PostMapping("/edit")
  81. // public void edit(@RequestBody ContractDto contractDto) {
  82. // contractService.edit(contractDto);
  83. // }
  84. /**
  85. * 外销合同作废
  86. */
  87. @PostMapping("/cancellation")
  88. public void cancellation(@RequestBody ContractDto contractDto) {
  89. contractService.cancellation(contractDto.getId());
  90. }
  91. /**
  92. * 修改合同代理费
  93. */
  94. @PostMapping("/modifyAgencyFee")
  95. public void modifyAgencyFee(@RequestBody ContractDto contractDto) {
  96. contractService.modifyAgencyFee(contractDto);
  97. }
  98. /**
  99. * 外销合同表删除
  100. */
  101. @PostMapping("/delete")
  102. public void delete(@RequestBody BaseSelectDto dto) {
  103. contractService.delete(dto.getId());
  104. }
  105. /**
  106. * 根据客户ID查询未包装的订单
  107. */
  108. @GetMapping("/getNoPackContractByCustomerId")
  109. public List<ContractVo> getNoPackContractByCustomerId(@RequestParam("customerId") String customerId) {
  110. return contractService.getNoPackContractByCustomerId(customerId);
  111. }
  112. /**
  113. * 根据合同id集合查询合同列表
  114. */
  115. @PostMapping("/getByIds")
  116. public List<Contract> getByIds(@RequestBody List<Long> ids) {
  117. return contractService.getByIds(ids);
  118. }
  119. /**
  120. * 销售合同pdf
  121. */
  122. @PostMapping("/getContractPdfInfo")
  123. public ContractPdfInfoVo getContractPdfInfo(@RequestBody ContractDto dto) {
  124. Long id;
  125. if (StringUtils.isNotEmpty(dto.getCode())) {
  126. Contract contract = contractService.getOne(Wrappers.<Contract>query().lambda().eq(Contract::getCode, dto.getCode()).last("limit 1"));
  127. id = ObjectUtils.isEmpty(contract) ? 0 : contract.getId();
  128. } else {
  129. id = dto.getId();
  130. }
  131. return contractService.getContractPdfInfo(id);
  132. }
  133. /**
  134. * 销售趋势(数据看板-产品分析页面)
  135. *
  136. * @param productInfoDto
  137. */
  138. @PostMapping("/saleTrend")
  139. public List<Map<String, Object>> saleTrend(@RequestBody ProductInfoSelectDto productInfoDto) {
  140. return contractService.saleTrend(productInfoDto);
  141. }
  142. /**
  143. * 销售统计(数据看板-销售分析页面开发)
  144. */
  145. @PostMapping("/salesStatistics")
  146. public Map<String, Object> salesStatistics(@RequestBody ContractDto dto) {
  147. return contractService.salesStatistics(dto);
  148. }
  149. /**
  150. * 国家销售统计(数据看板-销售分析页面开发)
  151. */
  152. @PostMapping("/countrySalesStatistics")
  153. public List<ContractDto> countrySalesStatistics(@RequestBody ContractDto dto) {
  154. return contractService.countrySalesStatistics(dto);
  155. }
  156. /**
  157. * 客户销售统计(数据看板-销售分析页面开发)
  158. */
  159. @PostMapping("/customSalesStatistics")
  160. public List<ContractDto> customSalesStatistics(@RequestBody ContractDto dto) {
  161. return contractService.customSalesStatistics(dto);
  162. }
  163. /**
  164. * 业务员销售统计(数据看板-销售分析页面开发)
  165. */
  166. @PostMapping("/salesmanSalesStatistics")
  167. public List<ContractDto> salesmanSalesStatistics(@RequestBody ContractDto dto) {
  168. return contractService.salesmanSalesStatistics(dto);
  169. }
  170. /**
  171. * 产品销售额统计(数据看板-销售分析页面开发)
  172. */
  173. @PostMapping("/productSalesStatistics")
  174. public List<ContractDto> productSalesStatistics(@RequestBody ContractDto dto) {
  175. return contractService.productSalesStatistics(dto);
  176. }
  177. /**
  178. * 产品销售量统计(数据看板-销售分析页面开发)
  179. */
  180. @PostMapping("/salesVolumeStatistics")
  181. public List<ContractDto> salesVolumeStatistics(@RequestBody ContractDto dto) {
  182. return contractService.salesVolumeStatistics(dto);
  183. }
  184. /**
  185. * 合同交接单
  186. */
  187. @PostMapping("/contractHandover")
  188. public void contractHandover(@RequestBody ContractDto dto) {
  189. contractService.contractHandover(dto);
  190. }
  191. /**
  192. * 合同销售统计(合同列表)
  193. */
  194. @PostMapping("/covenantStatistics")
  195. public Map<String, Object> covenantStatistics(@RequestBody ContractDto dto) {
  196. return contractService.covenantStatistics(dto);
  197. }
  198. /**
  199. * 利润预算
  200. */
  201. @PostMapping("/getProfitBudgetPage")
  202. public Page<ContractBudgetVo> getProfitBudgetPage(@RequestBody ContractSelectDto dto) {
  203. return contractService.getProfitBudgetPage(dto);
  204. }
  205. /**
  206. * 利润预算
  207. */
  208. @PostMapping("/getProfitBudgetHeadStatistic")
  209. public Map<String, Object> getProfitBudgetHeadStatistic(@RequestBody ContractSelectDto dto) {
  210. return contractService.getProfitBudgetHeadStatistic(dto);
  211. }
  212. /**
  213. * 利润结算
  214. */
  215. @PostMapping("/getProfitClearingPage")
  216. public Page<ContractBudgetVo> getProfitClearingPage(@RequestBody ContractSelectDto dto) {
  217. return contractService.getProfitClearingPage(dto);
  218. }
  219. /**
  220. * 销售合同-》到账完成
  221. */
  222. @PostMapping("/toTheAccount")
  223. public void toTheAccount(@RequestBody Contract dto) {
  224. contractService.toTheAccount(dto);
  225. }
  226. /**
  227. * 决策辅助
  228. */
  229. @PostMapping("/decisionAid")
  230. public DecisionAidVo decisionAid(@RequestBody DecisionAidDto dto) {
  231. return contractService.decisionAid(dto);
  232. }
  233. /**
  234. * 采购付款决策辅助
  235. */
  236. @PostMapping("/payDecisionAid")
  237. public PayDecisionAidVo payDecisionAid(@RequestBody PayDecisionAidDto dto) {
  238. return contractService.payDecisionAid(dto);
  239. }
  240. /**
  241. * 获取合同相关的所有版本列表
  242. */
  243. @PostMapping("/getVersionList")
  244. public List<ContractVo> getVersionList(@RequestBody ContractDto dto) {
  245. return contractService.getVersionList(dto.getId());
  246. }
  247. /**
  248. * 获取合同相关的所有版本列表
  249. */
  250. @PostMapping("/getPurchaseListByContractId")
  251. public List<EhsdPurchase> getPurchaseListByContractId(@RequestBody ContractDto dto) {
  252. return contractService.getPurchaseListByContractId(dto.getId());
  253. }
  254. /**
  255. * 根据合同id获取合同的资金流水信息
  256. */
  257. @PostMapping("/getAccountRunningWaterByContractId")
  258. public List<AccountRunningWaterVo> getAccountRunningWaterByContractId(@RequestBody ContractDto dto) {
  259. return contractService.getAccountRunningWaterByContractId(dto.getId());
  260. }
  261. /**
  262. * 外销跟单分页
  263. */
  264. @PostMapping("/exportCopy/page")
  265. public Page<ContractVo> exportCopyPage(@RequestBody ContractSelectDto dto) {
  266. return contractService.getExportCopyList(dto);
  267. }
  268. /**
  269. * 外销跟单备注
  270. */
  271. @PostMapping("/editContractRemark")
  272. public void editContractRemark(@RequestBody ContractVo contractVo) {
  273. contractService.editContractRemark(contractVo);
  274. }
  275. /**
  276. * 合同结清
  277. */
  278. @PostMapping("/settle")
  279. public void settle(@RequestBody ContractDto dto) {
  280. contractService.settle(dto);
  281. }
  282. /**
  283. * 产品分析
  284. */
  285. @PostMapping("/productAnalysis")
  286. public Page<ProductAnalysisBo> productAnalysis(@RequestBody ContractSelectDto dto) {
  287. return contractService.productAnalysis(dto);
  288. }
  289. /**
  290. * 产品价格提示
  291. */
  292. @PostMapping("/getProductPriceInfo")
  293. Map<Long, Map<String, Object>> getProductPriceInfo(@RequestBody ProductInfoDto dto) {
  294. return contractService.getProductPriceInfo(dto);
  295. }
  296. /**
  297. * 产品价格提示
  298. */
  299. @PostMapping("/updateProductionTag")
  300. void updateProductionTag(@RequestBody ContractDto dto) {
  301. contractService.updateProductionTag(dto);
  302. }
  303. /**
  304. * 销售出库
  305. */
  306. @PostMapping("/saleOutbound")
  307. public void saleOutbound(@RequestBody ContractOutboundInfoDto dto) {
  308. contractService.saleOutbound(dto);
  309. }
  310. /**
  311. * 生产终止
  312. */
  313. @PostMapping("/productionTermination")
  314. public void productionTermination(@RequestBody ContractDto dto) {
  315. contractService.productionTermination(dto);
  316. }
  317. /**
  318. * 合同附件
  319. */
  320. @PostMapping("/contractAttach")
  321. public void contractAttach(@RequestBody ContractDto dto) {
  322. contractService.contractAttach(dto);
  323. }
  324. @PostMapping("/excelExport")
  325. public void excelExport(HttpServletResponse httpServletResponse, @RequestBody ContractSelectDto dto) {
  326. contractService.excelExport(httpServletResponse, dto);
  327. }
  328. /**
  329. * 修改结算日期范围
  330. */
  331. @PostMapping("/editSettleDateRange")
  332. public void editSettleDateRange(@RequestBody ContractDto dto) {
  333. contractService.editSettleDateRange(dto);
  334. }
  335. /**
  336. * 下发待采购
  337. */
  338. @PostMapping("/createWaitMaterial")
  339. public void createWaitMaterial(@RequestBody ContractDto dto) {
  340. contractService.createWaitMaterial(dto.getId());
  341. }
  342. /**
  343. * 创建评审
  344. *
  345. * @return
  346. */
  347. @PostMapping("/createReview")
  348. public FlowResult createReview(@RequestBody ContractDto dto) {
  349. return contractService.createReview(dto);
  350. }
  351. }