| | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | * @param predictTime |
| | | * @return |
| | | */ |
| | | public SampleInfo prepareSampleInfo(String modelId, Date predictTime) { |
| | | protected SampleInfo prepareSampleInfo(String modelId, Date predictTime) { |
| | | SampleInfo sampleInfo = new SampleInfo(); |
| | | //调用样本列数的方法 |
| | | sampleInfo.setSampleColumn(getSampleColumn(modelId)); |
| | | // sampleInfo.setSampleColumn(getSampleColumn(modelId)); |
| | | //样本的列信息 |
| | | sampleInfo.setColumnInfo(getColumnInfo(modelId, predictTime)); |
| | | //样本的采样周期 |
| | | sampleInfo.setSampleCycle(getSampleCycle(modelId)); |
| | | // sampleInfo.setSampleCycle(getSampleCycle(modelId)); |
| | | return sampleInfo; |
| | | } |
| | | |
| | |
| | | */ |
| | | protected abstract Integer getSampleColumn(String modelId); |
| | | |
| | | |
| | | /** |
| | | * 样本的列信息 |
| | | * |
| | | * @param modelId |
| | | * @param predictTime |
| | | * @return |
| | | */ |
| | | protected abstract List<ColumnItemPort> getColumnInfo(String modelId, Date predictTime); |
| | | |
| | | /** |
| | | * 样本的采样周期 |
| | | * |
| | | * @param modelId |
| | | * @return |
| | | */ |
| | | protected abstract Integer getSampleCycle(String modelId); |
| | | |
| | | /** |
| | | * 获取开始时间 |
| | | * |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | protected Date getStartTime(ColumnItem columnItem, Date originalTime) { |
| | | protected Date getStartTime(ColumnItem columnItem, Date originalTime, Map<String, ApiPointDTO> pointMap) { |
| | | Date dateTime = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(originalTime); |
| | | switch (ModelParamType.getEumByCode(columnItem.getParamType())) { |
| | | case DATAPOINT: |
| | | ApiPointDTO dataPoint = dataPointApi.getInfoById(columnItem.getParamId()); |
| | | ApiPointDTO dataPoint = pointMap.get(columnItem.getParamId()); |
| | | if (dataPoint == null) { |
| | | return null; |
| | | } |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | protected Date getEndTime(ColumnItem columnItem, Date originalTime) { |
| | | protected Date getEndTime(ColumnItem columnItem, Date originalTime,Map<String, ApiPointDTO> pointMap) { |
| | | Date dateTime = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(originalTime); |
| | | switch (ModelParamType.getEumByCode(columnItem.getParamType())) { |
| | | case DATAPOINT: |
| | | ApiPointDTO dataPoint = dataPointApi.getInfoById(columnItem.getParamId()); |
| | | ApiPointDTO dataPoint = pointMap.get(columnItem.getParamId()); |
| | | if (dataPoint == null) { |
| | | return null; |
| | | } |
| | |
| | | granularity = mmPredictItemService.getItemByOutPutId(columnItem.getParamId()).getGranularity(); |
| | | break; |
| | | case MERGEITEM: |
| | | granularity = mmPredictItemService.getItemById(columnItem.getParamId()).getGranularity(); |
| | | granularity = mmPredictItemService.getItemByIdFromCache(columnItem.getParamId()).getGranularity(); |
| | | break; |
| | | case IND: |
| | | ApiIndItemDTO indItemDTO = indItemApi.getInfoById(columnItem.getParamId()); |
| | |
| | | } |
| | | return granularity; |
| | | } |
| | | |
| | | /** |
| | | * 样本的列信息 |
| | | * |
| | | * @param modelId |
| | | * @param predictTime |
| | | * @return |
| | | */ |
| | | protected abstract List<ColumnItemPort> getColumnInfo(String modelId, Date predictTime); |
| | | |
| | | /** |
| | | * 样本的采样周期 |
| | | * |
| | | * @param modelId |
| | | * @return |
| | | */ |
| | | protected abstract Integer getSampleCycle(String modelId); |
| | | |
| | | /** |
| | | * 计算取值的时间 |