From eb61811766d8fd78a2c185e55f5bbb1f3899db5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 10 Nov 2023 10:55:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=87=E6=9C=9F=E4=BD=99=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RemoteAttend4SalaryServiceImpl.java | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) 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; }