From 086e9639f47c407e3a1e5b2f71ca816d397fe9fc Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期四, 29 五月 2025 13:46:44 +0800
Subject: [PATCH] 实时页面内阻测试

---
 src/main/java/com/whyc/service/BattInfService.java          |   18 +++
 src/main/java/com/whyc/webSocket/RealTimeSocket.java        |   33 ++++++
 src/main/java/com/whyc/service/BattresdataInfService.java   |   30 ++++++
 src/main/java/com/whyc/service/SubTablePageInfoService.java |   20 ++++
 src/main/java/com/whyc/service/BattRealdataIdService.java   |  122 +++++++++++++++++++++---
 src/main/java/com/whyc/controller/HistoryIdController.java  |   20 +++
 6 files changed, 222 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/whyc/controller/HistoryIdController.java b/src/main/java/com/whyc/controller/HistoryIdController.java
index 8de5483..22e9fd8 100644
--- a/src/main/java/com/whyc/controller/HistoryIdController.java
+++ b/src/main/java/com/whyc/controller/HistoryIdController.java
@@ -21,9 +21,21 @@
     private BattRealdataIdService battHisIdService;
 
 
-    @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�")
-    @GetMapping("getBattQuarter")
-    public Response getBattQuarter(@RequestParam Integer battgroupId) {
-        return battHisIdService.getBattQuarter(battgroupId);
+    @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勭數鍘嬫暟鎹�")
+    @GetMapping("getBattQuarterVol")
+    public Response getBattQuarterVol(@RequestParam Integer battgroupId) {
+        return battHisIdService.getBattQuarterVol(battgroupId);
+    }
+
+    @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹�")
+    @GetMapping("getBattQuarterRes")
+    public Response getBattQuarterRes(@RequestParam Integer battgroupId) {
+        return battHisIdService.getBattQuarterRes(battgroupId);
+    }
+
+    @ApiOperation("鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�")
+    @GetMapping("getBattQuarterTmp")
+    public Response getBattQuarterTmp(@RequestParam Integer battgroupId) {
+        return battHisIdService.getBattQuarterTmp(battgroupId);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BattInfService.java b/src/main/java/com/whyc/service/BattInfService.java
index bf82d30..975e334 100644
--- a/src/main/java/com/whyc/service/BattInfService.java
+++ b/src/main/java/com/whyc/service/BattInfService.java
@@ -6,6 +6,7 @@
 import com.github.pagehelper.PageInfo;
 import com.whyc.dto.BattDto;
 import com.whyc.dto.InfoDto;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.dto.Response;
 import com.whyc.factory.InfoFactory;
 import com.whyc.mapper.BattInfMapper;
@@ -386,5 +387,20 @@
         BattInf binf=mapper.selectOne(wrapper);
         return binf;
     }
-
+   //褰撴病鏈夊唴鍔╂祴璇曟椂鍒濆鍐呴樆鍊间负鏍囩О鍐呴樆
+    public List<QuarterDto> getBinfResStd(Integer battgroupId) {
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("battgroup_id",battgroupId);
+        wrapper.last("limit 1");
+        BattInf binf=mapper.selectOne(wrapper);
+        Float monresstd=binf.getMonresstd();
+        List<QuarterDto> list=new ArrayList<>();
+        for(int i=0;i<binf.getMoncount();i++){
+            QuarterDto dto=new QuarterDto();
+            dto.setRecordTime(binf.getCreateTime());
+            dto.setMonNum(i+1);
+            dto.setNumValue(monresstd);
+        }
+        return list;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BattRealdataIdService.java b/src/main/java/com/whyc/service/BattRealdataIdService.java
index 264b57f..d85892d 100644
--- a/src/main/java/com/whyc/service/BattRealdataIdService.java
+++ b/src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -4,6 +4,9 @@
 import com.whyc.dto.Real.QuarterDto;
 import com.whyc.dto.Response;
 import com.whyc.mapper.CommonMapper;
+import com.whyc.pojo.db_batt_testdata.BattresdataId;
+import com.whyc.pojo.db_batt_testdata.BattresdataInf;
+import com.whyc.pojo.db_station.BattInf;
 import com.whyc.util.ActionUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,12 +22,19 @@
     @Resource
     private CommonMapper commonMapper;
 
+    @Autowired
+    private BattresdataInfService resInfService;
+
+    @Autowired
+    private BattInfService binfService;
+
+
     //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫崟浣撴暟鎹�
-    public Response getBattQuarter(Integer battgroupId) {
+    public Response getBattQuarterVol(Integer battgroupId) {
         HashMap<String,Object> map = new HashMap<>();
-        Float maxVol=0f;
-        Float minVol=0f;
-        Float avgVol=0f;
+        Float maxData=0f;
+        Float minData=0f;
+        Float avgData=0f;
         int num=0;
         List<String> datelist = ActionUtil.getLastQuarterYearMonths();
         for (int i=0;i<datelist.size();i++) {
@@ -40,21 +50,103 @@
             //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊�
             CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol");
             if(num==0){
-                maxVol=compareData.getMaxData();
-                minVol=compareData.getMinData();
+                maxData=compareData.getMaxData();
+                minData=compareData.getMinData();
             }
-            if (compareData.getMaxData() >= maxVol) {
-                maxVol =compareData.getMaxData();
+            if (compareData.getMaxData() >= maxData) {
+                maxData =compareData.getMaxData();
             }
-            if (compareData.getMinData() <= minVol) {
-                minVol = compareData.getMinData();
+            if (compareData.getMinData() <= minData) {
+                minData= compareData.getMinData();
             }
-            avgVol += compareData.getAvgData();
-            map.put("maxVol",maxVol);
-            map.put("minVol",minVol);
-            map.put("avgVol",avgVol/datelist.size());
+            avgData+= compareData.getAvgData();
+            map.put("maxData",maxData);
+            map.put("minData",minData);
+            map.put("avgData",avgData/datelist.size());
             num++;
         }
-        return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬暟鎹�");
+        return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勭數鍘嬫暟鎹�");
+    }
+    //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹�
+    public Response getBattQuarterRes(Integer battgroupId) {
+        HashMap<String,Object> map = new HashMap<>();
+        Float maxData=0f;
+        Float minData=0f;
+        Float avgData=0f;
+        int num=0;
+        List<String> datelist = ActionUtil.getLastQuarterYearMonths();
+        //鑾峰彇鍐呴樆鍒濆鏁版嵁锛堢涓�娆″唴闃绘祴璇曠殑绗竴绗旀暟鎹級
+        List<QuarterDto> list=resInfService.getFirstResData(battgroupId);
+        if(list==null){//褰撳垵濮嬪�间负0鏃朵娇鐢ㄦ爣绉板唴闃�
+            list=binfService.getBinfResStd(battgroupId);
+        }
+        map.put("startRes",list);
+        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<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_res");
+            map.put(date,datalist);
+            //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊�
+            CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_res");
+            if(num==0){
+                maxData=compareData.getMaxData();
+                minData=compareData.getMinData();
+            }
+            if (compareData.getMaxData() >= maxData) {
+                maxData =compareData.getMaxData();
+            }
+            if (compareData.getMinData() <= minData) {
+                minData= compareData.getMinData();
+            }
+            avgData+= compareData.getAvgData();
+            map.put("maxData",maxData);
+            map.put("minData",minData);
+            map.put("avgData",avgData/datelist.size());
+            num++;
+        }
+        return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勫唴闃绘暟鎹�");
+    }
+    //鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�
+    public Response getBattQuarterTmp(Integer battgroupId) {
+        HashMap<String,Object> map = new HashMap<>();
+        Float maxData=0f;
+        Float minData=0f;
+        Float avgData=0f;
+        int num=0;
+        List<String> datelist = ActionUtil.getLastQuarterYearMonths();
+        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<QuarterDto> datalist=subTablePageInfoService.getBattRealHis(tableName,"mon_tmp");
+            map.put(date,datalist);
+            //鑾峰彇琛ㄤ腑鏈�澶э紝鏈�灏忥紝骞冲潎鏁版嵁鍊�
+            CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_tmp");
+            if(num==0){
+                maxData=compareData.getMaxData();
+                minData=compareData.getMinData();
+            }
+            if (compareData.getMaxData() >= maxData) {
+                maxData =compareData.getMaxData();
+            }
+            if (compareData.getMinData() <= minData) {
+                minData= compareData.getMinData();
+            }
+            avgData+= compareData.getAvgData();
+            map.put("maxData",maxData);
+            map.put("minData",minData);
+            map.put("avgData",avgData/datelist.size());
+            num++;
+        }
+        return new Response().setII(1,map.size()>0,map,"鑾峰彇鐢垫睜缁勬渶杩戜竴瀛e害鐨勬俯搴︽暟鎹�");
     }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/BattresdataInfService.java b/src/main/java/com/whyc/service/BattresdataInfService.java
index 9c61fc4..0e089fe 100644
--- a/src/main/java/com/whyc/service/BattresdataInfService.java
+++ b/src/main/java/com/whyc/service/BattresdataInfService.java
@@ -1,15 +1,28 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.whyc.dto.Real.QuarterDto;
 import com.whyc.mapper.BattresdataInfMapper;
+import com.whyc.mapper.CommonMapper;
+import com.whyc.pojo.db_batt_testdata.BattresdataId;
 import com.whyc.pojo.db_batt_testdata.BattresdataInf;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 @Service
 public class BattresdataInfService {
     @Autowired(required = false)
     private BattresdataInfMapper mapper;
+
+    @Autowired(required = false)
+    private SubTablePageInfoService  subTablePageInfoService;
+
+    @Resource
+    private CommonMapper commonMapper;
+
     //涓婁竴娆″唴闃绘祴璇曟暟鎹�
     public BattresdataInf getLastTestData(Integer battgroupId) {
         QueryWrapper wrapper = new QueryWrapper();
@@ -19,4 +32,21 @@
         BattresdataInf rinf = mapper.selectOne(wrapper);
         return rinf;
     }
+    //鑾峰彇鍐呴樆鍒濆鏁版嵁锛堢涓�娆″唴闃绘祴璇曠殑绗竴绗旀暟鎹級
+    public List<QuarterDto> getFirstResData(Integer battgroupId) {
+        QueryWrapper wrapper = new QueryWrapper();
+        wrapper.eq("battgroup_id", battgroupId);
+        wrapper.last(" limit 1");
+        wrapper.last(" ORDER BY test_record_count asc ");
+        BattresdataInf rinf = mapper.selectOne(wrapper);
+        if(rinf!=null){
+            String tableName ="db_batt_testdata.tb_battresdata_"+battgroupId;
+            String existTableName = commonMapper.existTable("db_batt_testdata", "tb_battresdata_"+battgroupId);
+            if(existTableName != null){
+                List<QuarterDto> list=subTablePageInfoService.getBattResInfData(battgroupId,rinf.getTestRecordCount());
+                return list;
+            }
+        }
+        return null;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java
index c81970d..e93f3e9 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -508,4 +508,24 @@
             return null;
         }
     }
+    //鑾峰彇鍐呴樆鏁版嵁
+    public  List<QuarterDto> getBattResInfData(Integer battgroupId,Integer testRecordCount) {
+        String sql="select   distinct mon_num,test_starttime,mon_res, from db_batt_testdata.tb_battresdata_"+battgroupId
+                +" where test_record_count="+testRecordCount+" order by mon_num asc";
+        List<QuarterDto> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
+            @Override
+            public List getResults(ResultSet rs) throws SQLException {
+                List<QuarterDto> list=new ArrayList<>();
+                while (rs.next()){
+                    QuarterDto data=new QuarterDto();
+                    data.setMonNum(rs.getInt("mon_num"));
+                    data.setNumValue(rs.getFloat("mon_res"));
+                    data.setRecordTime(rs.getTimestamp("test_starttime"));
+                    list.add(data);
+                }
+                return list;
+            }
+        });
+       return list;
+    }
 }
diff --git a/src/main/java/com/whyc/webSocket/RealTimeSocket.java b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
index e5c7fdb..5092daa 100644
--- a/src/main/java/com/whyc/webSocket/RealTimeSocket.java
+++ b/src/main/java/com/whyc/webSocket/RealTimeSocket.java
@@ -301,7 +301,38 @@
     }
     //鑾峰彇娓╁害鐣岄潰淇℃伅
     private Response getTmpPage(RealTimeDto realDto) {
-        return new Response().set(1);
+        Map<String, Object> map=new HashMap<>();
+        Float maxData=0f;
+        Float minData=0f;
+        Float avgData=0f;
+        try {
+            //瀹炴椂鑾峰彇鍗曚綋淇℃伅
+            List<BattRtdata> rtdataList = rtdataService.getRtdataRealInfo(realDto.getBattgroupId());
+            if(rtdataList!=null&&rtdataList.size()>0){
+                for(int i=0;i<rtdataList.size();i++) {
+                    BattRtdata battRtdata=rtdataList.get(i);
+                    if(i==0){
+                        maxData=battRtdata.getMonTmp();
+                        minData=battRtdata.getMonTmp();
+                    }
+                    if (battRtdata.getMonTmp() >= maxData) {
+                        maxData = battRtdata.getMonTmp();
+                    }
+                    if (battRtdata.getMonTmp() <= minData) {
+                        minData = battRtdata.getMonTmp();
+                    }
+                    avgData += battRtdata.getMonTmp();
+                }
+                avgData=avgData/rtdataList.size();
+            }
+            map.put("rtdataList",rtdataList);
+            map.put("maxData",maxData);
+            map.put("minData",minData);
+            map.put("avgData",avgData);
+            return new Response().setII(1,true,map,"娓╁害鐣岄潰淇℃伅鎺ㄩ��");
+        }catch (Exception e){
+            return new Response().set(1,false,"娓╁害鐣岄潰淇℃伅鎺ㄩ��");
+        }
     }
     //鑾峰彇鍐呴樆鐣岄潰淇℃伅
     private Response getResPage(RealTimeDto realDto) {

--
Gitblit v1.9.1