From a867557192408a8ea7050b40b8dd157054146430 Mon Sep 17 00:00:00 2001 From: whycxzp <perryhsu@163.com> Date: 星期五, 19 三月 2021 17:26:05 +0800 Subject: [PATCH] 更新 部分电池数据统计接口 --- src/main/java/com/whyc/service/BatteryDataService.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/whyc/service/BatteryDataService.java b/src/main/java/com/whyc/service/BatteryDataService.java index af43a28..af8f182 100644 --- a/src/main/java/com/whyc/service/BatteryDataService.java +++ b/src/main/java/com/whyc/service/BatteryDataService.java @@ -1,8 +1,11 @@ package com.whyc.service; +import com.whyc.dto.DataAnalysisFloatDTO; import com.whyc.dto.Response; import com.whyc.mapper.BatteryDataMapper; import com.whyc.pojo.BatteryEndurance; +import com.whyc.pojo.BatteryRTState; +import com.whyc.util.MathUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -41,7 +44,6 @@ } } } - //鎺掑簭 TreeMap<String, Integer> maps = new TreeMap<>(new Comparator<String>() { @Override @@ -57,9 +59,61 @@ } public Response getBatteryCap(Integer userId) { - return null; + List<BatteryRTState> batteryRTStates = mapper.getBatteryCap(userId); + List<Float> percents = Arrays.asList(0.8f, 0.85f,0.9f,0.95f); + Map resultMap = batteryCapAnalysis(batteryRTStates,percents); + return new Response<Map>().set(1,resultMap); } + private Map batteryCapAnalysis(List<BatteryRTState> batteryRTStates, List<Float> percents) { + Map<String,Integer> map = new HashMap<>(); + + for (int i = 0; i < batteryRTStates.size(); i++) { + //姣忎竴涓叿浣撶殑缁埅杩涜鍒嗙粍 + if((Float)MathUtil.divide(batteryRTStates.get(i).getBatteryRealCap(),batteryRTStates.get(i).getMonCapStd(),true)<percents.get(0)){ + map.put(percents.get(0)+"浠ヤ笅",Optional.ofNullable(map.get(percents.get(0)+"浠ヤ笅")).orElse(0)+1); + } + else if((Float)MathUtil.divide(batteryRTStates.get(i).getBatteryRealCap(),batteryRTStates.get(i).getMonCapStd(),true)>percents.get(percents.size()-1)){ + map.put(percents.get(percents.size()-1)+"浠ヤ笂",Optional.ofNullable(map.get(percents.get(percents.size()-1)+"浠ヤ笂")).orElse(0)+1); + }else { + for (int j = 0; j < percents.size(); j++) { + if ((Float)MathUtil.divide(batteryRTStates.get(i).getBatteryRealCap(),batteryRTStates.get(i).getMonCapStd(),true) <= percents.get(j)) { + map.put(percents.get(j - 1) + "鍒�" + percents.get(j), Optional.ofNullable(map.get(percents.get(j - 1) + "鍒�" + percents.get(j))).orElse(0) + 1); + break; + } + } + } + } + //鎺掑簭 + TreeMap<String, Integer> maps = new TreeMap<>(new Comparator<String>() { + @Override + public int compare(String o1, String o2) { + return o1.compareTo(o2); + } + }); + + maps.putAll(map); + map.clear(); + + return maps; + } + + public Response getMonVolAndTemp(Integer userId) { + List<DataAnalysisFloatDTO> dataList= mapper.getMonVolAndTemp(userId); + return new Response<>().set(1,dataList); + } + + public Response getMonRes(Integer userId) { + DataAnalysisFloatDTO data= mapper.getMonRes(userId); + return new Response<>().set(1,data); + } + + public Response getMonCap(Integer userId) { + DataAnalysisFloatDTO data= mapper.getMonCap(userId); + return new Response<>().set(1,data); + } + + public static void main(String[] args) { BatteryEndurance endurance = new BatteryEndurance(); endurance.setEnduranceActualTime(1.5); -- Gitblit v1.9.1