diff --git a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java index 413aca182..321afe9fc 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -14,6 +14,7 @@ import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.math.NumberUtils; import weaver.general.BaseBean; import weaver.general.Util; @@ -131,23 +132,29 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt //假期余额信息 List> balanceOfLeaveDatas = getBalanceOfLeaveDatas(attend4Salary); - Map balanceMap = SalaryEntityUtil.convert2Map(balanceOfLeaveDatas, m -> m.get("id"), m -> m.get("2")); + Map> balanceMap = SalaryEntityUtil.convert2Map(balanceOfLeaveDatas, m -> m.get("id")); //给有考勤的赋值 List attendEmpIds = list.stream().map(attend -> { String resourceId = attend.get("resourceId"); - attend.put("balanceOfLeave2", balanceMap.get(resourceId)); + Map map = balanceMap.getOrDefault(resourceId, new HashMap<>()); + for (String key : map.keySet()) { + attend.put("balanceOfLeave_" + key, map.get(key)); + } return resourceId; }).collect(Collectors.toList()); //没有考勤,但有假期余额的人赋值 - List> balanceOfLeaveList = balanceMap.keySet().stream() + List> balanceOfLeaveList = balanceMap.keySet().stream() .filter(k -> !attendEmpIds.contains(k)) .map(k -> { - Map map = new HashMap<>(); - map.put("resourceId", k); - map.put("balanceOfLeave2", balanceMap.get(k)); - return map; + Map result = new HashMap<>(); + result.put("resourceId", k); + Map map = balanceMap.get(k); + for (String key : map.keySet()) { + result.put("balanceOfLeave_" + key, map.get(key)); + } + return result; }) .collect(Collectors.toList()); list.addAll(balanceOfLeaveList); @@ -167,13 +174,16 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt paramsMap.put("status", "9"); paramsMap.put("isNoAccount", true); List> columns = (List>) commandExecutor.execute(new GetSearchListCmd(paramsMap, user)).get("columns"); - Map map = Maps.newHashMapWithExpectedSize(2); - //年假 - map.put("code", "balanceOfLeave" + 2); - map.put("name", columns.stream().filter(m -> "2".equals(m.get("key"))).findFirst().map(m -> m.get("title")).orElse("年假余额")); - List> balanceOfLeaveColumns = new ArrayList<>(); - balanceOfLeaveColumns.add(map); + List> balanceOfLeaveColumns = columns.stream() + .filter(column -> NumberUtils.isCreatable(column.get("key"))) + .map(column -> { + Map map = Maps.newHashMapWithExpectedSize(2); + map.put("code", "balanceOfLeave_" + column.get("key")); + map.put("name", "假期余额-" + column.get("title")); + return map; + }).collect(Collectors.toList()); + return balanceOfLeaveColumns; }