From a1d2d4dbf00ffc778003abefac9e643c6bb82059 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期二, 10 六月 2025 14:01:18 +0800
Subject: [PATCH] 系统概述推送添加蓄电池组单体信息统计

---
 src/main/java/com/whyc/dto/Statistic/DisChargeStic.java     |    2 
 src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java |   22 +++++
 src/main/java/com/whyc/service/BattInfService.java          |    4 +
 src/main/java/com/whyc/service/BatttestdataInfService.java  |   30 ++-----
 src/main/java/com/whyc/webSocket/RealTimeSocket.java        |   91 ++++++++++++++++++++++
 src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java      |   45 +++++++++++
 src/main/java/com/whyc/mapper/BattInfMapper.java            |    2 
 src/main/resources/mapper/DeviceSetparamMapper.xml          |    2 
 src/main/resources/mapper/BattInfMapper.xml                 |   29 +++++++
 src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java      |    3 
 10 files changed, 204 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java b/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java
new file mode 100644
index 0000000..352bbca
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Real/SticRealRtdataDto.java
@@ -0,0 +1,45 @@
+package com.whyc.dto.Real;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class SticRealRtdataDto {
+    private Float maxCap;
+    private Float minCap;
+    private List<Integer> maxCapNumList;
+    private List<Integer> minCapNumList;
+    private Float maxVol;
+    private Float minVol;
+    private List<Integer> maxVolNumList;
+    private List<Integer> minVolNumList;
+    private Float maxTmp;
+    private Float minTmp;
+    private List<Integer> maxTmpNumList;
+    private List<Integer> minTmpNumList;
+    private Float maxRes;
+    private Float minRes;
+    private List<Integer> maxResNumList;
+    private List<Integer> minResNumList;
+
+    public SticRealRtdataDto() {
+        maxCap = 0.0f;
+        minCap = 0.0f;
+        maxVol = 0.0f;
+        minVol = 0.0f;
+        maxTmp = 0.0f;
+        minTmp = 0.0f;
+        maxRes = 0.0f;
+        minRes = 0.0f;
+        maxCapNumList = new ArrayList<>();
+        minCapNumList = new ArrayList<>();
+        maxVolNumList = new ArrayList<>();
+        minVolNumList = new ArrayList<>();
+        maxTmpNumList = new ArrayList<>();
+        minTmpNumList = new ArrayList<>();
+        maxResNumList = new ArrayList<>();
+        minResNumList = new ArrayList<>();
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java b/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java
index 9a7267f..5d7a152 100644
--- a/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java
+++ b/src/main/java/com/whyc/dto/Statistic/DisChargeStic.java
@@ -4,6 +4,7 @@
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class DisChargeStic {
@@ -19,4 +20,5 @@
     private Date testEndTime;//缁撴潫鏃堕棿
     private Integer pageNum;
     private Integer pageSize;
+    private List<Integer> typeList;  //鍋滄鍘熷洜闆嗗悎
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java b/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java
new file mode 100644
index 0000000..8184297
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Statistic/SticDischarge6Res.java
@@ -0,0 +1,22 @@
+package com.whyc.dto.Statistic;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class SticDischarge6Res {
+    private String provice;
+    private String city;
+    private String country;
+    private String stationName;
+    private String battgroupName;
+    private Float monvolstd;
+    private Float moncapstd;
+    private Float monCount;
+    private String product;
+    private Integer errorNum;
+    private List<String> stopList;
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/mapper/BattInfMapper.java b/src/main/java/com/whyc/mapper/BattInfMapper.java
index 0e66a3b..46b3234 100644
--- a/src/main/java/com/whyc/mapper/BattInfMapper.java
+++ b/src/main/java/com/whyc/mapper/BattInfMapper.java
@@ -50,4 +50,6 @@
     List<BattInf> getBattCompare17Statistic(@Param("stic")  BattCompareStic stic);
     //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.5)
     List<BattInf> getDischr5Statistic(@Param("stic") DisChargeStic stic);
+    //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.6)
+    List<BattInf> getDischr6Statistic(@Param("stic") DisChargeStic stic);
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java b/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java
index 8260781..ded6769 100644
--- a/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java
+++ b/src/main/java/com/whyc/pojo/db_ram_db/BattRtstate.java
@@ -105,5 +105,8 @@
     @ApiModelProperty(value = "涓婁竴娆℃牳瀹圭粓姝㈠師鍥�")
     private Integer lastCaptestStopType;
 
+    @ApiModelProperty(value = "涓婁竴娆℃牳瀹圭粓姝㈠師鍥�")
+    private Float loadCurr;
+
 
 }
diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java
index a7061be..eeea2e3 100644
--- a/src/main/java/com/whyc/service/BattInfService.java
+++ b/src/main/java/com/whyc/service/BattInfService.java
@@ -464,4 +464,8 @@
     public List<BattInf> getDischr5Statistic(DisChargeStic stic) {
         return mapper.getDischr5Statistic(stic);
     }
+    //鏈勾搴﹀凡鏀剧數鏁伴噺缁熻(1.2.6)
+    public List<BattInf> getDischr6Statistic(DisChargeStic stic) {
+        return mapper.getDischr6Statistic(stic);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java
index 0f96191..b8f010d 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -86,7 +86,7 @@
                 BattInf binf=battInfService.getBinfByBattgroupId(tinf.getBattgroupId());
                 //瀹炴椂缁勭鐢垫祦锛屽墿浣欏閲忥紝鏍囩О瀹归噺
                 if(battRtstate!=null){
-                    Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd());
+                    Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), restCap, binf.getMoncapstd());
                     tinf.setRestTime(restTime);
                 }
                 //淇濈暀5浣嶅皬鏁�
@@ -572,7 +572,7 @@
             dto.setMonCount(binf.getMoncount());
             dto.setMonvolstd(binf.getMonvolstd());
             if(battRtstate!=null){
-                Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), realCap, binf.getMoncapstd());
+                Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), realCap, binf.getMoncapstd());
                 dto.setRestTime(restTime);
                 dto.setFloatchartVol(battRtstate.getGroupVol());
             }else{
@@ -715,37 +715,23 @@
         Map<String,  Object> map=new HashMap<>();
         //鏌ヨ鍑烘墍鏈夌殑鐝粍骞惰祴浜堝垵濮嬪��
         setBanZuDefault(map);
-        //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁�
-        List<AppParam> paramList=appParamService.getHrParam();
-        Float badValue=0f;
-        Float damageValue=0f;
-        if(paramList!=null){
-            for (AppParam param:paramList) {
-                if(param.getParamNamePsx().equals("batt_mon_deteriorate_val")){
-                    badValue=param.getParamValue();
-                }
-                if(param.getParamNamePsx().equals("batt_mon_damage_val")){
-                    damageValue=param.getParamValue();
-                }
 
-            }
-        }
         //1鏌ヨ绗﹀悎鏉′欢鐨勭數姹犵粍
-        List<BattInf> binfList=battInfService.getDischr5Statistic(stic);
+        List<BattInf> binfList=battInfService.getDischr6Statistic(stic);
         if(binfList==null||binfList.size()==0){
             return new Response().set(1,false,"褰撳墠鐢ㄦ埛鏈鐞嗘弧瓒虫潯浠剁殑鐢垫睜缁�");
         }
-        List<SticDischarge5Res> reslist=new ArrayList<>();
-        for (BattInf binf:binfList) {
+        List<SticDischarge6Res> reslist=new ArrayList<>();
+        /*for (BattInf binf:binfList) {
             //鏌ヨ鐢垫睜缁勬墍鍦ㄧ殑鐝粍
             String  groupName=bjService.getGroupName(binf.getPowerId());
-            SticDischarge5Res res=new SticDischarge5Res();
+            SticDischarge6Res res=new SticDischarge6Res();
             res.setProvice(binf.getProvice());
             res.setCity(binf.getCity());
             res.setCountry(binf.getCountry());
             res.setStationName(binf.getStationName());
             res.setBattgroupName(binf.getBattgroupName());
-            //2.鑾峰彇鐢垫睜缁勫湪缁欏畾鏃堕棿娈电殑鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
+            //2.鑾峰彇鐢垫睜缁勬湭鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數)
             BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),stic.getTestStartTime(),stic.getTestEndTime());
             if(tinf==null){
                 res.setRealCap(0f);
@@ -794,7 +780,7 @@
                     reslist.add(res);
                 }
             }
-        }
+        }*/
         PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
         return new Response().setII(1,reslist.size()>0,pageInfo,"鏈勾搴︽湭鏀剧數鏁伴噺缁熻");
     }
diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
index a4194ed..9e46536 100644
--- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java
+++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -2,6 +2,7 @@
 
 import com.whyc.config.WebSocketConfig;
 import com.whyc.constant.DevStateEnum;
+import com.whyc.dto.Real.SticRealRtdataDto;
 import com.whyc.dto.Real.TopDto;
 import com.whyc.dto.RealTimeDto;
 import com.whyc.dto.Response;
@@ -25,6 +26,7 @@
 import javax.servlet.http.HttpSession;
 import javax.websocket.*;
 import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -238,7 +240,7 @@
                     topDto.setRestCap(restCap);
                     //瀹炴椂缁勭鐢垫祦锛屽墿浣欏閲忥紝鏍囩О瀹归噺
                     if(battRtstate!=null){
-                        Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), restCap, binf.getMoncapstd());
+                        Float restTime= BattCapFactory.getTheoryTime(battRtstate.getLoadCurr(), restCap, binf.getMoncapstd());
                         topDto.setRestTime(restTime);
                     }
                 }
@@ -462,13 +464,98 @@
             //鐢垫簮瀵硅薄(鏁存祦鍣ㄤ娇鐢ㄦ儏鍐�)
             PowerInf powerInf = powerInfService.getPowerInfById(realDto.getPowerId());
             map.put("powerInf",powerInf!=null?powerInf:"");
+            //鑾峰彇鐢垫睜缁勭殑钃勭數姹犱俊鎭�
+            List<BattRtdata> battRtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId());
+            SticRealRtdataDto dto=setMaxMinData(battRtdataList);
+            map.put("sticRtdata",dto);
             return new Response().setII(1,true,map,"绯荤粺姒傝堪鎺ㄩ��");
         }catch (Exception e) {
             e.printStackTrace();
         }
         return new Response().set(1,false,"绯荤粺姒傝堪鎺ㄩ��");
     }
-
+    //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓��
+    public SticRealRtdataDto setMaxMinData(List<BattRtdata> battRtdataList){
+        SticRealRtdataDto dto=new SticRealRtdataDto();
+        Float maxCap = 0.0f;
+        Float minCap = 0.0f;
+        Float maxVol = 0.0f;
+        Float minVol = 0.0f;
+        Float maxTmp = 0.0f;
+        Float minTmp = 0.0f;
+        Float maxRes = 0.0f;
+        Float minRes = 0.0f;
+        List<Integer> maxCapNumList = new ArrayList<>();
+        List<Integer> minCapNumList = new ArrayList<>();
+        List<Integer> maxVolNumList = new ArrayList<>();
+        List<Integer> minVolNumList = new ArrayList<>();
+        List<Integer> maxTmpNumList = new ArrayList<>();
+        List<Integer> minTmpNumList = new ArrayList<>();
+        List<Integer> maxResNumList = new ArrayList<>();
+        List<Integer> minResNumList = new ArrayList<>();
+          //璁$畻闆嗗悎涓崟浣撶數鍘嬶紝鍐呴樆锛屾俯搴︼紝瀹归噺鐨勬渶澶ф渶灏忓��
+        for (BattRtdata rtdata:battRtdataList) {
+            if(rtdata.getMonVol()>=maxVol){
+                maxVol = rtdata.getMonVol();
+            }
+            if(rtdata.getMonVol()<=minVol){
+                minVol = rtdata.getMonVol();
+            }
+            if(rtdata.getMonTmp()>=maxTmp){
+                maxTmp = rtdata.getMonTmp();
+            }
+            if(rtdata.getMonTmp()<=minTmp){
+                minTmp = rtdata.getMonTmp();
+            }
+            if(rtdata.getMonRes()>=maxRes){
+                maxRes = rtdata.getMonRes();
+            }
+            if(rtdata.getMonRes()<=minRes){
+                minRes = rtdata.getMonRes();
+            }
+            if(rtdata.getMonCap()>=maxCap){
+                maxCap = rtdata.getMonCap();
+            }
+            if(rtdata.getMonCap()<=minCap){
+                minCap = rtdata.getMonCap();
+            }
+        }
+        dto.setMaxCap(maxCap);
+        dto.setMinCap(minCap);
+        dto.setMaxVol(maxVol);
+        dto.setMinVol(minVol);
+        dto.setMaxTmp(maxTmp);
+        dto.setMinTmp(minTmp);
+        dto.setMaxRes(maxRes);
+        dto.setMinRes(minRes);
+        for (BattRtdata rtdata:battRtdataList) {
+            if(rtdata.getMonVol()==maxVol){
+                maxVolNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonVol()==minVol){
+                minVolNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonTmp()==maxTmp){
+                maxTmpNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonTmp()==minTmp){
+                minTmpNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonRes()==maxRes){
+                maxResNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonRes()==minRes){
+                minResNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonCap()==maxCap){
+                maxCapNumList.add(rtdata.getMonNum());
+            }
+            if(rtdata.getMonCap()==minCap){
+                minCapNumList.add(rtdata.getMonNum());
+            }
+        }
+        return dto;
+    }
     @OnClose
     public void onClose(CloseReason closeReason){
         System.err.println("closeReason = " + closeReason);
diff --git a/src/main/resources/mapper/BattInfMapper.xml b/src/main/resources/mapper/BattInfMapper.xml
index 11389a9..5886e22 100644
--- a/src/main/resources/mapper/BattInfMapper.xml
+++ b/src/main/resources/mapper/BattInfMapper.xml
@@ -346,5 +346,32 @@
             order by tb_batt_inf.dev_id asc,battgroup_id asc
         </where>
     </select>
-
+    <select id="getDischr6Statistic" resultType="com.whyc.pojo.db_station.BattInf">
+        select distinct tb_batt_inf.*
+        ,tb_station_inf.station_type,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name
+        from db_station.tb_batt_inf,db_station.tb_station_inf
+        <where>
+            tb_batt_inf.station_id=tb_station_inf.station_id
+            <if test="stic.provice!=null">
+                and tb_station_inf.provice=#{stic.provice}
+            </if>
+            <if test="stic.city!=null">
+                and tb_station_inf.city=#{stic.city}
+            </if>
+            <if test="stic.country!=null">
+                and tb_station_inf.country=#{stic.country}
+            </if>
+            <if test="stic.stationName!=null">
+                and tb_station_inf.station_name=#{stic.stationName}
+            </if>
+            <if test="stic.uid>100">
+                and tb_batt_inf.station_id in(
+                select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
+                where   tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id
+                and tb_baojigroup_usr.uid=#{stic.uid}
+                )
+            </if>
+            order by tb_batt_inf.dev_id asc,battgroup_id asc
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceSetparamMapper.xml b/src/main/resources/mapper/DeviceSetparamMapper.xml
index 8f2ea1a..bca13f6 100644
--- a/src/main/resources/mapper/DeviceSetparamMapper.xml
+++ b/src/main/resources/mapper/DeviceSetparamMapper.xml
@@ -26,6 +26,6 @@
         from db_ram_db.tb_device_setparam,  db_station.tb_batt_inf, db_station.tb_station_inf
         where tb_device_setparam.dev_id = tb_batt_inf.dev_id
         and tb_batt_inf.station_id = tb_station_inf.station_id
-        and dev_id = #{devId} and battgroup_num = #{battGroupNum}
+        and tb_device_setparam.dev_id = #{devId} and tb_device_setparam.battgroupnum = #{battGroupNum}
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1