| | |
| | | package com.iailab.module.model.mdk.sample; |
| | | |
| | | import com.iailab.module.data.api.ind.IndItemApi; |
| | | import com.iailab.module.data.api.ind.dto.ApiIndItemDTO; |
| | | import com.iailab.module.data.api.plan.dto.ApiPlanItemDTO; |
| | | import com.iailab.module.data.api.point.dto.ApiPointDTO; |
| | |
| | | abstract class SampleInfoConstructor { |
| | | |
| | | @Autowired |
| | | private IndItemApi indItemApi; |
| | | |
| | | @Autowired |
| | | private MmPredictItemService mmPredictItemService; |
| | | |
| | | /** |
| | |
| | | */ |
| | | protected SampleInfo prepareSampleInfo(String modelId, Date predictTime, Map<Integer, Integer> dynamicDataLength) { |
| | | //样本的列信息 |
| | | return getColumnInfo(modelId, predictTime, dynamicDataLength); |
| | | SampleInfo sampleInfo = getColumnInfo(modelId, predictTime, dynamicDataLength); |
| | | sampleInfo.setPredictTime(predictTime); |
| | | return sampleInfo; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | protected Date getStartTime(ColumnItem columnItem, Date originalTime) { |
| | | Date dateTime = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(originalTime); |
| | | switch (ModelParamType.getEumByCode(columnItem.getParamType())) { |
| | | case DATAPOINT: |
| | | case IND: |
| | | case PLAN: |
| | | dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), columnItem.getGranularity()); |
| | | break; |
| | | case PLAN: |
| | | dateTime = originalTime; |
| | | break; |
| | | case IND: |
| | | case IND_ASCII: |
| | | dateTime = calculateTime(originalTime, true, columnItem.getDataLength() - 1, columnItem.getGranularity()); |
| | | break; |
| | | case NORMALITEM: |
| | | case MERGEITEM: |
| | | dateTime = calendar.getTime(); |
| | | dateTime = calculateTime(originalTime, false, 1, columnItem.getGranularity()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | calendar.setTime(originalTime); |
| | | switch (ModelParamType.getEumByCode(columnItem.getParamType())) { |
| | | case DATAPOINT: |
| | | case IND: |
| | | dateTime = calculateTime(originalTime, true, 1, columnItem.getGranularity()); |
| | | break; |
| | | case PLAN: |
| | | dateTime = calendar.getTime(); |
| | | dateTime = calculateTime(originalTime, false, columnItem.getDataLength()-1, columnItem.getGranularity()); |
| | | break; |
| | | case IND: |
| | | case IND_ASCII: |
| | | dateTime = originalTime; |
| | | break; |
| | | case NORMALITEM: |
| | | case MERGEITEM: |
| | | dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), columnItem.getGranularity()); |
| | | dateTime = calculateTime(originalTime, false, columnItem.getDataLength() + 1, columnItem.getGranularity()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | protected Integer getGranularity(ColumnItem columnItem,Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap) { |
| | | protected Integer getGranularity(ColumnItem columnItem,Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap,Map<String, ApiIndItemDTO> indMap) { |
| | | // 默认60s |
| | | Integer granularity = 60; |
| | | switch (ModelParamType.getEumByCode(columnItem.getParamType())) { |
| | |
| | | granularity = mmPredictItemService.getItemByOutPutId(columnItem.getParamId()).getGranularity(); |
| | | break; |
| | | case IND: |
| | | ApiIndItemDTO indItemDTO = indItemApi.getInfoById(columnItem.getParamId()); |
| | | case IND_ASCII: |
| | | ApiIndItemDTO indItemDTO = indMap.get(columnItem.getParamId()); |
| | | granularity = TimeGranularitySecEnum.getEumByCode(indItemDTO.getTimeGranularity()).getValue();; |
| | | break; |
| | | case PLAN: |