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