| | |
| | | import com.whyc.mapper.BatteryTestDataMapper; |
| | | import com.whyc.pojo.BatteryEndurance; |
| | | import com.whyc.pojo.BatteryRTState; |
| | | import com.whyc.util.BattCapFactory; |
| | | import com.whyc.util.MathUtil; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.DecimalFormat; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | |
| | | } |
| | | //查询标准 |
| | | List<BatteryInfo> batteryStdList = testDataMapper.getVolAndCapStd(ids); |
| | | //查询最值 |
| | | //查询最值,电池组内每个单体的最值集合 |
| | | List<BatteryInfo> batteryStatisticList = testDataMapper.getCapStatisticsByBattGroupIds(ids); |
| | | |
| | | //统计值 |
| | | double minMonCap = 0.00; |
| | | double maxMonCap = 0.00; |
| | | double avgMonCap = 0.00; |
| | | double avgMonCapSum=0.00; |
| | | int count = 0; |
| | | DecimalFormat decimalFormat = new DecimalFormat(".00"); |
| | | |
| | | List<Double> minMonCapList =new LinkedList<>(); |
| | | List<Double> maxMonCapList =new LinkedList<>(); |
| | | |
| | | for(BatteryInfo monData:batteryStatisticList){ |
| | | //求每个单体容量的最值 |
| | | //获取最小单体实际容量 |
| | | for (int i = 0; i < batteryStdList.size(); i++) { |
| | | if(batteryStdList.get(i).getBatteryGroupId()==monData.getBatteryGroupId()){ |
| | | |
| | | int hourRateMin = BattCapFactory.GetHourRate(batteryStdList.get(i).getMonCapStd(), monData.getMinTestCurr()); |
| | | double monRealCapMin = BattCapFactory.GetMonomerCap(batteryStdList.get(i).getMonCapStd(), hourRateMin, monData.getMinTestCap(), monData.getMaxMonVol(), monData.getMinMonVol(), batteryStdList.get(i).getMonVolStd(), BattCapFactory.CapType_Real); |
| | | monRealCapMin = Double.parseDouble(decimalFormat.format(monRealCapMin)); |
| | | minMonCapList.add(monRealCapMin); |
| | | |
| | | //获取最大单体实际容量 |
| | | int hourRateMax = BattCapFactory.GetHourRate(batteryStdList.get(i).getMonCapStd(), monData.getMaxTestCurr()); |
| | | double monRealCapMax = BattCapFactory.GetMonomerCap(batteryStdList.get(i).getMonCapStd(), hourRateMax, monData.getMaxTestCap(), monData.getMaxMonVol(), monData.getMinMonVol(), batteryStdList.get(i).getMonVolStd(), BattCapFactory.CapType_Real); |
| | | monRealCapMax = Double.parseDouble(decimalFormat.format(monRealCapMax)); |
| | | maxMonCapList.add(monRealCapMax); |
| | | |
| | | //获取平均单体实际容量 |
| | | int hourRateAvg = BattCapFactory.GetHourRate(batteryStdList.get(i).getMonCapStd(), monData.getAvgTestCurr()); |
| | | double monRealCapAvg = BattCapFactory.GetMonomerCap(batteryStdList.get(i).getMonCapStd(), hourRateAvg, monData.getAvgTestCap(), monData.getMaxMonVol(), monData.getMinMonVol(), batteryStdList.get(i).getMonVolStd(), BattCapFactory.CapType_Real); |
| | | avgMonCapSum+=monRealCapAvg; |
| | | count++; |
| | | } |
| | | } |
| | | } |
| | | minMonCap = min(minMonCapList); |
| | | maxMonCap = max(maxMonCapList); |
| | | avgMonCap = avgMonCapSum / count; |
| | | avgMonCap=Double.parseDouble(decimalFormat.format(avgMonCap)); |
| | | |
| | | //单体容量 |
| | | /*minCapList.add(minMonCap); |
| | | maxCapList.add(maxMonCap); |
| | | averageCapList.add(avgMonCap);*/ |
| | | |
| | | resMap.put(temp.getStationName(),null); |
| | | } |
| | | return new Response<>().set(1,resMap); |
| | | |
| | | } |
| | | |
| | | public double min(List<Double> list){ |
| | | double min=0.00; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if(i==0){ |
| | | min=list.get(i); |
| | | }else{ |
| | | if (list.get(i)<min){ |
| | | min =list.get(i); |
| | | } |
| | | } |
| | | } |
| | | return min; |
| | | |
| | | } |
| | | |
| | | public double max(List<Double> list){ |
| | | double max=0.00; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if(i==0){ |
| | | max=list.get(i); |
| | | }else{ |
| | | if (list.get(i)>max){ |
| | | max =list.get(i); |
| | | } |
| | | } |
| | | } |
| | | return max; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | BatteryEndurance endurance = new BatteryEndurance(); |