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 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,"获取电池组最近一季度的温度数据"); } }