package com.gyee.generation.task; import com.gyee.common.util.DateUtils; import com.gyee.generation.service.*; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @ClassName : SaticScheduleTask * @Description : 调度 */ @Component public class SaticScheduleTask { private static Logger logger = LoggerFactory.getLogger(SaticScheduleTask.class); @Resource private GenerationService generationService; @Resource private StatusService statusService; @Resource private AverageAndGeneratingService averageAndGeneratingService; @Resource private RealtimeSpeedPowerService realtimeSpeedPowerService; @Resource private TheorypowerService theorypowerService; @Resource private FiveLossesService fiveLossesService; @Resource private SafetyService safetyService; //3.添加定时任务 /** * 电计量实时计算计算(电量,上网,购网,场用) * 每15分钟执行一次 */ @XxlJob("electricityMetering7001-realtime") public void electricityMetering() { XxlJobHelper.log("电计量实时调度程序执行开始!........"); try { generationService.saveGenerationDatas(); } catch (Exception e) { e.printStackTrace(); } XxlJobHelper.log("电计量实时调度任务处理完成!........"); } /** * 存储meterpointvalue * 每10分钟执行一次 */ @XxlJob("electricityMetering7001-history1") public void history1() { XxlJobHelper.log("电计量历史1调度程序执行开始!........"); String date = DateUtils.toDate1(DateUtils.getCurrentDate()); try { generationService.saveMeterpointValueRealtime(date,date); } catch (Exception e) { e.printStackTrace(); } XxlJobHelper.log("电计量历史1调度任务处理完成!........"); } /** * 存储meterpointvalue(处理每天最后一个值,保证是第二天0点值) * 每天0:30执行 */ @XxlJob("electricityMetering7001-history2") public void history2() { XxlJobHelper.log("电计量历史2调度程序执行开始!........"); String yesterdayStr = DateUtils.getYesterdayStr("yyyy-MM-dd"); try { generationService.saveMeterpointValueRealtime(yesterdayStr,yesterdayStr); } catch (Exception e) { e.printStackTrace(); } XxlJobHelper.log("电计量历史2调度任务处理完成!........"); } /** * 实时状态计算 * 只执行一次(死循环) * 2s */ @XxlJob("status7001-realtime") public void status() throws Exception { while(true){ XxlJobHelper.log("实时状态调度程序执行开始!........"); statusService.calculateStatus(); statusService.calculateStatusNumber(); XxlJobHelper.log("实时状态调度程序执行完成!........"); } } /** * 平均风速,平均功率,scada发电量计算 * 每10分钟一次 */ @XxlJob("averageandGenerating7001-realtime") public void averageandGenerating() throws Exception { XxlJobHelper.log("平均风速,功率,scada发电量调度程序执行开始!........"); averageAndGeneratingService.saveAvespeedAndAvepowerAndScada(); XxlJobHelper.log("平均风速,功率,scada发电量调度程序执行完成!........"); } /** * 实时风速功率 * 只执行一次(死循环) * 2s */ @XxlJob("speedAndPower7001-realtime") public void speedAndPower() throws Exception { while (true){ XxlJobHelper.log("实时风速,实时功率调度程序执行开始!........"); realtimeSpeedPowerService.calculateRealtimeSpeedPower(); XxlJobHelper.log("实时风速,实时功率调度程序执行完成!........"); } } /** * 拟合功率曲线,存储到数据库中 * 一个月执行一次 * @throws Exception */ @XxlJob("fittingpower7001-realtime") public void fittingpower() throws Exception { XxlJobHelper.log("拟合功率曲线调度程序执行开始!........"); theorypowerService.fittingPower(); XxlJobHelper.log("拟合功率曲线调度程序执行完成!........"); } /** * 计算理论功率,保证功率 * 死循环 * 10min * @throws Exception */ @XxlJob("theropower7001-realtime") public void theropower() throws Exception { while (true){ XxlJobHelper.log("理论保证功率调度程序执行开始!........"); theorypowerService.theropower(); XxlJobHelper.log("理论保证功率调度程序执行完成!........"); } } /** * 计算损失电量 * 1小时一次(*:20) * 30min * @throws Exception */ @XxlJob("losses7001-realtime") public void losses() throws Exception { XxlJobHelper.log("损失电量调度程序执行开始!........"); fiveLossesService.lossesReal(); XxlJobHelper.log("损失电量调度程序执行完成!........"); } /** * 安全天数 * 每日0点 * @throws Exception */ @XxlJob("safe7001-realtime") public void safety() throws Exception { XxlJobHelper.log("安全天数调度程序执行开始!........"); safetyService.safetyReatimel(); XxlJobHelper.log("安全天数调度程序执行完成!........"); } /** * 保存shutdownevent * 2分钟执行一次 */ @XxlJob("shutdownevent7001-realtime") public void shutdownevent(){ XxlJobHelper.log("故障事件调度程序执行开始!........"); fiveLossesService.saveShutdownevent(); XxlJobHelper.log("故障事件调度程序执行完成!........"); } /** * 判断整场通讯 * 2分钟执行一次 */ @XxlJob("wpstatus7001-realtime") public void wpstatus(){ XxlJobHelper.log("整场通讯程序执行开始!........"); statusService.calWpStatus(); XxlJobHelper.log("整场通讯调度程序执行完成!........"); } }