iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StAdjustResultService.java
@@ -24,6 +24,8 @@ double[] getSimpleData(String outputId, Date predictTime, int predictLength); List<DataValueVO> getPredictValue(String outputId, Date predictTime); List<Object[]> getData(String outputId, Date predictTime, String timeFormat); StAdjustResultRespVO getInfo(String id); iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StAdjustResultServiceImpl.java
@@ -75,6 +75,32 @@ } @Override public List<DataValueVO> getPredictValue(String outputId, Date predictTime) { List<DataValueVO> result = new ArrayList<>(); QueryWrapper<StAdjustResultEntity> wrapper = new QueryWrapper<>(); wrapper.eq("output_id", outputId) .eq("adjust_time", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); StAdjustResultEntity data = baseDao.selectOne(wrapper); if (data == null || StringUtils.isBlank(data.getJsonValue())) { return result; } List<Double> valueList = JSONArray.parseArray(data.getJsonValue(), Double.class); if (CollectionUtils.isEmpty(valueList)) { return result; } Calendar calendar = Calendar.getInstance(); calendar.setTime(predictTime); for (int i = 1; i < valueList.size() + 1; i++) { calendar.add(Calendar.MINUTE, i); DataValueVO vo = new DataValueVO(); vo.setDataValue(valueList.get(i - 1)); vo.setDataTime(calendar.getTime()); result.add(vo); } return result; } @Override public List<Object[]> getData(String outputId, Date predictTime, String timeFormat) { List<Object[]> result = new ArrayList<>(); QueryWrapper<StAdjustResultEntity> wrapper = new QueryWrapper<>(); iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java
@@ -14,10 +14,8 @@ import com.iailab.module.data.common.ApiDataQueryDTO; import com.iailab.module.data.common.ApiDataValueDTO; import com.iailab.module.model.common.utils.ASCIIUtil; import com.iailab.module.model.mcs.pre.service.MmItemOutputService; import com.iailab.module.model.mcs.pre.service.MmItemResultJsonService; import com.iailab.module.model.mcs.pre.service.MmItemResultService; import com.iailab.module.model.mcs.pre.service.MmItemTypeService; import com.iailab.module.model.mcs.sche.service.StAdjustResultService; import com.iailab.module.model.mdk.common.enums.ModelParamType; import com.iailab.module.model.mdk.sample.dto.ColumnItem; import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; @@ -57,13 +55,7 @@ private MmItemResultService mmItemResultService; @Autowired private MmItemResultJsonService mmItemResultJsonService; @Autowired private MmItemTypeService mmItemTypeService; @Autowired private MmItemOutputService mmItemOutputService; private StAdjustResultService stAdjustResultService; /** * alter by zfc 2020.11.24 修改数据样本构造方案:sampleInfo中数据已按爪子进行分类,但爪内数据为无序的, @@ -134,7 +126,7 @@ //对每一项依次进行数据查询,然后将查询出的值赋给matrix对应的位置 for (int i = 0; i < entry.getColumnItemList().size(); i++) { try { List<DataValueVO> dataEntityList = getData(entry.getColumnItemList().get(i), pointMap, planMap, indMap); List<DataValueVO> dataEntityList = getData(sampleInfo, entry.getColumnItemList().get(i), pointMap, planMap, indMap); //补全数据 ColumnItem columnItem = entry.getColumnItemList().get(i); @@ -173,6 +165,7 @@ /** * getData * * @param sampleInfo * @param columnItem * @param pointMap * @param planMap @@ -180,7 +173,8 @@ * @return * @throws Exception */ private List<DataValueVO> getData(ColumnItem columnItem, Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap, Map<String, ApiIndItemDTO> indMap) throws Exception { private List<DataValueVO> getData(SampleInfo sampleInfo, ColumnItem columnItem, Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap, Map<String, ApiIndItemDTO> indMap) throws Exception { List<DataValueVO> dataList = new ArrayList<>(); String paramType = columnItem.getParamType(); switch (ModelParamType.getEumByCode(paramType)) { @@ -202,11 +196,18 @@ break; case NORMALITEM: case MERGEITEM: List<DataValueVO> predictValue = mmItemResultService.getPredictValue(columnItem.getParamId(), columnItem.getStartTime(), columnItem.getEndTime()); List<DataValueVO> predictValue = new ArrayList<>(); if (sampleInfo.getIsAdjust()) { // 模拟调整数据查询 predictValue = stAdjustResultService.getPredictValue(columnItem.getParamId(), sampleInfo.getPredictTime()); } else { predictValue = mmItemResultService.getPredictValue(columnItem.getParamId(), columnItem.getStartTime(), columnItem.getEndTime()); } if (CollectionUtils.isEmpty(predictValue)) { break; } dataList = predictValue; break; case PLAN: ApiDataQueryDTO queryPlanItemDto = new ApiDataQueryDTO(); iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleConstructor.java
@@ -50,6 +50,7 @@ SampleInfoConstructor sampleInfoConstructor = sampleFactory.createSampleInfo(typeA, modelId); SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime, dynamicDataLength); sampleInfo.setDeviation(deviationList); sampleInfo.setIsAdjust(true); SampleDataConstructor sampleDataConstructor = sampleFactory.createSampleData(typeA); return sampleDataConstructor.prepareSampleData(sampleInfo); } catch (Exception e) { iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java
@@ -1,6 +1,5 @@ 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; @@ -25,9 +24,6 @@ abstract class SampleInfoConstructor { @Autowired private IndItemApi indItemApi; @Autowired private MmPredictItemService mmPredictItemService; /** @@ -39,7 +35,9 @@ */ 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; } /** iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleInfo.java
@@ -12,6 +12,7 @@ import java.math.BigDecimal; import java.sql.Timestamp; import java.util.Date; import java.util.List; import java.util.Map; @@ -27,6 +28,8 @@ private Integer sampleColumn; private Date predictTime; private Timestamp startTime; private Timestamp endTime; @@ -35,6 +38,8 @@ private Integer sampleCycle; private Boolean isAdjust = false; // 调整值 private List<StAdjustDeviationDTO> deviation; // 所有测点信息,避免重复查询