From 2753ad7aee272a5a5a8a0124b1feea5a1e4cc83e Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期五, 20 六月 2025 22:40:52 +0800
Subject: [PATCH] 电源告警参数返回

---
 src/main/java/com/whyc/service/SubTablePageInfoService.java |  265 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 163 insertions(+), 102 deletions(-)

diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index e27caac..b071132 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -3,6 +3,7 @@
 import com.whyc.dto.AlmHis.BattAlmPar;
 import com.whyc.dto.AlmHis.DevAlmPar;
 import com.whyc.dto.AlmHis.PwrAlmPar;
+import com.whyc.dto.AnalysisAlm.ResAnalysis;
 import com.whyc.dto.Real.*;
 import com.whyc.dto.Statistic.QuarterPwr7Res;
 import com.whyc.mapper.CallBack;
@@ -12,13 +13,16 @@
 import com.whyc.pojo.db_data_history.BattRealdataId;
 import com.whyc.pojo.db_data_history.PwrdevHistorydataId;
 import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmHistory;
+import com.whyc.util.ActionUtil;
 import com.whyc.util.ThreadLocalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class SubTablePageInfoService {
@@ -717,7 +721,7 @@
         });
         return list;
     }
-    //鍒ゆ柇鍘嗗彶瀹炴椂琛ㄦ槸鍚﹀瓨鍦�
+    //鍒ゆ柇鐢垫睜缁勫巻鍙插疄鏃惰〃鏄惁瀛樺湪
     public int judgeTable_realdata( String table){
         String sql="select count(*) as tableNum " +
                 "        from INFORMATION_SCHEMA.TABLES " +
@@ -742,7 +746,31 @@
         }
         return tableNum;
     }
-
+    //鍒ゆ柇鐢垫簮鍘嗗彶瀹炴椂琛ㄦ槸鍚﹀瓨鍦�
+    public int judgeTable_pwrhis( String table){
+        String sql="select count(*) as tableNum " +
+                "        from INFORMATION_SCHEMA.TABLES " +
+                "        where TABLE_SCHEMA = 'db_data_history' " +
+                "          and TABLE_NAME = 'tb_pwrdev_historydata_"+table+"'";
+        List list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                LinkedList<Object> temp = new LinkedList<>();
+                try {
+                    while (rs.next())
+                        temp.add(rs.getInt("tableNum"));
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+                return temp;
+            }
+        });
+        int tableNum =0;
+        if(list!=null){
+            tableNum= (int) list.get(0);
+        }
+        return tableNum;
+    }
     //鐢垫睜鏁版嵁鍘嗗彶瀹炴椂澶勭悊
     public List<RealDateDTO> getBattRealDataHis(BattRealdataId realdata, int granularity,Integer maxRecordNum,Integer minRecordNum) {
         String sql=" select record_time, group_vol, online_vol,group_curr, mon_vol, mon_tmp, mon_res, mon_num,record_num  " +
@@ -773,27 +801,95 @@
         return list;
     }
     //鐢垫睜鏁版嵁鍘嗗彶瀹炴椂澶勭悊(棰勮鍒嗘瀽)
-    public List<RealDateDTO> getBattHisRealInAlm(BattRealdataId realdata) {
-        String sql=" select record_time, group_vol, online_vol,group_curr, mon_vol, mon_tmp, mon_res, mon_num,record_num  " +
+    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)+"' " +
                 "               and record_time <= '"+ThreadLocalUtil.format(realdata.getRecordTime1(),1)+"' " +
                 "               order by record_time asc,mon_num asc";
-        List<RealDateDTO> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+        List<ResAnalysis> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
             @Override
             public List getResults(ResultSet rs) throws SQLException {
-                List<RealDateDTO> list=new ArrayList<>();
+                List<ResAnalysis> list=new ArrayList<>();
                 while (rs.next()){
-                    RealDateDTO ph=new RealDateDTO();
+                    ResAnalysis ph=new ResAnalysis();
                     ph.setRecordTime(rs.getTimestamp("record_time"));
-                    ph.setGroupVol(rs.getFloat("group_vol"));
-                    ph.setOnlineVol(rs.getFloat("online_vol"));
-                    ph.setGroupCurr(rs.getFloat("group_curr"));
-                    ph.setMonVol(rs.getFloat("mon_vol"));
-                    ph.setMonTmp(rs.getFloat("mon_tmp"));
-                    ph.setMonRes(rs.getFloat("mon_res"));
-                    ph.setMonNum(rs.getInt("mon_num"));
-                    ph.setRecordNum(rs.getInt("record_num"));
+                    int i=1;
+                    for (String key : battMap.keySet()) {
+                        Integer dataType = battMap.get(key);
+                        try {
+                            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,key);
+
+                            String propertyValue = "dataValue"+(i);
+                            Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
+                            fieldValue.setAccessible(true);
+                            fieldValue.set(ph,value);
+                        } catch (NoSuchFieldException e) {
+                            e.printStackTrace();
+                        } catch (IllegalAccessException e) {
+                            e.printStackTrace();
+                        }
+                        i++;
+                    }
+                    list.add(ph);
+                }
+                return list;
+            }
+        });
+        return list;
+    }
+
+    //鐢垫簮鏁版嵁鍘嗗彶瀹炴椂澶勭悊(棰勮鍒嗘瀽)
+    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)+"' " +
+                "               and record_datetime <= '"+ThreadLocalUtil.format(pwrHis.getRecordDatetime1(),1)+"' " +
+                "               order by record_datetime asc ";
+        List<ResAnalysis> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<ResAnalysis> list=new ArrayList<>();
+                while (rs.next()){
+                    ResAnalysis ph=new ResAnalysis();
+                    ph.setRecordTime(rs.getTimestamp("record_datetime"));
+                    int i=1;
+                    for (String key : pwrMap.keySet()) {
+                        Integer dataType = pwrMap.get(key);
+                        try {
+                            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,key);
+
+                            String propertyValue = "dataValue"+(i);
+                            Field fieldValue = ResAnalysis.class.getDeclaredField(propertyValue);
+                            fieldValue.setAccessible(true);
+                            fieldValue.set(ph,value);
+                        } catch (NoSuchFieldException e) {
+                            e.printStackTrace();
+                        } catch (IllegalAccessException e) {
+                            e.printStackTrace();
+                        }
+                        i++;
+                    }
                     list.add(ph);
                 }
                 return list;
@@ -822,8 +918,9 @@
          return list;
     }
     //1.2.7浼樿壇鐢垫簮缁熻涓婁竴瀛e害鐨勭數婧愭煇涓�灞炴�у拰鍙傛暟闃堝�艰秴杩囩殑娆℃暟
-    public List<PwrdevHistorydataId> getPwrQuarter7(String tableName) {
-        String sql=" select  distinct * " +
+    public List<PwrdevHistorydataId> getPwrQuarter7(String tableName,List<String> propertyNameList) {
+        String result = propertyNameList.stream().collect(Collectors.joining(","));
+        String sql=" select  distinct record_datetime,"+result+" " +
                 " from "+tableName+" " ;
         sql+=" order by record_datetime asc";
         List<PwrdevHistorydataId> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
@@ -833,91 +930,55 @@
                 while (rs.next()){
                     PwrdevHistorydataId data=new PwrdevHistorydataId();
                     data.setRecordDatetime(rs.getTimestamp("record_datetime"));
-                    data.setAcin1Vola(rs.getFloat("acin1_vola"));
-                    data.setAcin1Volb(rs.getFloat("acin1_volb"));
-                    data.setAcin1Volc(rs.getFloat("acin1_volc"));
-                    data.setAcin2Vola(rs.getFloat("acin2_vola"));
-                    data.setAcin2Volb(rs.getFloat("acin2_volb"));
-                    data.setAcin2Volc(rs.getFloat("acin2_volc"));
-                    data.setAcoutVola(rs.getFloat("acout_vola"));
-                    data.setAcoutVolb(rs.getFloat("acout_volb"));
-                    data.setAcoutVolc(rs.getFloat("acout_volc"));
-                    data.setAcoutCurra(rs.getFloat("acout_curra"));
-                    data.setAcoutCurrb(rs.getFloat("acout_currb"));
-                    data.setAcoutCurrc(rs.getFloat("acout_currc"));
-                    data.setDcoutVol(rs.getFloat("dcout_vol"));
-                    data.setDcoutCurr(rs.getFloat("dcout_curr"));
-
-                    data.setBattgroup1Vol(rs.getFloat("battgroup1_vol"));
-                    data.setBattgroup1Curr(rs.getFloat("battgroup1_curr"));
-                    data.setBattgroup2Vol(rs.getFloat("battgroup2_vol"));
-                    data.setBattgroup2Curr(rs.getFloat("battgroup2_curr"));
-                    data.setTemprature(rs.getFloat("temprature"));
-                    data.setMOutputvol(rs.getFloat("m_outputvol"));
-                    data.setM1Outcurr(rs.getFloat("m1_outcurr"));
-                    data.setM2Outcurr(rs.getFloat("m2_outcurr"));
-                    data.setM3Outcurr(rs.getFloat("m3_outcurr"));
-                    data.setM4Outcurr(rs.getFloat("m4_outcurr"));
-                    data.setM5Outcurr(rs.getFloat("m5_outcurr"));
-                    data.setM6Outcurr(rs.getFloat("m6_outcurr"));
-                    data.setM7Outcurr(rs.getFloat("m7_outcurr"));
-                    data.setM8Outcurr(rs.getFloat("m8_outcurr"));
-                    data.setM9Outcurr(rs.getFloat("m9_outcurr"));
-                    data.setM10Outcurr(rs.getFloat("m10_outcurr"));
-                    data.setM11Outcurr(rs.getFloat("m11_outcurr"));
-                    data.setM12Outcurr(rs.getFloat("m12_outcurr"));
-                    data.setM13Outcurr(rs.getFloat("m13_outcurr"));
-                    data.setM14Outcurr(rs.getFloat("m14_outcurr"));
-                    data.setM15Outcurr(rs.getFloat("m15_outcurr"));
-                    data.setM16Outcurr(rs.getFloat("m16_outcurr"));
-
-                    data.setAcin1Curra(rs.getFloat("acin1_curra"));
-                    data.setAcin1Currb(rs.getFloat("acin1_currb"));
-                    data.setAcin1Currc(rs.getFloat("acin1_currc"));
-                    data.setLoaderCurr(rs.getFloat("loader_curr"));
-                    data.setBattgroup1Ah(rs.getFloat("battgroup1_ah"));
-                    data.setBattgroup1Temp(rs.getFloat("battgroup1_temp"));
-                    data.setBattgroup2Ah(rs.getFloat("battgroup2_ah"));
-                    data.setBattgroup2Temp(rs.getFloat("battgroup2_temp"));
-                    data.setAcdcmTemp(rs.getFloat("acdcm_temp"));
-                    data.setM1OutVol(rs.getFloat("m1_out_vol"));
-                    data.setM2OutVol(rs.getFloat("m2_out_vol"));
-                    data.setM3OutVol(rs.getFloat("m3_out_vol"));
-                    data.setM4OutVol(rs.getFloat("m4_out_vol"));
-                    data.setM5OutVol(rs.getFloat("m5_out_vol"));
-                    data.setM6OutVol(rs.getFloat("m6_out_vol"));
-                    data.setM7OutVol(rs.getFloat("m7_out_vol"));
-                    data.setM8OutVol(rs.getFloat("m8_out_vol"));
-                    data.setM9OutVol(rs.getFloat("m9_out_vol"));
-                    data.setM10OutVol(rs.getFloat("m10_out_vol"));
-                    data.setM11OutVol(rs.getFloat("m11_out_vol"));
-                    data.setM12OutVol(rs.getFloat("m12_out_vol"));
-                    data.setM13OutVol(rs.getFloat("m13_out_vol"));
-                    data.setM14OutVol(rs.getFloat("m14_out_vol"));
-                    data.setM15OutVol(rs.getFloat("m15_out_vol"));
-                    data.setM16OutVol(rs.getFloat("m16_out_vol"));
-
-                    data.setUseracin1Vola(rs.getFloat("useracin1_vola"));
-                    data.setUseracin1Volb(rs.getFloat("useracin1_volb"));
-                    data.setUseracin1Volc(rs.getFloat("useracin1_volc"));
-                    data.setUseracin1Curra(rs.getFloat("useracin1_curra"));
-                    data.setUseracin1Currb(rs.getFloat("useracin1_currb"));
-                    data.setUseracin1Currc(rs.getFloat("useracin1_currc"));
-                    data.setUseracin1Freq(rs.getFloat("useracin1_freq"));
-                    data.setUseracin2Vola(rs.getFloat("useracin2_vola"));
-                    data.setUseracin2Volb(rs.getFloat("useracin2_volb"));
-                    data.setUseracin2Volc(rs.getFloat("useracin2_volc"));
-                    data.setUseracin2Curra(rs.getFloat("useracin2_curra"));
-                    data.setUseracin2Currb(rs.getFloat("useracin2_currb"));
-                    data.setUseracin2Currc(rs.getFloat("useracin2_currc"));
-                    data.setUseracin2Freq(rs.getFloat("useracin2_freq"));
-
-                    data.setMTemper1(rs.getFloat("m_temper1"));
-                    data.setMTemper2(rs.getFloat("m_temper2"));
-                    data.setMTemper3(rs.getFloat("m_temper3"));
-                    data.setMHumidity1(rs.getFloat("m_humidity1"));
-                    data.setMHumidity2(rs.getFloat("m_humidity2"));
-                    data.setMHumidity3(rs.getFloat("m_humidity3"));
+                    for (int i=0;i<propertyNameList.size();i++){
+                        try {
+                            Float value = rs.getFloat(propertyNameList.get(i));
+                            String propertyName = ActionUtil.toCamelCase(propertyNameList.get(i));
+                            Field fieldValue = PwrdevHistorydataId.class.getDeclaredField(propertyName);
+                            fieldValue.setAccessible(true);
+                            fieldValue.set(data,value);
+                        } catch (NoSuchFieldException e) {
+                            e.printStackTrace();
+                        } catch (IllegalAccessException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    list.add(data);
+                }
+                return list;
+            }
+        });
+        return list;
+    }
+    //鑾峰彇鍏蜂綋鐨勬斁鐢垫暟鎹�
+    public List<BatttestdataId> exportTinfDataByTestRecordCount(Integer battgroupId, Integer testRecordCount, String tableName) {
+        String sql="select distinct * from "+tableName+" "+
+                " where test_record_count="+testRecordCount;
+        sql+=" order by record_time asc";
+        List<BatttestdataId> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<BatttestdataId> list=new ArrayList<>();
+                while (rs.next()){
+                    BatttestdataId data=new BatttestdataId();
+                    data.setNum(rs.getInt("num"));
+                    data.setBattgroupId(rs.getInt("battgroup_id"));
+                    data.setTestRecordCount(rs.getInt("test_record_count"));
+                    data.setTestType(rs.getInt("test_type"));
+                    data.setRecordNum(rs.getInt("record_num"));
+                    data.setDataNew(rs.getInt("data_new"));
+                    data.setDataAvailable(rs.getInt("data_available"));
+                    data.setTestTimelong(rs.getInt("test_timelong"));
+                    data.setTestCurr(rs.getFloat("test_curr"));
+                    data.setTestCap(rs.getFloat("test_cap"));
+                    data.setMonNum(rs.getInt("mon_num"));
+                    data.setMonVol(rs.getFloat("mon_vol"));
+                    data.setMonTmp(rs.getFloat("mon_tmp"));
+                    data.setMonRes(rs.getFloat("mon_res"));
+                    data.setTestStarttime(rs.getTimestamp("test_starttime"));
+                    data.setRecordTime(rs.getTimestamp("record_time"));
+                    data.setGroupVol(rs.getFloat("group_vol"));
+                    data.setOnlineVol(rs.getFloat("online_vol"));
                     list.add(data);
                 }
                 return list;

--
Gitblit v1.9.1