list中不重复的修改已有节点或添加新节点 --2016年12月12日--oapp--薪资区间查询数据转换
private List<SalaryMonthData> getSalaryMonthDataListFromSap(SalaryReq req) {
Map<String, Object> map = new HashMap<String, Object>();
List<SalaryMonthData> result = new ArrayList<SalaryMonthData>();
SalaryMonthData model;
float countYfSal = 0;
float countSfSal = 0;
float countYfBon = 0;
float countSfBon = 0;
List<Map<String, Object>> payList = (List<Map<String, Object>>) map.get("etPayList");
for (Map<String, Object> e : payList) {
String fpEnd = (String) e.get("fpend");
fpEnd = DateUtils.dateToString(DateUtils.stringToDate(fpEnd), "yyyy年MM月");
if (StringUtil.isNotBlank(fpEnd)) {
// 获取实体类
model = getSalaryMonthDataModel(fpEnd, result);
String paytyText = (String) e.get("paytyText");
if ("工资".equals(paytyText)) {
model.setYfSalary((String) e.get("betrg1911"));
model.setSfSalary((String) e.get("betrg559"));
countYfSal += Float.parseFloat(model.getYfSalary());
countSfSal += Float.parseFloat(model.getSfSalary());
} else if ("奖金".equals(paytyText)) {
model.setYfBonus((String) e.get("betrg1911"));
model.setSfBonus((String) e.get("betrg559"));
countYfBon += Float.parseFloat(model.getYfBonus());
countSfBon += Float.parseFloat(model.getSfBonus());
}
}
}
model = getSalaryMonthDataModel("合计", result);
model.setYfSalary(countYfSal + "");
model.setSfSalary(countSfSal + "");
model.setYfBonus(countYfBon + "");
model.setSfBonus(countSfBon + "");
return result;
}
/**
* 返回月份对应的实体类,若list中没有则在list中添加并返回
*
* @param fb
* 不能为空
* @param list
* @return
*/
private SalaryMonthData getSalaryMonthDataModel(String fb, List<SalaryMonthData> list) {
SalaryMonthData result = null;
for (SalaryMonthData e : list) {
if (fb.equals(e.getName())) {
result = e;
break;
}
}
if (null == result) {
result = new SalaryMonthData();
result.setName(fb);
list.add(result);
}
return result;
}