From e3612171f8cda9507ece64ab8f90b8ea6e6dc94e Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期五, 23 五月 2025 15:06:06 +0800
Subject: [PATCH] 新增忽略建议和取消建议原因

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java |   99 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 90 insertions(+), 9 deletions(-)

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 f4d7516..e6fd4b6 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
@@ -23,6 +23,7 @@
 import com.iailab.module.model.mcs.pre.entity.DmModuleEntity;
 import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
 import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity;
+import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity;
 import com.iailab.module.model.mcs.pre.enums.PredGranularityEnum;
 import com.iailab.module.model.mcs.pre.service.*;
 import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO;
@@ -32,6 +33,8 @@
 import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity;
 import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
 import com.iailab.module.model.mcs.sche.service.*;
+import com.iailab.module.model.mcs.sche.vo.StScheduleRecordRespVO;
+import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordReqVO;
 import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO;
 import com.iailab.module.model.mdk.vo.ItemVO;
 import com.iailab.module.model.mpk.service.ChartParamService;
@@ -119,7 +122,14 @@
     private StScheduleModelSettingService stScheduleModelSettingService;
 
     @Autowired
-    private MmPredictAutoAdjustConfigService autoAdjustService;
+    private MmPredictModelService mmPredictModelService;
+
+    @Autowired
+    private MmModelArithSettingsService mmModelArithSettingsService;
+
+    @Autowired
+    private StSuggestOperationRecordService stSuggestOperationRecordService;
+
     private int HOUR_MINS = 60;
 
     @Override
@@ -141,6 +151,7 @@
                 PredictItemTreeDTO chd = new PredictItemTreeDTO();
                 chd.setLabel(item1.getItemName());
                 chd.setId(item1.getId());
+                chd.setDisabled(true);
                 List<PredictItemTreeDTO> chd1 = new ArrayList<>();
                 List<MmItemOutputEntity> outList = mmItemOutputService.getByItemid(item1.getId());
                 if (!CollectionUtils.isEmpty(outList)) {
@@ -458,12 +469,23 @@
 
         if (!CollectionUtils.isEmpty(dataView.getCurData())) {
             List<Double> curList = dataView.getCurData().stream().map(t -> {
-                return new Double(t[1].toString());
-            }).collect(Collectors.toList());
-            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)).setScale(2, BigDecimal.ROUND_HALF_UP));
-            dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()).setScale(2, BigDecimal.ROUND_HALF_UP));
+                try {
+                    return new Double(t[1].toString());
+                } catch (NumberFormatException e) {
+                    return null;
+                }
+            }).filter(Objects::nonNull).collect(Collectors.toList());
+            if (!curList.isEmpty()) {
+                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)).setScale(2, BigDecimal.ROUND_HALF_UP));
+                dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()).setScale(2, BigDecimal.ROUND_HALF_UP));
+            } else {
+                dataView.setPreMax(null);
+                dataView.setPreMin(null);
+                dataView.setPreLast(null);
+                dataView.setPreCumulant(null);
+            }
         }
 
         String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ);
@@ -786,6 +808,7 @@
         return result;
     }
 
+    @Override
     public Map<String, BigDecimal> getPredictLastValue(PredictLastValueReqVO reqVO) {
         Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size());
         if (CollectionUtils.isEmpty(reqVO.getItemNos())) {
@@ -808,6 +831,30 @@
             }
             Date predictTime = predictItem.getLastTime();
             List<Object[]> curData = mmItemResultJsonService.getData(outputId, predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
+            if (CollectionUtils.isEmpty(curData)) {
+                result.put(key, BigDecimal.ZERO);
+            } else {
+                result.put(key, new BigDecimal(curData.get(curData.size() - 1)[1].toString()));
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public Map<String, BigDecimal> getPredictValueByTime(PredictLastValueReqVO reqVO) {
+        Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size());
+        if (CollectionUtils.isEmpty(reqVO.getItemNos())) {
+            return result;
+        }
+        List<String[]> itemNos = reqVO.getItemNos();
+        for (String[] itemNo : itemNos) {
+            String key = itemNo[0] + "," + itemNo[1] + "," + itemNo[2];
+            ItemVO predictItem = mmPredictItemService.getItemByItemNo(itemNo[0]);
+            if (predictItem == null || predictItem.getLastTime() == null) {
+                result.put(key, BigDecimal.ZERO);
+            }
+            MmItemOutputEntity outPut = mmItemOutputService.getByItemid(predictItem.getId(), itemNo[1], itemNo[2]);
+            List<Object[]> curData = mmItemResultJsonService.getData(outPut.getId(), reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
             if (CollectionUtils.isEmpty(curData)) {
                 result.put(key, BigDecimal.ZERO);
             } else {
@@ -946,13 +993,47 @@
     }
 
     @Override
+    public Boolean ignoreSuggest(StAlarmAndSuggestReqVO reqVO) {
+        return stScheduleSuggestService.ignoreSuggest(reqVO);
+    }
+
+    @Override
     public List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params) {
         return stScheduleSuggestService.getLastSuggest(params);
     }
 
     @Override
-    public Boolean autoAdjustByCode(MmPredictAutoAdjustReqVO reqVO) {
-        return autoAdjustService.autoAdjustByCode(reqVO.getConfigCode(), reqVO.getAdjustStartTime());
+    public Boolean updatePredictModelSetting(String modelCode, String key, String value) {
+        MmPredictModelEntity model = mmPredictModelService.getByModelCode(modelCode);
+        mmModelArithSettingsService.updateByModelIdAndKey(model.getId(), key, value);
+        return true;
+    }
+
+    @Override
+    public Boolean saveSuggestOperationRecord(SuggestOperationRecordReqVO reqVO) {
+        StSuggestOperationRecordReqVO operationRecordVo = new StSuggestOperationRecordReqVO();
+        operationRecordVo.setOperate(reqVO.getOperate());
+        operationRecordVo.setReason(reqVO.getReason());
+        operationRecordVo.setHandler(reqVO.getHandler());
+        operationRecordVo.setHandlerId(reqVO.getHandlerId());
+        //获取建议信息
+        StScheduleSuggestEntity entity = stScheduleSuggestService.getInfo(reqVO.getId());
+        if (entity != null){
+            operationRecordVo.setTitle(entity.getTitle());
+            operationRecordVo.setContent(entity.getContent());
+            if (StringUtils.isNotBlank(entity.getModelId())){
+                //获取模型记录信息
+                StScheduleRecordRespVO scheduleRecordVO = stScheduleRecordService.getInfoByModelIdAndScheduleTime(entity.getModelId(), entity.getScheduleTime());
+                operationRecordVo.setSchemeId(scheduleRecordVO.getSchemeId());
+                operationRecordVo.setModelId(entity.getModelId());
+                operationRecordVo.setModelName(scheduleRecordVO.getModelName());
+                operationRecordVo.setScheduleTime(entity.getScheduleTime());
+                operationRecordVo.setResultCode(scheduleRecordVO.getResultCode());
+                operationRecordVo.setResultData(scheduleRecordVO.getResultData());
+            }
+        }
+        stSuggestOperationRecordService.create(operationRecordVo);
+        return true;
     }
 
     private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {

--
Gitblit v1.9.3