From ab1ce4e7d9feb6e1da8db8abf0deb552afddc7d6 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期五, 20 六月 2025 15:33:26 +0800
Subject: [PATCH] 预警分析管理-切换时间间隔和副属性/查询所有的属性对应关系

---
 src/main/java/com/whyc/service/AlmAnalysisParamService.java |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 64 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/service/AlmAnalysisParamService.java b/src/main/java/com/whyc/service/AlmAnalysisParamService.java
index be2bfb0..9c76ae8 100644
--- a/src/main/java/com/whyc/service/AlmAnalysisParamService.java
+++ b/src/main/java/com/whyc/service/AlmAnalysisParamService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.dto.AnalysisAlm.AnalysisChangeRes;
 import com.whyc.dto.AnalysisAlm.ResAnalysis;
 import com.whyc.dto.Real.RealDateDTO;
 import com.whyc.dto.Response;
@@ -50,23 +51,16 @@
     }
 
     //棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��
-    public Response getHisRealInAlm(Integer battgroupId,Integer powerId, String startTime, Integer almId,Integer intervalTime) throws ParseException, InterruptedException {
+    public Response getHisRealInAlm(Integer battgroupId,Integer powerId, String startTime, Integer almId) throws ParseException, InterruptedException {
         Map<String,Object> map=new HashMap<>();
         map.put("batt",null);
         map.put("pwr",null);
-        Integer cycleTime=0;
         //鑾峰彇棰勮鍒嗘瀽鍛ㄦ湡闃堝��
-        if(intervalTime==null){
-            AppParam appParam = appParamService.getAlarmAnalysisCycle();
-            cycleTime=appParam.getParamValue().intValue();
-        }else{
-            cycleTime=intervalTime;
-        }
+        AppParam appParam = appParamService.getAlarmAnalysisCycle();
+        Integer cycleTime=appParam.getParamValue().intValue();
         Date cyscleDate=ActionUtil.getDateAdd(ThreadLocalUtil.parse(startTime,1),cycleTime*(-1));
         //鑾峰彇cyscleDate鍒扮幇鍦ㄦ墍鏈夌殑鍘嗗彶瀹炴椂鏁版嵁
         List<List<Date>> monthTimeList = DateUtil.getMonthTime(cyscleDate,new Date());
-        //鎬荤殑灞炴�ч厤缃�
-        List<AlmSummaryParam> summaryList=summaryParamService.getInfo();
         //鑾峰彇鍛婅almId瀵瑰簲鐨勫垎鏋愰厤缃睘鎬у��
         AlmAnalysisParam almAnalysisParam=getAnalysisParam(almId);
         if(almAnalysisParam==null||almAnalysisParam.getMainFieldType()==null){
@@ -88,7 +82,7 @@
                     map.put("pwr",pwrHislist);
                 }
             }
-            return new Response().setIII(1,true, map,summaryList,"棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��");
+            return new Response().setII(1,true, map,"棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��");
         }
     }
     //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁
@@ -204,5 +198,64 @@
         List dataListSorted = dataList.stream().sorted(Comparator.comparing(ResAnalysis::getRecordTime)).collect(Collectors.toList());
         return dataListSorted;
     }
+    //棰勮鍒嗘瀽绠$悊-鍒囨崲鏃堕棿闂撮殧鍜屽壇灞炴��
+    public Response getHisRealWithChage(AnalysisChangeRes res) throws ParseException, InterruptedException {
+        Map<String,Object> map=new HashMap<>();
+        map.put("batt",null);
+        map.put("pwr",null);
+        Integer cycleTime=0;
+        //鑾峰彇棰勮鍒嗘瀽鍛ㄦ湡闃堝��
+        AppParam appParam = appParamService.getAlarmAnalysisCycle();
+        if(res.getIntervalTime()==null){
+            cycleTime=appParam.getParamValue().intValue();
+        }else{
+            //灏嗘暟鎹簱涓椂闂撮棿闅斾慨鏀�
+            appParamService.updateAlarmAnalysisCycle(res.getIntervalTime());
+            cycleTime=res.getIntervalTime();
+        }
+        Date cyscleDate=ActionUtil.getDateAdd(ThreadLocalUtil.parse(res.getStartTime(),1),cycleTime*(-1));
+        //鑾峰彇cyscleDate鍒扮幇鍦ㄦ墍鏈夌殑鍘嗗彶瀹炴椂鏁版嵁
+        List<List<Date>> monthTimeList = DateUtil.getMonthTime(cyscleDate,new Date());
 
+        //鑾峰彇鍛婅almId瀵瑰簲鐨勫垎鏋愰厤缃睘鎬у��
+        AlmAnalysisParam almAnalysisParam=new AlmAnalysisParam();
+        //灏嗗睘鎬ф嫹璐濊嚦almAnalysisParam涓�
+        copyProperties(almAnalysisParam,res);
+        //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁
+        Map<String,  Map<String,Integer>> groupmap=groupPwrAndBatt(almAnalysisParam);
+        Map<String,Integer> battMap=groupmap.get("batt");
+        Map<String,Integer> pwrMap=groupmap.get("pwr");
+        if(res.getBattgroupId()!=null){
+            if(battMap!=null&&battMap.size()>0){
+                List battHislist=getBattRealData(res.getBattgroupId(),monthTimeList,battMap);
+                map.put("batt",battHislist);
+            }
+        }
+        if(res.getPowerId()!=null){
+            if(pwrMap!=null&&pwrMap.size()>0){
+                List pwrHislist=getPwrRealData(res.getPowerId(),monthTimeList,pwrMap);
+                map.put("pwr",pwrHislist);
+            }
+        }
+        return new Response().setII(1,true, map,"棰勮鍒嗘瀽绠$悊-鍒囨崲鏃堕棿闂撮殧鍜屽壇灞炴��");
+    }
+    //灏嗗睘鎬ф嫹璐濊嚦almAnalysisParam涓�
+    private void copyProperties(AlmAnalysisParam almAnalysisParam, AnalysisChangeRes res) {
+        almAnalysisParam.setMainField(res.getDataName1());
+        almAnalysisParam.setMainFieldType(res.getDataType1());
+        almAnalysisParam.setMinorField1(res.getDataName2());
+        almAnalysisParam.setMinorField1Type(res.getDataType2());
+        almAnalysisParam.setMinorField2(res.getDataName3());
+        almAnalysisParam.setMinorField2Type(res.getDataType3());
+        almAnalysisParam.setMinorField3(res.getDataName4());
+        almAnalysisParam.setMinorField3Type(res.getDataType4());
+        almAnalysisParam.setMinorField4(res.getDataName5());
+        almAnalysisParam.setMinorField4Type(res.getDataType5());
+    }
+    //棰勮鍒嗘瀽绠$悊-鏌ヨ鎵�鏈夌殑灞炴�у搴斿叧绯�
+    public Response getAlmSummaryParam() {
+        //鎬荤殑灞炴�ч厤缃�
+        List<AlmSummaryParam> summaryList=summaryParamService.getInfo();
+        return new Response().setII(1,true,summaryList,"棰勮鍒嗘瀽绠$悊-鏌ヨ鎵�鏈夌殑灞炴�у搴斿叧绯�");
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1