liulingling.177216
2024-08-26 349f1cfc5fa77fbc636d542df0d8050fddec48c2
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
package com.dingzhuo.energy.dataservice.service;
 
import com.dingzhuo.energy.common.utils.time.TimeType;
import com.dingzhuo.energy.dataservice.domain.DataItem;
import com.dingzhuo.energy.dataservice.domain.Quality;
import com.dingzhuo.energy.dataservice.domain.StatisticResult;
import com.dingzhuo.energy.dataservice.domain.StatisticType;
 
import java.util.Date;
import java.util.List;
 
/**
 * 阶段数据查询接口.
 */
public interface PeriodDataService {
 
  /**
   * 保存指标数据.
   *
   * @param data 指标数据
   */
  void save(DataItem data);
 
  /**
   * 批量保存周期数据.
   *
   * @param datas 要保存的数据集合
   */
  void save(List<DataItem> datas);
 
  /**
   * 批量保存数据,不处理异常
   * 采用merge保存数据,如果批量保存失败跑出异常
   *
   * @param dataItems
   */
  void savePeriodData(List<DataItem> dataItems);
 
  /**
   * 修改指标数据.
   *
   * @param data 指标数据
   */
  void update(DataItem data);
 
  /**
   * 获取指标数据.
   *
   * @param indexId  计算指标
   * @param timeCode 时间编码
   */
  DataItem getDataByIndex(String indexId, String timeCode);
 
  /**
   * 获取指标某一时刻的数据.
   *
   * @param indexId  计算指标
   * @param dataTime 时间
   * @param timeType 周期类型
   */
  DataItem getDataByIndex(String indexId, Date dataTime, TimeType timeType);
 
  /**
   * 获取计算指标数据.
   *
   * @param indexIds 计算指标
   * @param timeCode 时间编号
   * @return 计算指标数据
   */
  List<DataItem> getDatasByIndex(List<String> indexIds, String timeCode);
 
  /**
   * 获取计算指标数据.
   *
   * @param indexIds 计算指标集合
   * @param dataTime 时间
   * @param timeType 周期类型
   * @return 计算指标数据
   */
  List<DataItem> getDatasByIndex(List<String> indexIds,
                                 Date dataTime,
                                 TimeType timeType);
 
  /**
   * 获取指标某一时刻的数据.
   *
   * @param indexIds  计算指标存储集合
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @param timeType  周期类型
   */
  List<DataItem> getDatasByIndex(List<String> indexIds,
                                 Date beginTime,
                                 Date endTime,
                                 TimeType timeType);
 
  /**
   * 获取指标某一时刻的数据.
   *
   * @param indexId   计算指标存储集合
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @param timeType  周期类型
   */
  List<DataItem>  getDatasByIndex(String indexId,
                  Date beginTime,
                  Date endTime,
                  TimeType timeType);
 
  /**
   * 获取指标某一时刻的数据.
   *
   * @param indexIds  计算指标存储集合
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @param timeType  周期类型
   */
  List<DataItem> getDatasByIndex(List<String> indexIds,
                                 Date beginTime,
                                 Date endTime,
                                 TimeType timeType,
                                 Quality quality);
 
  /**
   * 获取统计数据.
   *
   * @param indexId       计算指标
   * @param statisticType 统计类型
   * @param timeType      时间类型
   * @param beginTime     开始时间
   * @param endTime       结束时间
   */
  double dataStatisticsByIndex(String indexId,
                               StatisticType statisticType,
                               TimeType timeType,
                               Date beginTime,
                               Date endTime);
 
  /**
   * 获取统计数据.
   *
   * @param indexIds      计算指标集合
   * @param statisticType 统计类型
   * @param timeType      时间类型
   * @param beginTime     开始时间
   * @param endTime       结束时间
   */
  List<DataItem> dataStatisticsByIndexs(List<String> indexIds,
                                        StatisticType statisticType,
                                        TimeType timeType,
                                        Date beginTime,
                                        Date endTime);
 
 
  /**
   * 获取统计数据.
   *
   * @param indexCode     计算指标
   * @param statisticType 统计类型
   * @param timeType      时间类型
   * @param beginTime     开始时间
   * @param endTime       结束时间
   */
  double dataStatisticsByCode(String indexCode,
                              StatisticType statisticType,
                              TimeType timeType,
                              Date beginTime,
                              Date endTime);
 
  /**
   * 获取统计数据.
   *
   * @param indexCodes    计算指标集合
   * @param statisticType 统计类型
   * @param timeType      时间类型
   * @param beginTime     开始时间
   * @param endTime       结束时间
   */
  List<DataItem> dataStatisticsByCodes(List<String> indexCodes,
                                       StatisticType statisticType,
                                       TimeType timeType,
                                       Date beginTime,
                                       Date endTime);
 
  /**
   * 获取统计数据.
   *
   * @param indexCodes    计算指标集合
   * @param statisticType 统计类型
   * @param timeType      时间类型
   * @param beginTime     开始时间
   * @param endTime       结束时间
   */
  List<DataItem> dataStatisticsByCodes(List<String> indexCodes,
                                       StatisticType statisticType,
                                       TimeType timeType,
                                       Date beginTime,
                                       Date endTime,
                                       boolean isFilter);
 
  /**
   * 统计指标本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexId  指标主键
   * @param timeType 时间周期类型
   * @param dataTime 数据时间
   * @return 统计结构
   */
  StatisticResult statisticById(String indexId, TimeType timeType, Date dataTime);
 
  /**
   * 统计指标本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexIds 指标主键
   * @param timeType 时间周期类型
   * @param dataTime 数据时间
   * @return 统计结果
   */
  List<StatisticResult> statisticById(List<String> indexIds, TimeType timeType, Date dataTime);
 
  /**
   * 统计一段时间周期内指标每个数据时间的本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexId   指标主键
   * @param timeType  时间周期类型
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @return 统计结果
   */
  List<StatisticResult> statisticById(String indexId, TimeType timeType, Date beginTime, Date endTime);
 
  /**
   * 统计一段时间周期内指标每个数据时间的本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexIds  指标主键
   * @param timeType  时间周期类型
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @return 统计结果
   */
  List<StatisticResult> statisticById(List<String> indexIds, TimeType timeType, Date beginTime, Date endTime);
 
 
  /**
   * 统计一段时间周期内指标每个数据时间的本期值、上期值
   * 这里是上期数值略有不同,小时的是昨天的,日数据是上个月的,月是去年的
   *
   * @param indexIds  指标主键
   * @param timeType  时间周期类型
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @return 统计结果
   */
  List<StatisticResult> statisticOtherCycle(List<String> indexIds, TimeType timeType, Date beginTime, Date endTime);
 
  /**
   * 统计指标本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexCode 指标主键
   * @param timeType  时间周期类型
   * @param dataTime  数据时间
   * @return 统计结构
   */
  StatisticResult statisticByCode(String indexCode, TimeType timeType, Date dataTime);
 
  /**
   * 统计指标本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexCodes 指标主键
   * @param timeType   时间周期类型
   * @param dataTime   数据时间
   * @return 统计结果
   */
  List<StatisticResult> statisticByCode(List<String> indexCodes, TimeType timeType, Date dataTime);
 
  /**
   * 统计一段时间周期内指标每个数据时间的本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexCode 指标主键
   * @param timeType  时间周期类型
   * @param beginTime 开始时间
   * @param endTime   结束时间
   * @return 统计结果
   */
  List<StatisticResult> statisticByCode(String indexCode, TimeType timeType, Date beginTime, Date endTime);
 
  /**
   * 统计一段时间周期内指标每个数据时间的本期值、上期值、同期值、最大值、最小值和平均值.
   *
   * @param indexCodes 指标主键
   * @param timeType   时间周期类型
   * @param beginTime  开始时间
   * @param endTime    结束时间
   * @return 统计结果
   */
  List<StatisticResult> statisticByCode(List<String> indexCodes, TimeType timeType, Date beginTime, Date endTime);
 
  /**
   * 获取指标数据.
   *
   * @param indexCode 计算指标编码
   * @param timeCode  时间编码
   */
  DataItem getDataByIndexCode(String indexCode, String timeCode);
}