# 业务流程梳理 1. 用户输入账号密码进行客户端登录,系统校验用户是否存在系统和密码是否正确,输入信息正确后判断用户类型; 2. 当用户类型登录的为教育用户时(区县一级),返回的schools接口(其实获取的是区域的检测计划,映射到日常体测中即为获取区县教育用户设置的日常检测计划,对应的表为sys_daily_plan) * 在此用户登录的基础上,projectId即为sys_daily_plan中的id * 在后续的接口中的schoolID字段设置为sys_daily_plan中的companyId进行传参; * 后续返回的school数据结构中按照sys_company中的信息进行返回; * 再往后的接口中`PhysicalProjects`中返回sys_daily_plan_school中对应daily_id中的所有学校信息,可以理解为选择对应的检测学校; * 基于上一步,后续的projectId全部传递sys_daily_plan_school中的id作为对应的项目ID 3. 当用户登录的类型为学校用户时,查询对应的sys_daily_plan_school表中的schoolId * 后续的操作中参照教育用户登录选择的内容返回sys_daily_plan中的名称,第二部直接就选择该学校即可; ## 同步服务器时间 ```json https://ty.hxhh.tech/hhcrm/api/HHDevices/getcurrenttime {"value":"2025-09-16 10:13:56","result":0,"message":""} ``` ## 登录接口 ```json url: "https://ty.hxhh.tech/hhcrm/api/tokens" type: 'post' requestbody: { "clientid": "6D587F96", "mac": "Mac地址:db:b2:5d:a7:a4:5e", "password": "ou7eMPFsoMrbfMA05cnIiQ\u003d\u003d\n", "systemflag": 2, "userId": "18167973603" } ``` ```json responseBody: { "value": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIiwiU3lzdGVtRmxhZyI6IjIiLCJDbGllbnRJRCI6IjZENTg3Rjk2IiwibmJmIjoxNzU3OTEyNjE5LCJleHAiOjE3NTc5MzA2MTksImlzcyI6Imh0dHBzOi8vd3d3Lmh1YXhpYWh1aWhhaS5jb20iLCJhdWQiOiJodHRwOi8vd3d3Lmd6aHhoaHR5LmNvbSJ9.ZwNqcje-fuiOGrVqJadiU6-0lxEdUJ08OfFE7wsswQ0", "expireTime": 18000, "sign": "" }, "result": 0, "message": "" } ``` ## 获取学校接口 ```json url: "https://ty.hxhh.tech/hhcrm/api/schools" type: "get" header: { Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIiwiU3lzdGVtRmxhZyI6IjIiLCJDbGllbnRJRCI6IjZENTg3Rjk2IiwibmJmIjoxNzU3OTEyNjE5LCJleHAiOjE3NTc5MzA2MTksImlzcyI6Imh0dHBzOi8vd3d3Lmh1YXhpYWh1aWhhaS5jb20iLCJhdWQiOiJodHRwOi8vd3d3Lmd6aHhoaHR5LmNvbSJ9.ZwNqcje-fuiOGrVqJadiU6-0lxEdUJ08OfFE7wsswQ0" } ``` ```json { "result": 0, "message": "", "queryObjects": [ { "id": "1000000607", "name": "乌鲁木齐学生体测服务平台", "projectClass": 2,// "minGrade": 11, "maxGrade": 44, "createTime": "2025-09-03T14:32:24.087", "operater": "姚康", "maxStudentCount": 420000, "city": null, "divisionID": "650100", "divisionPath": "新疆维吾尔自治区/乌鲁木齐市", "templateID": null, "url": "https://ty.hxhh.tech/hhtc/api", "thirdSyncPlateForm": null, "modules": 14,// "projectID": null, "currentYear": 0, "isEnableWX": false, "isUpdateHistroryData": true, "isStop": 0 } ], "pageSize": 0, "pageIndex": 1, "totalCount": 1 } ``` ## 获取登录 ```json url: "https://ty.hxhh.tech/hhcrm/api/login", type: "post", header: { Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIiwiU3lzdGVtRmxhZyI6IjIiLCJDbGllbnRJRCI6IjZENTg3Rjk2IiwibmJmIjoxNzU3OTEyNjE5LCJleHAiOjE3NTc5MzA2MTksImlzcyI6Imh0dHBzOi8vd3d3Lmh1YXhpYWh1aWhhaS5jb20iLCJhdWQiOiJodHRwOi8vd3d3Lmd6aHhoaHR5LmNvbSJ9.ZwNqcje-fuiOGrVqJadiU6-0lxEdUJ08OfFE7wsswQ0" } body: { "Client": "8寸屏平板体测[V1.0.0_xj01]", "LocalIP": "192.168.2.56", "MAC": "7C943ABA6131", "SchoolID": "1000000607", "Veryfied": true } ``` ```json { "value": { "id": "1c4b1d46-c8a7-4dc3-b9ac-0f7841e1c3ef_1000000607", "userID": "1c4b1d46-c8a7-4dc3-b9ac-0f7841e1c3ef", "user": { "id": "1c4b1d46-c8a7-4dc3-b9ac-0f7841e1c3ef", "userType": 0, "mobile": "18167973603", "name": "姜", "password": null, "states": 0, "createTime": "2025-09-03T14:32:54.703", "email": "", "operater": null, "note": "{\"2\":\"\",\"1\":\"\",\"4\":\"\",\"3\":\"新疆阳光学生体质健康管理有限公司\"}", "hasMobile": true }, "schoolID": "1000000607", "school": { "id": "1000000607", "name": "乌鲁木齐学生体测服务平台", "projectClass": 2, "minGrade": 11, "maxGrade": 44, "createTime": "2025-09-03T14:32:24.087", "operater": "姚康", "maxStudentCount": 420000, "city": null, "divisionID": "650100", "divisionPath": null, "templateID": null, "url": "https://ty.hxhh.tech/hhtc/api", "thirdSyncPlateForm": null, "modules": 14,// "projectID": "TC001097",// "currentYear": 2025, "isEnableWX": false, "isUpdateHistroryData": true, "isStop": 0 }, "role": "系统管理员", "expireDate": "2025-12-31T00:00:00", "permissions": "all", "selectionType": null, "selectionItems": null, "projects": null, "ukey": false, "needConfirm": false, "isAdministrator": true }, "result": 0, "message": "" } ``` ## 获取检测计划 ```json url: "https://ty.hxhh.tech/hhcrm/api/PhysicalProjects?q=eyJzY2hvb2xJRCI6IjEwMDAwMDA2MDciLCJzb3J0TW9kZSI6Mn0%3D%0A", type: "get", header: { Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIiwiU3lzdGVtRmxhZyI6IjIiLCJDbGllbnRJRCI6IjZENTg3Rjk2IiwibmJmIjoxNzU3OTEyNjE5LCJleHAiOjE3NTc5MzA2MTksImlzcyI6Imh0dHBzOi8vd3d3Lmh1YXhpYWh1aWhhaS5jb20iLCJhdWQiOiJodHRwOi8vd3d3Lmd6aHhoaHR5LmNvbSJ9.ZwNqcje-fuiOGrVqJadiU6-0lxEdUJ08OfFE7wsswQ0" } ``` ```json { "result": 0, "message": "", "queryObjects": [ { "id": "SL001600", "projectClass": 8, "name": "2025-2026年度上学期学生视力", "year": 2025, "createDate": "2025-09-03T16:57:08.35", "startDate": "2025-09-01T00:00:00", "endDate": "2026-02-01T23:59:59", "templateProjectID": "gbsl2021", "isTemplate": false, "schoolID": "1000000607", "school": null, "state": 0, "selectionType": null, "selectionItems": null, "testItems": null, "gradeTestItems": null, "eyeSightTetstItems": null, "copyingProjectID": null }, { "id": "TC001097", "projectClass": 2, "name": "2025-2026年度学生体测", "year": 2025, "createDate": "2025-09-03T16:57:08.327", "startDate": "2025-09-01T00:00:00", "endDate": "2026-09-01T00:00:00", "templateProjectID": "gbtc2014", "isTemplate": false, "schoolID": "1000000607", "school": null, "state": 0, "selectionType": null, "selectionItems": null, "testItems": null, "gradeTestItems": null, "eyeSightTetstItems": null, "copyingProjectID": null } ], "pageSize": 0, "pageIndex": 0, "totalCount": 2 } ``` ## 获取检测项目 ```json url: "https://ty.hxhh.tech/hhcrm/api/PhysicalProjects/TC001097", type: "get", header: { Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIiwiU3lzdGVtRmxhZyI6IjIiLCJDbGllbnRJRCI6IjZENTg3Rjk2IiwibmJmIjoxNzU3OTEyNjE5LCJleHAiOjE3NTc5MzA2MTksImlzcyI6Imh0dHBzOi8vd3d3Lmh1YXhpYWh1aWhhaS5jb20iLCJhdWQiOiJodHRwOi8vd3d3Lmd6aHhoaHR5LmNvbSJ9.ZwNqcje-fuiOGrVqJadiU6-0lxEdUJ08OfFE7wsswQ0" } ``` ```json { "result": 0, "message": "", "queryObject": { "id": "TC001097", "projectClass": 2, "name": "2025-2026年度学生体测", "year": 2025, "createDate": "2025-09-03T16:57:08.327", "startDate": "2025-09-01T00:00:00", "endDate": "2026-09-01T00:00:00", "templateProjectID": "gbtc2014", "isTemplate": false, "schoolID": "1000000607", "school": { "id": "1000000607", "name": "乌鲁木齐学生体测服务平台", "projectClass": 2, "minGrade": 11, "maxGrade": 44, "createTime": "2025-09-03T14:32:24.087", "operater": "姚康", "maxStudentCount": 420000, "city": null, "divisionID": "650100", "divisionPath": null, "templateID": null, "url": "https://ty.hxhh.tech/hhtc/api", "thirdSyncPlateForm": null, "modules": 14, "projectID": "TC001097", "currentYear": 2025, "isEnableWX": false, "isUpdateHistroryData": true, "isStop": 0 }, "state": 0, "selectionType": null, "selectionItems": null, "testItems": [ { "id": 1, "name": "身高", "unit": "厘米", "pointCount": 1, "hasMachine": true, "max": 250.0, "min": 80.1, "sortMode": 0, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 2, "name": "体重", "unit": "公斤", "pointCount": 1, "hasMachine": true, "max": 200.0, "min": 10.1, "sortMode": 0, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 24, "name": "BMI指数", "unit": "", "pointCount": 1, "hasMachine": true, "max": null, "min": null, "sortMode": 0, "formula": "([体重] * 10000)/([身高] * [身高])", "memo": null, "shortName": null, "testCount": null, "precisionMode": 1, "isMust": false, "sex": 0 }, { "id": 4, "name": "肺活量", "unit": "毫升", "pointCount": 0, "hasMachine": true, "max": 9999.0, "min": 500.0, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 7, "name": "坐位体前屈", "unit": "厘米", "pointCount": 1, "hasMachine": true, "max": 40.0000, "min": -30.0000, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 5, "name": "50米跑", "unit": "秒", "pointCount": 1, "hasMachine": true, "max": 19.9, "min": 5.1, "sortMode": 1, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 2, "isMust": false, "sex": 0 }, { "id": 6, "name": "立定跳远", "unit": "厘米", "pointCount": 0, "hasMachine": true, "max": 400.0, "min": 51.0, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 12, "name": "一分钟仰卧起坐", "unit": "次", "pointCount": 0, "hasMachine": true, "max": 99.0, "min": 0.0, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 18, "name": "一分钟跳绳", "unit": "次", "pointCount": 0, "hasMachine": true, "max": 300.0, "min": 0.0, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 14, "name": "引体向上", "unit": "次", "pointCount": 0, "hasMachine": true, "max": 99.0000, "min": 0.0000, "sortMode": 2, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 0, "isMust": false, "sex": 0 }, { "id": 9, "name": "50米×8往返跑", "unit": "分\u0027秒\"", "pointCount": 0, "hasMachine": true, "max": 540.0, "min": 45.0, "sortMode": 1, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 2, "isMust": false, "sex": 0 }, { "id": 10, "name": "800米跑", "unit": "分\u0027秒\"", "pointCount": 0, "hasMachine": true, "max": 540.0, "min": 120.0, "sortMode": 1, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 2, "isMust": false, "sex": 0 }, { "id": 11, "name": "1000米跑", "unit": "分\u0027秒\"", "pointCount": 0, "hasMachine": true, "max": 540.0, "min": 120.0, "sortMode": 1, "formula": null, "memo": null, "shortName": null, "testCount": null, "precisionMode": 2, "isMust": false, "sex": 0 } ], "gradeTestItems": { "11_Male": [ 1, 2, 4, 5, 7, 18, 24 ], "12_Male": [ 1, 2, 4, 5, 7, 18, 24 ], "13_Male": [ 1, 2, 4, 5, 7, 12, 18, 24 ], "14_Male": [ 1, 2, 4, 5, 7, 12, 18, 24 ], "15_Male": [ 1, 2, 4, 5, 7, 9, 12, 18, 24 ], "16_Male": [ 1, 2, 4, 5, 7, 9, 12, 18, 24 ], "21_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "22_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "23_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "31_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "32_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "33_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "41_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "42_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "43_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "44_Male": [ 1, 2, 4, 5, 6, 7, 11, 14, 24 ], "11_Female": [ 1, 2, 4, 5, 7, 18, 24 ], "12_Female": [ 1, 2, 4, 5, 7, 18, 24 ], "13_Female": [ 1, 2, 4, 5, 7, 12, 18, 24 ], "14_Female": [ 1, 2, 4, 5, 7, 12, 18, 24 ], "15_Female": [ 1, 2, 4, 5, 7, 9, 12, 18, 24 ], "16_Female": [ 1, 2, 4, 5, 7, 9, 12, 18, 24 ], "21_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "22_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "23_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "31_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "32_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "33_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "41_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "42_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "43_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ], "44_Female": [ 1, 2, 4, 5, 6, 7, 10, 12, 24 ] }, "eyeSightTetstItems": null, "copyingProjectID": null } } ``` ## 权限校验 ```json url: "https://ty.hxhh.tech/hhtc/api/UserPermissions?q=eyJtb2R1bGUiOjIsInByb2plY3RJRCI6IlRDMDAxMDk3Iiwic2Nob29sSUQiOiIxMDAwMDAwNjA3%0AIiwidXNlcklEIjoiMWM0YjFkNDYtYzhhNy00ZGMzLWI5YWMtMGY3ODQxZTFjM2VmIn0%3D%0A", type: "get" ``` ```json { "result": 0, "message": null, "queryObjects": [ { "id": "3cc3c23f-3369-43a4-a937-7e69397f2aec", "userID": "1c4b1d46-c8a7-4dc3-b9ac-0f7841e1c3ef", "user": null, "schoolID": "1000000607", "modules": 2, "projectID": null, "role": null, "permissions": "all" } ], "pageSize": 0, "pageIndex": 0, "totalCount": 0 } ``` ```json https://ty.hxhh.tech/hhtc/api/TC001097/Divisions ``` ```json { "result": 0, "message": "", "queryObjects": [ { "id": "650100", "name": "乌鲁木齐市", "number": "650100", "bePublic": true, "parent": "650000", "fullPath": "新疆维吾尔自治区/乌鲁木齐市", "memo": null } ], "pageSize": 0, "pageIndex": 1, "totalCount": 1 } ``` https://ty.hxhh.tech/hhtc/api/TC001097/Facilitys ```json { "result": 0, "message": "", "queryObjects": [ { "id": "0559dc4a-9117-41be-b2b3-852d27e7779d", "name": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "126", "minGrade": 11, "maxGrade": 16, "divisionID": null, "parentPath": null, "tags": 1, "natoure": 1, "year": null, "memo": null, "location": null, "schoolId": null, "appKey": null, "appSecret": null }, { "id": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "name": "乌鲁木齐市147中学", "number": "1920699779923480578", "minGrade": 11, "maxGrade": 16, "divisionID": null, "parentPath": null, "tags": 1, "natoure": 1, "year": null, "memo": null, "location": null, "schoolId": null, "appKey": null, "appSecret": null } ], "pageSize": 0, "pageIndex": 1, "totalCount": 2 } ``` https://ty.hxhh.tech/hhtc/api/TC001097/StudentClasss ```json { "result": 0, "message": "", "queryObjects": [ { "id": "26c5510c-867f-4fea-bb14-7c31efe10437", "name": "1班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "3ed0c80d-5372-4d72-967b-d1e88176098c", "name": "1班", "beginYear": 2024, "beginGrade": 11, "years": 6, "grade": 12, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "7a42526b-161d-4753-98cd-905fd2783084", "name": "2班", "beginYear": 2024, "beginGrade": 11, "years": 6, "grade": 12, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "234e9460-c5c0-4e4a-8992-4abb2a85b0fd", "name": "1班", "beginYear": 2023, "beginGrade": 11, "years": 6, "grade": 13, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "c8f0f213-7cde-49a8-ae60-c853748f5b44", "name": "2班", "beginYear": 2023, "beginGrade": 11, "years": 6, "grade": 13, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "b5dbfe51-6738-4713-9af6-824b6ca044aa", "name": "1班", "beginYear": 2022, "beginGrade": 11, "years": 6, "grade": 14, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "e1ead7c5-fb92-4eac-b734-38ca72631747", "name": "2班", "beginYear": 2022, "beginGrade": 11, "years": 6, "grade": 14, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "0984b052-ab2f-4ac9-adbb-efc9c6b612b5", "name": "1班", "beginYear": 2021, "beginGrade": 11, "years": 6, "grade": 15, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "90047577-9224-45aa-8b19-85936df77428", "name": "2班", "beginYear": 2021, "beginGrade": 11, "years": 6, "grade": 15, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "2634d818-a464-458e-88f8-d8e89b48ef38", "name": "1班", "beginYear": 2020, "beginGrade": 11, "years": 6, "grade": 16, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "8a18d249-cebc-4ef6-966a-127bc80a2c6b", "name": "2班", "beginYear": 2020, "beginGrade": 11, "years": 6, "grade": 16, "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "e5abd2f7-2a17-4c9f-917f-a69ceb3e7afb", "name": "小学一年级1班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "101", "professional": "", "professionalCode": "" }, { "id": "0c7ab17c-3103-4526-b932-09b986333719", "name": "小学一年级2班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "102", "professional": "", "professionalCode": "" }, { "id": "c09d9f9b-c65b-45f1-a816-41d8a0b99386", "name": "小学一年级3班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "103", "professional": "", "professionalCode": "" }, { "id": "cc1ef56a-ec4b-4634-9dbb-5d74494a11b9", "name": "小学一年级4班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "104", "professional": "", "professionalCode": "" }, { "id": "a2a189aa-13ac-4588-8be9-8bcd290c29e0", "name": "小学一年级5班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "105", "professional": "", "professionalCode": "" }, { "id": "d79bcd44-c9e8-403d-a649-0a477b8811bd", "name": "小学一年级6班", "beginYear": 2025, "beginGrade": 11, "years": 6, "grade": 11, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "106", "professional": "", "professionalCode": "" }, { "id": "72575710-c55f-42d6-abd6-9b9c2f34d842", "name": "小学二年级1班", "beginYear": 2024, "beginGrade": 11, "years": 6, "grade": 12, "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "number": "101", "professional": "", "professionalCode": "" } ], "pageSize": 0, "pageIndex": 1, "totalCount": 18 } ``` https://ty.hxhh.tech/hhtc/api/TC001097/students/?q=eyJwYWdlSW5kZXgiOjEsInBhZ2VTaXplIjozMDAwfQ%3D%3D%0A ```json "queryObjects": [ { "id": "81100010000000003", "name": "麦尔哈巴·艾尼娃尔", "sex": 2, "grade": 11, "state": 0, "birthDay": "2016-12-29T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "26c5510c-867f-4fea-bb14-7c31efe10437", "classNumber": "101", "className": "1班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": true, "checkTime": null, "channel": null, "age": 9 }, ``` ## 上传学生结果 ```json https://ty.hxhh.tech/hhtc/api/TC001097/studentscores/batchadd?option=2 type: post ``` ```json [ { "CreateTime": "Sep 16, 2025 10:43:01", "EndTime": "Sep 16, 2025 10:42:53", "For": false, "HostID": 20, "HostSn": "6D587F96", "ID": "6adcc622b2ca48ba9f1dc4eee286d786", "PeripheralCode": "1", "Score": 27700, "ScoreFrom": 1, "ScoreSer": 1, "Sex": "", "StartTime": "Sep 16, 2025 10:42:46", "StudentID": "123456123456", "StudentName": "", "TestID": 4, "scorePosFlag": 0 }, { "CreateTime": "Sep 16, 2025 10:43:01", "EndTime": "Sep 16, 2025 10:42:57", "For": false, "HostID": 20, "HostSn": "6D587F96", "ID": "d5e3ac70846942e8a4592ac98850a8ec", "PeripheralCode": "1", "Score": 59100, "ScoreFrom": 1, "ScoreSer": 2, "Sex": "", "StartTime": "Sep 16, 2025 10:42:54", "StudentID": "123456123456", "StudentName": "", "TestID": 4, "scorePosFlag": 0 } ] ``` ## 云端结果查询 ```json url: https://ty.hxhh.tech/hhtc/api/TC001097/StudentWithTotals/?q=eyJTdHVkZW50SURMaWtlIjoiMDAzMiIsInBhZ2VJbmRleCI6MX0%3D%0A type: "get", https://ty.hxhh.tech/hhtc/api/TC001097/StudentWithTotals/?q=eyJOb3RUZXN0SXRlbSI6MSwiVGVzdFN0YXRlcyI6WzFdLCJUb3RhbEVxdWFsQW5kVGhhbiI6NTAs%0AIlRvdGFsTGVzc1RoYW4iOjUwLCJUb3RhbFJhbmtzIjpbMSwyLDMsNF0sIkNsYXNzSUQiOiIzZWQw%0AYzgwZC01MzcyLTRkNzItOTY3Yi1kMWU4ODE3NjA5OGMiLCJGYWNpbGl0eUlEIjoiMDU1OWRjNGEt%0AOTExNy00MWJlLWIyYjMtODUyZDI3ZTc3NzlkIiwiR3JhZGUiOjEyLCJOYW1lIjoi6JGj5aOr5p2w%0AIiwiU2V4IjoxLCJTdHVkZW50SURMaWtlIjoiMDAwOSIsInBhZ2VJbmRleCI6MSwicGFnZVNpemUi%0AOjMwLCJzb3J0TW9kZSI6MH0%3D%0A https://ty.hxhh.tech/hhtc/api/TC001097/StudentWithTotals/?q=eyJUZXN0U3RhdGVzIjpbMl0sInBhZ2VJbmRleCI6MSwicGFnZVNpemUiOjMwLCJzb3J0TW9kZSI6%0AMH0%3D%0A https://ty.hxhh.tech/hhtc/api/TC001097/StudentWithTotals/?q=eyJUZXN0U3RhdGVzIjpbMF0sInBhZ2VJbmRleCI6MSwicGFnZVNpemUiOjMwLCJzb3J0TW9kZSI6%0AMH0%3D%0A { "NotTestItem" : 1, //汇海项目编号 "TestStates" : [ 1 ], //0:未测试,1:未完成测试,2:测试完成。 "TotalEqualAndThan" : 50, "TotalLessThan" : 50, "TotalRanks" : [ 1, 2, 3, 4 ],//优秀、良好、及格、不及格 "ClassID" : "3ed0c80d-5372-4d72-967b-d1e88176098c", "FacilityID" : "0559dc4a-9117-41be-b2b3-852d27e7779d", "Grade" : 12, //年级编号 "Name" : "董士杰", "Sex" : 1, "StudentIDLike" : "0009", "pageIndex" : 1, "pageSize" : 30, "sortMode" : 0 } ``` ```json { "result": 0, "message": "", "queryObjects": [ { "total": 37.2, "jiafen": 0.0, "rank": 4, "testState": 1, "scores": [ { "testID": 4, "testTime": "2025-09-08T10:06:49", "formatScore": "798", "rawScore": 798.0000, "result": 68.0000, "jiafen": 0.0000, "rank": "及格" }, { "testID": 7, "testTime": "2025-09-11T12:01:30", "formatScore": "16.9", "rawScore": 16.9000, "result": 90.0000, "jiafen": 0.0000, "rank": "优秀" } ], "appraise": null, "sportSuggestion": null, "id": "81100320000000003", "name": "热依拉·沙迪克", "sex": 2, "grade": 11, "state": 0, "birthDay": "2016-10-19T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "26c5510c-867f-4fea-bb14-7c31efe10437", "classNumber": "101", "className": "1班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": true, "checkTime": null, "channel": null, "age": 9 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81200320000000003", "name": "董士杰", "sex": 2, "grade": 12, "state": 0, "birthDay": "1998-10-29T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "3ed0c80d-5372-4d72-967b-d1e88176098c", "classNumber": "101", "className": "1班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 27 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81300320000000003", "name": "艾力凯木江·艾热提", "sex": 1, "grade": 13, "state": 0, "birthDay": "2014-10-15T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "c8f0f213-7cde-49a8-ae60-c853748f5b44", "classNumber": "102", "className": "2班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 11 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81400320000000003", "name": "阿比达·阿布都力", "sex": 2, "grade": 14, "state": 0, "birthDay": "2014-01-13T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "e1ead7c5-fb92-4eac-b734-38ca72631747", "classNumber": "102", "className": "2班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 11 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81500320000000003", "name": "玉山·帕它尔", "sex": 1, "grade": 15, "state": 0, "birthDay": "2013-08-12T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "0984b052-ab2f-4ac9-adbb-efc9c6b612b5", "classNumber": "101", "className": "1班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 12 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81600320000000003", "name": "沙力·沙拉木", "sex": 1, "grade": 16, "state": 0, "birthDay": "2011-10-28T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "8a18d249-cebc-4ef6-966a-127bc80a2c6b", "classNumber": "102", "className": "2班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 14 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81100320000072043", "name": "刘笑蕊", "sex": 2, "grade": 11, "state": 0, "birthDay": "2017-08-13T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "e5abd2f7-2a17-4c9f-917f-a69ceb3e7afb", "classNumber": "101", "className": "小学一年级1班", "professional": "", "professionalCode": "", "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "schoolNum": "1920699779923480578", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 8 }, { "total": 0.0, "jiafen": 0.0, "rank": 4, "testState": 0, "scores": [], "appraise": null, "sportSuggestion": null, "id": "81200320000072043", "name": "王馨玉", "sex": 2, "grade": 12, "state": 0, "birthDay": "2016-05-05T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "72575710-c55f-42d6-abd6-9b9c2f34d842", "classNumber": "101", "className": "小学二年级1班", "professional": "", "professionalCode": "", "facilityID": "33ee4ddf-8333-4f97-8bf3-1e417b81f2cf", "facilityName": "乌鲁木齐市147中学", "schoolNum": "1920699779923480578", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": false, "checkTime": null, "channel": null, "age": 9 } ], "pageSize": 0, "pageIndex": 1, "totalCount": 8 } ``` ## 人脸特征值下载 ```json url: "https://ty.hxhh.tech/hhtc/api/TC001097/StudentWithFaceFeatures/?q=eyJoYXNGYWNlRmVhdHVyZSI6dHJ1ZSwiSGFzUGhvdG8iOnRydWUsInBhZ2VJbmRleCI6MSwicGFn%0AZVNpemUiOjEwMH0%3D%0A" type: "get" ``` ```json { "result": 0, "message": "", "queryObjects":[ { "faceFeature": "XXX", "faceFeatureRec":"XXX", "id": "81100010000000003", "name": "麦尔哈巴·艾尼娃尔", "sex": 2, "grade": 11, "state": 0, "birthDay": "2016-12-29T00:00:00", "idNumber": "", "cardID": null, "nation": null, "district": null, "classID": "26c5510c-867f-4fea-bb14-7c31efe10437", "classNumber": "101", "className": "1班", "professional": "", "professionalCode": "", "facilityID": "0559dc4a-9117-41be-b2b3-852d27e7779d", "facilityName": "吐鲁番市高昌区艾丁湖镇也木什小学", "schoolNum": "126", "facilityTags": 1, "facilityNatoure": 1, "divisionID": null, "divisionName": null, "address": null, "highSchool": null, "ropeNumber": null, "ropeCode": null, "hasPhoto": true, "checkTime": null, "channel": null, "age": 9 }, ], "pageSize": 100, "pageIndex": 1, "totalCount": 3 ``` ## 获取学生照片 ```json url: "https://ty.hxhh.tech/hhtc/api/TC001097/StudentPhotos/81100010000000003", type: "get" ``` ```json { result: "0", message: "", queryObject: { id: 81100010000000003, name: null, photo: "base64", faceFeature: "XXX", faceFeatureRec: "CCC" } } ``` ## 获取设备SN ```json url: "https://ty.hxhh.tech/hhcrm/api/hhdevices/getbysn?sn=db%3Ab2%3A5d%3Aa7%3Aa4%3A5e", type: "get" ``` ```json { "result": 0, "message": null, "queryObject": { "id": "DB:B2:5D:A7:A4:5E", "deviceType": 5, "createTime": "2022-11-14T17:32:03.617", "serialNumber": "HXHH65CA220600153", "version": "", "hardwareVersion": null, "imei": "863320047685506", "mac": "db:b2:5d:a7:a4:5e", "faceCode": "0857-11FA-M2DF-EFDX", "speechCode": null, "batchNo": "", "manufactureDate": null, "city": "鄂尔多斯市源启教育培训有限公司", "expireDate": null, "userID": null, "deviceName": "", "activeTime": "2025-09-16T16:19:57", "lastConnectTime": null, "lastLocation": null, "physicalItems": null } } ``` {   "result": 0,   "message": null,   "queryObject": {     "id": "00:60:6E:D4:C6:3F",     "deviceType": 5,     "createTime": "2025-04-09T10:19:11.523",     "serialNumber": "HXHH65CA24050912",     "version": null,     "hardwareVersion": null,     "imei": "863320053081210",     "mac": "00:60:6e:d4:c6:3f",     "faceCode": "0857-11WB-1XPU-VBQZ",     "speechCode": null,     "batchNo": null,     "manufactureDate": null,     "city": null,     "expireDate": null,     "userID": null,     "deviceName": null,     "activeTime": "2025-05-06T14:05:29",     "lastConnectTime": null,     "lastLocation": null,     "physicalItems": null   } }