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.

98 lines
3.5 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package weaver.attendance.service;
import java.util.List;
import java.util.Map;
import com.engine.kq.entity.KQOvertimeRulesDetailEntity;
import com.google.common.collect.Maps;
import weaver.hrm.User;
import weaver.sqsddldcxt.attendance.service.OvertimeRuleComputingMode5Service;
public class OvertimeRuleComputingModeService {
private OvertimeRuleComputingMode5Service mode5Service;
public OvertimeRuleComputingModeService() {
this.mode5Service = new OvertimeRuleComputingMode5Service();
}
/**
* 自定义新的加班计算方式computingMode
* key值为int型并且不允许与系统现有的值重复
*
* 系统现有值包括:
* 0=不允许加班
* 1=需审批,以加班流程为准
* 2=需审批,以打卡为准,但是不能超过加班流程时长
* 3=无需审批,根据打卡时间计算加班时长
* 4=需审批,流程和打卡取交集
*
* @param languageId
* @return
*/
public Map<Integer, String> getNewComputingMode(int languageId) {
Map<Integer, String> map = Maps.newLinkedHashMap();
// map.put(mode5Service.getComputingMode(), mode5Service.getComputingModeTitle(languageId));
return map;
}
/**
* 考勤报表点击弹出的加班明细页签中,需要处理自定义的加班计算方式
*
* @param computingMode
* 加班计算方式
* @param params
* @param user
*/
public String buildTableString4CustomOvertimeFlow(int computingMode, Map<String, Object> params, User user) {
String result = "";
switch(computingMode) {
case 5:
result = mode5Service.buildTableString4CustomOvertimeFlow(params, user);
break;
}
return result;
}
/**
* 加班归档时,需要处理自定义的加班计算方式
*
* @param computingMode
* 当前加班计算方式
* @param resourceid
* 加班人
* @param splitDate
* 加班日期
* @param changeTypeMap
* 人员在指定日期属于工作日、休息日还是节假日。
* {key:splitDate+"_"+resourceId, value:1=节假日、2=工作日、3=休息日}
* @param overRulesDetailMap
* 指定日期、指定日期类型的 加班规则对象。
* {key:splitDate+"_"+changeType, value:加班规则对象}
* @param restTimeMap
* 指定日期、指定日期类型的 排除休息时段集合。
* {key:splitDate+"_"+changeType, value:加班规则中设置的排除休息时段 {[开始时间,结束时间]} }
* @param computingModeMap
* 指定日期、指定日期类型 启用的加班计算方式。
* {key:splitDate+"_"+changeType, value:0=无效、1=需审批以加班流程为准、2=需审批以打卡为准但是不能超过加班流程时长、3=无需审批根据打卡时间计算加班时长、4=需审批,流程和打卡取交集、其他值=自定义}
* @param main_uuid
* 已生成的加班日志记录表的uuidkq_overtime_log写入加班明细日志时用来关联主表kq_overtime_log_detail.main_uuid
* @throws Exception
*/
public void doComputingMode(int computingMode, String resourceid, String splitDate,
Map<String, Integer> changeTypeMap,
Map<String, KQOvertimeRulesDetailEntity> overRulesDetailMap,
Map<String, List<String[]>> restTimeMap,
Map<String, Integer> computingModeMap,
String main_uuid) {
switch(computingMode) {
case 5:
mode5Service.doComputingMode(resourceid, splitDate, changeTypeMap, overRulesDetailMap, restTimeMap, computingModeMap, main_uuid);
break;
}
}
}