package com.moral.api.pojo.vo.cityAQI; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.dto.cityAQI.PollutionDaysAndProportion; import lombok.Data; import java.util.List; /** * @ClassName BarChartTableOfPollutionLevelVO * @Description 柱状图数据表格的VO * @Author 陈凯裕 * @Date 2021/11/22 9:05 * @Version TODO **/ @Data public class BarChartTableOfPollutionLevelVO { /* * 时间 * */ private String time; /* * 优 * */ private String excellent; /* * 良 * */ private String good; /* * 轻度污染 * */ private String mild; /* * 中度污染 * */ private String middle; /* * 重度污染 * */ private String serious; /* * 严重污染 * */ private String server; /* * 合计 * */ private String total; public static BarChartTableOfPollutionLevelVO convert(MonthlyPollutionLevel data){ BarChartTableOfPollutionLevelVO vo = new BarChartTableOfPollutionLevelVO(); vo.setTime(data.getTime().replaceAll("-","年")+"月"); List pollutionDaysAndProportions = data.getPollutionDaysAndProportions(); if(pollutionDaysAndProportions.size()!=6) return null; //拼接每个污染等级天数和百分比 PollutionDaysAndProportion excellentProportion = pollutionDaysAndProportions.get(0); PollutionDaysAndProportion goodProportion = pollutionDaysAndProportions.get(1); PollutionDaysAndProportion mildProportion = pollutionDaysAndProportions.get(2); PollutionDaysAndProportion middleProportion = pollutionDaysAndProportions.get(3); PollutionDaysAndProportion seriousProportion = pollutionDaysAndProportions.get(4); PollutionDaysAndProportion serverProportion = pollutionDaysAndProportions.get(5); String excellent = excellentProportion.getDays()+"("+excellentProportion.getProportion()+")"; String good = goodProportion.getDays()+"("+goodProportion.getProportion()+")"; String mild = mildProportion.getDays()+"("+mildProportion.getProportion()+")"; String middle = middleProportion.getDays()+"("+middleProportion.getProportion()+")"; String serious = seriousProportion.getDays()+"("+seriousProportion.getProportion()+")"; String server = serverProportion.getDays()+"("+serverProportion.getProportion()+")"; //拼接共计天数 Integer totalDays = excellentProportion.getDays()+ goodProportion.getDays()+ mildProportion.getDays()+ middleProportion.getDays()+ seriousProportion.getDays()+ serverProportion.getDays(); vo.setTotal(totalDays+"(100%)"); vo.setExcellent(excellent); vo.setGood(good); vo.setMild(mild); vo.setMiddle(middle); vo.setSerious(serious); vo.setServer(server); return vo; } }