diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryDetailVo.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryDetailVo.java index 12e0a70..afbc977 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryDetailVo.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/InstallmentHistoryDetailVo.java @@ -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; + + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java index 7036a8d..4a82bbf 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java @@ -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()+";
"; } } 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 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 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()+";
"; } } 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 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()+";
"; } } 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 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()+"次;
"; } } 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 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 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()+";
"; + } } 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 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 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()+";
"; } } 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 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 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 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 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()+";
"; } if(vo.getDealType().equals("2")){ actualCreditBillDay-=vo.getAmount(); + details+=vo.getAccountName()+"于"+dateFormatSecond.format(vo.getCreateTime())+"因交易类别【"+vo.getDealCategory()+"】支出"+vo.getAmount()+";
"; } } @@ -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 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); diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml index 89e105c..71ef397 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryDetailMapper.xml @@ -21,10 +21,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - 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