From a709abfd8ffec1524cefff30c3581f4425695433 Mon Sep 17 00:00:00 2001 From: houzhongjian <houzhongyi@126.com> Date: 星期四, 05 十二月 2024 17:05:09 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/ScheduleSampleInfoConstructor.java | 79 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 79 insertions(+), 0 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/ScheduleSampleInfoConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/ScheduleSampleInfoConstructor.java new file mode 100644 index 0000000..6b62536 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/ScheduleSampleInfoConstructor.java @@ -0,0 +1,79 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.model.mcs.sche.entity.StScheduleModelParamEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleModelParamService; +import com.iailab.module.model.mdk.sample.dto.ColumnItem; +import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class ScheduleSampleInfoConstructor extends SampleInfoConstructor { + + @Autowired + private StScheduleModelParamService stScheduleModelParamService; + + @Override + protected Integer getSampleColumn(String modelId) { + return null; + } + + @Override + protected List<ColumnItemPort> getColumnInfo(String modelId, Date predictTime) { + List<ColumnItemPort> resultList = new ArrayList<>(); + List<ColumnItem> columnItemList = new ArrayList<>(); + ColumnItem columnInfo = new ColumnItem(); + ColumnItemPort curPort = new ColumnItemPort(); //当前端口 + List<StScheduleModelParamEntity> modelInputParamEntityList = stScheduleModelParamService.getByModelidFromCache(modelId); + if (CollectionUtils.isEmpty(modelInputParamEntityList)) { + return null; + } + //设置当前端口号,初始值为最小端口(查询结果按端口号从小到达排列) + int curPortOrder = modelInputParamEntityList.get(0).getModelparamportorder(); + //设置当前查询数据长度,初始值为最小端口数据长度 + int curDataLength = modelInputParamEntityList.get(0).getDatalength(); + for (StScheduleModelParamEntity entry : modelInputParamEntityList) { + columnInfo.setParamType(entry.getModelparamtype()); + columnInfo.setParamId(entry.getModelparamid()); + columnInfo.setDataLength(entry.getDatalength()); + columnInfo.setModelParamOrder(entry.getModelparamorder()); + columnInfo.setModelParamPortOrder(entry.getModelparamportorder()); + columnInfo.setStartTime(getStartTime(columnInfo, predictTime)); + columnInfo.setEndTime(getEndTime(columnInfo, predictTime)); + columnInfo.setGranularity(super.getGranularity(columnInfo)); + + //对每一个爪进行数据项归并 + if (curPortOrder != entry.getModelparamportorder()){ + //当数据项端口号不为当前端口号时,封装上一个端口类,操作下一个端口类 + curPort.setColumnItemList(columnItemList); + curPort.setDataLength(curDataLength); + curPort.setPortOrder(curPortOrder); + resultList.add(curPort); + curPort = new ColumnItemPort(); //对象重新初始化,防止引用拷贝导致数据覆盖 + //封装上一个端口类后更新当前的各个参数 + columnItemList = new ArrayList<>(); + curDataLength = entry.getDatalength(); + curPortOrder = entry.getModelparamportorder(); + } + columnItemList.add(columnInfo); + columnInfo = new ColumnItem(); //对象重新初始化,防止引用拷贝导致数据覆盖 + } + //当迭代到最后一个项的时候,封装最后一个端口的信息 + curPort.setColumnItemList(columnItemList); + curPort.setDataLength(curDataLength); + curPort.setPortOrder(curPortOrder); + resultList.add(curPort); + return resultList; + } + + @Override + protected Integer getSampleCycle(String modelId) { + return null; + } + +} -- Gitblit v1.9.3