113 lines
3.3 KiB
Java
113 lines
3.3 KiB
Java
package jnpf.attendance.service;
|
||
|
||
import jnpf.base.service.SuperService;
|
||
import jnpf.entity.AttendanceGroup;
|
||
import jnpf.entity.attendance.AttendanceShiftSettingEntity;
|
||
import jnpf.exception.HandleException;
|
||
import jnpf.model.attendance.dto.AttendanceShiftDto;
|
||
import jnpf.model.attendance.vo.AttendanceShiftSettingVo;
|
||
import jnpf.model.attendance.vo.ShiftPeriodVo;
|
||
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
/**
|
||
* <p>
|
||
* 考勤组配置-考勤配置 服务类
|
||
* </p>
|
||
*
|
||
* @author ahua
|
||
* @since 2023-11-22
|
||
*/
|
||
public interface AttendanceShiftSettingService extends SuperService<AttendanceShiftSettingEntity> {
|
||
|
||
/**
|
||
* 根据考勤组ID和考勤组视图列表获取启用的班次设置信息。
|
||
*
|
||
* @param groupIds 考勤组ID列表
|
||
* @param attendanceGroupVos 考勤组视图对象列表
|
||
* @return 启用的班次设置信息映射
|
||
*/
|
||
Map<String, AttendanceShiftSettingVo> getEnableShiftSetting(List<String> groupIds, List<AttendanceGroup> attendanceGroupVos);
|
||
|
||
/**
|
||
* 初始化班次设置。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
*/
|
||
void initShiftSetting(String groupId);
|
||
|
||
/**
|
||
* 根据考勤组ID获取所有班次设置。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
* @return 班次设置视图对象
|
||
*/
|
||
AttendanceShiftSettingVo findAllByGroupId(String groupId);
|
||
|
||
/**
|
||
* 根据考勤组ID获取单个班次设置。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
* @return 班次设置视图对象
|
||
*/
|
||
AttendanceShiftSettingVo findByGroupId(String groupId);
|
||
|
||
/**
|
||
* 保存班次设置信息。
|
||
*
|
||
* @param dto 班次设置数据传输对象
|
||
* @throws HandleException 处理异常
|
||
*/
|
||
void save(AttendanceShiftDto dto) throws HandleException;
|
||
|
||
/**
|
||
* 更改系统类型。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
* @param systemType 系统类型
|
||
*/
|
||
void changeSystemType(String groupId, Integer systemType);
|
||
|
||
/**
|
||
* 删除指定的班次周期。
|
||
*
|
||
* @param periodId 班次周期ID
|
||
*/
|
||
void delPeriod(String periodId);
|
||
|
||
/**
|
||
* 更改班次设置的启用状态。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
* @param enable 启用状态(0禁用,1启用)
|
||
* @param byGroupId 班次设置视图对象
|
||
*/
|
||
void changeStatus(String groupId, Integer enable, AttendanceShiftSettingVo byGroupId);
|
||
|
||
/**
|
||
* 根据考勤组ID获取班次周期列表。
|
||
*
|
||
* @param groupId 考勤组ID
|
||
* @return 班次周期视图对象列表
|
||
*/
|
||
List<ShiftPeriodVo> periodList(String groupId);
|
||
|
||
/**
|
||
* 智能排班专用:便于区分 §6.1(未取得班次定义)与 §6.2(已取得定义但班次列表为空)。
|
||
*
|
||
* @return {@code null} — 未取得该考勤组启用班次设置(与「占位空列表」不同);{@link Collections#emptyList()} —
|
||
* 已取得设置但未配置班次周期;否则为周期列表。
|
||
*/
|
||
List<ShiftPeriodVo> periodListForIntelligentSchedule(String groupId);
|
||
|
||
/**
|
||
* 自我排班的班次列表
|
||
*
|
||
* @return 班次周期视图对象列表
|
||
*/
|
||
List<ShiftPeriodVo> periodListForSelfScheduling();
|
||
|
||
void hisShiftSetting(Map<String, String> group2orgMap, Map<String, String> org2GroupMap);
|
||
}
|