月汇总 数据重组 java后台

//用户重组数据
List lstName = new ArrayList();
int num = 0; //次数

//获取返回结果中的数据
Map list1 = null;
if (data.size() > 0) {
//循环结果集中的数据
for (int i = 0; i < data.size(); i++) {
/**
* 第一次循环时 不管怎样 先将第一条结果数据重组带lstName集合中
*/
if (0 < i) {
/**
* 第二次循环的时候 获取循环的值 然后判断 前一个值和后一个值是否相等
*/
list1 = (Map) data.get(i);
// 循环重组之后的值
for (int j = num; j < lstName.size(); j++) {
Map mapName = (Map) lstName.get(num);
if (mapName.get("name").equals(list1.get("name"))) { //判断是否是同一个人
if (mapName.get("year").equals(list1.get("year"))) { //如果是同一个人 判断是否是同一年
/**
* 如果是同一人 且同一年的话 进行重组,将月份进行计算 总和
*/
Map mapStr = new HashMap();
mapStr.put("name", list1.get("name"));
mapStr.put("createby", list1.get("createby"));
mapStr.put("status", list1.get("status"));
mapStr.put("status_desc", list1.get("status_desc"));
mapStr.put("year", list1.get("year"));
mapStr.put("m1", sumCount(list1.get("m1"), mapName.get("m1")));
mapStr.put("m2", sumCount(list1.get("m2"), mapName.get("m2")));
mapStr.put("m3", sumCount(list1.get("m3"), mapName.get("m3")));
mapStr.put("m4", sumCount(list1.get("m4"), mapName.get("m4")));
mapStr.put("m5", sumCount(list1.get("m5"), mapName.get("m5")));
mapStr.put("m6", sumCount(list1.get("m6"), mapName.get("m6")));
mapStr.put("m7", sumCount(list1.get("m7"), mapName.get("m7")));
mapStr.put("m8", sumCount(list1.get("m8"), mapName.get("m8")));
mapStr.put("m9", sumCount(list1.get("m9"), mapName.get("m9")));
mapStr.put("m10", sumCount(list1.get("m10"), mapName.get("m10")));
mapStr.put("m11", sumCount(list1.get("m11"), mapName.get("m11")));
mapStr.put("m12", sumCount(list1.get("m12"), mapName.get("m12")));

//获取所有月份 的值,进行汇总
Integer sumcount = sumCount(mapStr.get("m1"), mapStr.get("m2"), mapStr.get("m3"), mapStr.get("m4"), mapStr.get("m5"),
mapStr.get("m6"), mapStr.get("m7"), mapStr.get("m8"), mapStr.get("m9"), mapStr.get("m10"), mapStr.get("m11"), mapStr.get("m12"));
mapStr.put("numcount", sumcount);
lstName.remove(num);
lstName.add(mapStr);

}else {
lstName.add(mapPut(list1));
num++;
}

} else {
lstName.add(mapPut(list1));
num++;

}
}

} else {

lstName.add(data.get(i));
}
}
}


outMap.put(CommonAttribute.TOTALPROPERTY, lstName.size());
outMap.put(CommonAttribute.DATAROOT, lstName);

}
public Map mapPut(Map map){ //初始化map
Map mapTemp = new HashMap();
mapTemp.put("name", map.get("name"));
mapTemp.put("createby", map.get("createby"));
mapTemp.put("status", map.get("status"));
mapTemp.put("status_desc", map.get("status_desc"));
mapTemp.put("year", map.get("year"));
mapTemp.put("m1", "0");
mapTemp.put("m2", "0");
mapTemp.put("m3", "0");
mapTemp.put("m4", "0");
mapTemp.put("m5", "0");
mapTemp.put("m6", "0");
mapTemp.put("m7", "0");
mapTemp.put("m8", "0");
mapTemp.put("m9", "0");
mapTemp.put("m10", "0");
mapTemp.put("m11", "0");
mapTemp.put("m12", "0");
mapTemp.put("numcount", "0");
return map;
}

public int sumCount(Object obj1, Object obj2) { //求和 两个参数相加
int sum = 0;
int count1 = Integer.parseInt(obj1.toString());
int count2 = Integer.parseInt(obj2.toString());
sum = count1 + count2;
return sum;
}

public int sumCount(Object... obj) { //求和 多个参数相加
int sum = 0;
for (int i = 0; i < obj.length; i++) {
sum += Integer.parseInt(obj[i].toString());
}
return sum;
}
原文地址:https://www.cnblogs.com/wcnwcn/p/8398595.html