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