新增班次

请求地址 https://open.hrsaas.com/api/attendance/workShifts
返回格式 JSON
content-type application/json
请求方式 POST
请求参数 班次详细信息
返回值 班次详细信息



修改班次

请求地址 https://open.hrsaas.com/api/attendance/workShifts/{id}
返回格式 JSON
content-type application/json
请求方式 PUT
请求参数 班次详细信息
返回值 班次详细信息



班次列表接口

请求地址 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"
}