package com.engine.attendance.attendanceanalysis.service;

import com.engine.attendance.attendanceanalysis.dto.ClockPointDTO;

import java.util.List;
import java.util.Map;

/**
 * 工具service
 */
public interface UtilService {
    /**
     *  获得人员班次信息,加班计划
     * @param params
     * @return
     */
    Map<String, Object> getSchedulingInFormation(Map<String,Object> params);

    /**
     * 获得指定天数的打卡时间集合
     * 只支持一次工作时间段跨天，不支持多端工作时间段跨天。
     * @param params
     * @return
     */
    List<Map<String,Object>> getClockInTime(Map<String,Object> params);

    /**
     * 记录考勤项目
     * @param params
     */
    void recordItem(Map<String,Object> params);

    /**
     * 记录进出时间
     * @param clcokInTimeData
     * @return
     */
    Map<String,Object> getNeedRecordClockInTime(List<ClockPointDTO> clcokInTimeData);
    /**
     * 获得打卡卡点以及匹配的打卡时间
     */
    List<ClockPointDTO> getClockInPointCmd(Map<String,Object> params);

    /**
     * 计算出勤时长
     */
    double computeAttendanceDuration(Map<String,Object> params);
}
