| | |
| | | package com.whyc.service; |
| | | |
| | | import com.sun.org.glassfish.gmbal.NameValue; |
| | | import com.whyc.constant.BattSingalIdEnum; |
| | | import com.whyc.constant.Capperformance; |
| | | import com.whyc.constant.BattCapperformanceEnum; |
| | | import com.whyc.constant.DevAlarmEnum; |
| | | import com.whyc.constant.PowerAlarmEnum; |
| | | import com.whyc.dto.*; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalTime; |
| | | import java.util.*; |
| | | import java.util.concurrent.CountDownLatch; |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | |
| | | private BatttestdataIdService battTestDataIdService; |
| | | |
| | | |
| | | |
| | | public Response getAll(Integer userId) { |
| | | Response response = new Response(); |
| | | Map<String,Object> map = new HashMap<>(); |
| | |
| | | testDataInfoStatistics(userId, map); |
| | | latch.countDown(); |
| | | }); |
| | | //TODO 设备数量信息统计 |
| | | //10类基础资产信息统计 |
| | | poolExecutor.execute(() -> { |
| | | //deviceInfoStatistics(userId, map); |
| | | deviceInfoStatistics(userId, map); |
| | | latch.countDown(); |
| | | }); |
| | | |
| | |
| | | return response; |
| | | } |
| | | |
| | | private void deviceInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | NameValueIntDto baseDto = new NameValueIntDto(); |
| | | int powerCount = powerInfService.getListByUserId(userId).size(); |
| | | map.put("powerCount", powerCount); |
| | | List<BattInf> battInfList = battInfService.getListByUserId(userId); |
| | | int battCount = battInfList.size(); |
| | | Map<Integer, List<BattInf>> devIdMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getDevId)); |
| | | map.put("devCount", devIdMap.size()); |
| | | map.put("battCount",battCount); |
| | | int monCountTotal = 0; |
| | | for (int i = 0; i < battCount; i++) { |
| | | int monCount = battInfList.get(i).getMoncount().intValue(); |
| | | monCountTotal += monCount; |
| | | } |
| | | map.put("monCount", monCountTotal); |
| | | |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | //本年第一天 |
| | | LocalDateTime yearStart = now.withDayOfYear(1).withHour(0).withMinute(0).withSecond(0).withNano(0); |
| | | Date yearStartTime = DateUtil.convertToDate(yearStart); |
| | | //去年的第一天 |
| | | LocalDateTime lastYearStart = now.minusYears(1).withDayOfYear(1).withHour(0).withMinute(0).withSecond(0).withNano(0); |
| | | //去年的最后一天 |
| | | int lastYear = now.minusYears(1).getYear(); |
| | | LocalDate lastDayOfLastYear = LocalDate.of(lastYear, 12, 31); |
| | | LocalDateTime lastYearEnd = lastDayOfLastYear.atTime(LocalTime.MAX); |
| | | Date lastYearStartTime = DateUtil.convertToDate(lastYearStart); |
| | | Date lastYearEndTime = DateUtil.convertToDate(lastYearEnd); |
| | | |
| | | //本年已放电电池数量 |
| | | //本年未放电电池数量 |
| | | //去年已放电电池数量 |
| | | //去年未放电电池数量 |
| | | int hrDisBattCount = battTestDataInfService.getHrDisCount(userId,yearStartTime,null); |
| | | int hrNoDisBattCount = battCount - hrDisBattCount; |
| | | int hrDisBattCountLastYear = battTestDataInfService.getHrDisCount(userId,lastYearStartTime,lastYearEndTime); |
| | | int hrNoDisBattCountLastYear = battCount - hrDisBattCountLastYear; |
| | | map.put("hrDisBattCount", hrDisBattCount); |
| | | map.put("hrNoDisBattCount", hrNoDisBattCount); |
| | | map.put("hrDisBattCountLastYear", hrDisBattCountLastYear); |
| | | map.put("hrNoDisBattCountLastYear", hrNoDisBattCountLastYear); |
| | | |
| | | //本年优良劣化损坏数量 |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,yearStartTime,null); |
| | | long battGoodCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_1.getStateName())).count(); |
| | | long battBadCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())).count(); |
| | | long battDamageCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())).count(); |
| | | //去年优良劣化损坏数量 |
| | | List<BattCapInfoDto> battCapInfoListLastYear = getBattCapInfo(battInfList,lastYearStartTime,lastYearEndTime); |
| | | long battGoodCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_1.getStateName())).count(); |
| | | long battBadCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())).count(); |
| | | long battDamageCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())).count(); |
| | | map.put("battGoodCount", battGoodCount); |
| | | map.put("battBadCount", battBadCount); |
| | | map.put("battDamageCount", battDamageCount); |
| | | map.put("battGoodCountLastYear", battGoodCountLastYear); |
| | | map.put("battBadCountLastYear", battBadCountLastYear); |
| | | map.put("battDamageCountLastYear", battDamageCountLastYear); |
| | | //TODO 优良电源数量 |
| | | map.put("powerGoodCount","优良判定标准待确定" ); |
| | | } |
| | | |
| | | |
| | | private void alarmRealtimeStatistics(Integer userId, Map<String, Object> map) { |
| | | //电池告警信息统计 |
| | | List<AlarmDto> battAlarmListNew = new ArrayList<>(); |
| | | List<AlarmDto> battAlarmList = battAlarmService.getListByUserId(userId); |
| | | List<AlarmDto> battAlarmList = battAlarmService.getListByUserId(userId, null); |
| | | //合并单体告警的告警信息,对AlarmDto中AlmId 在17~28之间的进行合并. |
| | | Map<String, List<AlarmDto>> mergeMap = battAlarmList.stream() |
| | | .filter(alarm -> alarm.getAlmId() >= 17 && alarm.getAlmId() <= 28) |
| | |
| | | }); |
| | | |
| | | //设备告警信息统计 |
| | | List<AlarmDto> devAlarmList = devAlarmService.getListByUserId(userId); |
| | | List<AlarmDto> devAlarmList = devAlarmService.getListByUserId(userId,null); |
| | | //对告警名称赋值 |
| | | devAlarmList.forEach(alarmDto -> { |
| | | alarmDto.setAlmName(DevAlarmEnum.getValue(alarmDto.getAlmId())); |
| | |
| | | |
| | | //电源告警信息统计 |
| | | List<AlarmDto> powerAlarmListNew = new ArrayList<>(); |
| | | List<AlarmDto> powerAlarmList = powerAlarmService.getListByUserId(userId); |
| | | List<AlarmDto> powerAlarmList = powerAlarmService.getListByUserId(userId,null); |
| | | //整流器总故障合并 |
| | | //ALARM_3300001(3300001,"整流器1总故障告警"), |
| | | // ALARM_3300002(3300002,"整流器2总故障告警"), |
| | |
| | | } |
| | | |
| | | |
| | | private void testDataInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | protected void testDataInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | List<BatttestdataInf> testInfList = battTestDataInfService.getListByUserId(userId); |
| | | //过滤出本月的 |
| | | LocalDateTime startOfMonth = DateUtil.getStartOfMonth(); |
| | |
| | | return testInfOfMonth; |
| | | } |
| | | |
| | | private void batteryInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | protected void batteryInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | List<BattInf> battInfList = battInfService.getListByUserId(userId); |
| | | Map<String, List<BattInf>> brandMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getProduct)); |
| | | Map<Float, List<BattInf>> volMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getMonvolstd)); |
| | |
| | | map.put("battGroupInfo_vol",volList); |
| | | } |
| | | |
| | | private void powerInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | protected void powerInfoStatistics(Integer userId, Map<String, Object> map) { |
| | | List<PowerInf> powerInfList = powerInfService.getListByUserId(userId); |
| | | Map<String, List<PowerInf>> brandMap = powerInfList.stream().collect(Collectors.groupingBy(PowerInf::getCompany)); |
| | | Map<Integer, List<PowerInf>> typeMap = powerInfList.stream().collect(Collectors.groupingBy(PowerInf::getPowerType)); |
| | |
| | | battInf.setProduct(brand); |
| | | //查询满足条件的蓄电池列表 |
| | | List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); |
| | | //data,和data2分别返回 统计数量和 站点优良,劣化,损坏 前二的信息 |
| | | List<NameValueIntDto> data = new ArrayList<>(); |
| | | List<NameValueListDto> data2 = new ArrayList<>(); |
| | | //筛选出 站点优良,劣化,损坏 的电池组,并按照这个字段分组 |
| | | List<BattCapInfoDto> goodList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_1.getStateName())) |
| | | List<BattCapInfoDto> goodList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_1.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap).reversed()).collect(Collectors.toList()); |
| | | if(goodList.size()==0){ |
| | | data.add(new NameValueIntDto("优良",0)); |
| | |
| | | data.add(new NameValueIntDto("优良",goodList.size())); |
| | | data2.add(new NameValueListDto("优良",goodList.subList(0, Math.min(goodList.size(), 2)))); |
| | | } |
| | | List<BattCapInfoDto> badList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())) |
| | | List<BattCapInfoDto> badList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | if(badList.size()==0){ |
| | | data.add(new NameValueIntDto("劣化",0)); |
| | |
| | | data.add(new NameValueIntDto("劣化",badList.size())); |
| | | data2.add(new NameValueListDto("劣化",badList.subList(0, Math.min(badList.size(), 2)))); |
| | | } |
| | | List<BattCapInfoDto> damageList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())) |
| | | List<BattCapInfoDto> damageList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | if(damageList.size()==0){ |
| | | data.add(new NameValueIntDto("损坏",0)); |
| | |
| | | battInf.setInuseTime(inuseTimeStart); |
| | | //查询满足条件的蓄电池列表 |
| | | List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); |
| | | |
| | | //data,根据品牌分组统计百分比 |
| | | Map<String, List<BattCapInfoDto>> brandMap = battCapInfoList.stream().collect(Collectors.groupingBy(BattCapInfoDto::getProduct)); |
| | | List<NameValueListDto<NameValueDto>> data = new ArrayList<>(); |
| | | brandMap.forEach((brand,battCapInfoListTemp)->{ |
| | | //k -品牌 |
| | | long goodCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_1.getStateName())).count(); |
| | | long badCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())).count(); |
| | | long damageCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())).count(); |
| | | long goodCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_1.getStateName())).count(); |
| | | long badCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())).count(); |
| | | long damageCount = battCapInfoListTemp.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())).count(); |
| | | long total = goodCount + badCount + damageCount; |
| | | //良好,劣化,损坏的百分比.(保留0位小数) |
| | | int goodPercent = Math.round((float) goodCount / total * 100); |
| | |
| | | }); |
| | | //data2,优良里面最大的和最小的品牌 |
| | | List<NameValueListDto<NameValueDto>> data2 = new ArrayList<>(); |
| | | List<BattCapInfoDto> goodList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_1.getStateName())) |
| | | List<BattCapInfoDto> goodList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_1.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | NameValueListDto<NameValueDto> goodListDto = new NameValueListDto<>(); |
| | | List<NameValueDto> goodListValue = new ArrayList<>(); |
| | |
| | | goodListDto.setValue(goodListValue); |
| | | data2.add(goodListDto); |
| | | //劣化里面最大的和最小的品牌 |
| | | List<BattCapInfoDto> badList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())) |
| | | List<BattCapInfoDto> badList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | NameValueListDto<NameValueDto> badListDto = new NameValueListDto<>(); |
| | | List<NameValueDto> badListValue = new ArrayList<>(); |
| | |
| | | data2.add(badListDto); |
| | | |
| | | //损坏里面最大的和最小的品牌 |
| | | List<BattCapInfoDto> damageList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())) |
| | | List<BattCapInfoDto> damageList = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | |
| | | NameValueListDto<NameValueDto> damageListDto = new NameValueListDto<>(); |
| | |
| | | battInf.setProduct(brand); |
| | | //查询满足条件的蓄电池列表 |
| | | List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); |
| | | List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); |
| | | |
| | | //data,TODO 投运时间的维度参数,先固定变量,后续从数据库获取 |
| | | //time1和time2的单位为年 |
| | |
| | | List<NameValueListDto<NameValueIntDto>> data = new ArrayList<>(); |
| | | NameValueListDto<NameValueIntDto> time1Dto = new NameValueListDto<>(); |
| | | time1Dto.setName(time1+"年内"); |
| | | List<BattCapInfoDto> badListOfTime1 = time1List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())) |
| | | List<BattCapInfoDto> badListOfTime1 = time1List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | List<BattCapInfoDto> damageListOfTime1 = time1List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())) |
| | | List<BattCapInfoDto> damageListOfTime1 = time1List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | NameValueIntDto time1BadDto = new NameValueIntDto(); |
| | | time1BadDto.setName("劣化"); |
| | |
| | | |
| | | NameValueListDto<NameValueIntDto> time12Dto = new NameValueListDto<>(); |
| | | time12Dto.setName(time1+"-"+time2+"年"); |
| | | List<BattCapInfoDto> badListOfTime12 = time12List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())) |
| | | List<BattCapInfoDto> badListOfTime12 = time12List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | List<BattCapInfoDto> damageListOfTime12 = time12List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())) |
| | | List<BattCapInfoDto> damageListOfTime12 = time12List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | NameValueIntDto time12BadDto = new NameValueIntDto(); |
| | | time12BadDto.setName("劣化"); |
| | |
| | | |
| | | NameValueListDto<NameValueIntDto> time2Dto = new NameValueListDto<>(); |
| | | time2Dto.setName(time2+"年以上"); |
| | | List<BattCapInfoDto> badListOfTime2 = time2List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())) |
| | | List<BattCapInfoDto> badListOfTime2 = time2List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_2.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | List<BattCapInfoDto> damageListOfTime2 = time2List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())) |
| | | List<BattCapInfoDto> damageListOfTime2 = time2List.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(BattCapperformanceEnum.BATTSTATE_3.getStateName())) |
| | | .sorted(Comparator.comparing(BattCapInfoDto::getRealCap)).collect(Collectors.toList()); |
| | | NameValueIntDto time2BadDto = new NameValueIntDto(); |
| | | time2BadDto.setName("劣化"); |
| | |
| | | |
| | | } |
| | | |
| | | public List<BattCapInfoDto> getBattCapInfo(List<BattInf> battInfList) { |
| | | public List<BattCapInfoDto> getBattCapInfo(List<BattInf> battInfList,Date startTime, Date endTime) { |
| | | //获取核容优劣,损坏参数 |
| | | List<AppParam> paramList=appParamService.getHrParam(); |
| | | Float badValue=0f; |
| | |
| | | capInfo.setInuseTime(battInf.getInuseTime()); |
| | | |
| | | //2.获取电池组在给定时间段的放电记录(指定时间段的标准核容放电) |
| | | BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), battInf.getInuseTime(),null); |
| | | //BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), battInf.getInuseTime(),null); |
| | | BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), startTime,endTime); |
| | | if (testInf == null) { |
| | | capInfo.setRealCap(0f); |
| | | capInfo.setCapPercentage("0"); |
| | | capInfo.setPerformance(Capperformance.BATTSTATE_4.getStateName()); |
| | | capInfo.setPerformance(BattCapperformanceEnum.BATTSTATE_4.getStateName()); |
| | | continue; |
| | | } |
| | | //找这次放电的最后一笔数据 |
| | |
| | | if (idDataList == null || idDataList.size() == 0) { |
| | | capInfo.setRealCap(0f); |
| | | capInfo.setCapPercentage("0"); |
| | | capInfo.setPerformance(Capperformance.BATTSTATE_4.getStateName()); |
| | | capInfo.setPerformance(BattCapperformanceEnum.BATTSTATE_4.getStateName()); |
| | | continue; |
| | | } |
| | | Float moncapStd = battInf.getMoncapstd(); |
| | | int hourRate = BattCapFactory.GetHourRate(testInf.getTestCap(), testInf.getTestCurr()); |
| | | Float groupRealCap = (float) BattCapFactory.GetMonomerCap(testInf.getTestCap(), hourRate, testInf.getTestCap(), testInf.getMaxMonvol(), testInf.getMinMonvol(), testInf.getGroupVol(), BattCapFactory.CapType_Real); |
| | | Float groupRealCap = (float) BattCapFactory.GetMonomerCap(battInf.getMoncapstd(), hourRate, testInf.getTestCap(), testInf.getMaxMonvol(), testInf.getMinMonvol(), testInf.getGroupVol(), BattCapFactory.CapType_Real); |
| | | capInfo.setRealCap(groupRealCap); |
| | | if (groupRealCap >= moncapStd * badValue) { |
| | | capInfo.setPerformance(Capperformance.BATTSTATE_1.getStateName()); |
| | | capInfo.setPerformance(BattCapperformanceEnum.BATTSTATE_1.getStateName()); |
| | | } |
| | | if (groupRealCap <= moncapStd * damageValue) { |
| | | capInfo.setPerformance(Capperformance.BATTSTATE_3.getStateName()); |
| | | capInfo.setPerformance(BattCapperformanceEnum.BATTSTATE_3.getStateName()); |
| | | } |
| | | if ((groupRealCap > moncapStd * damageValue) && (groupRealCap < moncapStd * badValue)) { |
| | | capInfo.setPerformance(Capperformance.BATTSTATE_2.getStateName()); |
| | | capInfo.setPerformance(BattCapperformanceEnum.BATTSTATE_2.getStateName()); |
| | | } |
| | | //保留5位小数 |
| | | String capPercentage = String.format("%.5f", (groupRealCap / battInf.getMoncapstd() * 100)); |