InvAccountIncoiceController.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.ydtech.modules.inv.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ydtech.core.page.HttpResult;
  6. import com.ydtech.core.page.PageRequest;
  7. import com.ydtech.exception.SystemException;
  8. import com.ydtech.modules.inv.model.InvAccountIncoice;
  9. import com.ydtech.modules.inv.model.InvAccountIncoiceResult;
  10. import com.ydtech.modules.inv.model.InvAccountOperate;
  11. import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
  12. import com.ydtech.modules.inv.service.InvAccountIncoiceService;
  13. import com.ydtech.modules.inv.service.InvAccountOperateService;
  14. import com.ydtech.utils.StringUtils;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.springframework.util.ObjectUtils;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.annotation.Resource;
  20. import java.io.Serializable;
  21. import java.math.BigDecimal;
  22. import java.util.List;
  23. import java.util.stream.Collectors;
  24. import static com.ydtech.modules.inv.service.impl.InvAccountIncoiceServiceImpl.getBigDecimal;
  25. import static com.ydtech.modules.inv.utils.TransferUtils.isProfitFull;
  26. /**
  27. * 发票管理表(InvAccountIncoice)表控制层
  28. *
  29. * @author makejava
  30. * @since 2024-01-18 16:01:25
  31. */
  32. @RestController
  33. @RequestMapping("invAccountIncoice")
  34. @Api(tags = "发票管理表", value = "发票管理表")
  35. public class InvAccountIncoiceController {
  36. /**
  37. * 服务对象
  38. */
  39. @Resource
  40. private InvAccountIncoiceService invAccountIncoiceService;
  41. @PostMapping("excel")
  42. @ApiOperation("导出开票记录表")
  43. public HttpResult selectAccountIncoiceExcel(@RequestBody InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
  44. return HttpResult.ok("", invAccountIncoiceService.excel(invAccountIncoiceQueryVo));
  45. }
  46. /**
  47. * 分页查询所有数据
  48. *
  49. * @param invAccountIncoice 查询实体
  50. * @return 所有数据
  51. */
  52. @PostMapping("page")
  53. @ApiOperation("分页查询")
  54. public HttpResult selectAll(@RequestBody InvAccountIncoiceQueryVo invAccountIncoice) {
  55. return invAccountIncoiceService.selectPage(invAccountIncoice);
  56. }
  57. /**
  58. * 通过主键查询单条数据
  59. *
  60. * @param id 主键
  61. * @return 单条数据
  62. */
  63. @GetMapping("byId/{id}")
  64. @ApiOperation("根据id查询")
  65. public HttpResult selectOne(@PathVariable("id") Serializable id) {
  66. return HttpResult.ok(this.invAccountIncoiceService.getById(id));
  67. }
  68. /**
  69. * 新增数据
  70. *
  71. * @param invAccountIncoice 实体对象
  72. * @return 新增结果
  73. */
  74. @PostMapping
  75. @ApiOperation("新增")
  76. public HttpResult insert(@RequestBody InvAccountIncoice invAccountIncoice) {
  77. return this.invAccountIncoiceService.insertInvAccountIncoice(invAccountIncoice);
  78. }
  79. /**
  80. * 新增收入
  81. */
  82. @PostMapping("update")
  83. @ApiOperation("新增收入")
  84. public HttpResult updateIncome(@RequestBody InvAccountIncoice invAccountIncoice) {
  85. JSONObject outProfit = invAccountIncoice.getOutProfit();
  86. JSONObject entProfit = invAccountIncoice.getEntProfit();
  87. isProfitFull(outProfit, entProfit, invAccountIncoice.getPayoutMoney());
  88. return this.invAccountIncoiceService.updateInvAccountIncoice(invAccountIncoice);
  89. }
  90. @PostMapping("updateIncoice")
  91. @ApiOperation("修改发票信息")
  92. public HttpResult updateIncoice(@RequestBody InvAccountIncoice invAccountIncoice) {
  93. if (!invAccountIncoice.getPayoutMoney().equals("0") && !invAccountIncoice.getNotPayoutMoney().equals(invAccountIncoice.getInvoiceMoney())) {
  94. throw new SystemException("已进账 如需修改请撤销");
  95. }
  96. BigDecimal tax = getBigDecimal(invAccountIncoice);
  97. //不含税金额
  98. BigDecimal noHasTax = new BigDecimal(invAccountIncoice.getInvoiceMoney()).subtract(tax);
  99. invAccountIncoice.setNotPayoutMoney(invAccountIncoice.getInvoiceMoney());
  100. //税额
  101. invAccountIncoice.setTax(noHasTax.toString());
  102. //不含税金额
  103. invAccountIncoice.setNoHasTax(tax.toString());
  104. return HttpResult.ok(invAccountIncoiceService.updateById(invAccountIncoice));
  105. }
  106. /**
  107. * 撤销
  108. */
  109. @DeleteMapping
  110. @ApiOperation("删除")
  111. public HttpResult delete(@RequestParam("id") String id) {
  112. if (id == null) {
  113. throw new RuntimeException("id不能为空");
  114. }
  115. InvAccountIncoice invAccountIncoice = new InvAccountIncoice();
  116. invAccountIncoice.setInvoiceId(id);
  117. invAccountIncoice.setDelFlag("1");
  118. return this.invAccountIncoiceService.delInvAccountIncoice(invAccountIncoice);
  119. }
  120. }