You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

500 lines
24 KiB
Java

2 years ago
package com.engine.attendance.attendanceanalysis.wrapper;
2 years ago
import com.engine.attendance.attendanceanalysis.cmd.UpdateAttendanceResultsCmd;
2 years ago
import com.engine.attendance.attendanceanalysis.cmd.item.WorkOvertimeItemCmd;
import com.engine.attendance.attendanceanalysis.service.*;
import com.engine.attendance.attendanceanalysis.service.impl.*;
2 years ago
import com.engine.attendance.enums.*;
1 year ago
import com.engine.common.util.CommonUtil;
2 years ago
import com.engine.common.util.DateUtil;
2 years ago
import com.engine.common.util.ServiceUtil;
2 years ago
import com.engine.common.util.Utils;
2 years ago
import com.engine.core.impl.Service;
2 years ago
import com.google.common.collect.Lists;
2 years ago
import com.google.common.collect.Maps;
2 years ago
import lombok.extern.slf4j.Slf4j;
2 years ago
import weaver.general.Util;
2 years ago
import java.util.List;
import java.util.Map;
2 years ago
import java.util.stream.Collectors;
2 years ago
2 years ago
@Slf4j
2 years ago
public class UpdateAttendanceResultWrapper extends Service {
2 years ago
private AbnormalAttendanceService beLateService = ServiceUtil.getService(AbnormalAttendanceServiceImpl.class);
private ForgetClockInService forgetClockInService = ServiceUtil.getService(ForgetClockInServiceImpl.class);
2 years ago
private AskForLeaveService askForLeaveService= ServiceUtil.getService(AskForLeaveServiceImpl.class);
private EvectionService evectionService= ServiceUtil.getService(EvectionServiceImpl.class);
2 years ago
private WorkOverTimeService workOverTimeService = ServiceUtil.getService(WorkOverTimeServiceImpl.class);
1 year ago
private ComprehensiveWorkingHourService comprehensiveWorkingHourService = ServiceUtil.getService(ComprehensiveWorkingHourServiceImpl.class);
1 year ago
private AllowanceService allowanceService = ServiceUtil.getService(AllowanceServiceImpl.class);
private UtilService utilService = ServiceUtil.getService(UtilServiceImpl.class);
2 years ago
2 years ago
/**
*
* */
2 years ago
public List<Map<String,Object>> recordAbnormalClockIn(Map<String,Object> params){
2 years ago
//卡点
List<Map<String,Map<String,Object>>> clcokInTimeList = (List<Map<String,Map<String,Object>>>)params.get("clcokInTimeList");
//考勤项目
List<Map<String,Object>> attendanceItems = (List<Map<String,Object>>)params.get("attendanceItems");
//排班
List<Map<String, Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
2 years ago
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
//人员
String userId = Util.null2String(params.get("userId"));
2 years ago
//请假集合
List<Map<String,Object>> askForLeaveList = (List<Map<String,Object>>)params.get("askForLeaveList");
//请假项目
Map<String,Map<String,Object>> askForLeaveItems = (Map<String,Map<String,Object>>)params.get("askForLeaveItems");
//出差集合
List<Map<String,Object>> evectionList = (List<Map<String,Object>>)params.get("evectionList");
//出差项目
Map<String,Map<String,Object>> evectionItems = (Map<String,Map<String,Object>>)params.get("evectionItems");
2 years ago
//以开始时间分割班次
Map<String,List<Map<String, Object>>> startScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->e.get("dtkssj").toString()));
//以结束时间分割班次
Map<String,List<Map<String, Object>>> endScheduleResult = scheduleResult.stream().collect(Collectors.groupingBy(e->e.get("dtjssj").toString()));
2 years ago
List<Map<String,Object>> resultList = Lists.newArrayList();
2 years ago
for (Map<String,Map<String,Object>> clcokInTimeMap :clcokInTimeList){
//卡点
String point = "";
//当天打卡数据
Map<String,Object> clcokInTimeData = null;
for (Map.Entry<String,Map<String,Object>> entry :clcokInTimeMap.entrySet()){
point = entry.getKey();
clcokInTimeData = entry.getValue();
}
//需要计算的班次打卡时间点
String pointTime = point.split("\\|")[0];
//start开始打卡时间点end结束打卡时间点
String pointType = point.split("\\|")[1];
//empty:漏卡equal:打卡时间和班次时间相等before打卡时间在班次时间之前after打卡时间在班次时间之后
String timeType = point.split("\\|")[2];
2 years ago
//是否是请假、外出打卡
String evectionOrAskLeave = "";
if (point.split("\\|").length ==4){
evectionOrAskLeave = point.split("\\|")[3];
}
2 years ago
//班次
Map<String, Object> classInfo = Maps.newHashMap();
2 years ago
if (ClockPointEnum.START.getKey().equals(pointType) && "".equals(evectionOrAskLeave)){
2 years ago
classInfo = startScheduleResult.get(pointTime.split(" ")[1]).get(0);
2 years ago
}else if (ClockPointEnum.END.getKey().equals(pointType) && "".equals(evectionOrAskLeave)){
classInfo = endScheduleResult.get(pointTime.split(" ")[1]).get(0);
}else if (ClockPointEnum.START.getKey().equals(pointType) && "0".equals(evectionOrAskLeave)){
2 years ago
classInfo = endScheduleResult.get(pointTime.split(" ")[1]).get(0);
2 years ago
}else if (ClockPointEnum.END.getKey().equals(pointType) && "0".equals(evectionOrAskLeave)){
classInfo = startScheduleResult.get(pointTime.split(" ")[1]).get(0);
2 years ago
}
if (ClockPointEnum.EMPTY.getKey().equals(timeType) || clcokInTimeData == null){
//漏卡
2 years ago
Map<String,Object> missCardParams = Maps.newHashMap();
missCardParams.put("classInfo",classInfo);
missCardParams.put("clcokInTimeData",clcokInTimeData);
missCardParams.put("attendanceItems",attendanceItems);
missCardParams.put("analysisDate",analysisDate);
missCardParams.put("userId",userId);
2 years ago
missCardParams.put("point",point);
2 years ago
missCardParams.put("scheduleResult",scheduleResult);
2 years ago
log.info("missCardParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> iforgetClockIn = forgetClockInService.forgetClockIn(missCardParams);
if (iforgetClockIn.size() >0){
iforgetClockIn.get(0).put("pointTime",pointTime);
2 years ago
iforgetClockIn.get(0).put("bdlx",classInfo.get("bdlx"));
2 years ago
resultList.add(iforgetClockIn.get(0));
}
2 years ago
}else if (ClockPointEnum.START.getKey().equals(pointType) && ClockPointEnum.AFTER.getKey().equals(timeType)){
//迟到
Map<String,Object> beLateParams = Maps.newHashMap();
beLateParams.put("classInfo",classInfo);
beLateParams.put("clcokInTimeData",clcokInTimeData);
beLateParams.put("attendanceItems",attendanceItems);
beLateParams.put("analysisDate",analysisDate);
beLateParams.put("userId",userId);
2 years ago
beLateParams.put("point",point);
2 years ago
beLateParams.put("askForLeaveList",askForLeaveList);
beLateParams.put("askForLeaveItems",askForLeaveItems);
beLateParams.put("evectionList",evectionList);
beLateParams.put("evectionItems",evectionItems);
2 years ago
beLateParams.put("scheduleResult",scheduleResult);
2 years ago
log.info("beLateParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> ifBeLate = beLateService.beLate(beLateParams);
if (ifBeLate.size() > 0){
ifBeLate.get(0).put("pointTime",pointTime);
2 years ago
ifBeLate.get(0).put("bdlx",classInfo.get("bdlx"));
2 years ago
resultList.add(ifBeLate.get(0));
}
2 years ago
}else if (ClockPointEnum.END.getKey().equals(pointType) && ClockPointEnum.BEFORE.getKey().equals(timeType)){
//早退
Map<String,Object> leaveEarlyParams = Maps.newHashMap();
leaveEarlyParams.put("classInfo",classInfo);
leaveEarlyParams.put("clcokInTimeData",clcokInTimeData);
leaveEarlyParams.put("attendanceItems",attendanceItems);
leaveEarlyParams.put("analysisDate",analysisDate);
leaveEarlyParams.put("userId",userId);
2 years ago
leaveEarlyParams.put("point",point);
2 years ago
leaveEarlyParams.put("askForLeaveList",askForLeaveList);
leaveEarlyParams.put("askForLeaveItems",askForLeaveItems);
leaveEarlyParams.put("evectionList",evectionList);
leaveEarlyParams.put("evectionItems",evectionItems);
2 years ago
leaveEarlyParams.put("scheduleResult",scheduleResult);
2 years ago
log.info("leaveEarlyParams classInfo: [{}],clcokInTimeData:[{}]",classInfo,clcokInTimeData);
List<Map<String,Object>> ifLeaveEarly = beLateService.leaveEarly(leaveEarlyParams);
if (ifLeaveEarly.size() > 0){
ifLeaveEarly.get(0).put("pointTime",pointTime);
2 years ago
ifLeaveEarly.get(0).put("bdlx",classInfo.get("bdlx"));
2 years ago
resultList.add(ifLeaveEarly.get(0));
}
2 years ago
}
}
2 years ago
// if (iforgetClockIn || ifBeLate ||ifLeaveEarly){
// return true;
// }
2 years ago
log.info("abnormalClockInList : [{}]",resultList);
2 years ago
return resultList;
2 years ago
}
2 years ago
/**
*
* @param params
* @return
*/
2 years ago
public List<Map<String, Object>> recordWorkOverTime(Map<String,Object> params){
return workOverTimeService.recordWorkOverTime(params);
2 years ago
}
/**
*
* @param params
* @return
*/
2 years ago
public Map<String, Object> recordAskForLeave(Map<String,Object> params){
2 years ago
//请假项目
Map<String,Map<String,Object>> askForLeaveItems = (Map<String,Map<String,Object>>)params.get("askForLeaveItems");
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
2 years ago
//排班
List<Map<String, Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
//请假记录
2 years ago
List<Map<String, Object>> askForLeaveList = (List<Map<String,Object>>)params.get("askForLeaveList");
2 years ago
//异常记录
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)params.get("abnormalClockInList");
2 years ago
//请假抵消异常
List<Map<String,Object>> offsetAskForLeaveAnomaly = Lists.newArrayList();
2 years ago
2 years ago
Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> resultList = Lists.newArrayList();
2 years ago
2 years ago
for (int i=0;i<askForLeaveList.size();i++){
2 years ago
Map<String, Object> resultMap = Maps.newHashMap();
resultList.add(resultMap);
resultMap.put("item",askForLeaveList.get(i).get("jqlx"));
2 years ago
String kssj = askForLeaveList.get(i).get("ksrq") + " "+askForLeaveList.get(i).get("kssj");
String jssj = askForLeaveList.get(i).get("jsrq")+ " "+askForLeaveList.get(i).get("jssj");
2 years ago
//半天请假
String btj = Util.null2String(askForLeaveList.get(i).get("btj"));
//请假时长
String qjsc = Util.null2String(askForLeaveList.get(i).get("qjsc"));
//请假项目
2 years ago
Map<String,Object> askForLeaveItem = askForLeaveItems.get(askForLeaveList.get(i).get("jqlx"));
2 years ago
//自动移除时间区间内的非工作时长
String zdycbcndfgzsd = Util.null2String(askForLeaveItem.get("zdycbcndfgzsd"));
//同一天可抵消多个异常
String tybcndbjlhbjs = Util.null2String(askForLeaveItem.get("tybcndbjlhbjs"));
2 years ago
//作用时段
String zysd = Util.null2String(askForLeaveItem.get("zysd"));
2 years ago
//核算量
double hsl = Double.valueOf(Util.null2String(askForLeaveItem.get("hsl")));
//核算单位
String hsdw = Util.null2String(askForLeaveItem.get("hsdw"));
Map<String,Object> param = Maps.newHashMap();
param.put("abnormalClockInList",abnormalClockInList);
2 years ago
param.put("zysd",zysd);
2 years ago
param.put("scheduleResult",scheduleResult);
param.put("analysisDate",analysisDate);
2 years ago
double itemduration = 0;
if ("".equals(Util.null2String(askForLeaveList.get(i).get("kssj"))) || "".equals(Util.null2String(askForLeaveList.get(i).get("jssj")))){
//弹性请假,半天请假
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){
//半天请假
2 years ago
2 years ago
askForLeaveService.askForLeaveByHalfDay(param);
}else if (!"".equals(qjsc)){
//时长请假
itemduration = Utils.getItemduration(hsl,hsdw,Double.valueOf(Double.valueOf(qjsc)*60).intValue(),AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("qjsc",qjsc);
param.put("tybcndbjlhbjs",tybcndbjlhbjs);
if (abnormalClockInList.size()>0){
2 years ago
Map<String,Object> map1 = askForLeaveService.askForLeaveByDurationTime(param);
abnormalClockInList =(List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetAskForLeaveAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetAskForLeaveAnomaly"));
2 years ago
}
}
}else {
//按照开始时间,结束时间请假
int timeMinutes = DateUtil.getBetWeenMinutes(kssj,jssj);
if (CheckBoxEnum.CHECKED.getKey().equals(zdycbcndfgzsd)){
2 years ago
timeMinutes = Utils.removeRestTime(kssj,jssj,scheduleResult,analysisDate);
2 years ago
}
2 years ago
log.info("recordAskForLeave timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
2 years ago
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("kssj",kssj);
param.put("jssj",jssj);
if (abnormalClockInList.size()>0){
2 years ago
Map<String,Object> map1 = askForLeaveService.askForLeaveByTime(param);
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetAskForLeaveAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetAskForLeaveAnomaly"));
2 years ago
}
}
2 years ago
}
2 years ago
map.put("resultList",resultList);
map.put("abnormalClockInList",abnormalClockInList);
2 years ago
map.put("offsetAskForLeaveAnomaly",offsetAskForLeaveAnomaly);
2 years ago
return map;
2 years ago
}
/**
*
* @param params
* @return
*/
2 years ago
public Map<String, Object> recordEvection(Map<String,Object> params){
2 years ago
//外出项目
Map<String,Map<String,Object>> evectionItems = (Map<String,Map<String,Object>>)params.get("evectionItems");
2 years ago
//排班
List<Map<String, Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
//出差记录
List<Map<String, Object>> evectionList = (List<Map<String,Object>>)params.get("evectionList");
//异常记录
List<Map<String,Object>> abnormalClockInList = (List<Map<String,Object>>)params.get("abnormalClockInList");
2 years ago
//外出抵消异常
List<Map<String,Object>> offsetEvectionAnomaly = Lists.newArrayList();
2 years ago
Map<String, Object> map = Maps.newHashMap();
List<Map<String, Object>> resultList = Lists.newArrayList();
for (int i=0;i<evectionList.size();i++){
Map<String, Object> resultMap = Maps.newHashMap();
resultList.add(resultMap);
resultMap.put("item",evectionList.get(i).get("cclx"));
String kssj = evectionList.get(i).get("ksrq") + " "+evectionList.get(i).get("kssj");
String jssj = evectionList.get(i).get("jsrq")+ " "+evectionList.get(i).get("jssj");
//半天请假
String btj = Util.null2String(evectionList.get(i).get("btcc"));
//请假时长
String qjsc = Util.null2String(evectionList.get(i).get("ccsc"));
//请假项目
Map<String,Object> evectionItem = evectionItems.get(evectionList.get(i).get("cclx"));
//自动移除时间区间内的非工作时长
String zdycbcndfgzsd = Util.null2String(evectionItem.get("zdycbcndfgzsd"));
//同一天可抵消多个异常
String tybcndbjlhbjs = Util.null2String(evectionItem.get("tybcndbjlhbjs"));
//核算量
double hsl = Double.valueOf(Util.null2String(evectionItem.get("hsl")));
//核算单位
String hsdw = Util.null2String(evectionItem.get("hsdw"));
2 years ago
//作用时间段
String zysd = Util.null2String(evectionItem.get("zysd"));
2 years ago
Map<String,Object> param = Maps.newHashMap();
param.put("abnormalClockInList",abnormalClockInList);
2 years ago
param.put("zysd",zysd);
2 years ago
param.put("scheduleResult",scheduleResult);
param.put("analysisDate",analysisDate);
2 years ago
double itemduration = 0;
if ("".equals(Util.null2String(evectionList.get(i).get("kssj"))) || "".equals(Util.null2String(evectionList.get(i).get("jssj")))){
2 years ago
//弹性请假,半天出差
2 years ago
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){
2 years ago
//半天出差
2 years ago
evectionService.evectionByHalfDay(param);
}else if (!"".equals(qjsc)){
2 years ago
//时长出差
2 years ago
itemduration = Utils.getItemduration(hsl,hsdw,Double.valueOf(Double.valueOf(qjsc)*60).intValue(),AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("ccsc",qjsc);
param.put("tybcndbjlhbjs",tybcndbjlhbjs);
if (abnormalClockInList.size()>0){
2 years ago
Map<String,Object> map1 =evectionService.evectionByDurationTime(param);
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetEvectionAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetEvectionAnomaly"));
2 years ago
}
}
}else {
2 years ago
//按照开始时间,结束时间出差
2 years ago
int timeMinutes = DateUtil.getBetWeenMinutes(kssj,jssj);
if (CheckBoxEnum.CHECKED.getKey().equals(zdycbcndfgzsd)){
2 years ago
timeMinutes = Utils.removeRestTime(kssj,jssj,scheduleResult,analysisDate);
2 years ago
}
2 years ago
log.info("recordEvection timeMinutes [{}] ,hsl:{},hsdw",timeMinutes,hsl,hsdw);
2 years ago
itemduration = Utils.getItemduration(hsl,hsdw,timeMinutes,AccountingUnitEnum.MINUTES);
resultMap.put("itemduration",itemduration);
param.put("kssj",kssj);
param.put("jssj",jssj);
if (abnormalClockInList.size()>0){
2 years ago
Map<String,Object> map1 = evectionService.evectionByTime(param);
abnormalClockInList = (List<Map<String,Object>>)map1.get("abnormalClockInList");
offsetEvectionAnomaly.addAll((List<Map<String,Object>>)map1.get("offsetEvectionAnomaly"));
2 years ago
}
}
}
map.put("resultList",resultList);
map.put("abnormalClockInList",abnormalClockInList);
2 years ago
map.put("offsetEvectionAnomaly",offsetEvectionAnomaly);
2 years ago
return map;
}
/**
* ,
* @param params
* @return
*/
public List<Map<String,Object>> recordNormal(Map<String,Object> params){
2 years ago
//排班
List<Map<String, Object>> scheduleResult = (List<Map<String,Object>>)params.get("scheduleResult");
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
//人员
String userId = Util.null2String(params.get("userId"));
2 years ago
//日期类型
String rqlx = Util.null2String(scheduleResult.get(0).get("rqlx"));
List<Map<String, Object>> resultList = Lists.newArrayList();
Map<String,Object> normalParams = Maps.newHashMap();
// normalParams.put("userId",userId);
// normalParams.put("date",analysisDate);
// normalParams.put("classInfo",scheduleResult);
// normalParams.put("modeId",params.get("modeId"));
if (DateTypeEnum.WORK_DAY.getKey().equals(rqlx) || DateTypeEnum.CHANGECLASS.getKey().equals(rqlx)){
//工作日
normalParams.put("item",SystemItemEnum.WORK_DAY.getKey());
}else if (DateTypeEnum.HOLIDAY.getKey().equals(rqlx)){
//节假日
normalParams.put("item",SystemItemEnum.HOLIDAY.getKey());
}else if (DateTypeEnum.PUBLIC_RESTDAY.getKey().equals(rqlx) ||
DateTypeEnum.EXCHANGE_LEAVEDAY.getKey().equals(rqlx)){
//休息日
normalParams.put("item",SystemItemEnum.REST_DAY.getKey());
}
resultList.add(normalParams);
//commandExecutor.execute(new UpdateAttendanceResultsCmd(normalParams));
return resultList;
}
/**
*
* @param params
* @return
*/
public boolean recordNoClass(Map<String,Object> params){
//分析日期
String analysisDate = Util.null2String(params.get("analysisDate"));
//人员
String userId = Util.null2String(params.get("userId"));
1 year ago
//综合工时
List<Map<String,Object>> workHourItems = (List<Map<String,Object>>)params.get("workHourItems");
1 year ago
//津贴
Map<String,Object> allowanceMap = (Map<String,Object>)params.get("allowanceMap");
2 years ago
Map<String,Object> normalParams = Maps.newHashMap();
normalParams.put("userId",userId);
normalParams.put("date",analysisDate);
normalParams.put("modeId",params.get("modeId"));
2 years ago
normalParams.put("scheduleList",params.get("scheduleList"));
2 years ago
log.info("userId : {} ,analysisDate: {} have no class",userId,analysisDate);
1 year ago
if (allowanceMap.get("ifnotWork") != null){
//次日免班
Map<String,Object> recordParam = Maps.newHashMap();
recordParam.put("userId",userId);
recordParam.put("analysisDate",analysisDate);
recordParam.put("recordData",Lists.newArrayList());
recordParam.put("rqlx",Utils.getDateType(analysisDate));
recordParam.put("classInfo",Lists.newArrayList());
recordParam.put("recordDataTime",Maps.newHashMap());
recordParam.put("attendanceDuration",0);
recordParam.put("formmodeIdMap",Utils.getFormmodeIdMap());
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
utilService.recordItem(recordParam);
return false;
}
1 year ago
if (workHourItems != null && workHourItems.size() >0 ){
//核算工时的日期类型
String hsgsdrqlx = Util.null2String(workHourItems.get(0).get("hsgsdrqlx"));
String rqlx = Utils.getDateType(analysisDate,Util.null2String(workHourItems.get(0).get("qyrl")));
1 year ago
params.put("workHourItem",workHourItems.get(0));
1 year ago
if (CommonUtil.ifContainStr(hsgsdrqlx,rqlx,",")){
comprehensiveWorkingHourService.excuteByWorkHour(params);
}else {
commandExecutor.execute(new UpdateAttendanceResultsCmd(normalParams));
}
1 year ago
}else {
commandExecutor.execute(new UpdateAttendanceResultsCmd(normalParams));
}
2 years ago
return false;
}
2 years ago
1 year ago
/**
*
* @param params
* @return
*/
1 year ago
public Map<String,Object> allowanceHandle(Map<String,Object> params){
return allowanceService.allowanceHandle(params);
}
1 year ago
1 year ago
/**
*
* @param params
* @return
*/
public Map<String,Object> removeAbnormal(Map<String,Object> params){
return allowanceService.removeAbnormal(params);
1 year ago
}
1 year ago
/**
*
* @param params
* @return
*/
public Map<String,Object> getAskForLeave(Map<String,Object> params){
return askForLeaveService.getAskForLeave(params);
}
/**
*
* @param params
* @return
*/
public Map<String,Object> getEvection(Map<String,Object> params){
return evectionService.getEvection(params);
}
2 years ago
}