DDClient_Attendance.java 4.3 KB

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