whycxzp
2021-03-23 05d62d511d819d7752b361b63f2451d0a4f2e638
src/main/java/com/whyc/service/BatteryDataService.java
@@ -8,10 +8,12 @@
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
@@ -166,14 +168,90 @@
            }
            //查询标准
            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();