InvAccountIncoiceController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.ydtech.modules.inv.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.ydtech.core.page.HttpResult;
  5. import com.ydtech.core.page.PageRequest;
  6. import com.ydtech.modules.inv.model.InvAccountIncoice;
  7. import com.ydtech.modules.inv.model.InvAccountIncoiceResult;
  8. import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
  9. import com.ydtech.modules.inv.service.InvAccountIncoiceService;
  10. import com.ydtech.utils.StringUtils;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import org.springframework.util.ObjectUtils;
  14. import org.springframework.web.bind.annotation.*;
  15. import javax.annotation.Resource;
  16. import java.io.Serializable;
  17. import java.math.BigDecimal;
  18. import java.util.List;
  19. import java.util.stream.DoubleStream;
  20. /**
  21. * 发票管理表(InvAccountIncoice)表控制层
  22. *
  23. * @author makejava
  24. * @since 2024-01-18 16:01:25
  25. */
  26. @RestController
  27. @RequestMapping("invAccountIncoice")
  28. @Api(tags = "发票管理表", value = "发票管理表")
  29. public class InvAccountIncoiceController {
  30. /**
  31. * 服务对象
  32. */
  33. @Resource
  34. private InvAccountIncoiceService invAccountIncoiceService;
  35. @PostMapping("excel")
  36. @ApiOperation("导出开票记录表")
  37. public HttpResult selectAccountIncoiceExcel(@RequestBody InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
  38. return HttpResult.ok("",invAccountIncoiceService.excel(invAccountIncoiceQueryVo));
  39. }
  40. /**
  41. * 分页查询所有数据
  42. *
  43. * @param invAccountIncoice 查询实体
  44. * @return 所有数据
  45. */
  46. @PostMapping("page")
  47. @ApiOperation("分页查询")
  48. public HttpResult selectAll(@RequestBody InvAccountIncoiceQueryVo invAccountIncoice) {
  49. PageRequest pageRequest = new PageRequest();
  50. pageRequest.setPageNum(invAccountIncoice.getPageNo());
  51. pageRequest.setPageSize(invAccountIncoice.getPageSize());
  52. Page<InvAccountIncoice> page = PageRequest.buildPageRequest(pageRequest);
  53. LambdaQueryWrapper<InvAccountIncoice> lambdaQuery = new LambdaQueryWrapper<>();
  54. lambdaQuery
  55. .like(!StringUtils.isEmpty(invAccountIncoice.getBiller()), InvAccountIncoice::getBiller, invAccountIncoice.getBiller())
  56. .like(!StringUtils.isEmpty(invAccountIncoice.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
  57. invAccountIncoice.getInvoiceBy())
  58. .eq(InvAccountIncoice::getDelFlag, "0")
  59. .eq(!StringUtils.isEmpty(invAccountIncoice.getInvoiceType()), InvAccountIncoice::getInvoiceType,
  60. invAccountIncoice.getInvoiceType())
  61. .like(!StringUtils.isEmpty(invAccountIncoice.getOtherUnit()), InvAccountIncoice::getOtherUnit,invAccountIncoice.getOtherUnit());
  62. if (!ObjectUtils.isEmpty(invAccountIncoice.getInvoiceTime())) {
  63. lambdaQuery.eq(InvAccountIncoice::getInvoiceTime, invAccountIncoice.getInvoiceTime().toString());
  64. }
  65. Page<InvAccountIncoice> invAccountIncoicePage = this.invAccountIncoiceService.page(page, lambdaQuery);
  66. InvAccountIncoiceResult invAccountIncoiceResult = new InvAccountIncoiceResult();
  67. invAccountIncoiceResult.setRecords(invAccountIncoicePage.getRecords());
  68. invAccountIncoiceResult.setPages(invAccountIncoicePage.getPages());
  69. invAccountIncoiceResult.setTotal(invAccountIncoicePage.getTotal());
  70. invAccountIncoiceResult.setSize(invAccountIncoicePage.getSize());
  71. List<InvAccountIncoice> records = invAccountIncoicePage.getRecords();
  72. invAccountIncoiceResult.setNotPayoutMoneySum("0");
  73. invAccountIncoiceResult.setInvoiceMoneySum("0");
  74. invAccountIncoiceResult.setNoHasTaxSum("0");
  75. invAccountIncoiceResult.setInvoiceNumSum("0");
  76. invAccountIncoiceResult.setPayoutMoneySum("0");
  77. invAccountIncoiceResult.setTaxSum("0");
  78. records.forEach(inv -> {
  79. invAccountIncoiceResult.setNotPayoutMoneySum(String.valueOf(new BigDecimal(inv.getInvoiceMoney()).add(new BigDecimal(invAccountIncoiceResult.getNotPayoutMoneySum()))));
  80. invAccountIncoiceResult.setInvoiceMoneySum(String.valueOf(new BigDecimal(inv.getInvoiceMoney()).add(new BigDecimal(invAccountIncoiceResult.getInvoiceMoneySum()))));
  81. invAccountIncoiceResult.setNoHasTaxSum(String.valueOf(new BigDecimal(inv.getNoHasTax()).add(new BigDecimal(invAccountIncoiceResult.getNoHasTaxSum()))));
  82. invAccountIncoiceResult.setInvoiceNumSum(String.valueOf(new BigDecimal(inv.getInvoiceNum()).add(new BigDecimal(invAccountIncoiceResult.getInvoiceNumSum()))));
  83. invAccountIncoiceResult.setPayoutMoneySum(String.valueOf(new BigDecimal(inv.getPayoutMoney()).add(new BigDecimal(invAccountIncoiceResult.getPayoutMoneySum()))));
  84. invAccountIncoiceResult.setTaxSum(String.valueOf(new BigDecimal(inv.getTax()).add(new BigDecimal(invAccountIncoiceResult.getTaxSum()))));
  85. });
  86. return HttpResult.ok(invAccountIncoiceResult);
  87. }
  88. /**
  89. * 通过主键查询单条数据
  90. *
  91. * @param id 主键
  92. * @return 单条数据
  93. */
  94. @GetMapping("byId/{id}")
  95. @ApiOperation("根据id查询")
  96. public HttpResult selectOne(@PathVariable("id") Serializable id) {
  97. return HttpResult.ok(this.invAccountIncoiceService.getById(id));
  98. }
  99. /**
  100. * 新增数据
  101. *
  102. * @param invAccountIncoice 实体对象
  103. * @return 新增结果
  104. */
  105. @PostMapping
  106. @ApiOperation("新增")
  107. public HttpResult insert(@RequestBody InvAccountIncoice invAccountIncoice) {
  108. return this.invAccountIncoiceService.insertInvAccountIncoice(invAccountIncoice);
  109. }
  110. /**
  111. * 新增收入
  112. */
  113. @PostMapping("update")
  114. @ApiOperation("新增收入")
  115. public HttpResult updateIncome(@RequestBody InvAccountIncoice invAccountIncoice) {
  116. return this.invAccountIncoiceService.updateInvAccountIncoice(invAccountIncoice);
  117. }
  118. /**
  119. * 撤销
  120. */
  121. @DeleteMapping
  122. @ApiOperation("删除")
  123. public HttpResult delete(@RequestParam("id") String id) {
  124. if (id == null) {
  125. throw new RuntimeException("id不能为空");
  126. }
  127. InvAccountIncoice invAccountIncoice = new InvAccountIncoice();
  128. invAccountIncoice.setInvoiceId(id);
  129. invAccountIncoice.setDelFlag("1");
  130. return this.invAccountIncoiceService.delInvAccountIncoice(invAccountIncoice);
  131. }
  132. }