InvAccountOperateServiceImpl.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.ydtech.modules.inv.service.impl;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.ydtech.constants.enums.inv.InvPayMethodEnum;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.core.page.PageRequest;
  8. import com.ydtech.modules.inv.model.*;
  9. import com.ydtech.modules.inv.service.*;
  10. import com.ydtech.modules.inv.dao.InvAccountOperateMapper;
  11. import com.ydtech.modules.inv.utils.EasyExcelUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.stereotype.Service;
  15. import java.time.LocalDateTime;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.Map;
  20. import static com.ydtech.modules.inv.utils.TransferUtils.outsideTransfer;
  21. /**
  22. * @author Administrator
  23. * @description 针对表【ins_account_operate(账户操作记录表)】的数据库操作Service实现
  24. * @createDate 2024-01-04 18:29:20
  25. */
  26. @Service
  27. public class InvAccountOperateServiceImpl extends ServiceImpl<InvAccountOperateMapper, InvAccountOperate>
  28. implements InvAccountOperateService {
  29. @Autowired
  30. private InvAccountOperateMapper insAccountOperateMapper;
  31. @Autowired
  32. private InvAccountOpService invAccountOpService;
  33. @Autowired
  34. private InvAccountCardService invAccountCardService;
  35. @Autowired
  36. private InvAccountService invAccountService;
  37. @Autowired
  38. private InvAccountProfitService invAccountProfitService;
  39. @Value("${upload.file.path}")
  40. String uploadFilePath;
  41. /**
  42. * 查询操作列表
  43. *
  44. * @param accountOperate
  45. * @return
  46. */
  47. @Override
  48. public IPage<InvAccountOperate> selectList(InvAccountOperate accountOperate) {
  49. PageRequest pageRequest = new PageRequest();
  50. pageRequest.setPageNum(accountOperate.getPageNo());
  51. pageRequest.setPageSize(accountOperate.getPageSize());
  52. Page page = PageRequest.buildPageRequest(pageRequest);
  53. IPage<InvAccountOperate> invAccountOperateIPage = insAccountOperateMapper.selectInsAccountOperate(page, accountOperate);
  54. List<InvAccountOperate> records = invAccountOperateIPage.getRecords();
  55. for (InvAccountOperate record:records){
  56. StringBuilder a = new StringBuilder();
  57. if (record.getPayMethod() != null){
  58. String[] split = record.getPayMethod().split(",");
  59. for (String i : split) {
  60. a.append(InvPayMethodEnum.getNameByCode(i)).append(",");
  61. }
  62. record.setPayMethod(a.toString());
  63. }
  64. }
  65. invAccountOperateIPage.setRecords(records);
  66. return invAccountOperateIPage;
  67. }
  68. /**
  69. * 外部转内部
  70. * @param invAccountOperate
  71. * @return
  72. */
  73. @Override
  74. public HttpResult insert(InvAccountOperate invAccountOperate) {
  75. InvAccountCard enterAccount = invAccountCardService.getById(invAccountOperate.getEnterCardId());
  76. InvAccountCard invAccount = outsideTransfer(enterAccount, invAccountOperate);
  77. InvAccount account = invAccountService.getById(invAccount.getAccountId());
  78. if (!invAccountCardService.updateById(invAccount)){
  79. return HttpResult.error("新增收入失败");
  80. }
  81. invAccountOperate.setCreateTime(LocalDateTime.now());
  82. insAccountOperateMapper.insert(invAccountOperate);
  83. List<InvAccountOp> list = new ArrayList<>();
  84. for (Map.Entry<String, Object> entry:invAccountOperate.getOutProfit().entrySet()){
  85. InvAccountOp invAccountOp = new InvAccountOp();
  86. invAccountOp.setAccountId(enterAccount.getAccountId());
  87. invAccountOp.setAccountName(account.getAccountName());
  88. invAccountOp.setCardNum(invAccount.getBankCardNum());
  89. invAccountOp.setCardName(invAccount.getBankName());
  90. invAccountOp.setProfit(entry.getKey());
  91. invAccountOp.setMoney(entry.getValue().toString());
  92. list.add(invAccountOp);
  93. }
  94. invAccountOpService.saveBatch(list);
  95. return HttpResult.ok("新增收入成功");
  96. }
  97. @Override
  98. public HttpResult excelAccount(InvAccountOperate accountOperate) {
  99. List<InvAccountOperate> invAccountOperates = insAccountOperateMapper.selectInsAccountOperateList(accountOperate);
  100. List<InvAccountProfit> list = invAccountProfitService.list();
  101. for (InvAccountOperate record:invAccountOperates){
  102. StringBuilder a = new StringBuilder();
  103. if (record.getPayMethod() != null){
  104. String[] split = record.getPayMethod().split(",");
  105. for (String i : split) {
  106. a.append(InvPayMethodEnum.getNameByCode(i)).append(",");
  107. }
  108. record.setPayMethod(a.toString());
  109. }
  110. if (record.getOutProfit()!=null) {
  111. StringBuffer buffer = new StringBuffer();
  112. for (Map.Entry<String, Object> entry : record.getOutProfit().entrySet()){
  113. list.forEach(invAccountProfit -> {
  114. if (invAccountProfit.getProfitEng().equals(entry.getKey())) {
  115. buffer.append(invAccountProfit.getProfitName()).append(" ");
  116. }
  117. });
  118. }
  119. record.setPlate(buffer.toString());
  120. }
  121. }
  122. return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InvAccountOperate.class, invAccountOperates));
  123. }
  124. }