参考代码
public List monthFormListFormat(List oriSalaryList) {
//未作任何处理的list
if(oriSalaryList==null||oriSalaryList.size()==0)
return null;
int len = oriSalaryList.size();
//目的List
List desSalaryList = oriSalaryList;
//第一行的对象
SalaryDetail firstLineSalary = oriSalaryList.get(0);
//小计的对象
SalaryDetail subtotalSalary = new SalaryDetail();
//最后总计的对象
SalaryDetail sumtotalSalary = new SalaryDetail();
//存放小计对象的位置,以及小计对象
Map subtotalMap = new HashMap();
//插入了几行数据
int n = 0;
for(int i = 0;i
if(firstLineSalary.getUserType().equals(oriSalaryList.get(i).getUserType())){
if(i==len-1){
subtotalSalary = getSubTotalSum(subtotalSalary, oriSalaryList.get(i),"1");
subtotalSalary.setUserType("小计");
subtotalSalary.setRowSpanCount(1);
subtotalMap.put(i, subtotalSalary);
sumtotalSalary = getSubTotalSum(sumtotalSalary, subtotalSalary,"1");
break;
}
//如果用户类型相同则进行相加,以便得到小计的值
subtotalSalary = getSubTotalSum(subtotalSalary, oriSalaryList.get(i),"1");
}else{
if(i==len-1){
//把最后一条记录以上的计算一下,并清空【小计】
subtotalSalary.setUserType("小计");
subtotalSalary.setRowSpanCount(1);
sumtotalSalary = getSubTotalSum(sumtotalSalary, subtotalSalary,"1");
subtotalMap.put(i-1, subtotalSalary);
subtotalSalary = new SalaryDetail();