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/controller/AnalysisAlmController.java  |   18 +++++
 src/main/java/com/whyc/dto/AnalysisAlm/AnalysisChangeRes.java |   21 +++++++
 src/main/java/com/whyc/service/AlmAnalysisParamService.java   |   75 +++++++++++++++++++++---
 src/main/java/com/whyc/service/AppParamService.java           |    7 ++
 4 files changed, 108 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/whyc/controller/AnalysisAlmController.java b/src/main/java/com/whyc/controller/AnalysisAlmController.java
index 0edd572..3b06e08 100644
--- a/src/main/java/com/whyc/controller/AnalysisAlmController.java
+++ b/src/main/java/com/whyc/controller/AnalysisAlmController.java
@@ -1,5 +1,6 @@
 package com.whyc.controller;
 
+import com.whyc.dto.AnalysisAlm.AnalysisChangeRes;
 import com.whyc.dto.Param.AlmAnalyseDto;
 import com.whyc.dto.Response;
 import com.whyc.service.AlmAnalysisParamService;
@@ -44,7 +45,20 @@
 
     @GetMapping("getHisRealInAlm")
     @ApiOperation("棰勮鍒嗘瀽绠$悊-鐢垫簮涓诲睘鎬у拰鍒嗘瀽灞炴��")
-    public Response getHisRealInAlm(@RequestParam Integer battgroupId,@RequestParam Integer powerId,@RequestParam String startTime,@RequestParam(required = false) Integer almId,@RequestParam(required = false) Integer intervalTime) throws ParseException, InterruptedException {
-        return almAnalysisParamService.getHisRealInAlm(battgroupId,powerId,startTime,almId,intervalTime);
+    public Response getHisRealInAlm(@RequestParam Integer battgroupId,@RequestParam Integer powerId,@RequestParam String startTime,@RequestParam(required = false) Integer almId) throws ParseException, InterruptedException {
+        return almAnalysisParamService.getHisRealInAlm(battgroupId,powerId,startTime,almId);
     }
+
+    @PostMapping("getHisRealWithChage")
+    @ApiOperation("棰勮鍒嗘瀽绠$悊-鍒囨崲鏃堕棿闂撮殧鍜屽壇灞炴��")
+    public Response getHisRealWithChage(@RequestBody AnalysisChangeRes res) throws ParseException, InterruptedException {
+        return almAnalysisParamService.getHisRealWithChage(res);
+    }
+
+    @PostMapping("getAlmSummaryParam")
+    @ApiOperation("棰勮鍒嗘瀽绠$悊-鏌ヨ鎵�鏈夌殑灞炴�у搴斿叧绯�")
+    public Response getAlmSummaryParam(){
+        return almAnalysisParamService.getAlmSummaryParam();
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/AnalysisAlm/AnalysisChangeRes.java b/src/main/java/com/whyc/dto/AnalysisAlm/AnalysisChangeRes.java
new file mode 100644
index 0000000..666c4f7
--- /dev/null
+++ b/src/main/java/com/whyc/dto/AnalysisAlm/AnalysisChangeRes.java
@@ -0,0 +1,21 @@
+package com.whyc.dto.AnalysisAlm;
+
+import lombok.Data;
+
+@Data
+public class AnalysisChangeRes {
+    private Integer battgroupId;
+    private Integer powerId;
+    private String startTime;
+    private Integer intervalTime;
+    private String dataName1;
+    private Integer dataType1;
+    private String dataName2;
+    private Integer dataType2;
+    private String dataName3;
+    private Integer dataType3;
+    private String dataName4;
+    private Integer dataType4;
+    private String dataName5;
+    private Integer dataType5;
+}
\ No newline at end of file
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
diff --git a/src/main/java/com/whyc/service/AppParamService.java b/src/main/java/com/whyc/service/AppParamService.java
index 250f8f8..623d80f 100644
--- a/src/main/java/com/whyc/service/AppParamService.java
+++ b/src/main/java/com/whyc/service/AppParamService.java
@@ -62,4 +62,11 @@
         AppParam param=mapper.selectOne(wrapper);
         return param;
     }
+    //灏嗘暟鎹簱涓椂闂撮棿闅斾慨鏀�
+    public void updateAlarmAnalysisCycle(Integer intervalTime) {
+        UpdateWrapper wrapper=new UpdateWrapper();
+        wrapper.eq("param_name_psx","alm_analysis_already_time");
+        wrapper.set("param_value",intervalTime);
+        mapper.update(null,wrapper);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1