From c34c224406217a2523d68fdcecaf2bb4fb732389 Mon Sep 17 00:00:00 2001
From: whyclxw <810412026@qq.com>
Date: 星期五, 06 六月 2025 16:31:22 +0800
Subject: [PATCH] 历史测试数据

---
 src/main/java/com/whyc/dto/Real/TestDataDto.java                 |   25 ++++++++
 src/main/java/com/whyc/service/BatttestdataInfService.java       |   73 ++++++++++++++++++++++++
 src/main/java/com/whyc/service/SubTablePageInfoService.java      |   39 ++++++++++++
 src/main/java/com/whyc/service/BatttestdataIdService.java        |   17 +++++
 src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java |    2 
 src/main/java/com/whyc/controller/RealContoller.java             |   23 ++++++-
 6 files changed, 172 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/controller/RealContoller.java b/src/main/java/com/whyc/controller/RealContoller.java
index b69d7bf..b2e43f3 100644
--- a/src/main/java/com/whyc/controller/RealContoller.java
+++ b/src/main/java/com/whyc/controller/RealContoller.java
@@ -3,10 +3,7 @@
 import com.whyc.dto.Response;
 import com.whyc.pojo.db_data_history.PwrdevHistorydataId;
 import com.whyc.pojo.db_user.User;
-import com.whyc.service.BattRealdataIdService;
-import com.whyc.service.PowerInfService;
-import com.whyc.service.PwrdevHistorydataIdService;
-import com.whyc.service.StationInfService;
+import com.whyc.service.*;
 import com.whyc.util.ActionUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -26,6 +23,12 @@
     @Autowired
     private BattRealdataIdService battRealdataIdService;
 
+    @Autowired
+    private BatttestdataInfService tinfService;
+
+    @Autowired
+    private BatttestdataIdService tdataIdService;
+
     @ApiOperation(value = "绯荤粺姒傝鑾峰彇鍗婂皬鏃朵氦娴佽緭鍏ョ粺璁�")
     @GetMapping("getHalfHourPwrHisAcinData")
     public Response getHalfHourPwrHisAcinData(@RequestParam Integer powerId,@RequestParam Integer granularity){
@@ -43,4 +46,16 @@
     public Response getHalfHourBattDevData(@RequestParam Integer battgroupId,@RequestParam Integer granularity){
         return battRealdataIdService.getHalfHourBattDevData(battgroupId,granularity);
     }
+
+    @ApiOperation(value = "鍘嗗彶娴嬭瘯璁板綍")
+    @GetMapping("getBattTinf")
+    public Response getBattTinf(@RequestParam Integer battgroupId){
+        return tinfService.getBattTinf(battgroupId);
+    }
+    @ApiOperation(value = "鍘嗗彶娴嬭瘯璁板綍鍏蜂綋鏌愪竴娆℃斁鐢垫暟鎹鎯�")
+    @GetMapping("getTinfDataWithTestRecordCount")
+    public Response getTinfDataWithTestRecordCount(@RequestParam Integer battgroupId,@RequestParam Integer testRecordCount
+            ,@RequestParam Integer recordNum,@RequestParam Integer granularity){
+        return tdataIdService.getTinfDataWithTestRecordCount(battgroupId,testRecordCount,recordNum,granularity);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/whyc/dto/Real/TestDataDto.java b/src/main/java/com/whyc/dto/Real/TestDataDto.java
new file mode 100644
index 0000000..3de8a4c
--- /dev/null
+++ b/src/main/java/com/whyc/dto/Real/TestDataDto.java
@@ -0,0 +1,25 @@
+package com.whyc.dto.Real;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TestDataDto {
+    private Float onlineVol;    //绗竴绗旀斁鐢佃褰曠殑鍦ㄧ嚎鐢靛帇
+    private Float groupCurr;    //绗竴绗旀斁鐢佃褰曠殑鐢垫睜鐢垫睜
+    private Integer testTimeLong;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date  testStarttime;
+    private Float testCap;
+    private Float realCap;
+    private Float restTime;
+    private Float monCount;
+    private Float moncapstd;
+    private Float monvolstd;
+    private Integer battgroupId;
+    private Integer recordNum;
+    private Integer testRecordCount;
+    private Float floatchartVol;  //娴厖鐢靛帇
+}
\ No newline at end of file
diff --git a/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java
index c7935f3..d37a080 100644
--- a/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java
+++ b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java
@@ -29,7 +29,7 @@
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "num", type = IdType.AUTO)
-    private Long num;
+    private Integer num;
 
     @ApiModelProperty(value = "鐢垫睜缁処D")
     private Integer battgroupId;
diff --git a/src/main/java/com/whyc/service/BatttestdataIdService.java b/src/main/java/com/whyc/service/BatttestdataIdService.java
index dac9615..bdc2852 100644
--- a/src/main/java/com/whyc/service/BatttestdataIdService.java
+++ b/src/main/java/com/whyc/service/BatttestdataIdService.java
@@ -1,19 +1,34 @@
 package com.whyc.service;
 
+import com.whyc.dto.Response;
+import com.whyc.mapper.CommonMapper;
 import com.whyc.pojo.db_batt_testdata.BatttestdataId;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @Service
 public class BatttestdataIdService {
     @Autowired
     private SubTablePageInfoService subTablePageInfoService;
+    @Resource
+    private CommonMapper commonMapper;
 
-    //鎵捐繖娆℃斁鐢电殑鏈�鍚庝竴绗旀暟鎹�
+    //鎵捐繖娆℃斁鐢电殑鎸囧畾鐨勪竴绗旀暟鎹�
     public List<BatttestdataId> getLastDataByBattgroupId(Integer battgroupId, Integer testRecordCount, Integer recordNum) {
         List<BatttestdataId> list=subTablePageInfoService.getLastDataByBattgroupId(battgroupId,  testRecordCount, recordNum);
         return list;
     }
+    //鍘嗗彶娴嬭瘯璁板綍鍏蜂綋鏌愪竴娆℃斁鐢垫暟鎹鎯�
+    public Response getTinfDataWithTestRecordCount(Integer battgroupId, Integer testRecordCount,Integer recordNum, Integer granularity) {
+        String tableName ="db_batt_testdata.tb_batttestdata_"+battgroupId;
+        String existTableName = commonMapper.existTable("db_batt_testdata", "tb_batttestdata_"+battgroupId);
+        if(existTableName == null){
+            return new Response().set(1,false,battgroupId+"鐢垫睜缁勬壘涓嶅埌绗�"+testRecordCount+"娆℃斁鐢佃褰�");
+        }
+        List<BatttestdataId> list=subTablePageInfoService.getTinfDataWithTestRecordCount(tableName,testRecordCount,recordNum,granularity);
+        return new Response().setII(1,list.size()>0,list,"鑾峰彇鍘嗗彶娴嬭瘯璁板綍鏁版嵁璇︽儏");
+    }
 }
\ 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 52b4c8c..80dfc26 100644
--- a/src/main/java/com/whyc/service/BatttestdataInfService.java
+++ b/src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -5,6 +5,7 @@
 import com.github.pagehelper.PageInfo;
 import com.whyc.constant.Capperformance;
 import com.whyc.constant.StopReasonEnum;
+import com.whyc.dto.Real.TestDataDto;
 import com.whyc.dto.Response;
 import com.whyc.dto.Statistic.*;
 import com.whyc.factory.BattCapFactory;
@@ -40,6 +41,7 @@
 
     @Autowired(required = false)
     private AppParamService appParamService;
+
 
 
 
@@ -529,4 +531,75 @@
             }
         }
     }
+    //鍘嗗彶娴嬭瘯璁板綍
+    public Response getBattTinf(Integer battgroupId) {
+        Map<String,  Object> map=new HashMap<>();
+        List<TestDataDto> List1=new ArrayList<>();
+        List<TestDataDto> List2=new ArrayList<>();
+        List<TestDataDto> List3=new ArrayList<>();
+        List<TestDataDto> List4=new ArrayList<>();
+        List<TestDataDto> List5=new ArrayList<>();
+        map.put("1",List1);   //鏍稿鏀剧數
+        map.put("2",List2);   //鏍稿鍏呯數
+        map.put("3",List3);   //鐩戞祴鏀剧數
+        map.put("4",List4);   //鐩戞祴鍏呯數
+        map.put("5",List5);   //鍋滅數鏀剧數
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("battgroup_id",battgroupId);
+        wrapper.orderByDesc("test_starttime");
+        List<BatttestdataInf> list=mapper.selectList(wrapper);
+        for (BatttestdataInf tinf:list) {
+            TestDataDto dto=new TestDataDto();
+            dto.setTestStarttime(tinf.getTestStarttime());
+            dto.setBattgroupId(tinf.getBattgroupId());
+            dto.setTestRecordCount(tinf.getTestRecordCount());
+            dto.setRecordNum(tinf.getRecordNum());
+            dto.setTestCap(tinf.getTestCap());
+            dto.setTestTimeLong(tinf.getTestTimelong());
+            int hourRate = BattCapFactory.GetHourRate(tinf.getTestCap(), tinf.getTestCurr());
+            Float realCap = (float) BattCapFactory.GetMonomerCap(tinf.getTestCap(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Real);
+            dto.setRealCap(realCap);
+            //瀹炴椂鑾峰彇鐢垫睜缁勪俊鎭�
+            BattRtstate battRtstate = rtstateService.getBattRealInfo(tinf.getBattgroupId());
+            //鑾峰彇鐢垫睜缁勪俊鎭�
+            BattInf binf = battInfService.getBinfByBattgroupId(tinf.getBattgroupId());
+            dto.setMoncapstd(binf.getMoncapstd());
+            dto.setMonCount(binf.getMoncount());
+            dto.setMonvolstd(binf.getMonvolstd());
+            if(battRtstate!=null){
+                Float restTime= BattCapFactory.getTheoryTime(battRtstate.getGroupCurr(), realCap, binf.getMoncapstd());
+                dto.setRestTime(restTime);
+                dto.setFloatchartVol(battRtstate.getGroupVol());
+            }else{
+                dto.setRestTime(0f);
+                dto.setFloatchartVol(0f);
+            }
+            //鎵捐繖娆℃斁鐢电殑鎸囧畾涓�绗旀暟鎹�
+            List<BatttestdataId> idDataList=battTestdataIdService.getLastDataByBattgroupId(tinf.getBattgroupId(),tinf.getTestRecordCount(),1);
+            if(idDataList!=null&&idDataList.size()>=0){
+                BatttestdataId idData=idDataList.get(0);
+                dto.setOnlineVol(idData.getOnlineVol());
+                dto.setGroupCurr(idData.getTestCurr());
+            }else {
+                dto.setOnlineVol(0f);
+                dto.setGroupCurr(0f);
+            }
+            if (tinf.getTestType() == 3) {
+                // 娴嬭瘯绫诲瀷涓烘斁鐢�
+                if (tinf.getTestStarttype() == 3) {
+                    List1.add(dto);
+                } else {
+                    List3.add(dto);
+                }
+            } else if (tinf.getTestType() == 2) {
+                // 娴嬭瘯绫诲瀷涓哄厖鐢�
+                if (tinf.getTestStarttype() == 3) {
+                    List2.add(dto);
+                } else {
+                    List4.add(dto);
+                }
+            }
+        }
+        return new Response().setII(1,true,map,"鍘嗗彶娴嬭瘯璁板綍");
+    }
 }
\ 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 fe8dea9..7249e34 100644
--- a/src/main/java/com/whyc/service/SubTablePageInfoService.java
+++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -531,7 +531,7 @@
         });
        return list;
     }
-    //鎵捐繖娆℃斁鐢电殑鏈�鍚庝竴绗旀暟鎹�
+    //鎵捐繖娆℃斁鐢电殑鎸囧畾涓�绗旀暟鎹�
     public List<BatttestdataId> getLastDataByBattgroupId(Integer battgroupId, Integer testRecordCount, Integer recordNum) {
         String sql="select   distinct * from db_batt_testdata.tb_batttestdata_"+battgroupId
                 +" where test_record_count="+testRecordCount+" and record_num="+recordNum+ " order by mon_num asc";
@@ -651,4 +651,41 @@
         });
         return list;
     }
+    //鍘嗗彶娴嬭瘯璁板綍鍏蜂綋鏌愪竴娆℃斁鐢垫暟鎹鎯�
+    public List<BatttestdataId> getTinfDataWithTestRecordCount(String tableName, Integer testRecordCount, Integer recordNum, Integer granularity) {
+        String sql="select distinct * from "+tableName+" "+
+                " where test_record_count="+testRecordCount+" " +
+                " and  record_num%"+granularity+"=0 or record_num=1 or record_num="+recordNum;
+        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;
+            }
+        });
+        return list;
+    }
 }

--
Gitblit v1.9.1