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