From 0ab9dfd8f122195e4e9f09bd50c59e0a47450bec Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 19 三月 2025 15:50:03 +0800 Subject: [PATCH] fix: resolve merge conflicts in .gitignore --- ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 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 new file mode 100644 index 0000000..4e6e2f7 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java @@ -0,0 +1,91 @@ +package com.ruoyi.system.task.utils; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.system.mapper.TBillMapper; +import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.service.TContractService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +/** + * @author zhibing.pu + * @date 2023/7/11 8:39 + */ +@Component +public class TaskUtil { + @Autowired + private TContractService contractService; + @Autowired + private TBillMapper billMapper; + // 用于更新违约金账单 + // 每分钟执行一次的定时任务 + + @Scheduled(cron = "0 0 0 * * ?") + public void dayOfProportionBill() { + try { + // 查询所有未缴费账单 + List<TBill> list = billMapper.selectList(new LambdaQueryWrapper<TBill>().eq(TBill::getPayFeesStatus, 1) + .le(TBill::getPayableFeesTime,LocalDate.now())); + for (TBill tBill : list) { + tBill.setPayFeesStatus("4"); + TContract contract = contractService.getById(tBill.getContractId()); + LocalDate payableFeesTime = tBill.getPayableFeesTime(); + // 将LocalDate转化为LocalDateTime + LocalDateTime payableFeesTime1 = LocalDateTime.of(payableFeesTime, LocalTime.of(0, 0, 0)); + LocalDateTime now = LocalDateTime.now(); + // 计算两个时间相差多少个小时 + long hours = ChronoUnit.HOURS.between(payableFeesTime1, now); + long l = hours / 24; + if (l>=3){ + // 违约金比例 + BigDecimal proportion = contract.getProportion(); + // 按每天 待缴费金额 * XX% 增加违约金费用 + if (tBill.getOutstandingMoney().compareTo(new BigDecimal("0"))==0){ + tBill.setPayFeesStatus("3"); + billMapper.updateById(tBill); + continue; + } + BigDecimal money = tBill.getOutstandingMoney().multiply(new BigDecimal(100).add(proportion)).divide(new BigDecimal(100),2, 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); + billMapper.updateById(tBill); + + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + +// LocalDateTime now = LocalDateTime.now().minusMonths(1).withDayOfMonth(31); +// System.err.println(now); +// LocalDateTime now2 = now.plusMonths(1); +// System.err.println(now2); +// +// LocalDateTime now1 = LocalDateTime.now(); +// long days = ChronoUnit.DAYS.between(now, now1); +// long days2 = ChronoUnit.DAYS.between(now.plusDays(1), now1); +// +// System.err.println(days); +// System.err.println(days2); +// LocalDateTime endTime = now.with(TemporalAdjusters.lastDayOfMonth()).withSecond(59).withHour(23).withMinute(59); +// +// System.err.println(endTime); + + } + +} -- Gitblit v1.7.1