From 121dffe6c319c86b722f2d26a13669ed88407627 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期一, 09 六月 2025 13:47:45 +0800
Subject: [PATCH] 根据ext1修改快照配置上下限

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java |  147 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 145 insertions(+), 2 deletions(-)

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 85882ac..ce65aa3 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.http.MediaType;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,6 +22,8 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 
 import static com.iailab.framework.common.pojo.CommonResult.success;
@@ -63,6 +66,53 @@
             e.printStackTrace();
         }
         return CommonResult.success(respVO);
+    }
+
+    @PostMapping("/predict-data/missDataList")
+    @Operation(summary = "缺失历史数据表单")
+    public CommonResult<List<Map<String,Object>>> getPreDataMissDataList(HttpServletResponse response, HttpServletRequest
+            request, @RequestBody PreDataBarLineReqVO reqVO) throws Exception {
+        apiSecurityUtils.validate(request);
+
+        PreDataBarLineRespVO respVO = new PreDataBarLineRespVO();
+        List<Map<String,Object>> result = new ArrayList<>();
+        try {
+            respVO = mcsApi.getPreDataCharts(reqVO);
+            for (int i = 0; i < respVO.getDataViewList().size()-1; i++) {
+
+                Map<String,Object> real = getMissDataMap(respVO.getDataViewList().get(i).getRealData(),respVO.getDataViewList().get(i).getOutId(),respVO.getDataViewList().get(i).getResultName()+"(真实)");
+                Map<String,Object> preN = getMissDataMap(respVO.getDataViewList().get(i).getPreDataN(),respVO.getDataViewList().get(i).getOutId(),respVO.getDataViewList().get(i).getResultName()+"(T+N)");
+                Map<String,Object> preL = getMissDataMap(respVO.getDataViewList().get(i).getPreDataL(),respVO.getDataViewList().get(i).getOutId(),respVO.getDataViewList().get(i).getResultName()+"(T+L)");
+                result.add(real);
+                result.add(preN);
+                result.add(preL);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return CommonResult.success(result);
+    }
+
+    private Map<String,Object> getMissDataMap( List<Object[]> list,String outId,String resultName){
+        Map<String,Object> missDataMap = new HashMap<>();
+
+        if (list == null || list.size() < 2) {
+            return missDataMap;
+        }
+        for (int i = 1; i < list.size(); i++) {
+            LocalDateTime startTime = (LocalDateTime) list.get(i-1)[0];
+            LocalDateTime endTime = (LocalDateTime) list.get(i)[0];
+            long gap = ChronoUnit.MINUTES.between(startTime, endTime);
+            if (gap > 10) {
+                missDataMap.put("outId",outId);
+                missDataMap.put("resultName",resultName);
+                missDataMap.put("startTime",startTime);
+                missDataMap.put("endTime",endTime);
+                missDataMap.put("random",10);
+                missDataMap.put("gap",gap);
+            }
+        }
+        return missDataMap;
     }
 
     @PostMapping("/predict-data/item-chart")
@@ -113,13 +163,13 @@
         reqVO.setItemId(itemId);
         try {
             if (startTime == "") {
-                reqVO.setStartTime(new Date((new Date()).getTime() - 60 * 60 * 1000));
+                reqVO.setStartTime(null);
             } else {
                 reqVO.setStartTime(formatter.parse(startTime));
 
             }
             if (endTime == "") {
-                reqVO.setEndTime(new Date((new Date()).getTime() + 60 * 60 * 1000));
+                reqVO.setEndTime(null);
             } else {
                 reqVO.setEndTime(formatter.parse(endTime));
             }
@@ -229,4 +279,97 @@
         List<ElectricityPriceSegmentedDTO> electricityPriceSegmentedList = mcsApi.getElectricityPriceList(year, time);
         return CommonResult.success(electricityPriceSegmentedList);
     }
+
+    @GetMapping("/schedule/model/setting/update")
+    @Operation(summary = "修改调度模型配置")
+    public CommonResult<Boolean> updateScheduleModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value){
+        mcsApi.updateScheduleModelSetting(modelCode, key, value);
+        return success( true);
+    }
+
+    @GetMapping("/alarm-config/update")
+    @Operation(summary = "修改预警配置列表")
+    public CommonResult<Boolean> updateAlarmConfig(@RequestParam("alarmObj")String alarmObj, @RequestParam("upperLimit")String upperLimit, @RequestParam("lowerLimit")String lowerLimit){
+        mcsApi.updateAlarmConfig(alarmObj, upperLimit, lowerLimit);
+        return success( true);
+    }
+
+    @PostMapping("/chart/param/update")
+    @Operation(summary = "修改图表参数配置")
+    public CommonResult<Boolean> updateChartParam(@RequestBody ChartDTO chartDTO){
+        mcsApi.updateChartParam(chartDTO);
+        return success( true);
+    }
+
+    @PostMapping("/item/result")
+    public CommonResult<List<Object[]>> getItemResult(@RequestBody  PreItemResultReqVO reqVO){
+        List<Object[]> list = mcsApi.getItemResult(reqVO);
+        return CommonResult.success(list);
+    }
+
+    @GetMapping("/predict-item/itemNo")
+    public CommonResult<PredictItemVO> getPredictItemByItemNo(@RequestParam("itemNo") String itemNo){
+        PredictItemVO proVo = mcsApi.getPredictItemByItemNo(itemNo);
+        return CommonResult.success(proVo);
+    }
+
+    @PostMapping("/item/result/last-point")
+    public CommonResult<List<Object[]>> getItemResultLastPoint(@RequestBody  PreItemResultReqVO reqVO){
+        List<Object[]> list = mcsApi.getItemResultLastPoint(reqVO);
+        return CommonResult.success(list);
+    }
+
+    @GetMapping("/schedule-suggest/last-one")
+    @Operation(summary = "获取15分钟内最新预警建议信息")
+    public CommonResult<List<ScheduleSuggestRespDTO>> getLastSuggest(@RequestParam Map<String, Object> params) {
+        List<ScheduleSuggestRespDTO> data = mcsApi.getLastSuggest(params);
+        return CommonResult.success(data);
+    }
+
+    @GetMapping("/predict/model/setting/update")
+    @Operation(summary = "修改调度模型配置")
+    public CommonResult<Boolean> updatePredictModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value){
+        mcsApi.updatePredictModelSetting(modelCode, key, value);
+        return success( true);
+    }
+
+    @PostMapping("/schedule-suggest/use-suggest")
+    @Operation(summary = "采纳建议")
+    public CommonResult<Boolean> useSuggest(@RequestBody StAlarmAndSuggestReqVO reqVO){
+        mcsApi.useSuggest(reqVO);
+        return success( true);
+    }
+
+    @PostMapping("/schedule-suggest/cancel-use-suggest")
+    @Operation(summary = "取消采纳建议")
+    public CommonResult<Boolean> cancelUseSuggest(@RequestBody StAlarmAndSuggestReqVO reqVO){
+        mcsApi.cancelUseSuggest(reqVO);
+        return success( true);
+    }
+
+    @PostMapping(value = "/schedule-suggest/operation_record/save",  consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Operation(summary = "保存建议操作记录")
+    public CommonResult<Boolean> saveSuggestOperationRecord(@RequestBody SuggestOperationRecordReqVO reqVO){
+        mcsApi.saveSuggestOperationRecord(reqVO);
+        return success( true);
+    }
+
+    @PostMapping("/schedule-suggest/ignore-suggest")
+    @Operation(summary = "取消采纳建议")
+    public CommonResult<Boolean> ignoreSuggest(@RequestBody StAlarmAndSuggestReqVO reqVO){
+        mcsApi.ignoreSuggest(reqVO);
+        return success( true);
+    }
+
+    @GetMapping("/suggest/snapshot/getAllChartData")
+    @Operation(summary = "根据建议id获取建议快照全部图表数据")
+    public CommonResult<List<StSuggestSnapshotRecordRespVO>> getSuggestSnapshotAllChartData(@RequestParam("suggestId") String suggestId){
+        return success( mcsApi.getSuggestSnapshotAllChartData(suggestId));
+    }
+
+    @PostMapping("/suggest/snapshot/conf-det/update-by-ext1")
+    @Operation(summary = "根据ext1修改快照配置上下限")
+    public CommonResult<Boolean> updateSuggestSnapshotConfDetByExt1(@RequestBody StSuggestSnapshotConfDetSaveReqVO updateReqVO) {
+        return success(mcsApi.updateSuggestSnapshotConfDetByExt1(updateReqVO));
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3