|
|
@@ -11,6 +11,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
/**
|
|
|
@@ -30,9 +31,33 @@ public class EquipmentChargeStatusJob {
|
|
|
this.chargeOrderService = chargeOrderService;
|
|
|
}
|
|
|
|
|
|
- // 每5分钟执行一次
|
|
|
+ // 每5分钟执行一次,但在00:00:00-06:30:00期间不执行
|
|
|
@Scheduled(cron = "0 0/5 * * * ?")
|
|
|
public void executeMpUserRelationJob() {
|
|
|
+ // 判断当前时间是否在00:00:00-06:30:00之间
|
|
|
+ var now = LocalTime.now();
|
|
|
+ if (now.isAfter(LocalTime.of(0, 0, 0)) && now.isBefore(LocalTime.of(6, 30, 0))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ performTask();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 在00:00:00-06:30:00期间每隔30分钟执行一次
|
|
|
+ @Scheduled(cron = "0 0/30 * * * ?")
|
|
|
+ public void executeMpUserRelationJobInEarlyMorning() {
|
|
|
+ // 判断当前时间是否在00:00:00-00:06:30之间
|
|
|
+ var now = LocalTime.now();
|
|
|
+ if (now.isAfter(LocalTime.of(6, 30, 0)) && now.isBefore(LocalTime.of(23, 59, 59))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ performTask();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ void performTask() {
|
|
|
log.info("设备充电状态信息(订单信息)更新定时任务启动...");
|
|
|
var orders = redisTemplate.opsForHash().values(RedisKeys.CHARGE_ORDER_EQUIP_CHARGE_STATUS);
|
|
|
if (CommUtil.isNotEmptyAndNull(orders)) {
|
|
|
@@ -47,7 +72,8 @@ public class EquipmentChargeStatusJob {
|
|
|
chargeOrderService.updateBatchByQueryWrapper(orderList, order ->
|
|
|
new QueryWrapper<ChargeOrder>().eq("start_charge_seq", order.getStartChargeSeq()));
|
|
|
}
|
|
|
- log.info("设备充电状态信息(订单信息)更新定时任务结束...");
|
|
|
+ log.info("设备充电状态信息(订单信息)更新定时任务结束,本次更新{}条订单...", orders.size());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|