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.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @ClassName BarChartOfPollutionLevelDTO
|
* @Description 柱状图数据DTO
|
* @Author 陈凯裕
|
* @Date 2021/11/19 8:31
|
* @Version TODO
|
**/
|
@Data
|
public class BarChartOfPollutionLevelVO {
|
/*时间集合*/
|
List<String> time;
|
|
/*污染信息,一共有5个Map,分别对应五个污染等级
|
* Map中有三个字段
|
* pollution表示污染等级
|
* days存放天数集合
|
* proportion存放天数占比的集合*/
|
List<Map<String, Object>> values;
|
|
public static BarChartOfPollutionLevelVO convert(List<MonthlyPollutionLevel> datas) {
|
BarChartOfPollutionLevelVO vo = new BarChartOfPollutionLevelVO();
|
List<String> time = new ArrayList<>();
|
List<Map<String, Object>> values= new ArrayList<>();
|
//6个污染等级循环获取数据
|
for (int i = 0; i <= 5; i++) {
|
Map<String,Object> map = new HashMap<>();
|
List<String> proportion = new ArrayList<>();
|
List<Integer> days = new ArrayList<>();
|
String pollution = String.valueOf(i);
|
for (MonthlyPollutionLevel data : datas) {
|
if(!time.contains(data.getTime()))
|
time.add(data.getTime());
|
List<PollutionDaysAndProportion> pollutionDaysAndProportions = data.getPollutionDaysAndProportions();
|
for (PollutionDaysAndProportion pollutionDaysAndProportion : pollutionDaysAndProportions) {
|
if(pollutionDaysAndProportion.getPollutionLevel().equals(pollution)){
|
proportion.add(pollutionDaysAndProportion.getProportion());
|
days.add(pollutionDaysAndProportion.getDays());
|
}
|
}
|
}
|
map.put("proportion",proportion);
|
map.put("days",days);
|
map.put("pollution",pollution);
|
values.add(map);
|
}
|
vo.setTime(time);
|
vo.setValues(values);
|
return vo;
|
}
|
}
|