1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package com.jiayue.client.job;
- import com.jiayue.client.service.SendDataService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Service;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- /**
- * 青海集中功率预测向数据中心回传数据:
- * 1.实际功率 短期 超短期 气象站 测风塔 风机 等数据
- * 2.每天凌晨2点执行,回传前一天数据,定时任务失败需要手动触发回传
- */
- @Service
- @Slf4j
- public class SendDataToDcJob {
- public final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- public final SendDataService sendDataService;
- public SendDataToDcJob(SendDataService sendDataService) {
- this.sendDataService = sendDataService;
- }
- /**
- * 获取当前时间所在天的0点0分
- *
- * @return 0点0分的毫秒
- */
- public String getDayStartTime() {
- Calendar date = Calendar.getInstance();
- date.setTime(new Date());
- date.set(Calendar.HOUR_OF_DAY, 0);
- date.set(Calendar.MINUTE, 0);
- date.set(Calendar.SECOND, 0);
- date.set(Calendar.MILLISECOND, 0);
- date.add(Calendar.DAY_OF_MONTH, -1);
- return this.formatter.format(date.getTime());
- }
- /**
- * 获取当前时间所在天的23点59分59秒
- *
- * @return 23点59分59秒的毫秒
- */
- public String getDayLastTime() {
- Calendar date = Calendar.getInstance();
- date.setTime(new Date());
- date.set(Calendar.HOUR_OF_DAY, 23);
- date.set(Calendar.MINUTE, 59);
- date.set(Calendar.SECOND, 59);
- date.set(Calendar.MILLISECOND, 999);
- date.add(Calendar.DAY_OF_MONTH, -1);
- return this.formatter.format(date.getTime());
- }
- /**
- * 每天凌晨2点执行
- */
- @Scheduled(cron = "10 1 2 * * ?")
- public void sendJob() {
- log.info("时间 【" + System.currentTimeMillis() + "】 向数据中心发送青海集中功率预测前一天的实际功率等数据。数据范围:【{}--{}】", getDayStartTime(), getDayLastTime());
- sendDataService.send(getDayStartTime(), getDayLastTime(), "all");
- }
- }
|