From 929c4f378a77aa51e9d71ed4e19aa13f73be6bdf Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期五, 20 六月 2025 14:17:49 +0800
Subject: [PATCH] 预警分析管理-主属性和配置属性

---
 src/main/java/com/whyc/service/SubTablePageInfoService.java |   44 +++++++++++++++-------
 src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java     |    5 ++
 src/main/java/com/whyc/service/AlmAnalysisParamService.java |   54 +++++++++++++-------------
 3 files changed, 62 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java b/src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java
index 2b86c98..1c8e1bd 100644
--- a/src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java
+++ b/src/main/java/com/whyc/dto/AnalysisAlm/ResAnalysis.java
@@ -9,12 +9,17 @@
     private Date recordTime;
     private String dataName1;
     private Float dataValue1;
+    private Integer dataType1;
     private String dataName2;
     private Float dataValue2;
+    private Integer dataType2;
     private String dataName3;
     private Float dataValue3;
+    private Integer dataType3;
     private String dataName4;
     private Float dataValue4;
+    private Integer dataType4;
     private String dataName5;
     private Float dataValue5;
+    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 b0606c8..be2bfb0 100644
--- a/src/main/java/com/whyc/service/AlmAnalysisParamService.java
+++ b/src/main/java/com/whyc/service/AlmAnalysisParamService.java
@@ -73,18 +73,18 @@
             return new Response().set(1,false,"鏃犲搴斿垎鏋愬睘鎬�");
         }else{
             //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁
-            Map<String,List<String>> groupmap=groupPwrAndBatt(almAnalysisParam);
-            List<String> battList=groupmap.get("batt");
-            List<String> pwrList=groupmap.get("pwr");
+            Map<String,  Map<String,Integer>> groupmap=groupPwrAndBatt(almAnalysisParam);
+            Map<String,Integer> battMap=groupmap.get("batt");
+            Map<String,Integer> pwrMap=groupmap.get("pwr");
             if(battgroupId!=null){
-                if(battList!=null&&battList.size()>0){
-                    List battHislist=getBattRealData(battgroupId,monthTimeList,battList);
+                if(battMap!=null&&battMap.size()>0){
+                    List battHislist=getBattRealData(battgroupId,monthTimeList,battMap);
                     map.put("batt",battHislist);
                 }
             }
             if(powerId!=null){
-                if(pwrList!=null&&pwrList.size()>0){
-                    List pwrHislist=getPwrRealData(powerId,monthTimeList,pwrList);
+                if(pwrMap!=null&&pwrMap.size()>0){
+                    List pwrHislist=getPwrRealData(powerId,monthTimeList,pwrMap);
                     map.put("pwr",pwrHislist);
                 }
             }
@@ -92,61 +92,61 @@
         }
     }
     //鍒嗙粍鏌ョ湅闇�瑕佹煡璇㈢數婧�/鐢垫睜瀹炴椂琛ㄧ殑鍝簺鏁版嵁
-    private Map<String, List<String>> groupPwrAndBatt(AlmAnalysisParam almAnalysisParam) {
-        Map<String, List<String>> map = new HashMap<>();
-        List<String> battList=new ArrayList<>();
-        List<String> pwrList=new ArrayList<>();
+    private  Map<String,  Map<String,Integer>> groupPwrAndBatt(AlmAnalysisParam almAnalysisParam) {
+        Map<String,  Map<String,Integer>> map = new HashMap<>();
+        Map<String,Integer> battMap=new HashMap<>();
+        Map<String,Integer> pwrMap=new HashMap<>();
         if(almAnalysisParam.getMainFieldType()==1||almAnalysisParam.getMainFieldType()==2||almAnalysisParam.getMainFieldType()==3){
             if(almAnalysisParam.getMainField()!=null||almAnalysisParam.getMainField().length()>0){
-                pwrList.add(almAnalysisParam.getMainField());
+                pwrMap.put(almAnalysisParam.getMainField(),almAnalysisParam.getMainFieldType());
             }
         }else{
             if(almAnalysisParam.getMainField()!=null||almAnalysisParam.getMainField().length()>0){
-                battList.add(almAnalysisParam.getMainField());
+                battMap.put(almAnalysisParam.getMainField(),almAnalysisParam.getMainFieldType());
             }
         }
         if(almAnalysisParam.getMinorField1Type()==1||almAnalysisParam.getMinorField1Type()==2||almAnalysisParam.getMinorField1Type()==3){
             if(almAnalysisParam.getMinorField1()!=null&&almAnalysisParam.getMinorField1().length()>0){
-                pwrList.add(almAnalysisParam.getMinorField1());
+                pwrMap.put(almAnalysisParam.getMinorField1(),almAnalysisParam.getMinorField1Type());
             }
         }else{
              if(almAnalysisParam.getMinorField1()!=null&&almAnalysisParam.getMinorField1().length()>0){
-                 battList.add(almAnalysisParam.getMinorField1());
+                 battMap.put(almAnalysisParam.getMinorField1(),almAnalysisParam.getMinorField1Type());
              }
         }
         if(almAnalysisParam.getMinorField2Type()==1||almAnalysisParam.getMinorField2Type()==2||almAnalysisParam.getMinorField2Type()==3){
             if(almAnalysisParam.getMinorField2()!=null&&almAnalysisParam.getMinorField2().length()>0){
-                pwrList.add(almAnalysisParam.getMinorField2());
+                pwrMap.put(almAnalysisParam.getMinorField2(),almAnalysisParam.getMinorField2Type());
             }
         }else{
             if(almAnalysisParam.getMinorField2()!=null&&almAnalysisParam.getMinorField2().length()>0){
-                battList.add(almAnalysisParam.getMinorField2());
+                battMap.put(almAnalysisParam.getMinorField2(),almAnalysisParam.getMinorField2Type());
             }
         }
         if(almAnalysisParam.getMinorField3Type()==1||almAnalysisParam.getMinorField3Type()==2||almAnalysisParam.getMinorField3Type()==3){
             if(almAnalysisParam.getMinorField3()!=null&&almAnalysisParam.getMinorField3().length()>0){
-                pwrList.add(almAnalysisParam.getMinorField3());
+                pwrMap.put(almAnalysisParam.getMinorField3(),almAnalysisParam.getMinorField3Type());
             }
         }else{
             if(almAnalysisParam.getMinorField3()!=null&&almAnalysisParam.getMinorField3().length()>0){
-                battList.add(almAnalysisParam.getMinorField3());
+                battMap.put(almAnalysisParam.getMinorField3(),almAnalysisParam.getMinorField3Type());
             }
         }
         if(almAnalysisParam.getMinorField4Type()==1||almAnalysisParam.getMinorField4Type()==2||almAnalysisParam.getMinorField4Type()==3){
             if(almAnalysisParam.getMinorField4()!=null&&almAnalysisParam.getMinorField4().length()>0){
-                pwrList.add(almAnalysisParam.getMinorField4());
+                pwrMap.put(almAnalysisParam.getMinorField4(),almAnalysisParam.getMinorField4Type());
             }
         }else{
             if(almAnalysisParam.getMinorField4()!=null&&almAnalysisParam.getMinorField4().length()>0){
-                battList.add(almAnalysisParam.getMinorField4());
+                battMap.put(almAnalysisParam.getMinorField4(),almAnalysisParam.getMinorField4Type());
             }
         }
-        map.put("pwr",pwrList);
-        map.put("batt",battList);
+        map.put("pwr",pwrMap);
+        map.put("batt",battMap);
         return map;
     }
     //杩炴帴姹犺幏鍙栫數婧愬巻鍙插疄鏃舵暟鎹�
-    public List getPwrRealData(Integer powerId,List<List<Date>> monthTimeList,List<String> pwrList) throws InterruptedException {
+    public List getPwrRealData(Integer powerId,List<List<Date>> monthTimeList,Map<String,Integer> pwrMap) throws InterruptedException {
         List<ResAnalysis> dataList = new LinkedList<>();
         ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
         CountDownLatch latch = new CountDownLatch(monthTimeList.size());
@@ -163,7 +163,7 @@
                 int tableNum = subTablePageInfoService.judgeTable_pwrhis(table);
                 List<ResAnalysis> list = new ArrayList();
                 if (tableNum > 0) {
-                    list = subTablePageInfoService.getPwrHisRealInAlm(pwrHis,pwrList);
+                    list = subTablePageInfoService.getPwrHisRealInAlm(pwrHis,pwrMap);
                 }
                 dataList.addAll(list);
                 latch.countDown();
@@ -176,7 +176,7 @@
     }
 
     //鐢垫睜鍛婅鐐瑰嚮鍏蜂綋鍛婅淇℃伅鏌ョ湅浠庡憡璀﹀紑濮嬫椂闂村埌鐜板湪鐨勫巻鍙插疄鏃舵暟鎹�
-    public List getBattRealData(Integer battgroupId, List<List<Date>> monthTimeList,List<String> battList) throws ParseException, InterruptedException {
+    public List getBattRealData(Integer battgroupId, List<List<Date>> monthTimeList,Map<String,Integer> battMap) throws ParseException, InterruptedException {
         List<ResAnalysis> dataList = new LinkedList<>();
         ThreadPoolExecutor pool = ThreadPoolExecutorFactory.getPoolExecutor();
         CountDownLatch latch = new CountDownLatch(monthTimeList.size());
@@ -193,7 +193,7 @@
                 int tableNum = subTablePageInfoService.judgeTable_realdata(table);
                 List<ResAnalysis> list = new ArrayList();
                 if (tableNum > 0) {
-                    list = subTablePageInfoService.getBattHisRealInAlm(realdata,battList);
+                    list = subTablePageInfoService.getBattHisRealInAlm(realdata,battMap);
                 }
                 dataList.addAll(list);
                 latch.countDown();
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index e126ffe..70b7c25 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -800,8 +800,8 @@
         return list;
     }
     //鐢垫睜鏁版嵁鍘嗗彶瀹炴椂澶勭悊(棰勮鍒嗘瀽)
-    public List<ResAnalysis> getBattHisRealInAlm(BattRealdataId realdata, List<String> battList) {
-        String result = battList.stream().collect(Collectors.joining(","));
+    public List<ResAnalysis> getBattHisRealInAlm(BattRealdataId realdata, Map<String,Integer> battMap) {
+        String result = String.join(",", battMap.keySet());
         String sql=" select record_time,"+result+" " +
                 "               from db_data_history.tb_batt_realdata_"+realdata.getTableName()+" " +
                 "               where record_time >= '"+ThreadLocalUtil.format(realdata.getRecordTime(),1)+"' " +
@@ -814,15 +814,22 @@
                 while (rs.next()){
                     ResAnalysis ph=new ResAnalysis();
                     ph.setRecordTime(rs.getTimestamp("record_time"));
-                    for (int i=0;i<battList.size();i++){
+                    int i=1;
+                    for (String key : battMap.keySet()) {
+                        Integer dataType = battMap.get(key);
                         try {
-                            Float value = rs.getFloat(battList.get(i));
-                            String propertyName = "dataName"+(i+1);
+                            String propertyType = "dataType"+(i);
+                            Field fieldType = ResAnalysis.class.getDeclaredField(propertyType);
+                            fieldType.setAccessible(true);
+                            fieldType.set(ph,dataType);
+
+                            Float value = rs.getFloat(key);
+                            String propertyName = "dataName"+(i);
                             Field fieldName = ResAnalysis.class.getDeclaredField(propertyName);
                             fieldName.setAccessible(true); // 濡傛灉瀛楁鏄鏈夌殑锛岄渶瑕佽缃负鍙闂�
-                            fieldName.set(ph,battList.get(i));
+                            fieldName.set(ph,key);
 
-                            String propertyValue = "dataValue"+(i+1);
+                            String propertyValue = "dataValue"+(i);
                             Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
                             fieldValue.setAccessible(true);
                             fieldValue.set(ph,value);
@@ -831,6 +838,7 @@
                         } catch (IllegalAccessException e) {
                             e.printStackTrace();
                         }
+                        i++;
                     }
                     list.add(ph);
                 }
@@ -841,8 +849,8 @@
     }
 
     //鐢垫簮鏁版嵁鍘嗗彶瀹炴椂澶勭悊(棰勮鍒嗘瀽)
-    public List<ResAnalysis> getPwrHisRealInAlm(PwrdevHistorydataId pwrHis, List<String> pwrList) {
-        String result = pwrList.stream().collect(Collectors.joining(","));
+    public List<ResAnalysis> getPwrHisRealInAlm(PwrdevHistorydataId pwrHis, Map<String,Integer> pwrMap) {
+        String result = String.join(",", pwrMap.keySet());
         String sql=" select record_datetime,"+result+"  " +
                 "               from db_data_history.tb_pwrdev_historydata_"+pwrHis.getTableName()+" " +
                 "               where record_datetime >= '"+ThreadLocalUtil.format(pwrHis.getRecordDatetime(),1)+"' " +
@@ -855,15 +863,22 @@
                 while (rs.next()){
                     ResAnalysis ph=new ResAnalysis();
                     ph.setRecordTime(rs.getTimestamp("record_datetime"));
-                    for (int i=0;i<pwrList.size();i++){
+                    int i=1;
+                    for (String key : pwrMap.keySet()) {
+                        Integer dataType = pwrMap.get(key);
                         try {
-                            Float value = rs.getFloat(pwrList.get(i));
-                            String propertyName = "dataName"+(i+1);
+                            String propertyType = "dataType"+(i);
+                            Field fieldType = ResAnalysis.class.getDeclaredField(propertyType);
+                            fieldType.setAccessible(true);
+                            fieldType.set(ph,dataType);
+
+                            Float value = rs.getFloat(key);
+                            String propertyName = "dataName"+(i);
                             Field fieldName = ResAnalysis.class.getDeclaredField(propertyName);
                             fieldName.setAccessible(true); // 濡傛灉瀛楁鏄鏈夌殑锛岄渶瑕佽缃负鍙闂�
-                            fieldName.set(ph,pwrList.get(i));
+                            fieldName.set(ph,key);
 
-                            String propertyValue = "dataValue"+(i+1);
+                            String propertyValue = "dataValue"+(i);
                             Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
                             fieldValue.setAccessible(true);
                             fieldValue.set(ph,value);
@@ -872,6 +887,7 @@
                         } catch (IllegalAccessException e) {
                             e.printStackTrace();
                         }
+                        i++;
                     }
                     list.add(ph);
                 }

--
Gitblit v1.9.1