package com.whyc.service;
|
|
import com.whyc.dto.Real.CompareDto;
|
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;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
|
@Service
|
public class BattRealdataIdService {
|
@Autowired
|
private SubTablePageInfoService subTablePageInfoService;
|
@Resource
|
private CommonMapper commonMapper;
|
|
@Autowired
|
private BattresdataInfService resInfService;
|
|
@Autowired
|
private BattInfService binfService;
|
|
|
//获取电池组最近一季度的单体数据
|
public Response getBattQuarterVol(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_vol");
|
map.put(date,datalist);
|
//获取表中最大,最小,平均数据值
|
CompareDto compareData=subTablePageInfoService.getBattCompareHis(tableName,"mon_vol");
|
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,"获取电池组最近一季度的电压数据");
|
}
|
//获取电池组最近一季度的内阻数据
|
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,"获取电池组最近一季度的内阻数据");
|
}
|
//获取电池组最近一季度的温度数据
|
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,"获取电池组最近一季度的温度数据");
|
}
|
}
|