fix:定时任务相关,信用卡分期入账信息自动入账。

This commit is contained in:
tianyongbao
2024-04-28 18:09:23 +08:00
parent a07ca6754b
commit 8e66acfb8a
4 changed files with 76 additions and 7 deletions

View File

@@ -54,4 +54,8 @@ public class InstallmentHistoryDetailDto implements Serializable
@ApiModelProperty(value="开始日期")
private String startDate;
/** 应还款日期 */
@ApiModelProperty(value="应还款日期相等")
private String repaymentEqualDate;
}

View File

@@ -2,18 +2,17 @@ package com.ruoyi.job.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.IdWorker;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.invest.domain.AccountsDealRecord;
import com.ruoyi.invest.domain.CreditCardBill;
import com.ruoyi.invest.domain.InstallmentHistoryDetail;
import com.ruoyi.invest.domain.dto.AccountsDealRecordDto;
import com.ruoyi.invest.domain.dto.BankCardLendDto;
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
import com.ruoyi.invest.domain.vo.AccountsDealRecordVo;
import com.ruoyi.invest.domain.vo.BankCardLendVo;
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
import com.ruoyi.invest.mapper.AccountsDealRecordMapper;
import com.ruoyi.invest.mapper.AccountsMapper;
import com.ruoyi.invest.mapper.BankCardLendMapper;
import com.ruoyi.invest.mapper.CreditCardBillMapper;
import com.ruoyi.invest.domain.dto.InstallmentHistoryDetailDto;
import com.ruoyi.invest.domain.vo.*;
import com.ruoyi.invest.mapper.*;
import com.ruoyi.job.service.IInvestJobService;
import org.springframework.stereotype.Service;
@@ -23,6 +22,7 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 生成数据
@@ -44,6 +44,9 @@ public class InvestJobImpl implements IInvestJobService
@Resource
private CreditCardBillMapper creditCardBillMapper;
@Resource
private InstallmentHistoryDetailMapper installmentHistoryDetailMapper;
/**
* 生成数据
@@ -160,6 +163,64 @@ public class InvestJobImpl implements IInvestJobService
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 格式化日期为字符串
String formattedDate = sdf.format(currentDate);
InstallmentHistoryDetailDto installmentHistoryDetailDto=new InstallmentHistoryDetailDto();
installmentHistoryDetailDto.setRepaymentEqualDate(formattedDate);
installmentHistoryDetailDto.setState("0");
List<InstallmentHistoryDetailVo> historyDetailList=installmentHistoryDetailMapper.selectInstallmentHistoryDetailList(installmentHistoryDetailDto);
//修改名称加卡号
for (InstallmentHistoryDetailVo installmentHistoryDetail : historyDetailList) {
installmentHistoryDetail.setPostingState("1");
InstallmentHistoryDetail detail=new InstallmentHistoryDetail();
detail.setUpdateBy(SecurityUtils.getUsername());
detail.setUpdateTime(DateUtils.getNowDate());
detail.setId(installmentHistoryDetail.getId());
detail.setPostingState(installmentHistoryDetail.getPostingState());
installmentHistoryDetailMapper.updateInstallmentHistoryDetail(detail);
//如果是信用卡分期
if(installmentHistoryDetail.getType().equals("2")){
//已入账
Calendar cal1 = Calendar.getInstance();
cal1.setTime(installmentHistoryDetail.getRepaymentDate());
Calendar cal2 = Calendar.getInstance();
cal2.setTime(new Date());
long diffInMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis();
int daysDiff = Long.valueOf(TimeUnit.MILLISECONDS.toDays(diffInMillis)).intValue();
//入账日期小于一个月的
if("1".equals(installmentHistoryDetail.getPostingState())&&daysDiff<31){
//信用卡账户余额计算
AccountsVo creditAccount=accountsMapper.selectAccountsById(installmentHistoryDetail.getBankCardLendId());
creditAccount.setBalance(creditAccount.getBalance()-installmentHistoryDetail.getInterest());
creditAccount.setAvailableLimit(creditAccount.getBalance()+creditAccount.getCreditLimit());
creditAccount.setUpdateTime(installmentHistoryDetail.getUpdateTime());
accountsMapper.updateAccounts(creditAccount);
//信用卡消费记录明细
AccountsDealRecord creditDeal=new AccountsDealRecord();
creditDeal.setTransferRecordId(installmentHistoryDetail.getId());
creditDeal.setAccountId(creditAccount.getAccountId());
creditDeal.setId(IdWorker.getId());
//支出金额
creditDeal.setAmount(installmentHistoryDetail.getInterest());
//实时余额
creditDeal.setCurrentBalance(creditAccount.getBalance());
//1储蓄卡2 信用卡3 网贷4 人情5 投资账户
creditDeal.setType("2");
//1 收入2 支出3 转账4 借贷
creditDeal.setDealType("2");
//分期利息支出
creditDeal.setDealCategory("10");
creditDeal.setName(creditAccount.getName()+""+ StringUtils.getLastNumberChars(4,creditAccount.getCode()+""));
creditDeal.setRemark("分期利息");
creditDeal.setCreateBy(SecurityUtils.getUsername());
creditDeal.setCreateTime(installmentHistoryDetail.getUpdateTime());
accountsDealRecordMapper.insertAccountsDealRecord(creditDeal);
}
}
}
}

View File

@@ -42,6 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="repaymentDate!=null and repaymentDate !=''">
and #{repaymentDate}>=to_char(a.repayment_date, 'yyyy-MM-dd')
</if>
<if test="repaymentEqualDate!=null and repaymentEqualDate !=''">
and #{repaymentEqualDate}=to_char(a.repayment_date, 'yyyy-MM-dd')
</if>
<if test="startDate!=null and startDate !=''">
and to_char(a.repayment_date, 'yyyy-MM-dd')>=#{startDate}
</if>

View File

@@ -75,6 +75,7 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.22</version>
</dependency>
<!-- RuoYi Common Log -->