自我整理:list中不重复的修改已有节点或添加新节点

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;

}

转载于:https://my.oschina.net/u/2439861/blog/804385

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值