//将同种能源类型的记录的used和energy值累加合并
private List<ClassifyCollectDTO> getTotalListByEnergytype(List<ClassifyCollectDTO> sqlList) {
// 按能源类型分组
Map<Short, List<ClassifyCollectDTO>> energyMap = new HashMap<Short, List<ClassifyCollectDTO>>();
List<ClassifyCollectDTO> etList;
short energytype;
for (ClassifyCollectDTO dto : sqlList) {
energytype = dto.getEnergytype();
if (energyMap.containsKey(energytype)) {
etList = energyMap.get(energytype);
} else {
etList = new LinkedList<ClassifyCollectDTO>();
energyMap.put(energytype, etList);
}
etList.add(dto);
}
Iterator<Short> keys = energyMap.keySet().iterator();
Short key;
List<ClassifyCollectDTO> oneEnergyList;
sqlList = new ArrayList<ClassifyCollectDTO>();
// 遍历map,同种能源类型的used和energy值 做累加...
while (keys.hasNext()) {
key = keys.next();
oneEnergyList = energyMap.get(key);
ClassifyCollectDTO dto;
if (oneEnergyList.size() > 1) {
BigDecimal totalused = BigDecimal.ZERO;
BigDecimal totalenergy = BigDecimal.ZERO;
for (int i = 0; i < oneEnergyList.size(); i++) {
dto = oneEnergyList.get(i);
totalused = totalused.add(dto.getUsed());
totalenergy = totalenergy.add(dto.getEnergy() == null ? BigDecimal.ZERO : dto.getEnergy());
if (i == oneEnergyList.size() - 1) {
dto.setUsed(totalused);
if (totalenergy.compareTo(BigDecimal.ZERO) == 1) {// totalenergy>0,则set;否则energy=null
dto.setEnergy(totalenergy);
}
sqlList.add(dto);
}
}
} else {
sqlList.add(oneEnergyList.get(0));
}
}
return sqlList;
}
private List<ClassifyCollectDTO> getTotalListByEnergytype(List<ClassifyCollectDTO> sqlList) {
// 按能源类型分组
Map<Short, List<ClassifyCollectDTO>> energyMap = new HashMap<Short, List<ClassifyCollectDTO>>();
List<ClassifyCollectDTO> etList;
short energytype;
for (ClassifyCollectDTO dto : sqlList) {
energytype = dto.getEnergytype();
if (energyMap.containsKey(energytype)) {
etList = energyMap.get(energytype);
} else {
etList = new LinkedList<ClassifyCollectDTO>();
energyMap.put(energytype, etList);
}
etList.add(dto);
}
Iterator<Short> keys = energyMap.keySet().iterator();
Short key;
List<ClassifyCollectDTO> oneEnergyList;
sqlList = new ArrayList<ClassifyCollectDTO>();
// 遍历map,同种能源类型的used和energy值 做累加...
while (keys.hasNext()) {
key = keys.next();
oneEnergyList = energyMap.get(key);
ClassifyCollectDTO dto;
if (oneEnergyList.size() > 1) {
BigDecimal totalused = BigDecimal.ZERO;
BigDecimal totalenergy = BigDecimal.ZERO;
for (int i = 0; i < oneEnergyList.size(); i++) {
dto = oneEnergyList.get(i);
totalused = totalused.add(dto.getUsed());
totalenergy = totalenergy.add(dto.getEnergy() == null ? BigDecimal.ZERO : dto.getEnergy());
if (i == oneEnergyList.size() - 1) {
dto.setUsed(totalused);
if (totalenergy.compareTo(BigDecimal.ZERO) == 1) {// totalenergy>0,则set;否则energy=null
dto.setEnergy(totalenergy);
}
sqlList.add(dto);
}
}
} else {
sqlList.add(oneEnergyList.get(0));
}
}
return sqlList;
}