//package com.ruoyi.web.controller.task; // // //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import com.ruoyi.common.utils.SmsUtil; //import com.ruoyi.system.mapper.TBillMapper; //import com.ruoyi.system.model.TBill; //import com.ruoyi.system.model.TContract; //import com.ruoyi.system.model.TContractRentType; //import com.ruoyi.system.service.TBillService; //import com.ruoyi.system.service.TContractRentTypeService; //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 javax.annotation.Resource; //import java.math.BigDecimal; //import java.time.LocalDate; //import java.time.LocalDateTime; //import java.time.LocalTime; //import java.time.ZoneId; //import java.time.temporal.ChronoUnit; //import java.time.temporal.TemporalAdjusters; //import java.util.ArrayList; //import java.util.Date; //import java.util.List; //import java.util.Random; //import java.util.stream.Collectors; // ///** // * @author zhibing.pu // * @date 2023/7/11 8:39 // */ //@Component //public class TaskUtil { // @Autowired // private TContractService contractService; // @Autowired // private TBillMapper billMapper; // // 用于更新违约金账单 // // 每分钟执行一次的定时任务 // // @Scheduled(cron = "0 * * * * ?") // public void dayOfProportionBill() { // try { // // 查询所有未缴费账单 // List list = billMapper.selectList(new LambdaQueryWrapper().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); // tBill.setPayableFeesPenalty((tBill.getPayableFeesPenalty()!=null?tBill.getPayableFeesPenalty():BigDecimal.ZERO).add(money)); // tBill.setOutstandingMoney(money); // billMapper.updateById(tBill); // // } // } // } catch (Exception e) { // e.printStackTrace(); // } // } // // //}