diff --git a/src/com/engine/salary/remote/attend/service/RemoteAttend4SalaryService.java b/src/com/engine/salary/remote/attend/service/RemoteAttend4SalaryService.java index fde7fea78..e784bf361 100644 --- a/src/com/engine/salary/remote/attend/service/RemoteAttend4SalaryService.java +++ b/src/com/engine/salary/remote/attend/service/RemoteAttend4SalaryService.java @@ -7,11 +7,29 @@ import java.util.Map; public interface RemoteAttend4SalaryService { + /** + * 考勤报表列 + * @return + */ List> getColumns(); - + /** + * 考勤报表数据 + * @param attend4Salary + * @return + */ List> getDatas(Attend4Salary attend4Salary); + /** + * 获取假期余额列 + * @return + */ + List> getBalanceOfLeaveColumns(); - + /** + * 假期值 + * @param attend4Salary + * @return + */ + List> getBalanceOfLeaveDatas(Attend4Salary attend4Salary); } 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 e8b65d616..413aca182 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -3,10 +3,12 @@ package com.engine.salary.remote.attend.service.impl; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSONObject; import com.engine.core.impl.Service; +import com.engine.kq.cmd.balanceofleaverp.GetSearchListCmd; import com.engine.kq.cmd.report.GetKQReportCmd; import com.engine.salary.remote.attend.entity.Attend4Salary; import com.engine.salary.remote.attend.service.RemoteAttend4SalaryService; import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; @@ -94,6 +96,9 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt } } }); + + //假期余额字段 + columns.addAll(getBalanceOfLeaveColumns()); return columns; } @@ -122,13 +127,66 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt if (isLog) { log.info("获取的考勤数据,{}", JSONUtils.toJSONString(list)); } + + + //假期余额信息 + List> balanceOfLeaveDatas = getBalanceOfLeaveDatas(attend4Salary); + Map balanceMap = SalaryEntityUtil.convert2Map(balanceOfLeaveDatas, m -> m.get("id"), m -> m.get("2")); + + //给有考勤的赋值 + List attendEmpIds = list.stream().map(attend -> { + String resourceId = attend.get("resourceId"); + attend.put("balanceOfLeave2", balanceMap.get(resourceId)); + return resourceId; + }).collect(Collectors.toList()); + + //没有考勤,但有假期余额的人赋值 + 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; + }) + .collect(Collectors.toList()); + list.addAll(balanceOfLeaveList); } catch (Exception e) { log.error("获取考勤数据失败", e); } - - return list; + } + + @Override + public List> getBalanceOfLeaveColumns() { + Map paramsMap = new HashMap(); + paramsMap.put("dateScope", "6"); + paramsMap.put("selectedYear", 2023); + paramsMap.put("dataScope", "3"); + paramsMap.put("resourceId", 92); + 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); + return balanceOfLeaveColumns; + } + @Override + public List> getBalanceOfLeaveDatas(Attend4Salary attend4Salary) { + Map paramsMap = new HashMap(); + paramsMap.put("dateScope", "6"); + paramsMap.put("selectedYear", SalaryDateUtil.date2Year(attend4Salary.getBeginDate())); + paramsMap.put("dataScope", "3"); + paramsMap.put("resourceId", attend4Salary.getOnlyEmpIds().stream().map(String::valueOf).collect(Collectors.joining(","))); + paramsMap.put("status", "9"); + paramsMap.put("isNoAccount", true); + return (List>) commandExecutor.execute(new GetSearchListCmd(paramsMap, user)).get("datas"); } } diff --git a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java index c48b1c7e5..3979c3180 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java @@ -291,6 +291,11 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF if (CollectionUtils.isNotEmpty(saves)) { biz.saveBatch(saves); } + + //假期余额 + + + return null; }