package jnpf.attendance.service; import jnpf.base.service.SuperService; import jnpf.entity.attendance.FtbAttendanceLineSchedulingPayrollHours; import java.util.Date; import java.util.List; /** * 划线排班计薪工时Service * * @author jnpf * @since 2026-02-27 */ public interface AttendanceLineSchedulingPayrollHoursService extends SuperService { /** * 根据用户ID、考勤组ID和日期范围查询计薪工时列表 * * @param userId 用户ID * @param groupId 考勤组ID * @param startDay 开始日期 * @param endDay 结束日期 * @return 计薪工时列表 */ List listByUserIdAndGroupId(String userId, String groupId, Date startDay, Date endDay); /** * 根据用户ID列表和日期范围查询计薪工时列表 * * @param userIds 用户ID列表 * @param groupId 考勤组ID * @param startDay 开始日期 * @param endDay 结束日期 * @return 计薪工时列表 */ List listByUserIdsAndGroupId(List userIds, String groupId, Date startDay, Date endDay); /** * 根据日期范围查询计薪工时列表 * * @param groupId 考勤组ID * @param startDay 开始日期 * @param endDay 结束日期 * @return 计薪工时列表 */ List listByGroupId(String groupId, Date startDay, Date endDay); /** * 批量保存或更新划线排班计薪工时 * * @param payrollHoursList 计薪工时列表 * @return 是否成功 */ boolean saveOrUpdateBatch(List payrollHoursList); /** * 根据用户ID、考勤组ID和日期删除计薪工时 * * @param userId 用户ID * @param groupId 考勤组ID * @param day 日期 * @return 是否成功 */ boolean deleteByUserIdAndGroupId(String userId, String groupId, Date day); /** * 根据考勤组ID和日期范围删除计薪工时 * * @param groupId 考勤组ID * @param startDay 开始日期 * @param endDay 结束日期 * @return 是否成功 */ boolean deleteByGroupId(String groupId, Date startDay, Date endDay); FtbAttendanceLineSchedulingPayrollHours listByUserIdsAndDays(String userId, String groupId, Date day); /** * 根据用户集合、考勤组ID和时间集合查询计薪工时 * * @param userIds 用户ID集合 * @param groupId 考勤组ID * @param days 日期集合 * @return 计薪工时列表 */ List listByUserIdsAndDays(List userIds, String groupId, List days); List listByUserIdsAndDays(List userIds, List groupIds, List days); /** * 保存划线排班计薪工时集合(先清除后添加) * * @param payrollHoursList 计薪工时集合 * @return 是否成功 */ boolean savePayrollHoursList(List payrollHoursList); }