package com.whyc.service; import com.whyc.dto.Real.BattHisRealDto; 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_data_history.BattRealdataId; 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.Date; 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 map = new HashMap<>(); Float maxData=0f; Float minData=0f; Float avgData=0f; int num=0; List datelist = ActionUtil.getLastQuarterYearMonths(); for (int i=0;i 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 map = new HashMap<>(); Float maxData=0f; Float minData=0f; Float avgData=0f; int num=0; List datelist = ActionUtil.getLastQuarterYearMonths(); //获取内阻初始数据(第一次内阻测试的第一笔数据) List list=resInfService.getFirstResData(battgroupId); if(list==null){//当初始值为0时使用标称内阻 list=binfService.getBinfResStd(battgroupId); } map.put("startRes",list); for (int i=0;i 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 map = new HashMap<>(); Float maxData=0f; Float minData=0f; Float avgData=0f; int num=0; List datelist = ActionUtil.getLastQuarterYearMonths(); for (int i=0;i 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,"获取电池组最近一季度的温度数据"); } //系统概览获取半小时核容设备信息 public Response getHalfHourBattDevData(Integer battgroupId) { String dateTime = ActionUtil.sdfwithOutday.format(new Date()); String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+dateTime; String existTableName = commonMapper.existTable("db_data_history", "tb_batt_realdata_"+battgroupId+"_"+dateTime); if(existTableName == null){ return new Response().set(1,false,"当前电池组不存在前面小时数据"); } List datalist=subTablePageInfoService.getHalfHourBattDevData(tableName); return new Response().setII(1,datalist.size()>0,datalist,"获取半小时内核容设备信息"); } }