From 15deef40aeb83d485fa1df9b5482b0deccfbdbc1 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 28 十月 2024 13:38:15 +0800
Subject: [PATCH] 修改
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 90 ++++++++++++++++++++++++++++++++++----------
1 files changed, 69 insertions(+), 21 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 b6a4265..dd63798 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,6 +36,8 @@
private TChargingBillService chargingBillService;
@Resource
private SiteClient siteClient;
+ @Resource
+ private TChargingOrderService chargingOrderService;
public static void main(String[] args) {
LocalDate firstDayOfLastMonth = LocalDate.now().minusMonths(1).
@@ -47,9 +51,9 @@
// @Scheduled(cron = "0 0 0 2 * ?")
// 每天凌晨12点执行的定时任务
- @Scheduled(cron = "0 0 12 2 * ?")
- // 每30秒执行一次的定时任务
- @Scheduled(cron = "0/30 * * * * ?")
+
+@Scheduled(cron = "0 0 0 * * ?")
+//@Scheduled(fixedRate = 60000)
public void taskMonth() {
try {
// 获取上个月的开始和结束日期
@@ -67,35 +71,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 * ?")
+
+ // 每天晚上23:59:59执行的定时任务
+ @Scheduled(cron = "0 0 23 * * ?")
public void taskLastDay() {
try {
// 获取上个月的开始和结束日期
@@ -108,10 +156,10 @@
LocalDateTime endDateTime = lastDayOfLastMonth.atTime(23, 59, 59); // 设定到最后一秒
// 构建查询条件
LambdaQueryWrapper<TChargingBill> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.ge(TChargingBill::getBillTime,
- Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()))
- .le(TChargingBill::getBillTime,
- Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录
+// queryWrapper.ge(TChargingBill::getBillTime,
+// Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()))
+// .le(TChargingBill::getBillTime,
+// Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant())); // 使用 le 包括最后一天的记录
List<TChargingBill> list = chargingBillService.list(queryWrapper);
for (TChargingBill tChargingBill : list) {
tChargingBill.setStatus(2);
--
Gitblit v1.7.1