CpTradeService.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.dk.mdm.service.mst;
  2. import com.dk.common.infrastructure.annotaiton.Pagination;
  3. import com.dk.common.model.pojo.PageList;
  4. import com.dk.common.response.ResponseResultUtil;
  5. import com.dk.common.response.ResponseResultVO;
  6. import com.dk.common.util.DateUtils;
  7. import com.dk.common.util.ExcelUtils;
  8. import com.dk.mdm.mapper.mst.ReceiptItemMapper;
  9. import com.dk.mdm.mapper.mst.ReceiptMapper;
  10. import com.dk.mdm.model.pojo.mst.CpTrade;
  11. import com.dk.mdm.mapper.mst.CpTradeMapper;
  12. import com.dk.common.service.BaseService;
  13. import com.dk.common.mapper.BaseMapper;
  14. import com.dk.mdm.model.pojo.mst.Receipt;
  15. import com.dk.mdm.model.query.mst.CpTradeQuery;
  16. import com.dk.mdm.model.query.mst.ReceiptItemQuery;
  17. import com.dk.mdm.model.query.mst.ReceiptQuery;
  18. import com.dk.mdm.model.response.mst.CpTradeResponse;
  19. import com.dk.mdm.model.response.mst.ReceiptItemResponse;
  20. import com.dk.mdm.model.vo.mst.ReceiptVO;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.time.LocalDate;
  26. import java.util.Date;
  27. import java.util.List;
  28. @Service
  29. @Transactional
  30. public class CpTradeService extends BaseService<CpTrade> {
  31. @Override
  32. public BaseMapper<CpTrade> getRepository() {
  33. return cpTradeMapper;
  34. }
  35. @Autowired
  36. private CpTradeMapper cpTradeMapper;
  37. @Autowired
  38. private ReceiptItemMapper receiptItemMapper;
  39. @Autowired
  40. private ReceiptMapper receiptMapper;
  41. /**
  42. * @desc : 查询
  43. * @author : 常皓宁
  44. * @date : 2023/1/5 9:39
  45. */
  46. @Pagination
  47. public ResponseResultVO<PageList<CpTradeResponse>> selectByCond(CpTradeQuery cpTradeQuery) {
  48. return super.mergeListWithCount(cpTradeQuery, cpTradeMapper.selectByCond(cpTradeQuery),
  49. cpTradeMapper.countByCond(cpTradeQuery));
  50. }
  51. /**
  52. * @desc : 发票管理查询
  53. * @author : 常皓宁
  54. * @date : 2023/1/5 9:39
  55. */
  56. @Pagination
  57. public ResponseResultVO<PageList<CpTradeResponse>> selectReceipt(CpTradeQuery cpTradeQuery) {
  58. return super.mergeListWithCount(cpTradeQuery, cpTradeMapper.selectReceipt(cpTradeQuery),
  59. cpTradeMapper.countByReceipt(cpTradeQuery));
  60. }
  61. /**
  62. * @desc : 开发票
  63. * @author : 常皓宁
  64. * @date : 2024/8/2 8:44
  65. */
  66. @Transactional(
  67. rollbackFor = {Exception.class}
  68. )
  69. public ResponseResultVO<?> invoicing(List<CpTradeQuery> cpTradeQuery) {
  70. //交易记录list
  71. for (CpTradeQuery cpTradeQuery1 : cpTradeQuery) {
  72. //修改交易记录的状态和时间
  73. cpTradeMapper.updateCpReciptStatus(new CpTradeQuery()
  74. .setTradeId(cpTradeQuery1.getTradeId())
  75. .setReceiptStatus("开票状态-已开票")
  76. .setReceiptDate(LocalDate.now()));
  77. //查询发票明细
  78. List<ReceiptItemResponse> receiptItemResponse =
  79. receiptItemMapper.selectByCond(new ReceiptItemQuery().setTradeId(Math.toIntExact(cpTradeQuery1.getTradeId())));
  80. //根据发票明细查询发票总单
  81. if (receiptItemResponse != null && receiptItemResponse.size() > 0) {
  82. receiptMapper.updateReciptStatus(new ReceiptQuery()
  83. .setReceiptId(receiptItemResponse.get(0).getReceiptId())
  84. .setReceiptStatus("发票状态-开具")
  85. .setReceiptDate(LocalDate.now()));
  86. }
  87. }
  88. return ResponseResultUtil.success(cpTradeQuery);
  89. }
  90. /**
  91. * @desc : 取消开发票
  92. * @author : 常皓宁
  93. * @date : 2024/8/2 8:44
  94. */
  95. @Transactional(
  96. rollbackFor = {Exception.class}
  97. )
  98. public ResponseResultVO<?> unInvoicing(List<CpTradeQuery> cpTradeQuery) {
  99. //交易记录list
  100. for (CpTradeQuery cpTradeQuery1 : cpTradeQuery) {
  101. //修改交易记录的状态和时间
  102. cpTradeMapper.updateCpReciptStatus(new CpTradeQuery()
  103. .setTradeId(cpTradeQuery1.getTradeId())
  104. .setReceiptStatus("开票状态-开票中")
  105. .setReceiptDate(null));
  106. //查询发票明细
  107. List<ReceiptItemResponse> receiptItemResponse =
  108. receiptItemMapper.selectByCond(new ReceiptItemQuery().setTradeId(Math.toIntExact(cpTradeQuery1.getTradeId())));
  109. //根据发票明细查询发票总单
  110. if (receiptItemResponse != null && receiptItemResponse.size() > 0) {
  111. receiptMapper.updateReciptStatus(new ReceiptQuery()
  112. .setReceiptId(receiptItemResponse.get(0).getReceiptId())
  113. .setReceiptStatus("发票状态-申请")
  114. .setReceiptDate(null));
  115. }
  116. }
  117. return ResponseResultUtil.success(cpTradeQuery);
  118. }
  119. /**
  120. * @desc : 导出数据
  121. * @author : 常皓宁
  122. * @date : 2024/6/5 9:48
  123. */
  124. public void exportList(HttpServletResponse response,CpTradeQuery cpTradeQuery) {
  125. String title = "发票管理";
  126. ExcelUtils.exportExcel(cpTradeMapper.selectReceipt(cpTradeQuery),
  127. title, title, CpTradeResponse.class, title + "_" + DateUtils.formatDate(new Date(), "yyyy-MM-dd-HH-mm-ss") + ".xls", response);
  128. }
  129. }