钉钉二次开发 考勤与薪资统计
结合企业实际需求,对接钉钉考勤,得到考勤统计报表,对接人事管理系统,自动得到薪资报表。
- 启用智能统计报表流程
- 接口调用
- 是否启用智能统计报表
- 获取报表列定义
- 获取报表列值
- 获取报表假期数据
考勤智能统计报表,是考勤为了满足企业个性化的统计需求,提供的一套智能可编程的报表系统。企业可以通过简单勾选或者高级编程模式来定制企业的统计规则,非常便捷地提供便于计算薪酬结果的统计数据。本文介绍如何使用统计报表API,获取企业的统计报表数据。
启用智能统计报表流程
开发者登录钉钉管理后台,点击工作台-考勤打卡-进入,打开考勤打卡后台。
点击月度汇总,查看是否开启智能统计报表:
如果右上角是“切换新版”,那么是未启用智能报表状态。需要点击切换新版,即可启用智能统计报表。
如果右上角是“返回旧版”,那么无需进行其他操作,当前已启用新版智能统计报表。
接口调用
是否启用智能统计报表
判断企业是否开启了考勤智能报表,如果企业未启用智能报表,无法调用统计报表其他的接口。
请求方式:POST(HTTPS)
请求地址:https://oapi.dingtalk.com/topapi/attendance/isopensmartreport?access_token=ACCESS_TOKEN
参数说明:无需入参
SDK请求示例(JAVA):
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/isopensmartreport"); OapiAttendanceIsopensmartreportRequest req = new OapiAttendanceIsopensmartreportRequest(); OapiAttendanceIsopensmartreportResponse rsp = client.execute(req, access_token); System.out.println(rsp.getBody());
返回结果:
{"result": {"smart_report": true},"errmsg": "ok","errcode": 0 }
参数 |
类型 |
示例值 |
说明 |
errcode |
Number |
0 |
返回码。0表示成功,其他表示失败 |
errmsg |
String |
ok |
对返回码的文本描述内容 |
result |
|||
└smart_report |
boolen |
true |
true:开启,false:未开启 |
获取报表列定义
获取企业智能考勤报表中的列信息,通过获取列信息中的id值,可以根据列的id查询考勤智能报表中该列的统计数据,企业可以自主选择需要哪些列值来参与薪酬的计算。
注意:如果是获取假期相关字段信息,不返回id。如果希望获取假期相关信息,请调用本文-“获取报表假期数据”接口。
请求方式:POST(HTTPS)
请求地址:https://oapi.dingtalk.com/topapi/attendance/getattcolumns?access_token=ACCESS_TOKEN
参数说明:无需入参
SDK请求示例(JAVA):
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/getattcolumns"); OapiAttendanceGetattcolumnsRequest req = new OapiAttendanceGetattcolumnsRequest(); OapiAttendanceGetattcolumnsResponse rsp = client.execute(req, access_token); System.out.println(rsp.getBody());
返回结果:
{"errmsg": "ok","errcode": 0,"result": {"columns": [{"id": 123,"name": "工时"}]} }
参数 |
类型 |
示例值 |
说明 |
errcode |
Number |
0 |
返回码。0表示成功,其他表示失败 |
errmsg |
String |
ok |
对返回码的文本描述内容 |
result |
|||
└columns |
|||
└└id |
Number |
123 |
列id |
└└name |
String |
工时 |
列名称 |
获取报表列值
获取钉钉智能考勤报表的列值数据,其中包含了一定时间段内报表某些列的所有数据,以及相关的列信息,企业可以基于该接口的返回值计算员工薪酬。
注意:不支持获取离职人员的考勤信息,离职人员的考勤数据可以在OA管理后台查询。
请求方式:POST(HTTPS)
请求地址:https://oapi.dingtalk.com/topapi/attendance/getcolumnval?access_token=ACCESS_TOKEN
参数说明:
参数 |
类型 |
必须 |
示例值 |
说明 |
userid |
String |
是 |
zhangsan |
员工id |
column_id_list |
String |
是 |
1,2,3 |
报表列id列表,多个用英文逗号分隔,最大长度20 |
from_date |
Date |
是 |
2018-07-11 12:12:12 |
开始时间 |
to_date |
Date |
是 |
2018-07-12 12:12:12 |
结束时间,结束时间减去开始时间必须在31天以内 |
SDK请求示例(JAVA):
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/getcolumnval"); OapiAttendanceGetcolumnvalRequest req = new OapiAttendanceGetcolumnvalRequest(); req.setUserid("zhangsan"); req.setColumnIdList("1,2,3"); req.setFromDate(StringUtils.parseDateTime("2018-07-11 12:12:12")); req.setToDate(StringUtils.parseDateTime("2018-07-12 12:12:12")); OapiAttendanceGetcolumnvalResponse rsp = client.execute(req, access_token); System.out.println(rsp.getBody());
返回结果:
{"errmsg": "ok","errcode": 0,"result": {"column_vals": [{"column_vals": [{"date": "2019-07-11","value": "1.0"}],"column_vo": {"id": 123},"fixed_value": "0"}]} }
参数 |
类型 |
示例值 |
说明 |
errcode |
Number |
0 |
返回码。0表示成功,其他表示失败 |
errmsg |
String |
ok |
对返回码的文本描述内容 |
result |
|||
└column_vals |
|||
└└column_vals |
|||
└└└date |
String |
2019-08-15 |
日期 |
└└└value |
String |
1.0 |
每天的值 |
└└column_vo |
|||
└└└id |
Number |
123 |
报表列id |
└└fixed_value |
String |
2.0 |
固定值,某些报表列是固定列值的,那么仅会在这个字段返回,不会在column_vals中返回 |
获取报表假期数据
根据假期名称和用户id获取钉钉智能考勤报表的假期数据,其中包含了一定时间段内报表假期列的所有数据,由于假期列是一个动态列,因此需要根据假期名称获取数据。
请求方式:POST(HTTPS)
请求地址:https://oapi.dingtalk.com/topapi/attendance/getleavetimebynames?access_token=ACCESS_TOKEN
参数说明:
参数 |
类型 |
必须 |
示例值 |
说明 |
userid |
String |
是 |
zhangsan |
员工id |
leave_names |
String |
是 |
年假 |
假期名称,多个用英文逗号分隔,最大长度20 |
from_date |
Date |
是 |
2018-07-11 12:12:12 |
开始时间 |
to_date |
Date |
是 |
2018-07-12 12:12:12 |
结束时间,结束时间减去开始时间必须在31天以内 |
SDK请求示例(JAVA)
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/getleavetimebynames"); OapiAttendanceGetleavetimebynamesRequest req = new OapiAttendanceGetleavetimebynamesRequest(); req.setUserid("zhangsan"); req.setLeaveNames("年假"); req.setFromDate(StringUtils.parseDateTime("2018-07-11 12:12:12")); req.setToDate(StringUtils.parseDateTime("2018-07-12 12:12:12")); OapiAttendanceGetleavetimebynamesResponse rsp = client.execute(req, access_token); System.out.println(rsp.getBody());
返回结果
{"result": {"columns": [{"columnvo": {"name": "年假","id": 1},"columnvals": [{"value": "1.0","date": "2018-08-09"}]}]},"errcode": 0,"errmsg": "ok" }
参数 |
类型 |
示例值 |
说明 |
errcode |
Number |
0 |
返回码。0表示成功,其他表示失败 |
errmsg |
String |
ok |
对返回码的文本描述内容 |
result |
|||
└columns |
|||
└└columnvals |
|||
└└└date |
String |
2018-08-09 |
日期 |
└└└value |
String |
1.0 |
每天的值 |
└└columnvo |
|||
└└└id |
Number |
123 |
报表列id |
└└└name |
String |
年假 |
假期类型 |
钉钉二次开发 考勤与薪资统计相关推荐
- 钉钉网页版怎样适用于企业的个性化发展
如果一家企业有一千名员工,而它又有能力激发出这一千名员工的创造创新力,那这家企业的能量是巨大的,它就会不断自我更新进化."近日,在新制造峰会上,阿里钉钉CEO陈航表示:激发员工创造创新很重要 ...
- 云南昆明钉钉ISV定制二次开发,企业办公OA、HR、CRM系统集成解决方案
一.钉钉定制介绍 钉钉协同办公软件是侧重于企业应用.沟通的协同工具,提高企业智能办公效率,方便更多的云南企业管理.现在越来越多的企业都在使用钉钉系统办公.云南天成科技旗下(云南天智云科技),是钉钉官方 ...
- 钉钉二次开发-组织机构同步 获取用户信息 单点登录接口
建用户 调试工具:在线调试 请求方式:POST(HTTPS) 请求地址:https://oapi.dingtalk.com/user/create?access_token=ACCESS_TOKEN ...
- 钉钉开发平台 —H5微应用-- 扫条形码、二维码 api 示例
扫条形码.二维码 使用说明 客户端 Android iOS PC 支持说明 支持 支持 不支持 dd.biz.util.scan({type: String , // type 为 all.qrCod ...
- 蝉道二次开发与钉钉机器人对接
一.需求及分析过程 痛点:蝉道中单据(如:bug)填写不规范,需要筛选数据后再大量时间与当时人沟通,费时费力,如果设置为必填字段,会对其他业务线造成阻碍,只能单独拉取并通知相关人员. 需求:将特定项目 ...
- 5分钟快速接入钉钉实现钉钉考勤
一.前言 由于今年疫情影响,假期的无限延长让大家都不得不进行线上办公,说到线上办公就毫无疑问,钉钉是这个疫情假期最大的赢家,APP的火热程度以及下载量甚至压过了微信,跃居App store免费排行榜第 ...
- android仿钉钉日程日历,Flutter仿钉钉考勤日历的示例代码
本文主要介绍了Flutter仿钉钉考勤日历的示例代码,分享给大家,具体如下: 效果 原型 开发 1. 使用 // 考勤日历 DatePickerDialog( initialDate: DateTim ...
- 钉钉考勤与企业系统对接
公司最近企业系统要与钉钉考勤打卡数据对接,所以需要拿到钉钉上月员工的考勤打卡数据.配置了spring定时任务,任务类步骤如下: 引入钉钉相关JAR包 一:获得tooken 1.需要公司钉钉管理员给开发 ...
- 钉钉API考勤打卡记录获取并存入数据库(python)
前言: 钉钉有个开发平台,通过API可以开发自己企业内部应用,钉钉开发文档顺序写的有点乱,花了挺长时间才看懂,我写了一个python脚本来获取考勤记录,当然能做的不止这些,可以删除公司成员,修改部门, ...
最新文章
- K8S 从懵圈到熟练--大数据平台技术栈18
- 日常英语---一、纸质版还是电子版
- 反射和代理的具体应用
- linux如何查看mysql是否启动
- Java toString()方法的要点
- Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件
- 1. 变量和基本类型
- 设置窗体的可见性无效
- React Native For Android 架构初探
- delphi7 调webservice时报错:fault occurred while processing
- mac地址查 计算机名字,怎么看mac地址-教你通过MAC地址查询设备的厂商名称
- 金蝶系统无法建立数据可连接服务器,金蝶K3打开,提示无法建立数据链接
- mindoc快速搭建教程
- android心率曲线绘制,巧妙绘制心率曲线图的方法实践
- 江苏工匠杯_easyphp_wp
- devops1--k8s安装
- MySQL的存储引擎InnoDB选择了B+ 树
- Agent with Warm Start and Adaptive Dynamic Termination for Plane Localization in 3D Ultrasound
- 24V-5V/12V 高效率转压板设计(附电路原理图和pcb)
- 多元线性回归分析(R语言)
热门文章
- c#+mysql备份还原数据库_C#实现对数据库的备份还原(完全) – meimao5211
- 10kv电压互感器型号_高压互感器型号含义
- stream流去除对象的值_Java 流(Stream)、文件(File)和IO
- W2k8应用vista主题
- python读取excel股票历史数据_python实例:从excel读取股票代码,爬取股票信息写到代码后面的单元格中...
- 把avl、f4v、flv格式转换成mp4格式的方法--win10专业版
- 刷完这套微服务+多线程+源码+分布式+调优试题,年薪50w还会是问题吗
- suse linux查询端口占用,Suse Linux常用端口开启、关闭、禁用
- 深度学习中高斯噪声:为什么以及如何使用
- j = j ++ 和 j = ++ j的区别