From 81ec6148e89a6f64dfc8bf091e8d9658484bea8a Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 06 三月 2025 16:24:02 +0800
Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmConfigServiceImpl.java |    8 ++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartParamServiceImpl.java               |   12 ++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartServiceImpl.java                    |   16 ++++-
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartParamService.java                        |    2 
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ChartDTO.java                                 |   44 ++++++++++++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java                     |   14 ++--
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartService.java                             |    2 
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                                       |   11 +++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java                |   14 ++++
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmConfigService.java          |    2 
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                                       |   31 +++++++++-
 11 files changed, 139 insertions(+), 17 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
index 9a57522..4d22066 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -123,12 +123,19 @@
     @Operation(summary = "添加电价时段配置列表")
     Boolean createElectricityPrice(@RequestBody List<ElectricityPriceSegmentedDTO> list);
 
-    @PostMapping(PREFIX + "/schedule/model/setting/update")
+    @GetMapping(PREFIX + "/schedule/model/setting/update")
     @Operation(summary = "修改调度模型配置")
     Boolean updateScheduleModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value);
-
     @GetMapping(PREFIX + "/schedule/adjust/config-list")
     @Operation(summary = "获取模拟调整配置")
     List<StAdjustConfigDetDTO> getAdjustConfigListByModelId(@RequestParam("modelId") String modelId);
 
+    @GetMapping(PREFIX + "/alarm-config/update")
+    @Operation(summary = "修改预警配置")
+    Boolean updateAlarmConfig(@RequestParam("alarmObj")String alarmObj, @RequestParam("upperLimit")String upperLimit, @RequestParam("lowerLimit")String lowerLimit);
+
+    @PostMapping(PREFIX + "/chart/param/update")
+    @Operation(summary = "修改图表参数配置")
+    Boolean updateChartParam(@RequestBody ChartDTO chartDTO);
+
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ChartDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ChartDTO.java
new file mode 100644
index 0000000..73a83d7
--- /dev/null
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ChartDTO.java
@@ -0,0 +1,44 @@
+package com.iailab.module.model.api.mcs.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description: 图表参数
+ * @author: dzd
+ * @date: 2024/11/5 11:17
+ **/
+@Data
+public class ChartDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 图表名称
+     */
+    private String chartName;
+
+    /**
+     * 图表编码
+     */
+    private String chartCode;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    private List<ChartParamDTO> chartParams;
+}
\ No newline at end of file
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 3856993..3c80215 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
@@ -25,6 +25,7 @@
 import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity;
 import com.iailab.module.model.mcs.pre.service.*;
 import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO;
+import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmConfigSaveReqVO;
 import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO;
 import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO;
 import com.iailab.module.model.mcs.sche.entity.StAdjustConfigDetEntity;
@@ -119,7 +120,6 @@
 
     @Autowired
     private StAdjustConfigService stAdjustConfigService;
-
     private int HOUR_MINS = 60;
 
     @Override
@@ -722,9 +722,11 @@
             }
             MmItemOutputEntity outPut = mmItemOutputService.getByItemid(predictItem.getId(), itemNo[1], itemNo[2]);
             String outputId = outPut.getId();
-            // 如果第5个参数为1,则取累计值
-            if ("1".equals(itemNo[4])){
-                outputId = outPut.getId() + CommonDict.CUMULANT_SUFFIX;
+            // 判断是否有第五个参数,如果有第5个参数为1,则取累计值
+            if (itemNo.length >= 5){
+                if (StringUtils.isNotBlank(itemNo[4]) && "1".equals(itemNo[4])){
+                    outputId = outPut.getId() + CommonDict.CUMULANT_SUFFIX;
+                }
             }
             Date predictTime = predictItem.getLastTime();
             List<Object[]> curData = mmItemResultJsonService.getData(outputId, predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
@@ -824,6 +826,27 @@
         return ConvertUtils.sourceToTarget(list, StAdjustConfigDetDTO.class);
     }
 
+    @Override
+    public Boolean updateAlarmConfig(String alarmObj,String upperLimit,String lowerLimit) {
+        MmPredictAlarmConfigSaveReqVO reqVO = new MmPredictAlarmConfigSaveReqVO();
+        reqVO.setAlarmObj(alarmObj);
+        reqVO.setUpperLimit(BigDecimal.valueOf(Double.parseDouble(upperLimit)));
+        reqVO.setLowerLimit(BigDecimal.valueOf(Double.parseDouble(lowerLimit)));
+        mmPredictAlarmConfigService.updateByAlarmObj(reqVO);
+        return true;
+    }
+
+    @Override
+    public Boolean updateChartParam(ChartDTO chartDTO) {
+        ChartDTO oldChartDTO = chartService.getChartByChartCode(chartDTO.getChartCode());
+        List<ChartParamDTO> chartParams = chartDTO.getChartParams();
+        chartParams.forEach(item -> {
+            item.setChartId(oldChartDTO.getId());
+        });
+        chartParamService.updateByChartIdAndParamCode(chartParams);
+        return true;
+    }
+
     /**
      * 计算功率因数 p²/(根号:p²+Q²)
      **/
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 1e97f5f..4d2a470 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
@@ -236,4 +236,18 @@
         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);
+    }
 }
\ 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/service/MmPredictAlarmConfigService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmConfigService.java
index 4ba0cbf..6fefa80 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmConfigService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictAlarmConfigService.java
@@ -29,4 +29,6 @@
     void delete(String id);
 
     List<AlarmConfigRespDTO> list(Map<String, Object> params);
+
+    void updateByAlarmObj(MmPredictAlarmConfigSaveReqVO reqVO);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmConfigServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmConfigServiceImpl.java
index 04f69cf..50d5fcc 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmConfigServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictAlarmConfigServiceImpl.java
@@ -69,4 +69,12 @@
         List<MmPredictAlarmConfigEntity> list = baseDao.selectList(wrapper);
         return ConvertUtils.sourceToTarget(list, AlarmConfigRespDTO.class);
     }
+
+    @Override
+    public void updateByAlarmObj(MmPredictAlarmConfigSaveReqVO reqVO) {
+        QueryWrapper<MmPredictAlarmConfigEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("is_enable", 1);
+        wrapper.eq(StringUtils.isNotBlank(reqVO.getAlarmObj()),"alarm_obj", reqVO.getAlarmObj());
+        baseDao.update(ConvertUtils.sourceToTarget(reqVO, MmPredictAlarmConfigEntity.class), wrapper);
+    }
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java
index ce08ee6..ba11c8b 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java
@@ -78,20 +78,18 @@
      */
     protected Date getStartTime(ColumnItem columnItem, Date originalTime) {
         Date dateTime = new Date();
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(originalTime);
         switch (ModelParamType.getEumByCode(columnItem.getParamType())) {
             case DATAPOINT:
             case PLAN:
-                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), columnItem.getGranularity());
+                dateTime = calculateTime(originalTime, true, columnItem.getDataLength() + 1, columnItem.getGranularity());
                 break;
             case IND:
             case IND_ASCII:
-                dateTime = calculateTime(originalTime, true, columnItem.getDataLength()-1, columnItem.getGranularity());
+                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), columnItem.getGranularity());
                 break;
             case NORMALITEM:
             case MERGEITEM:
-                dateTime = calendar.getTime();
+                dateTime = calculateTime(originalTime, false, 1, columnItem.getGranularity());
                 break;
             default:
                 break;
@@ -113,14 +111,14 @@
         calendar.setTime(originalTime);
         switch (ModelParamType.getEumByCode(columnItem.getParamType())) {
             case DATAPOINT:
+            case PLAN:
             case IND:
             case IND_ASCII:
-            case PLAN:
-                dateTime = calendar.getTime();
+                dateTime = calculateTime(originalTime, true, 1, columnItem.getGranularity());
                 break;
             case NORMALITEM:
             case MERGEITEM:
-                dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), columnItem.getGranularity());
+                dateTime = calculateTime(originalTime, false, columnItem.getDataLength() + 1, columnItem.getGranularity());
                 break;
             default:
                 break;
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartParamService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartParamService.java
index 70d46e1..10e935f 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartParamService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartParamService.java
@@ -27,4 +27,6 @@
     Map<String, String> getByChartId(String chartId);
 
     List<com.iailab.module.model.api.mcs.dto.ChartParamDTO> list(String chartCode);
+
+    void updateByChartIdAndParamCode(List<ChartParamDTO> list);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartService.java
index f52bcb9..a808218 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ChartService.java
@@ -24,4 +24,6 @@
     void delete(String id);
 
     Map<String, String> getByChartCode(String chartCode);
+
+    com.iailab.module.model.api.mcs.dto.ChartDTO getChartByChartCode(String chartCode);
 }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartParamServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartParamServiceImpl.java
index c0ac2de..013a29a 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartParamServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartParamServiceImpl.java
@@ -75,6 +75,18 @@
     }
 
     @Override
+    public void updateByChartIdAndParamCode(List<ChartParamDTO> list) {
+        list.forEach(item -> {
+            ChartParamEntity entity = ConvertUtils.sourceToTarget(item, ChartParamEntity.class);
+            QueryWrapper<ChartParamEntity> wrapper = new QueryWrapper<>();
+            wrapper.eq("chart_id", entity.getChartId())
+                    .eq("param_code", entity.getParamCode());
+            baseDao.update(entity, wrapper);
+        });
+
+    }
+
+    @Override
     public void delete(String id) {
         baseDao.deleteById(id);
     }
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartServiceImpl.java
index ac0b631..7803dc4 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ChartServiceImpl.java
@@ -4,19 +4,21 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iailab.framework.common.page.PageData;
 import com.iailab.framework.common.service.impl.BaseServiceImpl;
+import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.module.model.mpk.dao.ChartDao;
 import com.iailab.module.model.mpk.dto.ChartDTO;
 import com.iailab.module.model.mpk.entity.ChartEntity;
-import com.iailab.module.model.mpk.entity.ChartParamEntity;
 import com.iailab.module.model.mpk.service.ChartParamService;
 import com.iailab.module.model.mpk.service.ChartService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
 
 /**
  * @description:
@@ -84,4 +86,12 @@
         }
         return chartParamService.getByChartId(entity.getId());
     }
+
+    @Override
+    public com.iailab.module.model.api.mcs.dto.ChartDTO getChartByChartCode(String chartCode) {
+        QueryWrapper<ChartEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("chart_code", chartCode);
+        ChartEntity entity = baseDao.selectOne(wrapper);
+        return ConvertUtils.sourceToTarget(entity, com.iailab.module.model.api.mcs.dto.ChartDTO.class);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3