package jnpf.attendance.service; import jnpf.model.attendance.model.*; import jnpf.model.attendance.vo.attendance.DayStatisticsQueryVo; import jnpf.model.common.DateRangeDto; import jnpf.permission.vo.v2.user.UserBoundVO; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; /** * 统计公共方法服务 * * @author shitou * @date 2023/11/22 */ public interface StatisticsUtilService { /** * 获取用户考勤情况 * * @param userId 用户ID * @param selectDateRangeDto 日期范围 * @param dateArrayList 月日期集合 * @param dayStatisticsQueryVoList 用户日统计数据 * @return List */ List getUserClockDateArrayList(String userId, DateRangeDto selectDateRangeDto, List dateArrayList, List dayStatisticsQueryVoList); /** * 获取请假记录 * * @param userMap 用户信息 * @param ratioMap 出勤换算比 * @param userIds 用户集合 * @param dateRangeDto 日期范围 * @return 请假记录 Key是用户ID+考勤组ID */ Map> getLeaveMap(Map userMap, Map ratioMap, List userIds, DateRangeDto dateRangeDto); /** * 获取迟到记录集合 * * @param userMap 用户信息 * @param sealMap 用户是否封账 * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 迟到记录 Key是用户ID+考勤组ID */ Map> getLateMap(Map userMap, Map sealMap, List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取早退记录集合 * * @param userMap 用户信息 * @param sealMap 用户是否封账 * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 早退记录 Key是用户ID+考勤组ID */ Map> getEarlyMap(Map userMap, Map sealMap, List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取缺卡记录集合 * * @param userMap 用户信息 * @param sealMap 用户是否封账 * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 缺卡记录 Key是用户ID+考勤组ID */ Map> getAbsenceCardMap(Map userMap, Map sealMap, List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取缺勤记录集合 * * @param groupIds 考勤组集合 * @param sealMap 用户是否封账 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 缺勤记录 Key是用户ID+考勤组ID */ Map> getAbsenceMap(List groupIds, Map sealMap, List userIds, DateRangeDto dateRangeDto); /** * 获取补卡记录集合 * * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 补卡记录 Key是用户ID+考勤组ID */ Map> getMakeUpCardMap(List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取外勤记录集合 * * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 外勤记录 Key是用户ID+考勤组ID */ Map> getOutworkRecordList(List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取加班记录集合 * * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 加班记录 Key是用户ID+考勤组ID */ Map> getOvertimeRecordList(List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取借调记录集合 * * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 借调记录 Key是用户ID+考勤组ID */ Map> getSecondRecordList(List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取出差记录集合 * * @param groupIds 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 出差记录 Key是用户ID+考勤组ID */ Map> getBusRecordList(List groupIds, List userIds, DateRangeDto dateRangeDto); /** * 获取外出记录集合 * * @param ratioMap 考勤组集合 * @param userIds 用户集合 * @param dateRangeDto 筛选时间范围 * @return 外出记录 Key是用户ID+考勤组ID */ Map> getOutRecordList(Map ratioMap, List userIds, DateRangeDto dateRangeDto); }