From 61c1fdfea39af8f325959c120db49eca3a5a5769 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期二, 21 一月 2025 14:54:59 +0800
Subject: [PATCH] 多个调度模型最新结果查询 模型结果保存改同步

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java   |   23 +++--------
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointCollectTaskNet1h.java           |   40 ++++++++++++++++++++
 iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/enums/DataPointFreqEnum.java                  |    3 +
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java |   27 ++++++++++++-
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java      |    1 
 5 files changed, 73 insertions(+), 21 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/enums/DataPointFreqEnum.java b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/enums/DataPointFreqEnum.java
index 6221f9c..67c8610 100644
--- a/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/enums/DataPointFreqEnum.java
+++ b/iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/enums/DataPointFreqEnum.java
@@ -11,7 +11,8 @@
 public enum DataPointFreqEnum {
     NET_10S("10s", 10),
     NET_30S("30s", 30),
-    NET_1MIN("1min",60);
+    NET_1MIN("1min",60),
+    NET_1H("1h",60*60);
 
     private String code;
 
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
index 13e4146..6e1afbd 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java
@@ -9,6 +9,7 @@
 import com.iailab.module.data.api.dto.IndexQueryDTO;
 import com.iailab.module.data.api.dto.echarts.BarLineDTO;
 import com.iailab.module.data.api.dto.echarts.SeriesItem;
+import com.iailab.module.data.api.ind.IndItemApi;
 import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
 import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
 import com.iailab.module.data.api.plan.PlanItemApi;
@@ -66,6 +67,9 @@
 
     @Autowired
     private PlanItemApi planItemApi;
+
+    @Autowired
+    private IndItemApi indItemApi;
 
     @Autowired
     private IndItemCollector indItemCollector;
@@ -303,28 +307,15 @@
     @PermitAll
     @GetMapping("/query-ind/default-value")
     @Operation(summary = "查询指标默认值")
-    public CommonResult<List<ApiIndItemValueDTO>> queryIndItemDefaultValue(HttpServletResponse response, HttpServletRequest
-            request,@RequestParam String itemNo) throws Exception {
-        apiSecurityUtils.validate(request);
-        List<IndItemValueVO> list = indItemCollector.queryValue(itemNo);
-        List<ApiIndItemValueDTO> dtoList = new ArrayList<>();
-        list.forEach(item -> {
-            if (item != null) {
-                ApiIndItemValueDTO dto = new ApiIndItemValueDTO();
-                dto.setDataTime(item.getDataTime());
-                dto.setDataValue(item.getDataValue().doubleValue());
-                dtoList.add(dto);
-            }
-        });
-        return success(dtoList);
+    public CommonResult<List<ApiIndItemValueDTO>> queryIndItemDefaultValue(@RequestParam String itemNo) {
+        return success(indItemApi.queryIndItemDefaultValue(itemNo));
     }
 
     @PermitAll
     @PostMapping("/query-ind/history-value")
     @Operation(summary = "查询指标历史值")
     public CommonResult<List<ApiIndItemValueDTO>> queryIndItemHistoryValue(@RequestBody ApiIndItemQueryDTO dto) {
-        List<IndItemValueVO> list = indItemCollector.queryValue(dto.getItemNo(), dto.getStart(), dto.getEnd());
-        return success(ConvertUtils.sourceToTarget(list, ApiIndItemValueDTO.class));
+        return success(indItemApi.queryIndItemHistoryValue(dto));
     }
 
     @PermitAll
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointCollectTaskNet1h.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointCollectTaskNet1h.java
new file mode 100644
index 0000000..c0d2f29
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointCollectTaskNet1h.java
@@ -0,0 +1,40 @@
+package com.iailab.module.data.job.task;
+
+import com.iailab.module.data.point.collection.PointCollector;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.Calendar;
+
+/**
+ * @description: Point采集器1h
+ * @author: dzd
+ * @date: 2025/1/18 14:07
+ **/
+@Component("pointCollectTaskNet1h")
+public class PointCollectTaskNet1h implements ITask {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    private final String NET = "1h";
+
+    @Resource
+    private PointCollector pointCollector;
+
+    @Override
+    public void run(String params){
+        logger.debug("pointCollectTaskNet1h定时任务正在执行,参数为:{}", params);
+        try {
+            Calendar calendar = Calendar.getInstance();
+            calendar.set(Calendar.MILLISECOND, 0);
+            pointCollector.collect(calendar.getTime(), NET);
+            logger.info("pointCollectTaskNet1h定时任务完成时间:" + LocalDateTime.now());
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            logger.error("pointCollectTaskNet1h定时任务失败时间:" + LocalDateTime.now());
+        }
+
+    }
+}
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
index 96116e5..6d57df8 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
@@ -12,6 +12,7 @@
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -20,9 +21,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
@@ -195,6 +194,28 @@
         return CommonResult.success(mcsApi.getLastScheduleData(scheduleCode,limit));
     }
 
+    @PostMapping("/schedule-data/last/more")
+    @Operation(summary = "多个调度模型最新结果查询")
+    public CommonResult<Map<String,List<StScheduleRecordVO>>> getMoreLastScheduleData(@RequestBody Map<String,Object> params) {
+        if (!params.containsKey("scheduleCodes")) {
+            return success(new HashMap<>());
+        }
+        Set<String> scheduleCodes = new HashSet<>(((List<String>) params.get("scheduleCodes")));
+        if (CollectionUtils.isEmpty(scheduleCodes)) {
+            return success(new HashMap<>());
+        }
+        Integer limit = 1;
+        if (params.containsKey("limit")) {
+            limit = Integer.parseInt(params.get("limit").toString());
+        }
+
+        Map<String,List<StScheduleRecordVO>> result = new HashMap<>(scheduleCodes.size());
+        for (String scheduleCode : scheduleCodes) {
+            result.put(scheduleCode,mcsApi.getLastScheduleData(scheduleCode, limit));
+        }
+        return CommonResult.success(result);
+    }
+
     @PostMapping("/machineRealTimeStatus")
     @Operation(summary = "发电机组实时状态查询")
     CommonResult<List<Map<String, Object>>> getRealTimeStatus(@RequestBody List<Map<String, Object>> machines) {
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
index ee15741..75aefb0 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java
@@ -86,7 +86,6 @@
      *
      * @param predictResult
      */
-    @Async
     @DSTransactional
     public void savePredictResult(PredictResultVO predictResult) {
         Map<String, List<DataValueVO>> resultMap = convertToPredictData(predictResult);

--
Gitblit v1.9.3