src/main/java/com/whyc/controller/RealContoller.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/Real/TestDataDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatttestdataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BatttestdataInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/SubTablePageInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } } src/main/java/com/whyc/dto/Real/TestDataDto.java
New file @@ -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; //浮充电压 } 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 = "电池组ID") private Integer battgroupId; 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,"获取历史测试记录数据详情"); } } 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,"历史测试记录"); } } 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; } }