fix: 统计分析,自测问题修复。

This commit is contained in:
tianyongbao
2024-05-11 17:06:08 +08:00
parent b3679413b4
commit af2d44a517
3 changed files with 97 additions and 7 deletions

View File

@@ -1,8 +1,8 @@
package com.ruoyi.invest.domain.vo;
import com.ruoyi.invest.domain.InstallmentHistoryDetail;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* 分期历史明细Vo对象 installment_history_detail
*
@@ -13,5 +13,8 @@ import io.swagger.annotations.ApiModel;
@Data
public class InstallmentHistoryDetailVo extends InstallmentHistoryDetail
{
private String bankCardLendName;
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.invest.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.utils.DictUtils;
import com.ruoyi.invest.domain.dto.*;
import com.ruoyi.invest.domain.vo.*;
import com.ruoyi.invest.mapper.*;
@@ -9,6 +10,7 @@ import com.ruoyi.invest.service.IStatisticAnalysisService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -410,7 +412,12 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
creditCardBillDto.setEndMonth(analysisDto.getEndTime().substring(0,7));
creditCardBillDto.setCreditCardId(analysisDto.getId());
creditCardBillVoList=creditCardBillMapper.selectCreditCardBillList(creditCardBillDto);
//修改名称加卡号
for (CreditCardBillVo creditCardBill : creditCardBillVoList) {
if(creditCardBill.getBankName()!=null){
creditCardBill.setBankNameCode(creditCardBill.getBankName()+""+ StringUtils.getLastNumberChars(4,creditCardBill.getBankCode()+""));
}
}
//信用卡额度
BankCardLendDto bankCardLendDto=new BankCardLendDto();
bankCardLendDto.setType("2");
@@ -457,6 +464,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
for (String staticsTime :staticsTimeList
) {
String details="";
double actualCreditBillMonth=0;
for (CreditCardBillVo creditCardBillVo:creditCardBillVoList
) {
@@ -464,11 +472,13 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
if(staticsTime.equals(monthString)){
actualCreditBillMonth+=creditCardBillVo.getBillAmount();
details+=creditCardBillVo.getBankNameCode()+"账单"+creditCardBillVo.getBillAmount()+"<br/>";
}
}
CreditCardBillVo analysisVo=new CreditCardBillVo();
analysisVo.setBillAmount(Double.parseDouble(decimalFormat.format(actualCreditBillMonth)));
analysisVo.setName(staticsTime);
analysisVo.setRemark(details);
creditAnalysisList.add(analysisVo);
}
@@ -523,6 +533,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
) {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", creditCardBillVo.getName());
datamap.put("detail", creditCardBillVo.getRemark());
datamap.put("value", decimalFormat.format(creditCardBillVo.getBillAmount()));
tableCreditBillList.add(datamap);
}
@@ -594,6 +605,14 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
futureStocksBillDto.setType(analysisDto.getDataType());
futureStocksBillVoList=futureStocksBillMapper.selectFutureStocksBillList(futureStocksBillDto);
//修改名称加卡号
for (FutureStocksBillVo futureStocksBill : futureStocksBillVoList) {
if(futureStocksBill.getFutureStocksCode()!=null){
futureStocksBill.setFutureStocksNameCode(futureStocksBill.getFutureStocksName()+""+ futureStocksBill.getFutureStocksCode()+"");
}else {
futureStocksBill.setFutureStocksNameCode(futureStocksBill.getFutureStocksName());
}
}
//累计收益
double accumulateIncome = futureStocksBillVoList.stream().mapToDouble(FutureStocksBillVo::getBillAmount).sum();
map.put("accumulateIncome", decimalFormat.format(accumulateIncome));
@@ -605,15 +624,17 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
List <String> staticsTimeList=new ArrayList<>();
for (FutureStocksBillVo futureStocksBillVo:futureStocksBillVoList
) {
String monthString=dateFormat.format(futureStocksBillVo.getBillDate()).substring(0,7);
if(!staticsTimeList.contains(monthString)){
staticsTimeList.add(monthString);
}
}
for (String staticsTime :staticsTimeList
) {
String details="";
double actualCreditBillMonth=0;
for (FutureStocksBillVo futureStocksBillVo:futureStocksBillVoList
) {
@@ -621,11 +642,13 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
if(staticsTime.equals(monthString)){
actualCreditBillMonth+=futureStocksBillVo.getBillAmount();
details+=futureStocksBillVo.getFutureStocksNameCode()+"收益"+futureStocksBillVo.getBillAmount()+"<br/>";
}
}
FutureStocksBillVo analysisVo=new FutureStocksBillVo();
analysisVo.setBillAmount(Double.parseDouble(decimalFormat.format(actualCreditBillMonth)));
analysisVo.setName(staticsTime);
analysisVo.setRemark(details);
futureStocksBillList.add(analysisVo);
}
@@ -682,6 +705,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
) {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", futureStocksBillVo.getName());
datamap.put("detail", futureStocksBillVo.getRemark());
datamap.put("value", decimalFormat.format(futureStocksBillVo.getBillAmount()));
tableFuturesStocksList.add(datamap);
}
@@ -802,6 +826,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
for (String staticsTime :staticsTimeList
) {
String details="";
double actualCreditBillDay=0;
for (InstallmentHistoryDetailVo vo:detailList
) {
@@ -809,11 +834,13 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
if(staticsTime.equals(dayString)){
actualCreditBillDay+=vo.getCurrentAmount();
details+=vo.getBankCardLendName()+""+dateFormat.format(vo.getCreateTime())+"应还款总额"+vo.getCurrentAmount()+",其中本金"+vo.getPrincipal()+",利息"+vo.getInterest()+"<br/>";
}
}
InstallmentHistoryDetailVo analysisVo=new InstallmentHistoryDetailVo();
analysisVo.setCurrentAmount(actualCreditBillDay);
analysisVo.setRemark(staticsTime);
analysisVo.setBankCardLendName(details);
installmentHistoryDetailList.add(analysisVo);
}
@@ -887,6 +914,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", vo.getRemark());
datamap.put("value", decimalFormat.format(vo.getCurrentAmount()));
datamap.put("detail", vo.getBankCardLendName());
tableHistoryDetailList.add(datamap);
}
Collections.reverse(installmentHistoryDetailList);
@@ -1041,6 +1069,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
for (String staticsTime :staticsTimeList
) {
String details="";
int actualCreditBillDay=0;
for (CreditReportQueryRecordVo vo:detailList
) {
@@ -1048,11 +1077,13 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
if(staticsTime.equals(dayString)){
actualCreditBillDay+=vo.getQueryCount();
details+=vo.getQueryInstitution()+"查询"+vo.getQueryCount()+"次;<br/>";
}
}
CreditReportQueryRecordVo analysisVo=new CreditReportQueryRecordVo();
analysisVo.setQueryCount(actualCreditBillDay);
analysisVo.setRemark(staticsTime);
analysisVo.setQueryInstitution(details);
queryRecordList.add(analysisVo);
}
@@ -1125,6 +1156,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", vo.getRemark());
datamap.put("value", vo.getQueryCount());
datamap.put("detail", vo.getQueryInstitution());
creditTableRecordsList.add(datamap);
}
Collections.reverse(queryRecordList);
@@ -1182,6 +1214,13 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
installmentHistoryDto.setType(analysisDto.getDataType());
installmentHistoryDto.setBankCardLendId(analysisDto.getId());
List<InstallmentHistoryVo> installmentHistoryList=installmentHistoryMapper.selectInstallmentHistoryList(installmentHistoryDto);
for (InstallmentHistoryVo installmentHistory : installmentHistoryList) {
if(installmentHistory.getBankCode()!=null){
installmentHistory.setBankNameCode(installmentHistory.getBankName()+""+ StringUtils.getLastNumberChars(4,installmentHistory.getBankCode()+""));
}else {
installmentHistory.setBankNameCode(installmentHistory.getBankName());
}
}
double clearedPrincipal = 0;
double totalInterest = 0;
if(installmentHistoryList.size()>0){
@@ -1209,21 +1248,26 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
staticsTimeList.add(monthString);
}
}
for (String staticsTime :staticsTimeList
) {
String details="";
double actualCreditBillMonth=0;
for (InstallmentHistoryVo vo:installmentHistoryList
) {
String monthString=dateFormat.format(vo.getInstallmentDate()).substring(0,7);
if(staticsTime.equals(monthString)){
actualCreditBillMonth+=vo.getInstallmentAmount()+vo.getTotalInterest();
double total=vo.getInstallmentAmount()+vo.getTotalInterest();
BigDecimal bigDecimal=new BigDecimal(decimalFormat.format( total));
actualCreditBillMonth+=bigDecimal.doubleValue();
details+=vo.getBankNameCode()+"借款金额(本息)"+bigDecimal.doubleValue()+"<br/>";
}
}
InstallmentHistoryVo analysisVo=new InstallmentHistoryVo();
analysisVo.setInstallmentAmount(Double.parseDouble(decimalFormat.format(actualCreditBillMonth)));
analysisVo.setRemark(staticsTime);
analysisVo.setName(details);
installmentHistoryVoList.add(analysisVo);
}
@@ -1264,6 +1308,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
) {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", vo.getRemark());
datamap.put("detail", vo.getName());
datamap.put("value", decimalFormat.format(vo.getInstallmentAmount()));
tableHistoryList.add(datamap);
}
@@ -1363,6 +1408,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
HashMap<String, Object> map = new HashMap<>();
DecimalFormat decimalFormat = new DecimalFormat("#.###");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormatSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatterMonth = new SimpleDateFormat("yyyy-MM");
//月查询
if(analysisDto.getType().equals("2")){
@@ -1439,18 +1485,21 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
for (String staticsTime :staticsTimeList
) {
String details="";
double actualCreditBillDay=0;
for (AccountsTransferRecordVo vo:transferList
) {
String dayString=dateFormat.format(vo.getCreateTime());
if(staticsTime.equals(dayString)){
actualCreditBillDay+=vo.getAmount();
details+=vo.getOutAccountName()+""+dateFormatSecond.format(vo.getCreateTime())+"刷卡"+vo.getAmount()+"<br/>";
}
}
AccountsTransferRecordVo analysisVo=new AccountsTransferRecordVo();
analysisVo.setAmount(actualCreditBillDay);
analysisVo.setRemark(staticsTime);
analysisVo.setName(details);
queryList.add(analysisVo);
}
@@ -1523,6 +1572,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", vo.getRemark());
datamap.put("value", decimalFormat.format(vo.getAmount()));
datamap.put("detail", vo.getName());
tablePosList.add(datamap);
}
Collections.reverse(queryList);
@@ -1547,6 +1597,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
HashMap<String, Object> map = new HashMap<>();
DecimalFormat decimalFormat = new DecimalFormat("#.###");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormatSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatterMonth = new SimpleDateFormat("yyyy-MM");
//月查询
if(analysisDto.getType().equals("2")){
@@ -1594,6 +1645,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
dto.setDealType(analysisDto.getDealType());
dto.setDealCategory(analysisDto.getDealCategory());
List<AccountsDealRecordVo> accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(dto);
double income =0;
double expenses =0;
double posExpenses =0;
@@ -1606,6 +1658,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
int realExpensesCount =0;
for (AccountsDealRecordVo vo:accountsDealRecordVoList
) {
if(vo.getDealType().equals("1")){
income+=vo.getAmount();
incomeCount++;
@@ -1663,6 +1716,9 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
List <String> staticsTimeList=new ArrayList<>();
for (AccountsDealRecordVo vo:accountsDealRecordVoList
) {
if (null != vo.getDealCategory()) {
vo.setDealCategory(DictUtils.getDictLabel("deal_category", vo.getDealCategory().toString()));
}
String dayString=dateFormat.format(vo.getCreateTime());
if(!staticsTimeList.contains(dayString)){
@@ -1673,6 +1729,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
for (String staticsTime :staticsTimeList
) {
double actualCreditBillDay=0;
String details="";
for (AccountsDealRecordVo vo:accountsDealRecordVoList
) {
String dayString=dateFormat.format(vo.getCreateTime());
@@ -1680,9 +1737,11 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
if(staticsTime.equals(dayString)){
if(vo.getDealType().equals("1")){
actualCreditBillDay+=vo.getAmount();
details+=vo.getAccountName()+""+dateFormatSecond.format(vo.getCreateTime())+"因交易类别【"+vo.getDealCategory()+"】收入"+vo.getAmount()+"<br/>";
}
if(vo.getDealType().equals("2")){
actualCreditBillDay-=vo.getAmount();
details+=vo.getAccountName()+""+dateFormatSecond.format(vo.getCreateTime())+"因交易类别【"+vo.getDealCategory()+"】支出"+vo.getAmount()+"<br/>";
}
}
@@ -1690,6 +1749,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
AccountsDealRecordVo analysisVo=new AccountsDealRecordVo();
analysisVo.setAmount(actualCreditBillDay);
analysisVo.setRemark(staticsTime);
analysisVo.setName(details);
queryList.add(analysisVo);
}
@@ -1772,6 +1832,7 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
Map<String, Object> datamap = new HashMap<>();
datamap.put("time", vo.getRemark());
datamap.put("value", decimalFormat.format(vo.getAmount()));
datamap.put("detail", vo.getName());
tableAccountsList.add(datamap);
}
Collections.reverse(queryList);

View File

@@ -21,10 +21,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="remark" column="remark" />
<result property="type" column="type" />
<result property="periods" column="periods" />
<result property="bankCardLendName" column="bank_card_lend_name" />
</resultMap>
<sql id="selectInstallmentHistoryDetailVo">
select a.id, a.installment_history_id, a.bank_card_lend_id, a.current_amount, a.repayment_date, a.principal, a.interest, a.posting_state, a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.remark, a.type, a.periods from installment_history_detail a
select
a.id,
a.installment_history_id,
a.bank_card_lend_id,
a.current_amount,
a.repayment_date,
a.principal,
a.interest,
a.posting_state,
a.create_by,
a.create_time,
a.update_by,
a.update_time,
a.del_flag,
a.remark,
a.type,
a.periods,
CONCAT(bcl."name",
'',
right(bcl.code,
4),
'') as bank_card_lend_name
from
installment_history_detail a
left join bank_card_lend bcl on
bcl.id = a.bank_card_lend_id
</sql>
<select id="selectInstallmentHistoryDetailList" parameterType="InstallmentHistoryDetailDto" resultMap="InstallmentHistoryDetailResult">