From 49148428d71415ad2b5449cb6ea2e83f1fbb6c18 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期二, 21 一月 2025 15:12:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/admin/ApiDataController.java                |   23 ++-----
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java            |    1 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigSaveReqVO.java           |    6 ++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/job/task/PointCollectTaskNet1h.java                        |   40 +++++++++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictAlarmConfigEntity.java          |   10 +++
 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/api/McsApiImpl.java                                     |    3 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java |    2 
 iailab-module-model/iailab-module-model-biz/db/mysql.sql                                                                                  |    7 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigRespVO.java              |    6 ++
 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictAlarmConfigDao.xml                                     |    1 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/enums/ScheduleSuggestStatusEnum.java             |   35 +++++++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java                   |    1 
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmConfigRespDTO.java                     |    6 ++
 15 files changed, 147 insertions(+), 24 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-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmConfigRespDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmConfigRespDTO.java
index 8e3b6d1..6ad234e 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmConfigRespDTO.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmConfigRespDTO.java
@@ -69,4 +69,10 @@
 
     @Schema(description = "更新时间")
     private Date updateTime;
+
+    @Schema(description = "累计值上限")
+    private BigDecimal culUpper;
+
+    @Schema(description = "累计值下限")
+    private BigDecimal culLower;
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/db/mysql.sql b/iailab-module-model/iailab-module-model-biz/db/mysql.sql
index a96f009..6e42fba 100644
--- a/iailab-module-model/iailab-module-model-biz/db/mysql.sql
+++ b/iailab-module-model/iailab-module-model-biz/db/mysql.sql
@@ -874,4 +874,9 @@
                                   INDEX `ind_model_id`(`model_id` ASC) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模型下发信息表';
 
-alter table t_st_schedule_scheme add column `run_status` varchar(4) DEFAULT NULL COMMENT '运行状态';
\ No newline at end of file
+alter table t_st_schedule_scheme add column `run_status` varchar(4) DEFAULT NULL COMMENT '运行状态';
+
+alter table t_mm_predict_alarm_config add column `cul_upper` decimal(10, 4) COMMENT '累计值上限';
+alter table t_mm_predict_alarm_config add column `cul_lower` decimal(10, 4) COMMENT '累计值下限';
+
+alter table t_st_schedule_scheme modify column  `trigger_condition` varchar(50) COMMENT '触发条件'
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index 31e61c8..faa7294 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -391,8 +391,7 @@
             dataView.setPreMax(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
             dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP));
             dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1)));
-            dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum())
-                    .divide(new BigDecimal(HOUR_MINS), 2, BigDecimal.ROUND_HALF_UP));
+            dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()));
         }
 
         String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ);
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/common/enums/ScheduleSuggestStatusEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/enums/ScheduleSuggestStatusEnum.java
new file mode 100644
index 0000000..caadc08
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/enums/ScheduleSuggestStatusEnum.java
@@ -0,0 +1,35 @@
+package com.iailab.module.model.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 调度建议状态
+ *
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年01月21日
+ */
+@Getter
+@AllArgsConstructor
+public enum ScheduleSuggestStatusEnum {
+
+    S0(0, "未处理"),
+    S1(1, "已采纳");
+
+    private Integer code;
+    private String desc;
+
+    public static ScheduleSuggestStatusEnum getEumByCode(String code) {
+        if (code == null) {
+            return null;
+        }
+
+        for (ScheduleSuggestStatusEnum statusEnum : ScheduleSuggestStatusEnum.values()) {
+            if (statusEnum.getCode().equals(code)) {
+                return statusEnum;
+            }
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictAlarmConfigEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictAlarmConfigEntity.java
index 199f991..1569302 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictAlarmConfigEntity.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictAlarmConfigEntity.java
@@ -99,4 +99,14 @@
      * 更新时间
      */
     private Date updateTime;
+
+    /**
+     * 累计值上限
+     */
+    private BigDecimal culUpper;
+
+    /**
+     * 累计值下限
+     */
+    private BigDecimal culLower;
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigRespVO.java
index 9b06aec..22fb299 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigRespVO.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigRespVO.java
@@ -67,4 +67,10 @@
 
     @Schema(description = "更新时间")
     private Date updateTime;
+
+    @Schema(description = "累计值上限")
+    private BigDecimal culUpper;
+
+    @Schema(description = "累计值下限")
+    private BigDecimal culLower;
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigSaveReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigSaveReqVO.java
index d31ca3a..fa71b9b 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigSaveReqVO.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictAlarmConfigSaveReqVO.java
@@ -62,4 +62,10 @@
 
     @Schema(description = "更新时间")
     private Date updateTime;
+
+    @Schema(description = "累计值上限")
+    private BigDecimal culUpper;
+
+    @Schema(description = "累计值下限")
+    private BigDecimal culLower;
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
index 46cdb20..e23aa21 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java
@@ -4,6 +4,7 @@
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
 import com.iailab.framework.common.util.object.BeanUtils;
+import com.iailab.module.model.common.enums.ScheduleSuggestStatusEnum;
 import com.iailab.module.model.mcs.sche.dao.StScheduleSuggestDao;
 import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
 import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService;
@@ -32,6 +33,7 @@
     public void create(StScheduleSuggestSaveReqVO createReqVO) {
         StScheduleSuggestEntity entity = BeanUtils.toBean(createReqVO, StScheduleSuggestEntity.class);
         entity.setId(UUID.randomUUID().toString());
+        entity.setStatus(ScheduleSuggestStatusEnum.S0.getCode());
         baseDao.insert(entity);
     }
 
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);
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java
index abdeba2..2ddb9c6 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java
@@ -178,6 +178,7 @@
                     vo.setDataValue(t.getDataValue());
                     return vo;
                 }).collect(Collectors.toList());
+                break;
             case IND:
                 ApiIndItemQueryDTO queryIndItemDTO = new ApiIndItemQueryDTO();
                 ApiIndItemDTO intItem = indMap.get(columnItem.getParamId());
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictAlarmConfigDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictAlarmConfigDao.xml
index 9cee8c2..e364b29 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictAlarmConfigDao.xml
+++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictAlarmConfigDao.xml
@@ -15,5 +15,6 @@
                 AND t.alarmObj LIKE CONCAT('%', #{params.alarmObj},'%')
             </if>
         </where>
+        order by t1.create_time desc
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3