package com.malk.service.dingtalk; import java.util.List; import java.util.Map; public interface DDClient_Attendance { /** * 获取打卡结果 * * @param userIdList 企业内的员工ID列表,最大值50; * @param workDateFrom 和workDateTo参数相隔最多7天(包含7天); 格式为“yyyy-MM-dd HH:mm:ss”,HH:mm:ss可以使用00:00:00,将返回此日期从0点到24点的结果 * @param offset 表示获取考勤数据的起始点, 下次获取传的offset值为之前的offset+limit; 表示获取考勤数据的条数,最大值50。 */ List listAttendanceResult(String access_token, String[] userIdList, String workDateFrom, String workDateTo, Number offset, Number size); /** * 获取打卡详情 * * @apiNote https://open.dingtalk.com/document/orgapp/attendance-clock-in-record-is-open */ List listAttendanceRecord(String access_token, List userIds, String checkDateFrom, String checkDateTo); /** * 上传打卡记录 [Notice] * - * 1. 接口已下架, 需要开通专业版联系官方开权限 * 2. 不是userId, 也可请求成功, 但无数据写入 * 3. 考勤会以接口写入为准, 如已存在18点打卡, 再写入14点记录, 显示早退 * 4. 可写入未来日期开启, 查询钉钉考勤记录正常返回 [创建时间为接口调用时间] */ boolean uploadAttendanceRecord(String access_token, String userId, String deviceName, String deviceId, String photoUrl, long userCheckTime); /** * 查询假期余额 [分页是根据游标控制] * * @param op_userid 当前企业内拥有OA审批应用权限的管理员的userId * @param leave_code 假期类型唯一标识 [查询假期规则列表] * @param userids 待查询的员工ID列表, 半角逗号相隔 * @param offset 分页偏移,从0开始的非负整数 * @param size 分页偏移,最大50 */ List queryVacationQuota(String access_token, String op_userid, String leave_code, String userids, int offset, int size); /** * 查询假期余额_全部 */ List queryVacationQuota_all(String access_token, String op_userid, String leave_code, String userids, int offset, int size); /** * 批量查询人员排班信息 [班次ID,无该字段,表明当天休息] * * @param to_date_time 开始时间和结束时间的间隔不能超过7天; 查询时间限制距今180天内. * @param userids 查询的人员userId列表,一次最多可传50个 */ List listScheduleUsers(String access_token, String op_user_id, List userids, long from_date_time, long to_date_time); /** * 获取考勤报表列定义 [获取假期相关字段信息,不返回ID。可设置考勤字段规则, 对于接口和钉钉后台考勤统计均生效] */ List getAttColumns(String access_token); /** * 查询是否启用智能统计报表 */ boolean isOpenSmartReport(String access_token); /** * 获取考勤报表列值 * * @param column_id_list 报表列ID,多值用英文逗号分隔,最大长度20 [获取考勤报表列定义接口] * @param to_date 结束时间,结束时间减去开始时间必须在31天以内 [格式为 yyyy-MM-dd HH:mm:ss] */ List getAttColumnVal(String access_token, String userid, List column_id_list, String from_date, String to_date); /** * 获取考勤报表列值 * * @param leave_names 报表列ID,假期名称,多个用英文逗号分隔,最大长度20 [获取考勤报表列定义接口, 无Id列] * @param to_date 结束时间,结束时间减去开始时间必须在31天以内 [格式为 yyyy-MM-dd HH:mm:ss] */ List getLeaveTimeByNames(String access_token, String userid, List leave_names, String from_date, String to_date); /** * 获取班次详情 [应出勤天数, 仅返回当天] */ Map getAttendanceShiftDetail(String access_token, String op_user_id, String shift_id); /** * 搜索考勤组详情 */ Map getAttendanceGroupDetail(String access_token, String op_user_id, String group_id); /** * 搜索考勤组摘要 */ List getAttendanceGroupSearch(String access_token, String op_user_id, String group_name); }