123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- package com.gyee.impala.schdule;
- import com.gyee.impala.common.feign.RemoteServiceBuilder;
- import com.gyee.impala.common.util.DateUtil;
- import com.gyee.impala.common.util.FileUtil;
- import com.gyee.impala.common.util.SnowFlakeUtil;
- import com.gyee.impala.model.custom.TsDoubleData;
- import com.gyee.impala.model.master.Windturbine;
- import com.gyee.impala.model.master.Windturbinepoint;
- import com.gyee.impala.service.master.WindturbineService;
- import com.gyee.impala.service.master.WindturbinepointService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import java.util.ArrayList;
- import java.util.List;
- //@Component
- @Slf4j
- public class TaskPerformance {
- // 分钟 * 秒
- private final Integer interval = 5 * 60;
- // 实时欠发状态
- private final String RSSQFZT = "RSSQFZT";
- // 发电机转速
- private final String FDJZS = "AI012";
- private final String FDJZSB = "AI012B";
- // 明细状态
- private final String FJMXZT = "ZTMX";
- // 桨叶角度
- private final String JYJD = "AI031";
- private final String START_TIME = "2021-06-01 00:00:00";
- private final String END_TIME = "2021-11-20 00:00:00";
- @Autowired
- private RemoteServiceBuilder remoteServiceBuilder;
- @Autowired
- private WindturbineService windturbineService;
- @Autowired
- private WindturbinepointService windturbinepointService;
- /**
- * 性能下降统计
- * 延时30s执行
- * 每隔60s执行一次
- */
- @Scheduled(initialDelay = 30 * 1000, fixedRate = 2 * 86400000 * 1000)
- public void performanceNSS(){
- List<Windturbine> listNSS = windturbineService.getWindTurbineId("NSS_FDC");
- if (listNSS == null || listNSS.size() < 0)
- return;
- List<String> data = new ArrayList<>();
- for (int i = 0; i < listNSS.size(); i++){
- if (i > 10)
- break;
- System.out.println("======: " + listNSS.get(i).getId());
- Windturbinepoint wp_zs = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), FDJZS);
- Windturbinepoint wp_zt = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), FJMXZT);
- Windturbinepoint wp_qf = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), RSSQFZT);
- Windturbinepoint wp_jy = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), JYJD);
- List<TsDoubleData> zsData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_zs.getPoint(),
- DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
- List<TsDoubleData> ztData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_zt.getPoint(),
- DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
- List<TsDoubleData> qfData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_qf.getPoint(),
- DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
- List<TsDoubleData> jdData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_jy.getPoint(),
- DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
- int k = 0;
- int m = 0;
- List<String> list = new ArrayList<>();
- List<String> list1 = new ArrayList<>();
- for (int j = 0; j < zsData.size(); j++) {
- if (zsData.get(j).getDoubleValue() >= 14
- && ztData.get(j).getDoubleValue() == 2
- && qfData.get(j).getDoubleValue() > 3
- && jdData.get(j).getDoubleValue() == 0) {
- k++;
- list.add(DateUtil.format(zsData.get(j).getTs(), DateUtil.DATE_TIME_PATTERN));
- } else if(zsData.get(j).getDoubleValue() >= 14
- && ztData.get(j).getDoubleValue() == 2
- && qfData.get(j).getDoubleValue() <= 2
- && jdData.get(j).getDoubleValue() == 0){
- m++;
- list1.add(DateUtil.format(zsData.get(j).getTs(), DateUtil.DATE_TIME_PATTERN));
- }
- else {
- // 统计欠发
- if (k >= 5) {
- data.add(SnowFlakeUtil.generateId() + "^0^NSS_FDC^"
- + listNSS.get(i).getId() + "^" + list.get(0) + "^"
- + list.get(list.size() - 1) + "^"
- + String.format("%.1f",(double)(k * interval) / 3600)
- + "^0^牛首山风电场^^^^\n");
- }
- k = 0;
- list.clear();
- // 统计不欠发 大于5小时
- if (m >= 60) {
- data.add(SnowFlakeUtil.generateId() + "^1^NSS_FDC^"
- + listNSS.get(i).getId() + "^" + list1.get(0) + "^"
- + list1.get(list1.size() - 1) + "^"
- + String.format("%.1f",(double)(m * interval) / 3600)
- + "^0^牛首山风电场^^^^\n");
- }
- m = 0;
- list1.clear();
- }
- }
- }
- FileUtil.writeFile("nss_caseperformence_1_45", data);
- }
- }
|