超能晨检机器人服务对接文档
一. 接口鉴权
以下参数需要放在Http Request Header中
参数 | 参数说明 |
appKey | 超能提供 |
Nonce | 随机数(最大长度128个字符) |
CurTime | 当前UTC时间戳,秒数 https://tool.lu/timestamp/ |
CheckSum
| getCheckSum(AppSecret + Nonce + CurTime) 有效期:出于安全性考虑,每个checkSum的有效期为5分钟(用CurTime计算),建议每次请求都生成新的checkSum,同时请确认发起请求的服务器是与标准时间同步的,比如有NTP服务。计算CheckSum的java代码举例如下 |
示例:
二. 服务地址
三. 接口定义(超能提供)
(一) 信息同步接口
Ø 幼儿园新增/修改园长接口
请求方式: POST
接口地址: /cnbots/rest/kindergarten/openapi/user/addAdmin/
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P | 同步更新幼儿园 |
deptName | String | 幼儿园名称 | P | 名称有变化会更新 |
phoneNumber | String | 手机号码 | P |
|
realName | String | 用户姓名 |
| 名称有变化会更新 |
password | String | 密码 | P |
|
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 状态码 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 描述信息 |
| 成功为空,失败时失败描述信息 |
Ø 幼儿园删除园长接口
请求方式: DELETE
接口地址: /cnbots/rest/kindergarten/openapi/user/delAdmin/
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
phoneNumber | String | 园长手机号 |
| 1. 为空,会清空当前幼儿园所有园长 2. 不为空,删除手机号对应园长 |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
Ø 单个同步学生信息接口路径:
请求方式: POST
接口地址: /cnbots/rest/kindergarten/openapi/user/saveStuInfo
请求参数:
字段名称 | 字段中文名称 | 必填 | 说明 |
opType | 操作代号 | P | 115学生数据同步 116学生离校 |
studentNo | 学生编号 | P | 数字字母,最长20,客户中唯一 删改必填 |
studentName | 学生姓名 | P | 这里以下字段都是增改必填 |
studentImg | 学生照片 |
| 学生人脸照片地址 |
deptNo | 所属幼儿园编号 | P |
|
deptName | 幼儿园名称 | P |
|
className | 班级 |
|
|
gender | 性别 |
| F/M |
birthday | 生日 |
| 例:2015-07-05 |
返回:
字段名称 | 字段中文名称 | 必填 | 说明 |
opType | 操作代号 | P | 115学生数据同步 116学生离校 |
resultCode | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | 结果描述 |
| 成功为空,失败时失败描述信息 |
Ø 幼儿园批量同步学生信息接口:
请求方式: POST
接口地址: /cnbots/rest/kindergarten/openapi/user/saveStuInfos
请求参数: List
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
studentNo | String | 学生编号 | P | 数字字母,最长20,客户平台中唯一 删改必填 |
studentName | String | 学生姓名 | P | 这里以下字段都是增改必填 |
studentImg | String | 学生照片 |
| 学生人脸照片地址 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
className | String | 班级 |
|
|
gender | String | 性别 |
| F/M |
birthday | String | 生日 |
| 例:2015-07-05 |
nfcCards | List<CardInfo> | 绑定卡号集合 |
| 学生绑定的卡信息, 1. 卡号被其他同学绑定会提示当前学生同步失败 2. 卡号只做追加处理,暂不提供解绑 |
CardInfo
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
cardNo | String | 卡号 | P |
|
cardId | String | 芯片id | P |
|
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
Ø 幼儿园批量解绑学生卡片接口:
请求方式: POST
接口地址: /cnbots/rest/kindergarten/openapi/user/unbundlingCard
请求参数: List
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
studentNo | String | 学生编号 | P | 数字字母,最长20,客户平台中唯一 删改必填 |
nfcCards | List<CardInfo> | 解绑卡号集合 |
| 学生绑定的卡信息, 1. 为空,解绑该学生下所有绑定卡片 2. 不为空,解绑指定绑定的卡片 |
CardInfo
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
cardId | String | 芯片id | P |
|
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
Ø 幼儿园学年设置接口(健康报告使用):
请求方式: POST
接口地址: /cnbots/rest/kindergarten/openapi/depart/saveWechatSemester
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
id | String | 学年id |
| 超能平台id 更新必填 |
deptNo | String | 所属幼儿园编号 | P |
|
schoolYearStr | String | 开始学年 | P | 开始年yyyy |
schoolYearEnd | String | 结束学年 | P | 结束年yyyy |
lastSemesterStr | String | 上学期开始日期 | P | yyyy-MM-dd |
lastSemesterEnd | String | 上学期结束日期 | P | yyyy-MM-dd |
nextSemesterStr | String | 下学期开始日期 | P | yyyy-MM-dd |
nextSemesterEnd | String | 下学期结束日期 | P | yyyy-MM-dd |
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | Object | 返回对象 |
| 成功返回更新的对象 |
返回:
(二) 数据查询接口
Ø 幼儿园查询园长接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/user/selectAdmin
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
phoneNumber | String | 园长手机号 |
| 精确查询 |
realName | String | 用户姓名 |
| 模糊查询 |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | List<Object> | 返回对象 |
| 园长信息集合 |
Object:
字段名称 | 类型 | 中文名称 | 类型 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
phoneNumber | String | 手机号码 | P |
|
realName | String | 用户姓名 | P |
|
Ø 查询机器人信息接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/depart/selectRobots
请求参数:
字段名称 | 字段类型 | 中文名称 | 必填 | 说明 |
departName | String | 幼儿园名称 |
| 模糊查询 |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | String | 返回对象 |
| List<Object> |
Object:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
hardwareSn | String | 机器人硬件编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
cnbotsVersion | String | 机器人版本 |
|
|
cnbotsId | String | 机器人id | P |
|
Ø 查询机器人实时状态接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/depart/selectRobotsStatus
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
cnbotsIds | String | 机器人id集合 | P | 字符串,逗号隔开 |
返回:
字段名称 | 类型 | 名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | String | 返回对象 |
| List<Object> |
Object:
字段名称 | 类型 | 名称 | 必填 | 说明 |
cnbotsId | String | 机器人id | P |
|
mainState | Integer | 机器人运行状态 | P | 运行状态-1离线0空闲 1在线 2故障 |
netState | Integer | 网络状态 | P | 网络状态 0正常 1弱网络 -1断网 |
faceCamera | Integer | 人脸摄像头 |
| 人脸摄像头 -1空闲 0正常 1故障 |
oralCamera | Integer | 口腔摄像头 |
| 口腔摄像头 -1空闲 0正常 1故障 |
tempSensor | Integer | 体温传感器 |
| 体温传感器 -1空闲 0正常 1故障 |
electronicScale | Integer | 电子秤 |
| 电子秤 -1空闲 0正常 1故障 |
touchScreen | Integer | 触摸屏 |
| 触摸屏 0正常 1故障 |
faceFillLight | Integer | 人脸补光灯 |
| 人脸补光灯0正常 1故障 |
oralFillLight | Integer | 口腔补光灯 |
| 口腔补光灯0正常 1故障 |
loudspeaker | Integer | 扬声器 |
| 扬声器0正常 1故障 |
microphone | Integer | 麦克风 |
| 麦克风0正常 1故障 |
cardReader | Integer | 读卡器 |
| 读卡器0正常 1故障 |
createTime | Date | 创建时间 |
|
|
updateTime | Date | 更新时间 |
|
|
Ø 查询幼儿园学生人脸闸机进出记录接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/user/selectStudentShuttle
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
startTime | String | 开始时间 |
| 为空默认查询当月记录 格式‘1990-12-12’ |
endTime | String | 结束时间 |
| 时间间隔不得超过60天 格式‘1990-12-12’ |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | List | 返回对象 |
| List<Object> |
Object:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
studentNo | String | 学生编号 | P |
|
studentName | String | 学生姓名 |
|
|
shuttlePhotos | String | 接送照片 |
|
|
shuttleTime | Date | 接送时间 |
|
|
Ø 查询幼儿园学生健康报告月报接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/user/studentHealthReport/month
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
studentNo | String | 学生编号 |
|
|
currentYear | String | 报告年 |
|
|
currentMonth | String | 报告月 |
|
|
page | Integer | 页码 |
| 默认1 |
rows | Integer | 每页行数 |
| 默认20 |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | List | 返回对象 |
| List<Map<String,Object>> |
Map<String,Object>
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
total | String | 总数 | P |
|
page | String | 页数 | P |
|
rows | String | 每页行数 | P |
|
result | List | 返回对象 | P | List<Object> |
Object:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
studentNo | String | 学生编号 | P |
|
studentName | String | 学生姓名 | P |
|
score | Integer | 健康月报评分 |
|
|
createTime | Date | 生成时间 |
| 报告生成时间 |
checkDate | Date | 报告年月 |
|
|
currentYear | String | 当前年 |
|
|
currentMonth | String | 当前月 |
|
|
morningCheck | Integer | 晨检次数 |
|
|
normalCheck | Integer | 常规体检次数 |
|
|
normalMorningCheck | Integer | 正常晨检次数 |
|
|
temperatureLow | Integer | 体温偏低次数 |
|
|
temperatureHigh | Integer | 体温偏高次数 |
|
|
handHerpesSuspected | Integer | 手掌检测疑似疱疹次数 |
|
|
mouthHerpesSuspected | Integer | 口腔检测疑似疱疹次数 |
|
|
height | BigDecimal | 当前(月|学期|年)最后一次身高 |
|
|
weight | BigDecimal | 当前(月|学期|年)最后一次体重 |
|
|
rightEyeVision | String | 当前(月|学期|年)最后一次右眼视力 |
|
|
leftEyeVision | String | 当前(月|学期|年)最后一次左眼视力 |
|
|
heightNumber | Integer | 当前(月|学期|年)身高测量次数 |
|
|
weightNumber | Integer | 当前(月|学期|年)体重测量次数 |
|
|
visionNumber | Integer | 当前(月|学期|年)视力测量次数 |
|
|
Ø 查询幼儿园学生健康报告学期报接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/user/studentHealthReport/semester
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
studentNo | String | 学生编号 |
|
|
cnbotsSemesterId | String | 学年id |
| 参见健康报告学年设置接口 |
page | Integer | 页码 |
| 默认1 |
rows | Integer | 每页行数 |
| 默认20 |
返回:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | List | 返回对象 |
| List<Map<String,Object>> |
Map<String,Object>
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
total | String | 总数 | P |
|
page | String | 页数 | P |
|
rows | String | 每页行数 | P |
|
result | List | 返回对象 | P | List<Object> |
Object:
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
studentNo | String | 学生编号 | P |
|
studentName | String | 学生姓名 |
|
|
score | Integer | 健康月报评分 |
|
|
createTime | Date | 生成时间 |
| 报告生成时间 |
morningCheck | Integer | 晨检次数 |
|
|
normalCheck | Integer | 常规体检次数 |
|
|
normalMorningCheck | Integer | 正常晨检次数 |
|
|
temperatureLow | Integer | 体温偏低次数 |
|
|
temperatureHigh | Integer | 体温偏高次数 |
|
|
handHerpesSuspected | Integer | 手掌检测疑似疱疹次数 |
|
|
mouthHerpesSuspected | Integer | 口腔检测疑似疱疹次数 |
|
|
semesterType | String | 学期 |
| 1:上学期,2:下学期 |
cnbotsSemesterId | String | 学期ID |
|
|
height | BigDecimal | 当前(月|学期|年)最后一次身高 |
|
|
weight | BigDecimal | 当前(月|学期|年)最后一次体重 |
|
|
rightEyeVision | String | 当前(月|学期|年)最后一次右眼视力 |
|
|
leftEyeVision | String | 当前(月|学期|年)最后一次左眼视力 |
|
|
heightNumber | Integer | 当前(月|学期|年)身高测量次数 |
|
|
weightNumber | Integer | 当前(月|学期|年)体重测量次数 |
|
|
visionNumber | Integer | 当前(月|学期|年)视力测量次数 |
|
|
Ø 查询幼儿园学生健康报告年报接口
请求方式: GET
接口地址: /cnbots/rest/kindergarten/openapi/user/studentHealthReport/year
请求参数:
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
studentNo | String | 学生编号 |
|
|
currentYear | String | 报告年 |
|
|
page | Integer | 页码 |
| 默认1 |
rows | Integer | 每页行数 |
| 默认20 |
返回:
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
resultCode | String | 结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 结果描述 |
| 成功为空,失败时失败描述信息 |
result | Integer | 返回对象 |
| List<Map<String,Object>> |
Map<String,Object>
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
total | Integer | 总数 | P |
|
page | Integer | 页数 | P |
|
rows | Integer | 每页行数 | P |
|
result | List | 返回对象 | P | List<Object> |
Object:
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
deptNo | String | 所属幼儿园编号 | P |
|
deptName | String | 幼儿园名称 | P |
|
studentNo | String | 学生编号 | P |
|
studentName | String | 学生姓名 |
|
|
createTime | Date | 生成时间 |
| 报告生成时间 |
currentYear | String | 当前年 |
|
|
morningCheck | Integer | 晨检次数 |
|
|
normalCheck | Integer | 常规体检次数 |
|
|
normalMorningCheck | Integer | 正常晨检次数 |
|
|
temperatureLow | Integer | 体温偏低次数 |
|
|
temperatureHigh | Integer | 体温偏高次数 |
|
|
handHerpesSuspected | Integer | 手掌检测疑似疱疹次数 |
|
|
mouthHerpesSuspected | Integer | 口腔检测疑似疱疹次数 |
|
|
height | BigDecimal | 当前(月|学期|年)最后一次身高 |
|
|
weight | BigDecimal | 当前(月|学期|年)最后一次体重 |
|
|
rightEyeVision | String | 当前(月|学期|年)最后一次右眼视力 |
|
|
leftEyeVision | String | 当前(月|学期|年)最后一次左眼视力 |
|
|
heightNumber | Integer | 当前(月|学期|年)身高测量次数 |
|
|
weightNumber | Integer | 当前(月|学期|年)体重测量次数 |
|
|
visionNumber | Integer | 当前(月|学期|年)视力测量次数 |
|
|
四. 数据上报(第三方提供)
Ø 晨检结果上报接口
请求方式: POST
接口地址: 供外网接口地址,用来回调晨检结果
请求方式:
请求参数:
字段名称 | 类型 | 中文名称 | 必填 | 说明 |
empNo | String | 人员编号 | P | 数字字母,最长20,客户中唯一 删改必填 |
cnbotId | String | 晨检机器ID | P | 字符串 |
checkDate | Long | 检测时间 | P | 毫秒级时间戳 |
deptNo | String | 学校编码 | P | 学校编码 |
height | Double | 身高 |
|
|
weight | Double | 体重 |
|
|
bodyTemperature | Double | 体温 |
|
|
herpes | String | 疱疹 |
| Y/N 是否异常,Y表示异常,N标识正常 |
handHerpes | String | 手掌疱疹 |
| Y/N/U 是否异常,Y表示异常,N标识正常,U未检测到手掌 |
mouthHerpes | String | 口腔疱疹 |
| Y/N/U 是否异常,Y表示异常,N标识正常,U未检测到口腔 |
nail | String | 指甲 |
| Y/N 是否异常,Y表示异常,N标识正常 |
cough | String | 咳嗽 |
| Y/N 是否异常,Y表示异常,N标识正常 |
wound | String | 外伤 |
| Y/N 是否异常,Y表示异常,N标识正常 |
userPhoto | String | 晨检照片 |
| 照片地址 |
handPhoto | String | 手掌照片 |
| 照片地址 |
mouthPhoto | String | 口腔照片 |
| 照片地址 |
shuttleStatus | String | 考勤状态 |
| 晨检考勤状态 in/out |
返回:
字段名称 | 类型 | 字段中文名称 | 必填 | 说明 |
resultCode | String | 回应结果代号 | P | 0成功1失败 -1鉴权失败 |
resultStr | String | 回应结果描述 |
| 成功为空,失败时失败描述描述 |
五. 对接操作流程
1. 对接方通过人员信息同步接口同步幼儿园学生数据到超能
2. 设置园长:通过新增园长接口同步数据,设置园长
3. 切换机器人服务环境:
(1) 轻触机器人表情界面-其他功能-右上角设置按钮-高级设置-输入密码-进入软件设置-通用设置-最下方按钮【恢复出厂设置】
(2) 等待重启-长按【请输入手机号码激活】-自定义-输入服务器地址-重新激活即可
输入服务器地址:
(3) 机器切换成功后一般是刷卡版本,人脸版本需要在后台主动切换
4. 使用用园长手机号在机器人上进行激活登录,进入机器人应用即可看到幼儿园学生数据,录入人脸即可进行晨检
六. 说明
1.对接方同步到超能的数据,超能后台无权限修改,由第三方自己平台修改数据后同步超能更新
2.人员信息同步时如果人脸字段不为空,会替换晨检机器人录的人脸,如无必要,请谨慎操作
3.第三方请务必不要操作超能平台进行添加幼儿园,班级,学生等操作,数据无效
七. 常见问题
1.提示没有权限,检查鉴权参数是否正确
2.接口同步学生成功,手机号登录机器人,无学生信息
(1)机器人环境是否切换成功
(2)手机号和幼儿园是一一对应的,检查下当前手机号对应的幼儿园,是否和接口同
步的幼儿园相同