InvReceivableController.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package com.ydtech.modules.inv.controller;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ydtech.core.page.HttpResult;
  6. import com.ydtech.core.page.PageResult;
  7. import com.ydtech.modules.base.controller.BaseController;
  8. import com.ydtech.modules.esm.model.EsmInsCompany;
  9. import com.ydtech.modules.inv.model.po.InvChannelAccount;
  10. import com.ydtech.modules.inv.model.po.InvSettlementSource;
  11. import com.ydtech.modules.inv.model.po.InvSource;
  12. import com.ydtech.modules.inv.model.po.QueryInvChannelAccount;
  13. import com.ydtech.modules.inv.model.vo.*;
  14. import com.ydtech.modules.inv.service.InvChannelAccountService;
  15. import com.ydtech.modules.inv.service.InvReceivableService;
  16. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  17. import com.ydtech.modules.order.entity.BasePageResult;
  18. import com.ydtech.utils.excel.ExcelUtils;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import org.apache.poi.ss.formula.functions.T;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.beans.factory.annotation.Value;
  24. import org.springframework.web.bind.annotation.*;
  25. import java.io.IOException;
  26. import java.nio.file.Files;
  27. import java.nio.file.Path;
  28. import java.nio.file.Paths;
  29. import java.time.LocalDate;
  30. import java.time.LocalDateTime;
  31. import java.time.YearMonth;
  32. import java.time.format.DateTimeFormatter;
  33. import java.util.List;
  34. /**
  35. *
  36. * @author jianlong
  37. * @date 2024-01-05 09:31
  38. */
  39. @Api(tags = "应收应付 - 数据查询", value = "应收应付数据查询")
  40. @RequestMapping("/InsReceivable")
  41. @RestController
  42. public class InvReceivableController extends BaseController {
  43. @Autowired
  44. private InvReceivableService invReceivableService;
  45. @Value("${upload.file.path}")
  46. private String uploadPath;
  47. @Value("${upload.file.url}")
  48. private String uploadUrl;
  49. @ApiOperation("应收导入数据分页查询")
  50. @PostMapping("receivablePage")
  51. public HttpResult<PageResult> receivablePage(@RequestBody InvSourceQueryVo invSourceQueryVo){
  52. IPage<InvSource> recivablePage = invReceivableService.getRecivablePage(invSourceQueryVo);
  53. PageResult pageResult = buildPageResponse(recivablePage);
  54. return HttpResult.ok(pageResult);
  55. }
  56. @ApiOperation("应收导入数据修改")
  57. @PostMapping("receivableUpdates")
  58. public HttpResult updateRecivable(@RequestBody InvSource invSource){
  59. Boolean b = invReceivableService.updateRecivable(invSource);
  60. return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
  61. }
  62. @ApiOperation("应收导入批量数据修改")
  63. @PostMapping("receivableUpdateBatch")
  64. public HttpResult updateRecivableBatch(@RequestBody InvSource invSource){
  65. Boolean b = invReceivableService.updateRecivableBatch(invSource);
  66. return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
  67. }
  68. @ApiOperation("应收表导出")
  69. @PostMapping("exportReceivable")
  70. public HttpResult<PageResult> exportReceivable(@RequestBody InvSourceQueryVo invSourceQueryVo) throws IOException {
  71. List<InvSource> recivablePage = invReceivableService.getRecivableList(invSourceQueryVo);
  72. String uploadPath = this.uploadPath + "/excel/";
  73. Path path = Paths.get(uploadPath);
  74. if(!Files.exists(path)){
  75. Files.createDirectories(path);
  76. }
  77. String fileName = EasyExcelUtils.downExcel(uploadPath, "应收表", InvSource.class, recivablePage);
  78. return HttpResult.ok(uploadUrl + "excel/" +fileName);
  79. }
  80. @ApiOperation("应收导入删除")
  81. @PostMapping("deleteReceivable")
  82. public HttpResult deleteReceivable(@RequestBody String[] ids){
  83. Boolean b = invReceivableService.deleteReceivable(ids);
  84. return b ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
  85. }
  86. @ApiOperation("结算导入数据分页查询")
  87. @PostMapping("settlementPage")
  88. public HttpResult<PageResult> settlementPage(@RequestBody InvSettlementSourceQueryVo invSettlementSourceQueryVo){
  89. IPage<InvSettlementSource> recivablePage = invReceivableService.getSettlementPage(invSettlementSourceQueryVo);
  90. PageResult pageResult = buildPageResponse(recivablePage);
  91. return HttpResult.ok(pageResult);
  92. }
  93. @ApiOperation("结算导入数据修改")
  94. @PostMapping("updateSettlement")
  95. public HttpResult updateSettlement(@RequestBody InvSettlementSource invSettlementSource){
  96. Boolean b = invReceivableService.updateSettlement(invSettlementSource);
  97. return b ? HttpResult.ok("修改成功") : HttpResult.error("修改失败");
  98. }
  99. @ApiOperation("结算导出")
  100. @PostMapping("exportSettlement")
  101. public HttpResult<PageResult> exportSettlement(@RequestBody InvSettlementSourceQueryVo invSettlementSourceQueryVo) throws IOException {
  102. List<InvSettlementSource> recivableList = invReceivableService.getSettlementList(invSettlementSourceQueryVo);
  103. String uploadPath = this.uploadPath + "/excel/";
  104. Path path = Paths.get(uploadPath);
  105. if(!Files.exists(path)){
  106. Files.createDirectories(path);
  107. }
  108. String fileName = EasyExcelUtils.downExcel(uploadPath, "结算表", InvSettlementSource.class, recivableList);
  109. return HttpResult.ok(uploadUrl + "excel/" +fileName);
  110. }
  111. @ApiOperation("应收结果")
  112. @GetMapping("receivableResult")
  113. public HttpResult<BasePageResult<ReceivableResultVo>> receivableResult(String yearMonthStr,String insuranceId){
  114. // 获取当前年月
  115. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
  116. YearMonth yearMonth = YearMonth.parse(yearMonthStr, formatter);
  117. // 获取当前月份的最大天数
  118. int maxDaysInMonth = yearMonth.lengthOfMonth();
  119. List<ReceivableResultVo> invChannelAccountList = invReceivableService.getReceivableList(yearMonth.toString() + "-01",yearMonth.toString() + "-" + String.valueOf(maxDaysInMonth),insuranceId);
  120. BasePageResult<ReceivableResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
  121. return HttpResult.ok(invChannelAccountBasePageResult);
  122. }
  123. @ApiOperation("签单日期结算来源表")
  124. @GetMapping("signingSourceResult")
  125. public HttpResult<BasePageResult<SigningSourceResultVo>> signingSourceResult(String yearMonthStr){
  126. // 获取当前年月
  127. String startMonth = yearMonthStr + "-01-01";
  128. String endMonth = yearMonthStr + "-12-31";
  129. List<SigningSourceResultVo> invChannelAccountList = invReceivableService.getSigningSourceResult(yearMonthStr,startMonth,endMonth);
  130. BasePageResult<SigningSourceResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
  131. return HttpResult.ok(invChannelAccountBasePageResult);
  132. }
  133. @ApiOperation("结算日期结算来源表")
  134. @GetMapping("settlementSourceResult")
  135. public HttpResult<BasePageResult<SettlementSourceResultVo>> settlementSourceResult(String yearMonthStr,String insuranceId){
  136. // 获取当前年月
  137. List<SettlementSourceResultVo> invChannelAccountList = invReceivableService.getSettlementSourceResult(yearMonthStr,insuranceId);
  138. BasePageResult<SettlementSourceResultVo> invChannelAccountBasePageResult = new BasePageResult<>(0, 0, 0, 0, invChannelAccountList);
  139. return HttpResult.ok(invChannelAccountBasePageResult);
  140. }
  141. @ApiOperation("同步应收表与结算表的状态")
  142. @GetMapping("syncStatus")
  143. public HttpResult syncStatus(){
  144. Integer i = invReceivableService.syncStatus();
  145. return HttpResult.ok("同步成功,共同步" + i + "条数据");
  146. }
  147. @ApiOperation("获取保险公司")
  148. @GetMapping("getInsureCompany")
  149. public HttpResult getInsureCompany(){
  150. List<EsmInsCompany> insureCompany = invReceivableService.getInsureCompany();
  151. return HttpResult.ok(insureCompany);
  152. }
  153. @ApiOperation("应收应付表")
  154. @PostMapping("receivableAndSettlement")
  155. public HttpResult<PageResult> receivableAndSettlement(@RequestBody ReceivableAndSettlementQueryVo receivableAndSettlementQueryVo){
  156. Page<ReceivableAndSettlementVo> invChannelAccountList = invReceivableService.getReceivableAndSettlementPage(receivableAndSettlementQueryVo);
  157. PageResult pageResult = buildPageResponse(invChannelAccountList);
  158. return HttpResult.ok(pageResult);
  159. }
  160. @ApiOperation("导出应收应付表")
  161. @PostMapping("excelReceivableAndSettlement")
  162. public HttpResult excelReceivableAndSettlement(@RequestBody ReceivableAndSettlementQueryVo receivableAndSettlementQueryVo) throws IOException {
  163. String uploadPath = this.uploadPath + "/excel/";
  164. Path path = Paths.get(uploadPath);
  165. if(!Files.exists(path)){
  166. Files.createDirectories(path);
  167. }
  168. List<ReceivableAndSettlementVo> invChannelAccountList = invReceivableService.getReceivableAndSettlementList(receivableAndSettlementQueryVo);
  169. String fileName = EasyExcelUtils.downExcel(uploadPath, "应收应付表", ReceivableAndSettlementVo.class, invChannelAccountList);
  170. return HttpResult.ok(uploadUrl + "excel/" +fileName);
  171. }
  172. }