From 67d06a785d5fc4524639ace27651c01ff05a4b58 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 29 五月 2025 22:31:33 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 88 +++++++++++++++++++++++++++++++------------ 1 files changed, 63 insertions(+), 25 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java index 83067a6..af4ac78 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java @@ -6,7 +6,9 @@ import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.order.api.model.TChargingBill; +import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.service.TChargingBillService; +import com.ruoyi.order.service.TChargingOrderService; import org.apache.logging.log4j.core.util.UuidUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -34,20 +36,12 @@ private TChargingBillService chargingBillService; @Resource private SiteClient siteClient; + @Resource + private TChargingOrderService chargingOrderService; - public static void main(String[] args) { - LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1). - withDayOfMonth(2); - String string = firstDayOfLastMonth.toString(); - // 将-替换为空字符串 - string = string.replace("-", ""); - System.err.println(string); - } - // 每月2号凌晨12点执行的定时任务 -// @Scheduled(cron = "0 0 0 2 * ?") - // 每天凌晨12点执行的定时任务 - @Scheduled(cron = "0 0 12 2 * ?") + + @Scheduled(cron = "0 0 0 2 * ?") public void taskMonth() { try { // 获取上个月的开始和结束日期 @@ -65,35 +59,79 @@ .collect(Collectors.joining()); // 将其连接成一个字符串 tChargingBill.setCode("JSD"+string+randomDigits ); tChargingBill.setType(1); + tChargingBill.setSiteId(0); tChargingBill.setBillTime(LocalDateTime.now()); tChargingBill.setStatus(1); tChargingBill.setOrderState(2); + tChargingBill.setBillType(1); + System.err.println("定时任务生成充电算帐单:全站"); chargingBillService.save(tChargingBill); - // 每月二号给每个站点生成上月账单 + // 生成一次全站订单 + TChargingBill tChargingBill1 = new TChargingBill(); + // 订单生成规则JSD+20231201(账单所属月份)+1131304205(随机10位数)+001(当月账单序号,每月重置) + Random random1 = new Random(); + String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + .mapToObj(String::valueOf) + .collect(Collectors.joining()); // 将其连接成一个字符串 + tChargingBill1.setCode("JSD"+string+randomDigits1 ); + tChargingBill1.setType(1); + tChargingBill1.setSiteId(0); + tChargingBill1.setBillTime(LocalDateTime.now()); + tChargingBill1.setStatus(1); + tChargingBill1.setOrderState(2); + tChargingBill1.setBillType(2); + System.err.println("定时任务生成账户结算帐单:全站"); + chargingBillService.save(tChargingBill1); + System.err.println("定时任务生成各个站点结算帐单"); List<Integer> collect = siteClient.getSiteAll().getData().stream().map(Site::getId).collect(Collectors.toList()); + // 充电算帐单 List<TChargingBill> tChargingBills = new ArrayList<>(); - for (int i = 1; i <= collect.size(); i++) { - TChargingBill tChargingBill1 = new TChargingBill(); - Random random1 = new Random(); - String randomDigits1 = random1.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + // 账户结算账单 + List<TChargingBill> tChargingBills1 = new ArrayList<>(); + for (int i = 0; i < collect.size(); i++) { + TChargingBill tChargingBill2 = new TChargingBill(); + Random random2 = new Random(); + String randomDigits2 = random2.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 .mapToObj(String::valueOf) .collect(Collectors.joining()); // 将其连接成一个字符串 - tChargingBill1.setCode("JSD"+string+randomDigits1+i ); - tChargingBill1.setType(2); - tChargingBill1.setSiteId(collect.get(i)); - tChargingBill1.setBillTime(LocalDateTime.now()); - tChargingBill1.setStatus(1); - tChargingBill1.setOrderState(2); - tChargingBills.add(tChargingBill1); + tChargingBill2.setCode("JSD"+string+randomDigits2+(i+1) ); + tChargingBill2.setType(2); + List<TChargingOrder> list = chargingOrderService.lambdaQuery() + .eq(TChargingOrder::getSiteId, collect.get(i)).list(); + if (list.isEmpty()){ + continue; + } + tChargingBill2.setSiteId(collect.get(i)); + tChargingBill2.setBillTime(LocalDateTime.now()); + tChargingBill2.setBillType(1); + tChargingBill2.setStatus(1); + tChargingBill2.setOrderState(2); + tChargingBills.add(tChargingBill2); + TChargingBill tChargingBill3 = new TChargingBill(); + Random random3 = new Random(); + String randomDigits3 = random3.ints(10, 0, 10) // 生成10个随机数字,范围在0-9 + .mapToObj(String::valueOf) + .collect(Collectors.joining()); // 将其连接成一个字符串 + tChargingBill3.setCode("JSD"+string+randomDigits3+(i+1) ); + tChargingBill3.setType(2); + tChargingBill3.setSiteId(collect.get(i)); + tChargingBill3.setBillTime(LocalDateTime.now()); + tChargingBill3.setBillType(2); + tChargingBill3.setStatus(1); + tChargingBill3.setOrderState(2); + tChargingBills1.add(tChargingBill3); } + System.err.println("列表"+tChargingBills); if (!tChargingBills.isEmpty())chargingBillService.saveBatch(tChargingBills); + if (!tChargingBills1.isEmpty())chargingBillService.saveBatch(tChargingBills1); } catch (Exception e) { e.printStackTrace(); } } + // 每个月最后一天23点执行的定时任务 - @Scheduled(cron = "0 0 23 L * ?") + @Scheduled(cron = "0 0 23 * * ?") public void taskLastDay() { try { // 获取上个月的开始和结束日期 -- Gitblit v1.7.1