|
@@ -8,6 +8,7 @@ import org.springframework.util.StringUtils;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
+import java.util.function.Predicate;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* RegisterReport 量测点 rID 顺序索引(与 MetaDataReport 注册顺序一致)。
|
|
* RegisterReport 量测点 rID 顺序索引(与 MetaDataReport 注册顺序一致)。
|
|
@@ -66,28 +67,35 @@ public final class VppUnRegisterReportIndex {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** RegisterReport:含虚拟电厂全部量测点(含负荷预测)。 */
|
|
|
|
|
|
|
+ /** RegisterReport:虚拟电厂全部量测点。 */
|
|
|
public static List<Entry> buildRegisterEntries(VppUnProperties properties,
|
|
public static List<Entry> buildRegisterEntries(VppUnProperties properties,
|
|
|
List<VppSite> sites,
|
|
List<VppSite> sites,
|
|
|
List<VppResourcePoint> resources,
|
|
List<VppResourcePoint> resources,
|
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
|
- return buildEntries(properties, sites, resources, deviceUnResourceIdMap, true);
|
|
|
|
|
|
|
+ return buildEntries(properties, sites, resources, deviceUnResourceIdMap, metric -> true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** MomentData:不含负荷预测。 */
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * MomentData:虚拟电厂 8 项实时量测 + 站点/资源 AP。
|
|
|
|
|
+ * 实时:AP、AP_E、AP_PE、上调/下调能力、响应时间、爬坡速度、持续时间。
|
|
|
|
|
+ */
|
|
|
public static List<Entry> buildMomentDataEntries(VppUnProperties properties,
|
|
public static List<Entry> buildMomentDataEntries(VppUnProperties properties,
|
|
|
List<VppSite> sites,
|
|
List<VppSite> sites,
|
|
|
List<VppResourcePoint> resources,
|
|
List<VppResourcePoint> resources,
|
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
|
- return buildEntries(properties, sites, resources, deviceUnResourceIdMap, false);
|
|
|
|
|
|
|
+ return buildEntries(properties, sites, resources, deviceUnResourceIdMap,
|
|
|
|
|
+ VppUnRegisterMetricDefinitions::isMomentMetric);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** IntervalData:含负荷预测(数值与 VPP 有功功率相同)。 */
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * IntervalData:虚拟电厂 9 项(基础 3 + 日前申报 5 + 负荷预测)+ 站点/资源 AP。
|
|
|
|
|
+ */
|
|
|
public static List<Entry> buildIntervalDataEntries(VppUnProperties properties,
|
|
public static List<Entry> buildIntervalDataEntries(VppUnProperties properties,
|
|
|
List<VppSite> sites,
|
|
List<VppSite> sites,
|
|
|
List<VppResourcePoint> resources,
|
|
List<VppResourcePoint> resources,
|
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
Map<Long, String> deviceUnResourceIdMap) {
|
|
|
- return buildEntries(properties, sites, resources, deviceUnResourceIdMap, true);
|
|
|
|
|
|
|
+ return buildEntries(properties, sites, resources, deviceUnResourceIdMap,
|
|
|
|
|
+ VppUnRegisterMetricDefinitions::isIntervalMetric);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Deprecated
|
|
@Deprecated
|
|
@@ -102,17 +110,26 @@ public final class VppUnRegisterReportIndex {
|
|
|
List<VppSite> sites,
|
|
List<VppSite> sites,
|
|
|
List<VppResourcePoint> resources,
|
|
List<VppResourcePoint> resources,
|
|
|
Map<Long, String> deviceUnResourceIdMap,
|
|
Map<Long, String> deviceUnResourceIdMap,
|
|
|
- boolean includeLoadForecast) {
|
|
|
|
|
|
|
+ Predicate<VppUnRegisterMetricDefinitions.RegisterMetric> vppMetricFilter) {
|
|
|
List<Entry> entries = new ArrayList<>();
|
|
List<Entry> entries = new ArrayList<>();
|
|
|
int rid = 0;
|
|
int rid = 0;
|
|
|
for (VppUnRegisterMetricDefinitions.RegisterMetric metric
|
|
for (VppUnRegisterMetricDefinitions.RegisterMetric metric
|
|
|
: VppUnRegisterMetricDefinitions.VPP_REGISTER_METRICS) {
|
|
: VppUnRegisterMetricDefinitions.VPP_REGISTER_METRICS) {
|
|
|
- if (!includeLoadForecast && VppUnRegisterMetricDefinitions.isLoadForecast(metric)) {
|
|
|
|
|
|
|
+ if (!vppMetricFilter.test(metric)) {
|
|
|
rid++;
|
|
rid++;
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
entries.add(new Entry(rid++, metric, Scope.VPP, null, null));
|
|
entries.add(new Entry(rid++, metric, Scope.VPP, null, null));
|
|
|
}
|
|
}
|
|
|
|
|
+ appendSiteAndResourceEntries(entries, rid, sites, resources, deviceUnResourceIdMap);
|
|
|
|
|
+ return entries;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static void appendSiteAndResourceEntries(List<Entry> entries,
|
|
|
|
|
+ int rid,
|
|
|
|
|
+ List<VppSite> sites,
|
|
|
|
|
+ List<VppResourcePoint> resources,
|
|
|
|
|
+ Map<Long, String> deviceUnResourceIdMap) {
|
|
|
if (sites != null) {
|
|
if (sites != null) {
|
|
|
for (VppSite site : sites) {
|
|
for (VppSite site : sites) {
|
|
|
if (site == null || !StringUtils.hasText(site.getUnResourceId())) {
|
|
if (site == null || !StringUtils.hasText(site.getUnResourceId())) {
|
|
@@ -135,7 +152,6 @@ public final class VppUnRegisterReportIndex {
|
|
|
Scope.RESOURCE, null, resource));
|
|
Scope.RESOURCE, null, resource));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return entries;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private VppUnRegisterReportIndex() {
|
|
private VppUnRegisterReportIndex() {
|