|
@@ -16,11 +16,9 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-import java.util.ArrayDeque;
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Order(2)
|
|
@Order(2)
|
|
@Component
|
|
@Component
|
|
@@ -113,23 +111,29 @@ public class CauseJobHandler implements ApplicationRunner {
|
|
if (pointCode != null) {
|
|
if (pointCode != null) {
|
|
//风速
|
|
//风速
|
|
v = pdaqMap.get(pointCode).stream().mapToDouble(PointData::getDoubleValue).average().orElse(0);
|
|
v = pdaqMap.get(pointCode).stream().mapToDouble(PointData::getDoubleValue).average().orElse(0);
|
|
|
|
+ if (v == 0.0) {
|
|
|
|
+ //如果离线或者别的原因获取不到风速,从全场实时平均风速获取
|
|
|
|
+ Map<String, PointData> latest = adapterApi.getLatest(CacheContext.stationRealMeanSpeedMap.get(CacheContext.equipMap.get(entry.getKey()).getWindpowerstationId()));
|
|
|
|
+ Iterator<PointData> iterator = latest.values().iterator();
|
|
|
|
+ double doubleValue = 0;
|
|
|
|
+ if (iterator.hasNext()) doubleValue = iterator.next().getDoubleValue();
|
|
|
|
+ if (doubleValue > 3) v = doubleValue;
|
|
|
|
+ }
|
|
speed = NumberUtil.round(v, 2).doubleValue();
|
|
speed = NumberUtil.round(v, 2).doubleValue();
|
|
target.setWindSpeed((float) speed);
|
|
target.setWindSpeed((float) speed);
|
|
|
|
|
|
if (speed < 3) {
|
|
if (speed < 3) {
|
|
power = 0.0;
|
|
power = 0.0;
|
|
} else {
|
|
} else {
|
|
- Map<Double, Double> map = CacheContext.powerModelMap.get(entry.getKey());
|
|
|
|
|
|
+ /*Map<Double, Double> map = CacheContext.powerModelMap.get(entry.getKey());
|
|
if (map != null && map.size() > 0) {
|
|
if (map != null && map.size() > 0) {
|
|
power = map.get(speed);
|
|
power = map.get(speed);
|
|
} else {
|
|
} else {
|
|
power = CacheContext.mpdsMapMap.get(CacheContext.equipModelMap.get(entry.getKey())).get(speed);
|
|
power = CacheContext.mpdsMapMap.get(CacheContext.equipModelMap.get(entry.getKey())).get(speed);
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (power == null) {
|
|
|
|
- power = 0.0;
|
|
|
|
- System.out.println(entry.getKey() + speed);
|
|
|
|
|
|
+ }*/
|
|
|
|
+ power = CacheContext.mpdsMapMap.get(CacheContext.equipModelMap.get(entry.getKey())).get(speed);
|
|
}
|
|
}
|
|
|
|
+ if (power == null) power = 0.0;
|
|
target.setTheoryGeneration(NumberUtil.round(power / 60, 4).floatValue());
|
|
target.setTheoryGeneration(NumberUtil.round(power / 60, 4).floatValue());
|
|
}
|
|
}
|
|
pointCode = entryValue.get(uniformcodeOne.get("active-power"));
|
|
pointCode = entryValue.get(uniformcodeOne.get("active-power"));
|
|
@@ -154,6 +158,11 @@ public class CauseJobHandler implements ApplicationRunner {
|
|
}
|
|
}
|
|
targets.add(target);
|
|
targets.add(target);
|
|
}
|
|
}
|
|
|
|
+ targets = targets.stream().peek(t -> {
|
|
|
|
+ if (t.getTheoryGeneration() < t.getPower()) {
|
|
|
|
+ t.setTheoryGeneration(t.getPower());
|
|
|
|
+ }
|
|
|
|
+ }).collect(Collectors.toList());
|
|
realtimeAverageTargetService.saveBatch(targets);
|
|
realtimeAverageTargetService.saveBatch(targets);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|