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