dingtalk.oapi.attendance.shift.add (创建/修改班次)

创建/修改钉钉考勤班次

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
op_user_id String 必须 abc 操作人
shift TopAtClassVo 必须 班次
  • └ owner
  • String
  • 可选
  • abc
  • 班次owner
  • └ class_group_name
  • String
  • 可选
  • def
  • 班次组名
  • └ corp_id
  • String
  • 可选
  • ding23
  • corpId
  • └ name
  • String
  • 必须
  • 白班
  • 班次名称
  • └ id
  • Number
  • 可选
  • 124
  • 班次id
  • sections
  • TopAtSectionVo []
  • 必须
  • sections
  • times
  • TopAtTimeVo []
  • 必须
  • times
  • └ check_type
  • String
  • 必须
  • OnDuty
  • 类型(OnDuty上班,OffDuty下班)
  • └ across
  • Number
  • 必须
  • 0
  • 是否跨天
  • └ end_min
  • Number
  • 可选
  • -1
  • 允许的最玩打卡时间,分钟为单位(-1表示不限制)
  • └ check_time
  • Date
  • 必须
  • 2020-03-17 12:00:00
  • check时间
  • └ free_check
  • Boolean
  • 可选
  • false
  • 是否免打卡
  • └ begin_min
  • Number
  • 可选
  • 30
  • 允许的最早提前打卡时间,分钟为单位
  • └ flex_minutes
  • Number []
  • 可选
  • [60,60]
  • 当前卡点允许弹性调整范围
  • setting
  • TopAtClassSettingVo
  • 可选
  • 设置
  • rest_begin_time
  • TopAtTimeVo
  • 可选
  • 休息开始
  • └ check_type
  • String
  • 可选
  • OnDuty
  • 类型
  • └ check_time
  • Date
  • 可选
  • 2020-03-17 12:00:00
  • check时间
  • └ free_check
  • Boolean
  • 可选
  • false
  • 是否免打卡
  • └ across
  • Number
  • 可选
  • 0
  • 是否跨天
  • └ class_id
  • Number
  • 可选
  • 221
  • 班次id
  • └ is_flexible
  • Boolean
  • 可选
  • false
  • 是否弹性
  • └ corp_id
  • String
  • 可选
  • ding121
  • corpId
  • └ is_deleted
  • String
  • 可选
  • N
  • 是否删除
  • rest_end_time
  • TopAtTimeVo
  • 可选
  • 休息结束
  • └ check_type
  • String
  • 可选
  • OffDuty
  • 类型
  • └ check_time
  • Date
  • 可选
  • 2020-03-17 13:00:00
  • check时间
  • └ free_check
  • Boolean
  • 可选
  • false
  • 是否免打卡
  • └ across
  • Number
  • 可选
  • 1
  • 是否跨天
  • └ serious_late_minutes
  • Number
  • 可选
  • 31
  • 严重迟到分钟数
  • └ absenteeism_late_minutes
  • Number
  • 可选
  • 60
  • 旷工迟到分钟数
  • └ extras
  • 可选
  • {"cause":"{\"type\":\"approve\",\"relatedId\":\"43494469-21a6-4111-953b-7810a709f27f\"}"}
  • 班次设置扩展字段(非临时班次无需填写)
  • └ tags
  • String
  • 可选
  • temp:schedule:isv
  • 班次tags(非临时班次无需填写)
  • └ demand_work_time_minutes
  • Number
  • 可选
  • 480
  • 固定时长弹性班次设置的工作时长
  • └ attend_days
  • String
  • 可选
  • 0.5
  • 该班次对应的出勤天数
  • rest_time_list
  • TopAtTimeVo []
  • 可选
  • 班次休息时段列表,[start1,end1,start2,end2]格式,最多支持3段
  • └ across
  • Number
  • 可选
  • 1
  • 是否跨天
  • └ free_check
  • Boolean
  • 可选
  • false
  • 是否免打卡
  • └ check_time
  • Date
  • 可选
  • 2020-03-17 13:00:00
  • 休息时段开始结束时间点
  • └ check_type
  • String
  • 可选
  • OnDuty
  • 类型
  • └ service_id
  • Number
  • 可选
  • 123
  • 高级排班绑定服务id(非临时班次无需填写)

响应参数

名称 类型 示例值 描述
result TopAtClassVo 班次信息
  • └ id
  • Number
  • 班次id
  • └ name
  • String
  • 班次名称
errmsg String 错误信息
errcode Number 错误码
success Boolean 是否成功

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/shift/add");
OapiAttendanceShiftAddRequest req = new OapiAttendanceShiftAddRequest();
req.setOpUserId("abc");
TopAtClassVo obj1 = new TopAtClassVo();
obj1.setOwner("abc");
obj1.setClassGroupName("def");
obj1.setCorpId("ding23");
obj1.setName("白班");
obj1.setId(124L);
List<TopAtSectionVo> list3 = new ArrayList<TopAtSectionVo>();
TopAtSectionVo obj4 = new TopAtSectionVo();
list3.add(obj4);
List<TopAtTimeVo> list7 = new ArrayList<TopAtTimeVo>();
TopAtTimeVo obj8 = new TopAtTimeVo();
list7.add(obj8);
obj8.setCheckType("OnDuty");
obj8.setAcross(0L);
obj8.setEndMin(-1L);
obj8.setCheckTime(StringUtils.parseDateTime("2020-03-17 12:00:00"));
obj8.setFreeCheck(false);
obj8.setBeginMin(30L);
obj8.setFlexMinutes(new Long[] { 60,60 };
);
list5.setTimes(list7);
obj1.setSections(list3);
TopAtClassSettingVo obj9 = new TopAtClassSettingVo();
TopAtTimeVo obj10 = new TopAtTimeVo();
obj10.setCheckType("OnDuty");
obj10.setCheckTime(StringUtils.parseDateTime("2020-03-17 12:00:00"));
obj10.setFreeCheck(false);
obj10.setAcross(0L);
obj9.setRestBeginTime(obj10);
obj9.setClassId(221L);
obj9.setIsFlexible(false);
obj9.setCorpId("ding121");
obj9.setIsDeleted("N");
TopAtTimeVo obj11 = new TopAtTimeVo();
obj11.setCheckType("OffDuty");
obj11.setCheckTime(StringUtils.parseDateTime("2020-03-17 13:00:00"));
obj11.setFreeCheck(false);
obj11.setAcross(1L);
obj9.setRestEndTime(obj11);
obj9.setSeriousLateMinutes(31L);
obj9.setAbsenteeismLateMinutes(60L);
obj9.setTags("temp:schedule:isv");
obj9.setDemandWorkTimeMinutes(480L);
obj9.setAttendDays("0.5");
List<TopAtTimeVo> list13 = new ArrayList<TopAtTimeVo>();
TopAtTimeVo obj14 = new TopAtTimeVo();
list13.add(obj14);
obj14.setAcross(1L);
obj14.setFreeCheck(false);
obj14.setCheckTime(StringUtils.parseDateTime("2020-03-17 13:00:00"));
obj14.setCheckType("OnDuty");
obj9.setRestTimeList(list13);
obj1.setSetting(obj9);
obj1.setServiceId(123L);
req.setShift(obj1);
OapiAttendanceShiftAddResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());

响应示例

  • JSON示例
{
    "result":{
        "id":,
        "name":""
    },
    "errmsg":"",
    "errcode":,
    "success":
}

异常示例

  • JSON示例
{
	"errcode":88,
	"errmsg":"ding talk error"
}

错误码解释

错误码 错误描述 解决方案

API工具

如何获得此API

FAQ

返回
顶部