From 6c13a67934178804ba4845ed821a07145e679a0e Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 29 五月 2025 11:25:58 +0800
Subject: [PATCH] 电压上一季度历史实时

---
 src/main/java/com/whyc/service/BatttestdataInfService.java  |    4 +-
 src/main/java/com/whyc/webSocket/RealTimeSocket.java        |   11 ++++-
 src/main/java/com/whyc/service/SubTablePageInfoService.java |   36 ++++++++++++++---
 src/main/java/com/whyc/service/BattRealdataIdService.java   |   33 +++++++++++++---
 src/main/java/com/whyc/dto/Real/CompareDto.java             |   10 +++++
 src/main/java/com/whyc/dto/Real/QuarterDto.java             |    2 
 6 files changed, 77 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/whyc/dto/Real/CompareDto.java b/src/main/java/com/whyc/dto/Real/CompareDto.java
new file mode 100644
index 0000000..ffc7437
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Real/CompareDto.java
@@ -0,0 +1,10 @@
+package com.whyc.dto.Real;
+
+import lombok.Data;
+
+@Data
+public class CompareDto {
+    private Float maxValue;
+    private Float minValue;
+    private Float avgValue;
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/Real/QuarterData.java b/src/main/java/com/whyc/dto/Real/QuarterDto.java
similarity index 91%
rename from src/main/java/com/whyc/dto/Real/QuarterData.java
rename to src/main/java/com/whyc/dto/Real/QuarterDto.java
index 31e2c3f..69a23c7 100644
--- a/src/main/java/com/whyc/dto/Real/QuarterData.java
+++ b/src/main/java/com/whyc/dto/Real/QuarterDto.java
@@ -7,7 +7,7 @@
 import java.util.Date;
 
 @Data
-public class QuarterData {
+public class QuarterDto {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date recordTime;
     private Integer monNum;
diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java
index 846a634..34646a7 100644
--- a/src/main/java/com/whyc/service/BattRealdataIdService.java
+++ b/src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -1,11 +1,10 @@
 package com.whyc.service;
 
-import com.whyc.dto.Real.QuarterData;
+import com.whyc.dto.Real.CompareDto;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.dto.Response;
 import com.whyc.mapper.CommonMapper;
-import com.whyc.pojo.db_data_history.BattRealdataId;
 import com.whyc.util.ActionUtil;
-import com.whyc.util.SubTablePageInfoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,16 +22,38 @@
     //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫崟浣撴暟鎹�
     public Response getBattQuarter(Integer battgroupId) {
         HashMap<String,Object> map = new HashMap<>();
+        Float maxVol=0f;
+        Float minVol=0f;
+        Float avgVol=0f;
+        int num=0;
         List<String> datelist = ActionUtil.getLastQuarterYearMonths();
-        for (String date:datelist) {
+        for (int i=0;i<datelist.size();i++) {
+            String date=datelist.get(i);
             String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+date;
             String existTableName = commonMapper.existTable("db_data_history", "tb_batt_realdata_"+battgroupId+"_"+date);
             if(existTableName == null){
                 continue;
             }
             //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦�
-            List<QuarterData> list=subTablePageInfoService.getBattRealHis(tableName,"mon_vol");
-            map.put(date,list);
+            List<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_vol");
+            map.put(date,datalist);
+            //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊�
+            CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol");
+            if(num==0){
+                maxVol=compareData.getMaxValue();
+                minVol=compareData.getMinValue();
+            }
+            if (compareData.getMaxValue() >= maxVol) {
+                maxVol =compareData.getMaxValue();
+            }
+            if (compareData.getMinValue() <= minVol) {
+                minVol = compareData.getMinValue();
+            }
+            avgVol += compareData.getAvgValue();
+            map.put("maxVol",maxVol);
+            map.put("minVol",minVol);
+            map.put("avgVol",avgVol/datelist.size());
+            num++;
         }
         return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�");
     }
diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index a553c31..31cb05b 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -64,8 +64,8 @@
                     Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd());
                     tinf.setRestTime(restTime);
                 }
-                //淇濈暀2浣嶅皬鏁�
-                String precentCap = String.format("%.2f",(restCap/binf.getMoncapstd()*100));
+                //淇濈暀5浣嶅皬鏁�
+                String precentCap = String.format("%.5f",(restCap/binf.getMoncapstd()*100));
                 tinf.setPrecentCap(precentCap);
             }
         }
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index 99d43ed..0913427 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -1,14 +1,13 @@
 package com.whyc.service;
 
-import com.whyc.dto.AlmHis.BattAlarmRes;
 import com.whyc.dto.AlmHis.BattAlmPar;
 import com.whyc.dto.AlmHis.DevAlmPar;
 import com.whyc.dto.AlmHis.PwrAlmPar;
-import com.whyc.dto.Real.QuarterData;
+import com.whyc.dto.Real.CompareDto;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.mapper.CallBack;
 import com.whyc.pojo.db_alarm.BattalarmDataHistory;
 import com.whyc.pojo.db_alarm.DevalarmDataHistory;
-import com.whyc.pojo.db_data_history.BattRealdataId;
 import com.whyc.pojo.db_pwrdev_alarm.PwrdevAlarmHistory;
 import com.whyc.util.ThreadLocalUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -468,14 +467,14 @@
         return  list;
     }
     //鑾峰彇鐢垫睜缁勬煇涓�骞存湀鐨勬暟鎹�
-    public List<QuarterData> getBattRealHis(String tableName,String columnName) {
+    public List<QuarterDto> getBattRealHis(String tableName, String columnName) {
         String sql="select  distinct mon_num,record_time,"+columnName+"  from "+tableName+" order by record_time asc";
-        List<QuarterData> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+        List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
             @Override
             public List getResults(ResultSet rs) throws SQLException {
-                List<QuarterData> list=new ArrayList<>();
+                List<QuarterDto> list=new ArrayList<>();
                 while (rs.next()){
-                    QuarterData data=new QuarterData();
+                    QuarterDto data=new QuarterDto();
                     data.setRecordTime(rs.getTimestamp("record_time"));
                     data.setNumValue(rs.getFloat(columnName));
                     data.setMonNum(rs.getInt("mon_num"));
@@ -486,4 +485,27 @@
         });
         return list;
     }
+    //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊�
+    public CompareDto getBattCompareHis(String tableName, String columnName) {
+        String sql="select  max("+columnName+") as maxValue1,min("+columnName+") as minValue,avg("+columnName+") as avgValue"+"  from "+tableName;
+        List<CompareDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<CompareDto> list=new ArrayList<>();
+                while (rs.next()){
+                    CompareDto data=new CompareDto();
+                    data.setMaxValue(rs.getFloat("maxValue1"));
+                    data.setMinValue(rs.getFloat("minValue"));
+                    data.setAvgValue(rs.getFloat("avgValue"));
+                    list.add(data);
+                }
+                return list;
+            }
+        });
+        if(list!=null&&list.size()>0){
+            return list.get(0);
+        }else {
+            return null;
+        }
+    }
 }
diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
index b899802..2f5aaf1 100644
--- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java
+++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -316,11 +316,16 @@
             //瀹炴椂鑾峰彇鍗曚綋淇℃伅
             List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId());
             if(rtdataList!=null&&rtdataList.size()>0){
-                for(BattRtdata battRtdata:rtdataList) {
-                    if (battRtdata.getMonVol() > maxVol) {
+                for(int i=0;i<rtdataList.size();i++) {
+                    BattRtdata battRtdata=rtdataList.get(i);
+                    if(i==0){
+                        maxVol=battRtdata.getMonVol();
+                        minVol=battRtdata.getMonVol();
+                    }
+                    if (battRtdata.getMonVol() >= maxVol) {
                         maxVol = battRtdata.getMonVol();
                     }
-                    if (battRtdata.getMonVol() < minVol) {
+                    if (battRtdata.getMonVol() <= minVol) {
                         minVol = battRtdata.getMonVol();
                     }
                     avgVol += battRtdata.getMonVol();

--
Gitblit v1.9.1