123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package io.renren.modules.aspen.controller;
- import io.renren.modules.aspen.entity.TElecdashboardAlarmEntity;
- import io.renren.modules.aspen.entity.TElecdashboardRealtimeEntity;
- import io.renren.modules.aspen.entity.base.TElecdashboard;
- import io.renren.modules.aspen.service.TElecdashboardAlarmService;
- import io.renren.modules.aspen.service.TElecdashboardRealtimeService;
- import io.renren.modules.aspen.core.utils.DashboardDataPullUtils;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.EnableScheduling;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import io.renren.modules.aspen.core.constant.AlarmValue;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- /**
- * 电厂大屏实时数据
- *
- * @author Wang Zi Wen
- * @email wangggziwen@163.com
- * @date 2022/09/01 10:58:53
- */
- @Component
- @Configuration
- @EnableScheduling
- public class TElecdashboardRealtimeController {
- @Resource
- private TElecdashboardRealtimeService tElecdashboardRealtimeService;
- @Resource
- private TElecdashboardAlarmService tElecdashboardAlarmService;
- /**
- * 每5秒抓取实时数据,存入数据库
- */
- @Scheduled(cron = "*/5 * * * * ?" )
- public void getExcelDataEvery5Seconds(){
- DashboardDataPullUtils dashboardDataPullUtils = new DashboardDataPullUtils();
- // 抓取实时数据
- TElecdashboard tElecdashboard = dashboardDataPullUtils.getCsvData(new TElecdashboardRealtimeEntity());
- TElecdashboardRealtimeEntity tElecdashboardRealtimeEntity = (TElecdashboardRealtimeEntity) tElecdashboard;
- // 存入数据库
- tElecdashboardRealtimeService.insertTElecdashboardRealtime(tElecdashboardRealtimeEntity);
- // 检查预警值
- this.checkAlarmValue(tElecdashboardRealtimeEntity);
- }
- /**
- * 检查预警值,如果实时数据超出预警值范围,插入预警数据
- *
- * @param tElecdashboardRealtimeEntity 电厂大屏实时数据
- */
- private void checkAlarmValue(TElecdashboardRealtimeEntity tElecdashboardRealtimeEntity) {
- // 清空电厂大屏预警表
- tElecdashboardAlarmService.deleteTElecdashboardAlarm();
- // 预警值list
- ArrayList<String> alarmValueList = new ArrayList<String>(Arrays.asList(
- tElecdashboardRealtimeEntity.getQt61001(), tElecdashboardRealtimeEntity.getQt61002(),
- tElecdashboardRealtimeEntity.getQt61003(), tElecdashboardRealtimeEntity.getQt61004(),
- tElecdashboardRealtimeEntity.getQt61005(), tElecdashboardRealtimeEntity.getQt61101(),
- tElecdashboardRealtimeEntity.getQt61102(), tElecdashboardRealtimeEntity.getQt61103(),
- tElecdashboardRealtimeEntity.getQt61104(), tElecdashboardRealtimeEntity.getQt61105(),
- tElecdashboardRealtimeEntity.getQt76001(), tElecdashboardRealtimeEntity.getQt76002()
- ));
- // 位号list
- ArrayList<String> codeList = new ArrayList<String>(Arrays.asList(
- "QT61001", "QT61002", "QT61003", "QT61004", "QT61005", "QT61101",
- "QT61102", "QT61103", "QT61104", "QT61105", "QT76001", "QT76002"
- ));
- for (int i = 0; i < alarmValueList.size(); i++) {
- // 空值或错误值,不处理
- if ("".equals(alarmValueList.get(i)) || "#NAME?".equals(alarmValueList.get(i))) {
- continue;
- }
- // 小于最小值或大于最大值,插入预警数据
- if (
- AlarmValue.valueOf(codeList.get(i)).getMin() > Double.parseDouble(alarmValueList.get(i))
- || AlarmValue.valueOf(codeList.get(i)).getMax() < Double.parseDouble(alarmValueList.get(i))
- ) {
- tElecdashboardAlarmService.insertTElecdashboardAlarm(new TElecdashboardAlarmEntity(
- alarmValueList.get(i),
- new Date(),
- codeList.get(i),
- AlarmValue.valueOf(codeList.get(i)).getDesc()
- ));
- }
- }
- }
- /**
- * 每天8:00清空电厂大屏实时数据表
- */
- @Scheduled(cron = "0 0 8 * * ?")
- public void clearTElecdashboardRealtimeEveryHour() {
- tElecdashboardRealtimeService.deleteTElecdashboardRealtime();
- }
- }
|