Merge branch 'feature/假期余额' into release/3.0.0.2311.01

This commit is contained in:
钱涛 2023-10-24 11:44:01 +08:00
commit cf2d2552a2
3 changed files with 85 additions and 4 deletions

View File

@ -7,11 +7,29 @@ import java.util.Map;
public interface RemoteAttend4SalaryService {
/**
* 考勤报表列
* @return
*/
List<Map<String, String>> getColumns();
/**
* 考勤报表数据
* @param attend4Salary
* @return
*/
List<Map<String,String>> getDatas(Attend4Salary attend4Salary);
/**
* 获取假期余额列
* @return
*/
List<Map<String, String>> getBalanceOfLeaveColumns();
/**
* 假期值
* @param attend4Salary
* @return
*/
List<Map<String, String>> getBalanceOfLeaveDatas(Attend4Salary attend4Salary);
}

View File

@ -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<Map<String, String>> balanceOfLeaveDatas = getBalanceOfLeaveDatas(attend4Salary);
Map<String, String> balanceMap = SalaryEntityUtil.convert2Map(balanceOfLeaveDatas, m -> m.get("id"), m -> m.get("2"));
//给有考勤的赋值
List<String> attendEmpIds = list.stream().map(attend -> {
String resourceId = attend.get("resourceId");
attend.put("balanceOfLeave2", balanceMap.get(resourceId));
return resourceId;
}).collect(Collectors.toList());
//没有考勤但有假期余额的人赋值
List<Map<String, String>> balanceOfLeaveList = balanceMap.keySet().stream()
.filter(k -> !attendEmpIds.contains(k))
.map(k -> {
Map<String, String> 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<Map<String, String>> getBalanceOfLeaveColumns() {
Map<String, Object> paramsMap = new HashMap<String, Object>();
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<Map<String, String>> columns = (List<Map<String, String>>) commandExecutor.execute(new GetSearchListCmd(paramsMap, user)).get("columns");
Map<String, String> 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<Map<String, String>> balanceOfLeaveColumns = new ArrayList<>();
balanceOfLeaveColumns.add(map);
return balanceOfLeaveColumns;
}
@Override
public List<Map<String, String>> getBalanceOfLeaveDatas(Attend4Salary attend4Salary) {
Map<String, Object> paramsMap = new HashMap<String, Object>();
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<Map<String, String>>) commandExecutor.execute(new GetSearchListCmd(paramsMap, user)).get("datas");
}
}

View File

@ -291,6 +291,11 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF
if (CollectionUtils.isNotEmpty(saves)) {
biz.saveBatch(saves);
}
//假期余额
return null;
}