From 3fe4a74f3314cf285be27c35bc1e92c3a9eb0e99 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Tue, 30 Apr 2024 10:58:58 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=88=86=E6=9C=9F=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AE=A1=E7=AE=97=E5=88=A9?= =?UTF-8?q?=E7=8E=87=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invest/domain/InstallmentHistory.java | 6 +++ .../impl/InstallmentHistoryServiceImpl.java | 50 ++++++++++++++++++- .../ruoyi/job/service/impl/InvestJobImpl.java | 42 +++++++++------- .../invest/InstallmentHistoryMapper.xml | 7 ++- 4 files changed, 83 insertions(+), 22 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/InstallmentHistory.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/InstallmentHistory.java index 71ca40f..dbaa65c 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/InstallmentHistory.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/InstallmentHistory.java @@ -103,6 +103,11 @@ public class InstallmentHistory extends BaseEntity /** 删除标志(0代表存在 1代表删除) */ private String delFlag; + /** 计算利率 */ + @ApiModelProperty(value="计算利率") + @Excel(name = "计算利率") + private String calculateInterestRate; + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -127,6 +132,7 @@ public class InstallmentHistory extends BaseEntity .append("delFlag", getDelFlag()) .append("remark", getRemark()) .append("balance", getBalance()) + .append("calculateInterestRate", getCalculateInterestRate()) .toString(); } } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryServiceImpl.java index 06208ce..1139d46 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryServiceImpl.java @@ -6,7 +6,9 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.invest.domain.InstallmentHistory; import com.ruoyi.invest.domain.InstallmentHistoryDetail; +import com.ruoyi.invest.domain.dto.InstallmentHistoryDetailDto; import com.ruoyi.invest.domain.dto.InstallmentHistoryDto; +import com.ruoyi.invest.domain.vo.InstallmentHistoryDetailVo; import com.ruoyi.invest.domain.vo.InstallmentHistoryVo; import com.ruoyi.invest.mapper.InstallmentHistoryDetailMapper; import com.ruoyi.invest.mapper.InstallmentHistoryMapper; @@ -57,12 +59,24 @@ public class InstallmentHistoryServiceImpl implements IInstallmentHistoryService { List installmentHistoryVoList=installmentHistoryMapper.selectInstallmentHistoryList(installmentHistoryDto); //修改名称加卡号 + DecimalFormat decimalFormat = new DecimalFormat("#.##"); for (InstallmentHistoryVo installmentHistory : installmentHistoryVoList) { if(installmentHistory.getBankCode()!=null){ installmentHistory.setBankNameCode(installmentHistory.getBankName()+"("+ StringUtils.getLastNumberChars(4,installmentHistory.getBankCode()+")")); }else { installmentHistory.setBankNameCode(installmentHistory.getBankName()); } + double interest=installmentHistory.getTotalInterest(); + double interestRate=0; + if(interest>0){ + interestRate=interest/installmentHistory.getInstallmentAmount(); + if(installmentHistory.getPeriod()!=null){ + interestRate=interestRate*12/installmentHistory.getPeriod(); + } + } + interestRate=interestRate*100; + String calculateInterestRate= decimalFormat.format(interestRate)+"%"; + installmentHistory.setCalculateInterestRate(calculateInterestRate); } return installmentHistoryVoList; } @@ -173,13 +187,45 @@ public class InstallmentHistoryServiceImpl implements IInstallmentHistoryService installmentHistory.setCloseDate(calendarStart.getTime()); } } -//// //插入分期明细 -// insertInstallmentHistoryDetail(installmentHistory); + + //更新利率信息 + updateInterestRate(installmentHistory); } } return installmentHistoryMapper.updateInstallmentHistory(installmentHistory); } + /** + * 更新利率 + * + * @param + */ + public void updateInterestRate(InstallmentHistory installmentHistory) + { + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + + InstallmentHistoryDetailDto installmentHistoryDetailDto=new InstallmentHistoryDetailDto(); + installmentHistoryDetailDto.setInstallmentHistoryId(installmentHistory.getId()); + List detailList=installmentHistoryDetailMapper.selectInstallmentHistoryDetailList(installmentHistoryDetailDto); + double interest =0; + double interestRate=0; + if(detailList.size()>0){ + interest = detailList.stream().mapToDouble(InstallmentHistoryDetailVo::getInterest).sum(); + } + if(interest==0){ + interest=installmentHistory.getTotalInterest(); + } + if(interest>0){ + interestRate=interest/installmentHistory.getInstallmentAmount(); + if(installmentHistory.getPeriod()!=null){ + interestRate=interestRate*12/installmentHistory.getPeriod(); + } + } + interestRate=interestRate*100; + String calculateInterestRate= decimalFormat.format(interestRate)+"%"; + installmentHistory.setCalculateInterestRate(calculateInterestRate); + } + /** * 批量删除网贷及分期历史 * diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java index 69ccb72..9cc93b4 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java @@ -107,10 +107,10 @@ public class InvestJobImpl implements IInvestJobService accountsDealRecordDto.setEndDateTime(endDate); //获取所有交易记录 List accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(accountsDealRecordDto); - //支出转为负数 + //收入转为负数 for (AccountsDealRecordVo vo:accountsDealRecordVoList ) { - if(vo.getDealType().equals("2")){ + if(vo.getDealType().equals("1")){ vo.setAmount(vo.getAmount()*(-1)); } } @@ -129,26 +129,32 @@ public class InvestJobImpl implements IInvestJobService creditCardBill.setUpdateTime(DateUtils.getNowDate()); creditCardBill.setId(creditCardBillVo.getId()); creditCardBill.setBillAmount(billAmount); + //如果账单日与当前日期相同,将账单修改为已出账 + if(billDateStr.equals(formatter.format(new Date()))){ + creditCardBill.setBillState("1"); + } //更新未出账单 creditCardBillMapper.updateCreditCardBill(creditCardBill); }else { - - CreditCardBill creditCardBill=new CreditCardBill(); - try { - creditCardBill.setBillDate(formatter.parse(billDateStr)); - } catch (ParseException e) { - throw new RuntimeException(e); + //如果账单日大于当前日期,未出账,进行插入操作 + if(billDateStr.compareTo(formatter.format(new Date()))==1){ + CreditCardBill creditCardBill=new CreditCardBill(); + try { + creditCardBill.setBillDate(formatter.parse(billDateStr)); + } catch (ParseException e) { + throw new RuntimeException(e); + } + creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate())); + creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd); + creditCardBill.setCreateBy(SecurityUtils.getUsername()); + creditCardBill.setCreateTime(DateUtils.getNowDate()); + creditCardBill.setId(IdWorker.getId()); + creditCardBill.setCreditCardId(bankCard.getId()); + creditCardBill.setBillAmount(billAmount); + creditCardBill.setBillState("0"); + //插入未出账单 + creditCardBillMapper.insertCreditCardBill(creditCardBill); } - creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate())); - creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd); - creditCardBill.setCreateBy(SecurityUtils.getUsername()); - creditCardBill.setCreateTime(DateUtils.getNowDate()); - creditCardBill.setId(IdWorker.getId()); - creditCardBill.setCreditCardId(bankCard.getId()); - creditCardBill.setBillAmount(billAmount); - creditCardBill.setBillState("0"); - //插入未出账单 - creditCardBillMapper.insertCreditCardBill(creditCardBill); } } diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml index b65c6d5..697bea6 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/InstallmentHistoryMapper.xml @@ -29,6 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -41,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.installment_amount, a.installment_date, a.period, + a.calculate_interest_rate, ( select CASE @@ -129,7 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag, remark, balance, - + calculate_interest_rate, #{id}, @@ -153,7 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{delFlag}, #{remark}, #{balance}, - + #{calculateInterestRate}, @@ -180,6 +182,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag = #{delFlag}, remark = #{remark}, balance = #{balance}, + calculate_interest_rate = #{calculateInterestRate}, where id = #{id}