2 天以前 dc1d067c566bbde1c7170186960a8bd27f210a47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import { requestClient } from '#/api/request';
 
export namespace DecisionForecastApi {
  export interface ForecastItem {
    id: number;
    forecastCode: string;
    forecastName: string;
    pointTime: string;
    forecastValue: number;
    actualValue?: number;
    lowerBound?: number;
    upperBound?: number;
    confidenceLevel?: number;
    modelVersion?: string;
    dimension?: string;
    dimensionValue?: string;
  }
 
  export type ForecastModel = 'SMA' | 'WMA' | 'LR' | 'SEASONAL' | 'YOY';
 
  export interface GenerateParams {
    model?: ForecastModel;
    window?: number;
    period?: number;
  }
 
  export interface GenerateKpiParams {
    kpiCode: string;
    model?: ForecastModel;
    window?: number;
    period?: number;
    periods?: number;
    intervalMinutes?: number;
  }
}
 
export function getForecastList(forecastCode: string, params?: Record<string, unknown>) {
  return requestClient.get<DecisionForecastApi.ForecastItem[]>('/bi/decision/forecast/list', {
    params: { forecastCode, ...params },
  });
}
 
export function generateForecast(
  forecastCode: string,
  params?: DecisionForecastApi.GenerateParams,
) {
  return requestClient.post('/bi/decision/forecast/generate', null, {
    params: { forecastCode, ...params },
  });
}
 
export function generateKpiForecast(params: DecisionForecastApi.GenerateKpiParams) {
  return requestClient.post<number>('/bi/decision/forecast/generate-from-kpi', null, {
    params,
  });
}
 
export function generateForecastWorkOrder(data: {
  forecastId: number;
  workOrderName?: string;
  workOrderType: number;
  requestDate?: string;
  quantity: number;
  remark?: string;
}) {
  return requestClient.post<number>('/bi/decision/forecast/generate-work-order', data);
}