korkece fve predikce, grafy predikci
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
getCurrentPlan,
|
||||
getSiteForecastPv,
|
||||
getSitePrices,
|
||||
getForecastPvSlotsRangeCorrected,
|
||||
type SiteEffectivePriceRowDto,
|
||||
} from '../api/backend'
|
||||
import { getJson } from '../api/postgrest'
|
||||
@@ -279,6 +280,20 @@ export function useDashboardData(siteId: number | null) {
|
||||
if (!fc) continue
|
||||
addForecastToByStart(fc, forecastBySlot)
|
||||
}
|
||||
|
||||
const windowFromIso = new Date(windowStart).toISOString()
|
||||
const windowToIso = new Date(windowStart + TOTAL_SLOTS * SLOT_MS).toISOString()
|
||||
const correctedSlots = await getForecastPvSlotsRangeCorrected(siteId, windowFromIso, windowToIso).catch(
|
||||
() => [] as Awaited<ReturnType<typeof getForecastPvSlotsRangeCorrected>>,
|
||||
)
|
||||
const correctedBySlot = new Map<string, number>()
|
||||
for (const r of correctedSlots) {
|
||||
const t = new Date(r.interval_start).getTime()
|
||||
if (!Number.isFinite(t)) continue
|
||||
const v = r.pv_forecast_corrected_w
|
||||
if (v == null) continue
|
||||
correctedBySlot.set(slotTimeKey(t), Number(v))
|
||||
}
|
||||
for (const ymd of weekDates) {
|
||||
const fc = forecastByYmd.get(ymd) ?? null
|
||||
if (!fc) {
|
||||
@@ -364,6 +379,10 @@ export function useDashboardData(siteId: number | null) {
|
||||
base.pv_a_forecast_w = fc.a
|
||||
base.pv_b_forecast_w = fc.b
|
||||
}
|
||||
const corr = correctedBySlot.get(k)
|
||||
if (corr != null) {
|
||||
base.pv_forecast_corrected_w = corr
|
||||
}
|
||||
|
||||
const pi = planBySlot.get(k)
|
||||
if (pi) mergeInterval(base, pi)
|
||||
|
||||
Reference in New Issue
Block a user