From eca240fb896f796d70f4e5aa7e115597afa052f2 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 22 四月 2025 17:12:30 +0800 Subject: [PATCH] bug修改 --- ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java | 19 +++++++++++-------- 1 files changed, 11 insertions(+), 8 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java index ffd0cea..05ffb57 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java @@ -39,11 +39,15 @@ public void dayOfProportionBill() { try { // 查询所有未缴费账单 - List<TBill> list = billMapper.selectList(new LambdaQueryWrapper<TBill>().eq(TBill::getPayFeesStatus, 1) - .le(TBill::getPayableFeesTime,LocalDate.now())); + List<TBill> list = billMapper.selectList(new LambdaQueryWrapper<TBill>().ne(TBill::getPayFeesStatus, 5) + .ne(TBill::getOutstandingMoney,0)); + List<TContract> contractList = contractService.list(); + for (TBill tBill : list) { tBill.setPayFeesStatus("4"); - TContract contract = contractService.getById(tBill.getContractId()); + TContract contract = contractList.stream().filter(e -> e.getId().equals(tBill.getContractId())).findFirst().orElse(null); + if (contract==null)continue; + if (contract.getProportion().compareTo(BigDecimal.ZERO)==0)continue; LocalDate payableFeesTime = tBill.getPayableFeesTime(); // 将LocalDate转化为LocalDateTime LocalDateTime payableFeesTime1 = LocalDateTime.of(payableFeesTime, LocalTime.of(0, 0, 0)); @@ -55,7 +59,7 @@ // 违约金比例 BigDecimal proportion = contract.getProportion(); // 按每天 待缴费金额 * XX% 增加违约金费用 - if (tBill.getOutstandingMoney().compareTo(new BigDecimal("0"))==0){ + if (contract.getTotalYear().compareTo(new BigDecimal("0"))==0){ tBill.setPayFeesStatus("3"); billMapper.updateById(tBill); continue; @@ -65,11 +69,10 @@ boolean isok = redisCache.trylockLoop(lockkey, requestId, 60); if (isok){ try { - BigDecimal money = tBill.getOutstandingMoney().multiply(new BigDecimal(100).add(proportion)).divide(new BigDecimal(100),2, BigDecimal.ROUND_DOWN); + BigDecimal money = contract.getTotalYear().multiply(proportion.divide(new BigDecimal(100),4, BigDecimal.ROUND_DOWN)); tBill.setOverDays((int) l); - BigDecimal bigDecimal = tBill.getOutstandingMoney().multiply(proportion).setScale(2, BigDecimal.ROUND_DOWN); - tBill.setPayableFeesPenalty(tBill.getPayableFeesPenalty()!=null?tBill.getPayableFeesPenalty():new BigDecimal("0").add(bigDecimal)); - tBill.setOutstandingMoney(money); + tBill.setPayableFeesPenalty(tBill.getPayableFeesPenalty()!=null?tBill.getPayableFeesPenalty().add(money):new BigDecimal("0").add(money)); + tBill.setOutstandingMoney(money.add(tBill.getOutstandingMoney())); billMapper.updateById(tBill); }finally { redisCache.unlock(lockkey,requestId); -- Gitblit v1.7.1