新增班次
修改班次
班次列表接口
请求地址 |
api/attendance/workShifts |
返回格式 |
JSON |
content-type |
application/json |
请求方式 |
GET |
请求参数 |
QUERY 参数 |
请求举例 |
根据班次名称获取班次信息
请求示例:/api/attendance/workShifts?offset=0&limit=20&orderby=id desc&keyword=白班 |
说明 |
可以通过该接口获取班次名称包含白班的数据 |
请求参数说明
参数 |
类型 |
说明 |
举例 |
必选 |
offset |
int |
分页查询的偏移量 |
0 |
Yes |
limit |
int |
分页页码 |
20 |
Yes |
orderby |
string |
分页排序字段 |
id desc |
Yes |
filter |
string |
过滤条件,请参考ODATA表达式了解表达式规则 |
id eq 1 |
No |
keyword |
string |
可模糊匹配班次名称 |
白班 |
No |
返回值结构
属性 |
类型 |
说明 |
list |
Object[] |
班次信息数组 |
班次详情接口
请求地址 |
api/attendance/workShifts/{id} |
返回格式 |
JSON |
content-type |
application/json |
请求方式 |
GET |
请求参数 |
Path 参数 |
请求举例 |
根据班次ID获取班次信息
请求示例:/api/attendance/workShifts/1 |
说明 |
可以通过该接口获取ID为1的班次数据 |
班次数据结构
属性 |
类型 |
说明 |
举例 |
必选 |
name |
String |
班次名称 |
白班 |
是 |
type |
String |
班次类型 |
NORMAL |
是 |
memo |
String |
班次说明 |
这是一个白班 |
否 |
normalShiftItem |
Object |
普通班次详情 |
|
是 |
»leaveHoursRatio |
integer |
假勤换算基数 |
8 |
否 |
»timeSlots |
Object[] |
工作时间 |
|
是 |
»»beforeStartMins |
integer |
开始前多少分钟内打卡有效 |
30 |
是 |
»»startTime |
LocalTime |
开始时间 |
09:00:00 |
是 |
»»startDate |
String |
开始日期 |
CURRENT |
是 |
»»afterEndMins |
integer |
结束后多少分钟内打卡有效 |
30 |
是 |
»»endTime |
LocalTime |
结束时间 |
18:00:00 |
是 |
»»endDate |
String |
结束日期 |
CURRENT |
是 |
»restTimeSlots |
Object[] |
休息时间 |
|
否 |
»»startTime |
LocalTime |
开始时间 |
09:00:00 |
是 |
»»startDate |
String |
开始日期 |
CURRENT |
是 |
»»endTime |
LocalTime |
结束时间 |
18:00:00 |
是 |
»»endDate |
String |
结束日期 |
CURRENT |
是 |
»halfDaySetting |
Object |
半天班次设置 |
|
否 |
»»firstHalfEndTime |
LocalTime |
上半天结束时间 |
12:30:00 |
是 |
»»firstTimeAcrossDay |
boolean |
上半天结束时间是否跨天 |
true |
否 |
»»secondHalfStartTime |
LocalTime |
下半天开始时间 |
13:15:00 |
是 |
»»secondTimeAcrossDay |
boolean |
下半天结束时间是否跨天 |
true |
否 |
»lateLeaveOffset |
Object[] |
晚走晚到 |
|
否 |
»»enabled |
boolean |
是否启用 |
true |
是 |
»»offsetList |
Object[] |
|
晚走晚到设置 |
否 |
»»»lateLeave |
integer |
昨天下班晚走小时 |
2 |
是 |
»»»adjust |
integer |
今天上班可以晚到小时 |
2 |
否 |
notFixTimeShiftItem |
Object |
无固定时间班次详情 |
|
否 |
»granularityMins |
integer |
打卡取整时间(分钟) |
30 |
是 |
»minIntervalMins |
integer |
打卡最短间隔(分钟) |
60 |
是 |
»startTime |
LocalTime |
允许打卡的最早时间 |
07:00:00 |
是 |
»endTime |
LocalTime |
允许打卡的最晚时间 |
21:00:00 |
是 |
»scriptEnabled |
boolean |
是否启用扩展 |
true |
否 |
»script |
String |
扩展脚本 |
|
否 |
userDefinedFields |
Object |
扩展信息 |
|
否 |
»补贴类别 |
String |
补贴类别 |
跳班 |
否 |
班次类型
属性 |
类型 |
可选值 |
说明 |
type |
string |
NORMAL |
普通班次 |
|
|
NOT_FIX_TIME |
非固定时间班次 |
开始\结束日期
属性 |
类型 |
可选值 |
说明 |
startDate/endDate |
string |
PREVIOUS |
前日 |
|
|
CURRENT |
当日 |
|
|
NEXT |
次日 |
返回值
名称 |
类型 |
说明 |
errorCode |
String |
错误编码 |
errorMessage |
String |
错误信息 |
warningMessages |
string |
警告信息 |
body |
Object |
返回体 |
示例 (普通班次请求)
{
"type": "NORMAL",
"name": "测试",
"memo": "111",
"normalShiftItem": {
"restTimeSlots": [
{
"startTime": "12:00:00",
"endTime": "13:00:00",
"lineNum": 0,
"startDate": "CURRENT",
"endDate": "CURRENT"
}
],
"timeSlots": [
{
"startTime": "09:00:00",
"endTime": "18:00:00",
"beforeStartMins": 0,
"afterEndMins": 0,
"startDate": "CURRENT",
"endDate": "CURRENT"
}
],
"halfDaySetting": {
"firstHalfEndTime": "12:00:00",
"secondHalfStartTime": "13:00:00",
"firstTimeAcrossDay": false,
"secondTimeAcrossDay": false
},
"leaveHoursRatio": 1,
"lateLeaveOffset": {
"enabled": true,
"offsetList": [
{
"index": 0,
"lateLeave": 3.5,
"adjust": 1.5
}
]
}
},
"userDefinedFields": {
"是否享受餐补": true
}
}
示例 (普通班次返回)
{
"errorCode": null,
"errorMessage": null,
"warningMessages": null,
"body": {
"id": 2575,
"version": 2,
"createdTime": "2024-05-17T15:23:06.189+08:00",
"updatedTime": "2024-05-17T15:23:06.196+08:00",
"createUserId": "621e34c80cf2591d68003fd3",
"updateUserId": "621e34c80cf2591d68003fd3",
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": "测试",
"deleted": false,
"userDefinedFields": {
"是否享受餐补": true
},
"udfCodeNameMap": {},
"udfLinkedBOMap": {},
"udfConfigurableEnumMap": {},
"name": "测试",
"type": "NORMAL",
"offDay": false,
"normalShiftItem": {
"id": 2010,
"version": null,
"createdTime": null,
"updatedTime": null,
"createUserId": null,
"updateUserId": null,
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": null,
"deleted": false,
"otStartMinutes": null,
"otEndMinutes": null,
"otByClock": false,
"lateLeaveOffset": {
"id": 1614,
"version": null,
"createdTime": null,
"updatedTime": null,
"createUserId": null,
"updateUserId": null,
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": null,
"deleted": false,
"enabled": true,
"offsetList": [
{
"lateLeave": 3.5,
"adjust": 1.5
}
]
},
"timeSlots": [
{
"id": 4977,
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "CURRENT",
"endDate": "CURRENT",
"beforeStartMins": 0,
"afterEndMins": 0
}
],
"halfDaySetting": {
"firstHalfEndTime": "12:00:00",
"firstTimeAcrossDay": false,
"secondTimeAcrossDay": false,
"secondHalfStartTime": "13:00:00"
},
"restTimeSlots": [
{
"id": 1915,
"startTime": "12:00:00",
"endTime": "13:00:00",
"startDate": "CURRENT",
"endDate": "CURRENT"
}
],
"leaveHoursRatio": 1
},
"notFixTimeShiftItem": null,
"memo": "111"
}
}
示例 (无固定时间班次请求)
{
"type": "NOT_FIX_TIME",
"name": "测试2",
"memo": "无固定班次",
"notFixTimeShiftItem": {
"startTime": "02:00:00",
"endTime": "21:00:00",
"script": "//实现main函数逻辑,返回计算结果;main函数不得删除;\n//可用对象:ctx用于访问当前上下文,logger用于日志,具体请参考api文档\ndef main(){\n return 0;\n}",
"granularityMins": 20,
"minIntervalMins": 30,
"scriptEnabled": true
},
"userDefinedFields": {
"是否享受餐补": null
}
}
示例 (无固定时间班次返回)
{
"id": 2576,
"version": 2,
"createdTime": "2024-05-17T15:46:17.327+08:00",
"updatedTime": "2024-05-17T15:46:17.336+08:00",
"createUserId": "621e34c80cf2591d68003fd3",
"updateUserId": "621e34c80cf2591d68003fd3",
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": "测试2",
"deleted": false,
"userDefinedFields": {
"是否享受餐补": null
},
"udfCodeNameMap": {},
"udfLinkedBOMap": {},
"udfConfigurableEnumMap": {},
"name": "测试2",
"type": "NOT_FIX_TIME",
"offDay": false,
"normalShiftItem": null,
"notFixTimeShiftItem": {
"id": 44,
"version": null,
"createdTime": null,
"updatedTime": null,
"createUserId": null,
"updateUserId": null,
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": null,
"deleted": false,
"granularityMins": 20,
"minIntervalMins": 30,
"startTime": "02:00:00",
"endTime": "21:00:00",
"scriptEnabled": true,
"script": "//实现main函数逻辑,返回计算结果;main函数不得删除;\n//可用对象:ctx用于访问当前上下文,logger用于日志,具体请参考api文档\ndef main(){\n return 0;\n}"
},
"memo": "无固定班次"
}
修改班次示例
{
"id": "2575",
"version": 2,
"createdTime": "2024-05-17T15:23:06.000+08:00",
"updatedTime": "2024-05-17T15:23:06.000+08:00",
"createUserId": "621e34c80cf2591d68003fd3",
"updateUserId": "621e34c80cf2591d68003fd3",
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": "测试",
"deleted": false,
"userDefinedFields": {
"是否享受餐补": true
},
"udfCodeNameMap": {},
"udfLinkedBOMap": {},
"udfConfigurableEnumMap": {},
"name": "测试",
"type": "NORMAL",
"offDay": false,
"normalShiftItem": {
"id": 2010,
"version": null,
"createdTime": null,
"updatedTime": null,
"createUserId": null,
"updateUserId": null,
"bizDisabled": false,
"maskedSysFields": [],
"maskedUdfFields": [],
"displayLabel": null,
"deleted": false,
"otStartMinutes": null,
"otEndMinutes": null,
"otByClock": false,
"lateLeaveOffset": {
"enabled": true,
"offsetList": [
{
"lateLeave": 3.5,
"adjust": 1.5,
"index": 0
}
]
},
"timeSlots": [
{
"id": 4977,
"startTime": "09:00:00",
"endTime": "18:00:00",
"startDate": "CURRENT",
"endDate": "CURRENT",
"beforeStartMins": 0,
"afterEndMins": 0
}
],
"halfDaySetting": {
"firstHalfEndTime": "12:00:00",
"firstTimeAcrossDay": false,
"secondTimeAcrossDay": false,
"secondHalfStartTime": "13:00:00"
},
"restTimeSlots": [
{
"id": 1915,
"startTime": "12:00:00",
"endTime": "13:00:00",
"startDate": "CURRENT",
"endDate": "CURRENT"
}
],
"leaveHoursRatio": 8
},
"notFixTimeShiftItem": null,
"memo": "111"
}