From 422395d49be7ba30cf39d656cc8e409e5507e210 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Mon, 13 May 2024 13:11:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=9A=E6=97=B6job=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E4=BF=A1=E7=94=A8=E5=8D=A1=E5=88=86=E6=9C=9F=E5=B7=B2?= =?UTF-8?q?=E5=85=A5=E8=B4=A6=E5=90=8E=E4=BF=AE=E6=94=B9=E4=B8=BB=E8=A1=A8?= =?UTF-8?q?=E5=B7=B2=E8=BF=98=E6=9C=9F=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InstallmentHistoryDetailServiceImpl.java | 16 ++++++ .../ruoyi/job/service/impl/InvestJobImpl.java | 56 ++++++++++++++++--- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java index f849491..47dcae9 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/InstallmentHistoryDetailServiceImpl.java @@ -5,13 +5,16 @@ 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.InstallmentHistory; import com.ruoyi.invest.domain.InstallmentHistoryDetail; import com.ruoyi.invest.domain.dto.InstallmentHistoryDetailDto; import com.ruoyi.invest.domain.vo.AccountsVo; import com.ruoyi.invest.domain.vo.InstallmentHistoryDetailVo; +import com.ruoyi.invest.domain.vo.InstallmentHistoryVo; import com.ruoyi.invest.mapper.AccountsDealRecordMapper; import com.ruoyi.invest.mapper.AccountsMapper; import com.ruoyi.invest.mapper.InstallmentHistoryDetailMapper; +import com.ruoyi.invest.mapper.InstallmentHistoryMapper; import com.ruoyi.invest.service.IInstallmentHistoryDetailService; import org.springframework.stereotype.Service; @@ -37,6 +40,9 @@ public class InstallmentHistoryDetailServiceImpl implements IInstallmentHistoryD @Resource private AccountsDealRecordMapper accountsDealRecordMapper; + @Resource + private InstallmentHistoryMapper installmentHistoryMapper; + /** * 查询分期历史明细 * @@ -89,6 +95,16 @@ public class InstallmentHistoryDetailServiceImpl implements IInstallmentHistoryD { installmentHistoryDetail.setUpdateBy(SecurityUtils.getUsername()); installmentHistoryDetail.setUpdateTime(DateUtils.getNowDate()); + //如果是已入账,更新主表已还期数。 + if("1".equals(installmentHistoryDetail.getPostingState())){ + //更新主表已还期数 + InstallmentHistoryVo historyVo=installmentHistoryMapper.selectInstallmentHistoryById(installmentHistoryDetail.getInstallmentHistoryId()); + InstallmentHistory his=new InstallmentHistory(); + his.setRepaidPeriod(historyVo.getRepaidPeriod()+1); + his.setId(historyVo.getId()); + his.setUpdateTime(new Date()); + installmentHistoryMapper.updateInstallmentHistory(his); + } //如果是信用卡分期 if(installmentHistoryDetail.getType().equals("2")){ //已入账 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 c32a33c..63e129b 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 @@ -6,6 +6,7 @@ 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.InstallmentHistory; import com.ruoyi.invest.domain.InstallmentHistoryDetail; import com.ruoyi.invest.domain.dto.AccountsDealRecordDto; import com.ruoyi.invest.domain.dto.BankCardLendDto; @@ -20,9 +21,7 @@ import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; /** @@ -47,7 +46,8 @@ public class InvestJobImpl implements IInvestJobService @Resource private InstallmentHistoryDetailMapper installmentHistoryDetailMapper; - + @Resource + private InstallmentHistoryMapper installmentHistoryMapper; /** * 生成数据 @@ -201,7 +201,13 @@ public class InvestJobImpl implements IInvestJobService int daysDiff = Long.valueOf(TimeUnit.MILLISECONDS.toDays(diffInMillis)).intValue(); //入账日期小于一个月的 if("1".equals(installmentHistoryDetail.getPostingState())&&daysDiff<31){ - + //更新主表已还期数 + InstallmentHistoryVo historyVo=installmentHistoryMapper.selectInstallmentHistoryById(installmentHistoryDetail.getInstallmentHistoryId()); + InstallmentHistory his=new InstallmentHistory(); + his.setRepaidPeriod(historyVo.getRepaidPeriod()+1); + his.setId(historyVo.getId()); + his.setUpdateTime(new Date()); + installmentHistoryMapper.updateInstallmentHistory(his); //信用卡账户余额计算 AccountsVo creditAccount=accountsMapper.selectAccountsById(installmentHistoryDetail.getBankCardLendId()); creditAccount.setBalance(creditAccount.getBalance()-installmentHistoryDetail.getInterest()); @@ -229,8 +235,8 @@ public class InvestJobImpl implements IInvestJobService creditDeal.setRemark("分期利息"); creditDeal.setCreateBy(SecurityUtils.getUsername()); creditDeal.setCreateTime(new Date()); - accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); - +// accountsDealRecordMapper.insertAccountsDealRecord(creditDeal); + insertAccountsDealRecord(creditDeal); } //信用卡消费记录明细,应还本金 AccountsDealRecord creditDealPrinciple=new AccountsDealRecord(); @@ -251,7 +257,8 @@ public class InvestJobImpl implements IInvestJobService creditDealPrinciple.setRemark("应还本金"); creditDealPrinciple.setCreateBy(SecurityUtils.getUsername()); creditDealPrinciple.setCreateTime(new Date()); - accountsDealRecordMapper.insertAccountsDealRecord(creditDealPrinciple); +// accountsDealRecordMapper.insertAccountsDealRecord(creditDealPrinciple); + insertAccountsDealRecord(creditDealPrinciple); } @@ -260,5 +267,38 @@ public class InvestJobImpl implements IInvestJobService } + public int insertAccountsDealRecord(AccountsDealRecord accountsDealRecord) + { + accountsDealRecord.setCreateBy(SecurityUtils.getUsername()); + accountsDealRecord.setId(IdWorker.getId()); + + //获取最新一条记录的数据,计算余额 + Map lastMap = new HashMap<>(); + lastMap.put("startDateTime", accountsDealRecord.getCreateTime()); + lastMap.put("accountId", accountsDealRecord.getAccountId()); + AccountsDealRecord lastOneAccountsDealRecord=accountsDealRecordMapper.getLastOneAccountsDealRecordByMap(lastMap); + if(lastOneAccountsDealRecord==null){ + lastOneAccountsDealRecord=new AccountsDealRecord(); + lastOneAccountsDealRecord.setCurrentBalance(0d); + } + //收入 + if(accountsDealRecord.getDealType().equals("1")){ + Map map = new HashMap<>(); + map.put("startDateTime", accountsDealRecord.getCreateTime()); + map.put("accountId", accountsDealRecord.getAccountId()); + map.put("currentBalance", accountsDealRecord.getAmount()); + accountsDealRecordMapper.batchPlusCurrentBalance(map); + } + //支出 + if(accountsDealRecord.getDealType().equals("2")){ + Map map = new HashMap<>(); + map.put("startDateTime", accountsDealRecord.getCreateTime()); + map.put("accountId", accountsDealRecord.getAccountId()); + map.put("currentBalance", accountsDealRecord.getAmount()); + accountsDealRecordMapper.batchMinusCurrentBalance(map); + } + + return accountsDealRecordMapper.insertAccountsDealRecord(accountsDealRecord); + } }