From 05d62d511d819d7752b361b63f2451d0a4f2e638 Mon Sep 17 00:00:00 2001 From: whycxzp <perryhsu@163.com> Date: 星期二, 23 三月 2021 11:15:13 +0800 Subject: [PATCH] 更新 部分电池数据统计接口 --- src/main/java/com/whyc/service/BatteryDataService.java | 80 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 79 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/whyc/service/BatteryDataService.java b/src/main/java/com/whyc/service/BatteryDataService.java index 89570ae..6d6258c 100644 --- a/src/main/java/com/whyc/service/BatteryDataService.java +++ b/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(); -- Gitblit v1.9.1