You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 KiB
23 KiB
PAD 接口文档
1. 基础信息
- 服务默认端口:
8845 - 默认基础地址:
http://<host>:8845 - 直连接口统一前缀:
/api/queue/** - 本文范围:
pad.*标签对应的直连接口- 虽然路径不在
/api/queue/pad/**下,但 Swagger 标签仍属于pad.*的配套接口 /public统一网关映射
2. 统一返回结构
2.1 直连接口返回结构
绝大多数直连接口返回统一结构 R<T>:
{
"code": 200,
"msg": "操作成功",
"data": {}
}
字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
code |
int |
状态码,成功通常为 200 |
msg |
string |
返回消息 |
data |
object/array/null |
具体业务数据 |
2.2 /public 网关返回结构
/public 返回 PublicGatewayResponseVo<T>,比 R<T> 多一个 traceId:
{
"code": 200,
"msg": "OK",
"traceId": "202604210001",
"data": {}
}
3. 接口清单
说明:
Header.Authorization表示请求头Authorization: Bearer <token>path.xxx表示路径参数query.xxx表示查询参数body.xxx表示 JSON 请求体字段未接入表示当前不能通过/public的tag + map.path转发
3.1 pad.auth
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
POST |
/api/queue/pad/auth/login |
pad.auth + /login |
body.username、body.password;body.tenantId 可选 |
R<LoginResponse> |
登录 |
POST |
/api/queue/pad/auth/refresh |
未接入 | body.refreshToken |
R<LoginResponse> |
刷新令牌 |
POST |
/api/queue/pad/auth/logout |
未接入 | Header.Authorization |
R<AuthLogoutVo> |
用户退出 |
GET |
/api/queue/pad/auth/profile |
未接入 | Header.Authorization |
R<AuthProfileVo> |
当前用户信息 |
POST |
/api/queue/pad/auth/sign |
pad.auth + /sign |
body.tag、body.path、body.timestamp、body.nonce;body.query、body.body 可选 |
R<SignResponseVo> |
生成签名 |
GET |
/api/queue/pad/auth/validate |
未接入 | Header.Authorization |
R<TokenValidationVo> |
校验令牌 |
3.2 pad.business
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/business |
未接入 | 无 | R<List<Business>> |
查询所有业务类型 |
POST |
/api/queue/pad/business |
未接入 | body.name;body.prefix 可选但必须唯一;body.enabled、body.type、body.handleCount、body.isSpecial 可选 |
R<Business> |
创建业务类型 |
GET |
/api/queue/pad/business/{uid} |
未接入 | path.uid |
R<Business> |
按 UID 查询 |
PUT |
/api/queue/pad/business/{uid} |
未接入 | path.uid、body.name;其他字段同创建 |
R<Business> |
更新业务类型 |
DELETE |
/api/queue/pad/business/{uid} |
未接入 | path.uid |
R<BusinessOperationVo> |
删除业务类型 |
PATCH |
/api/queue/pad/business/{uid}/enabled |
未接入 | path.uid、query.enabled |
R<BusinessOperationVo> |
更新启用状态 |
GET |
/api/queue/pad/business/enabled |
pad.business + /enabled |
无 | R<List<Business>> |
查询启用业务类型 |
POST |
/api/queue/pad/business/health-reopt/url |
未接入 | body.id;body.swjgMc、body.swjgDm 可选 |
R<HealthReportUrlVo> |
生成健康报告查询 URL |
GET |
/api/queue/pad/business/page |
未接入 | query.page 默认 1、query.size 默认 10 |
R<BusinessPageVo> |
分页查询 |
GET |
/api/queue/pad/business/search |
未接入 | query.name |
R<List<Business>> |
名称模糊查询 |
GET |
/api/queue/pad/business/special |
未接入 | 无 | R<List<Business>> |
查询特殊业务 |
GET |
/api/queue/pad/business/statistics |
未接入 | 无 | R<BusinessStatisticsVo> |
业务统计 |
GET |
/api/queue/pad/business/type/{type} |
未接入 | path.type |
R<List<Business>> |
按类型查询 |
GET |
/api/queue/pad/business/validate/name |
未接入 | query.name;query.excludeUid 可选 |
R<BusinessValidationVo> |
校验名称唯一性 |
GET |
/api/queue/pad/business/validate/prefix |
未接入 | query.prefix;query.excludeUid 可选 |
R<BusinessValidationVo> |
校验前缀唯一性 |
3.3 pad.menu
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/menu/business-types |
未接入 | 无 | R<BusinessMenuVo> |
获取业务类型菜单 |
GET |
/api/queue/pad/menu/main |
pad.menu + /main |
无 | R<MenuPageVo> |
获取主菜单 |
3.4 pad.print
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/print/printers |
pad.print + /printers |
无 | R<List<String>> |
获取打印机列表 |
POST |
/api/queue/pad/print/text |
pad.print + /text |
body.content;body.printerName 可选 |
R<Boolean> |
打印文本 |
3.5 pad.test
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
POST |
/api/queue/pad/test/medical-report/url |
未接入 | body.id、body.swjgMc、body.swjgDm |
R<MedicalReportUrlVo> |
测试用医保报告 URL |
3.6 pad.ticket
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/business/list |
未接入 | 无 | R<List<Business>> |
虽然路径不在 /ticket 下,但 Swagger Tag 属于 pad.ticket |
GET |
/api/queue/pad/ticket/{uid} |
未接入 | path.uid |
R<Ticket> |
按 UID 查询票号 |
PATCH |
/api/queue/pad/ticket/{uid}/assign-window |
未接入 | path.uid、query.winId |
R<TicketAssignWindowVo> |
指派窗口 |
GET |
/api/queue/pad/ticket/{uid}/status |
未接入 | path.uid |
R<TicketStatusVo> |
按 UID 查询状态 |
PATCH |
/api/queue/pad/ticket/{uid}/status |
未接入 | path.uid、query.status |
R<TicketStatusUpdateVo> |
更新票号状态 |
GET |
/api/queue/pad/ticket/business/{bizUid} |
未接入 | path.bizUid |
R<List<Ticket>> |
按业务类型查询票号 |
POST |
/api/queue/pad/ticket/call/{ticketNumber} |
未接入 | path.ticketNumber、query.windowNumber |
R<TicketCallVo> |
指定票号叫号 |
POST |
/api/queue/pad/ticket/call/next |
未接入 | body.windowUid;body.empUid 可选 |
R<TicketCallResultVo> |
叫下一号 |
POST |
/api/queue/pad/ticket/call/specific/{ticketUid} |
未接入 | path.ticketUid、query.windowUid;query.empUid 可选 |
R<TicketCallResultVo> |
叫指定票 |
POST |
/api/queue/pad/ticket/create-jump |
未接入 | body.bizUid;body.rankUserName、body.rankUserPhone、body.idCard、body.tktId 可选 |
R<TakeTicketResponse> |
创建插队票 |
GET |
/api/queue/pad/ticket/list |
pad.ticket + /list |
query.page 默认 1、query.size 默认 10;query.status、query.businessType、query.tabType 可选 |
R<TicketPageVo> |
票号列表 |
GET |
/api/queue/pad/ticket/list-by-status/{status} |
未接入 | path.status |
R<List<Ticket>> |
按状态码查询 |
POST |
/api/queue/pad/ticket/resume |
未接入 | body.resumeToken;body.targetPosition 可选,默认 3 |
R<TicketResumeResultVo> |
复号 |
POST |
/api/queue/pad/ticket/verify/search |
未接入 | body.name、body.idCard、body.phone 至少传一个;三者均按包含匹配;body.page 默认 1、body.size 默认 10 |
R<TicketVerifyQueryPageVo> |
模糊查询 ticket_verify 并判断是否已完成实名/人脸比对 |
POST |
/api/queue/pad/ticket/skip/{ticketNumber} |
未接入 | path.ticketNumber |
R<TicketSkipVo> |
跳过票号 |
GET |
/api/queue/pad/ticket/status/{ticketNumber} |
未接入 | path.ticketNumber |
R<TicketStatusDetailVo> |
按票号字符串查询状态 |
POST |
/api/queue/pad/ticket/suspend |
未接入 | body.ticketUid;body.windowUid、body.empUid、body.idCard、body.phone 可选 |
R<TicketSuspendResultVo> |
挂起票号 |
GET |
/api/queue/pad/ticket/suspend/info/{token} |
未接入 | path.token |
R<SuspendedTicketDetailVo> |
查询挂起详情 |
POST |
/api/queue/pad/ticket/take |
pad.queue + /ticket/take |
body.bizUid,且 body.idCard / body.rankUserPhone 至少传一个;body.rankUserName、body.enterpriseId、body.appointmentUid、body.tktId 可选 |
R<TakeTicketVo> |
取号 |
POST |
/api/queue/pad/ticket/take-by-appointment |
未接入 | body.bizUid、body.appointmentUid |
R<TakeTicketVo> |
预约换号 |
GET |
/api/queue/pad/ticket/today_unified_tickets |
未接入 | query.page 默认 1、query.size 默认 10 |
R<TicketPageVo> |
今日统一票号列表 |
GET |
/api/queue/pad/ticket/waiting-count |
未接入 | query.bizUid 可选 |
R<WaitingCountVo> |
查询等待人数 |
3.7 pad.appointment
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/appointment/time-slots |
pad.appointment + /time-slots |
无 | R<List<AppointmentTimeSlotVo>> |
可用时间段 |
GET |
/api/queue/pad/appointment/today |
未接入 | query.page 默认 1、query.size 默认 10;query.status、query.businessType、query.keyword 可选 |
R<AppointmentPageVo> |
今日预约列表 |
DELETE |
/api/queue/pad/appointment/{appointmentId} |
未接入 | path.appointmentId |
R<AppointmentActionVo> |
取消预约 |
PUT |
/api/queue/pad/appointment/{appointmentId}/status |
未接入 | path.appointmentId、query.status |
R<AppointmentActionVo> |
更新预约状态 |
GET |
/api/queue/pad/appointment/statistics |
未接入 | query.date 可选 |
R<AppointmentStatisticsVo> |
预约统计 |
3.8 pad.window
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/window/list |
pad.window + /list |
query.page 默认 1、query.size 默认 10;query.enabled、query.name 可选 |
R<WindowPageVo> |
窗口列表 |
GET |
/api/queue/pad/window/monitor/list |
pad.window + /monitor/list |
无 | R<WindowMonitorListVo> |
窗口监控列表 |
POST |
/api/queue/pad/window/create |
未接入 | body.name;body.sid 可选但必须唯一;body.enabled、body.ledAddress、body.ledText、body.rankMode、body.rankAddress 可选 |
R<WindowActionVo> |
创建窗口 |
PUT |
/api/queue/pad/window/{windowId} |
未接入 | path.windowId、body.name;其他字段同创建 |
R<WindowActionVo> |
更新窗口 |
PUT |
/api/queue/pad/window/{windowId}/status |
未接入 | path.windowId、query.enabled |
R<WindowActionVo> |
切换窗口状态 |
GET |
/api/queue/pad/window/{windowId} |
未接入 | path.windowId |
R<WindowDetailVo> |
窗口详情 |
GET |
/api/queue/pad/window/{windowId}/business |
未接入 | path.windowId |
R<WindowBusinessListVo> |
获取窗口业务关联 |
POST |
/api/queue/pad/window/{windowId}/business |
未接入 | path.windowId;body 为数组,元素至少要有 businessId,priority、enabled 可选 |
R<WindowActionVo> |
设置窗口业务关联 |
POST |
/api/queue/pad/window/{windowId}/led |
未接入 | path.windowId、query.text |
R<WindowActionVo> |
LED 显示控制 |
DELETE |
/api/queue/pad/window/{windowId} |
未接入 | path.windowId |
R<WindowActionVo> |
删除窗口 |
3.9 tag.hallSystem
Swagger 中标签名是
tag.hallSystem,但/public网关调用时实际 tag 要传pad.hallSystem。
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/pad/hallSystem/list |
pad.hallSystem + /list |
query.prefix 可选 |
R<HallSystemListVo> |
获取大厅配置列表 |
POST |
/api/queue/pad/hallSystem/value |
pad.hallSystem + /value |
body.key;body.value 可选 |
R<Boolean> |
更新大厅配置 |
GET |
/api/queue/pad/hallSystem/overview/metrics |
pad.hallSystem + /overview/metrics;pad.queue + /overview/metrics |
无 | R<PadOverviewMetricsVo> |
实时概览指标 |
GET |
/api/queue/pad/hallSystem/overview/metrics/trend |
pad.hallSystem + /overview/metrics/trend;pad.queue + /overview/metrics/trend |
query.startTime、query.endTime 可选,格式 yyyy-MM-dd HH:mm:ss |
R<PadOverviewMetricsTrendVo> |
概览趋势 |
3.10 pad.window 配套 caller 窗口接口
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
GET |
/api/queue/caller/windows/list |
未接入 | Header.Authorization |
R<CallerWindowBindingResponse> |
当前账号可绑定窗口列表 |
POST |
/api/queue/caller/windows/select |
未接入 | Header.Authorization、body.windowUid |
R<CallerWindowBindingResponse> |
绑定窗口 |
3.11 pad.callTerminal
| 方法 | 请求地址 | 网关调用(tag/path) | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|---|
POST |
/api/queue/caller/call-terminal/init |
未接入 | body.windowUid;body.empUid 可选 |
R<CallTerminalActionResponse> |
初始化评价器 |
POST |
/api/queue/caller/call-terminal/call |
pad.callTerminal + /call |
body.windowUid;body.ticketUid、body.empUid 可选 |
R<CallTerminalActionResponse> |
叫号 |
POST |
/api/queue/caller/call-terminal/recall |
未接入 | body.ticketUid;body.windowUid 可选 |
R<CallTerminalActionResponse> |
重呼 |
POST |
/api/queue/caller/call-terminal/start |
未接入 | body.ticketUid;body.windowUid、body.empUid 可选 |
R<CallTerminalActionResponse> |
开始办理 |
POST |
/api/queue/caller/call-terminal/complete |
未接入 | body.ticketUid |
R<CallTerminalActionResponse> |
办结 |
POST |
/api/queue/caller/call-terminal/abandon |
未接入 | body.ticketUid |
R<CallTerminalActionResponse> |
弃号 |
POST |
/api/queue/caller/call-terminal/transfer |
未接入 | body.ticketUid、body.targetWindowUid |
R<CallTerminalActionResponse> |
转移 |
POST |
/api/queue/caller/call-terminal/pause |
未接入 | body.windowUid、body.empUid、body.pauseReason |
R<CallTerminalActionResponse> |
暂停窗口 |
POST |
/api/queue/caller/call-terminal/resume |
未接入 | body.windowUid、body.empUid |
R<CallTerminalActionResponse> |
恢复窗口 |
POST |
/api/queue/caller/call-terminal/evaluate |
未接入 | body.ticketUid;如果提交评分,body.rank 必须在 0-6 |
R<CallTerminalActionResponse> |
发起评价或回写评价 |
GET |
/api/queue/caller/call-terminal/is-rank |
未接入 | query.ticketUid |
R<Map<String,Object>> |
是否已评价 |
GET |
/api/queue/caller/call-terminal/queue-count |
未接入 | query.windowUid |
R<Map<String,Object>> |
当前窗口排队人数 |
GET |
/api/queue/caller/call-terminal/pool |
未接入 | query.winUid;query.keyword、query.keywords、query.status、query.page、query.size、query.pageSize、query.pagesize 可选 |
R<CallTerminalTicketPoolResponse> |
可叫号票池 |
pad.callTerminal 常见可选字段:
customTextserviceUrlforwardreaddriverclientsrankUserNamerankUserPhoneidCardphone
pad.ticket - 实名核验查询示例
请求示例:
{
"name": "张",
"idCard": "3301",
"phone": "138",
"page": 1,
"size": 10
}
模糊查询规则:
name:LIKE %name%idCard:LIKE %idCard%phone:LIKE %phone%- 多个条件同时传入时按
AND组合 takeTicketVerified复用当前取号实名校验逻辑,仅在传入idCard或phone时返回faceComparePassed基于当前最新精确匹配记录的compareValue == 1判断
返回示例:
{
"code": 200,
"msg": "查询成功",
"data": {
"page": 1,
"size": 10,
"total": 1,
"matched": true,
"takeTicketVerified": true,
"faceComparePassed": true,
"records": [
{
"uid": 1,
"ticketUid": 101,
"name": "张三",
"idCard": "330102199001011234",
"phone": "13800138000",
"compareCode": "IDC",
"compareValue": 1,
"compareResult": "verified",
"faceComparePassed": true,
"verifyTime": "2026-04-22T10:00:00"
}
]
}
}
4. /public 统一网关
4.1 入口
| 方法 | 请求地址 | 请求参数 | 返回值 | 备注 |
|---|---|---|---|---|
POST |
/public |
请求体为加密后的字符串;解密后结构见下文 | PublicGatewayResponseVo<T> |
统一网关入口 |
4.2 解密后的请求体结构
{
"tag": "pad.ticket",
"map": {
"traceId": "202604210001",
"head": {
"method": "GET",
"contentType": "application/json",
"timestamp": 1710000000000,
"nonce": "n-1",
"signature": "hex-signature"
},
"path": "/list",
"query": {},
"body": {}
}
}
字段说明:
| 字段 | 说明 |
|---|---|
tag |
路由标签,例如 pad.auth、pad.ticket |
map.traceId |
链路跟踪号 |
map.head.method |
请求方法;建议显式传 |
map.head.timestamp |
签名时间戳 |
map.head.nonce |
签名随机串 |
map.head.signature |
HMAC-SHA256 签名 |
map.path |
子路径,例如 /login、/list |
map.query |
查询参数对象 |
map.body |
请求体对象 |
4.3 当前已接入 /public 的接口
| 网关 tag | map.path |
实际分发到的直连接口 | 直连接口返回 |
|---|---|---|---|
pad.auth |
/login |
POST /api/queue/pad/auth/login |
R<LoginResponse> |
pad.auth |
/sign |
POST /api/queue/pad/auth/sign |
R<SignResponseVo> |
pad.menu |
/main |
GET /api/queue/pad/menu/main |
R<MenuPageVo> |
pad.appointment |
/time-slots |
GET /api/queue/pad/appointment/time-slots |
R<List<AppointmentTimeSlotVo>> |
pad.hallSystem |
/list |
GET /api/queue/pad/hallSystem/list |
R<HallSystemListVo> |
pad.hallSystem |
/value |
POST /api/queue/pad/hallSystem/value |
R<Boolean> |
pad.hallSystem |
/overview/metrics |
GET /api/queue/pad/hallSystem/overview/metrics |
R<PadOverviewMetricsVo> |
pad.hallSystem |
/overview/metrics/trend |
GET /api/queue/pad/hallSystem/overview/metrics/trend |
R<PadOverviewMetricsTrendVo> |
pad.queue |
/ticket/take |
POST /api/queue/pad/ticket/take |
R<TakeTicketVo> |
pad.queue |
/overview/metrics |
GET /api/queue/pad/hallSystem/overview/metrics |
R<PadOverviewMetricsVo> |
pad.queue |
/overview/metrics/trend |
GET /api/queue/pad/hallSystem/overview/metrics/trend |
R<PadOverviewMetricsTrendVo> |
pad.business |
/enabled |
GET /api/queue/pad/business/enabled |
R<List<Business>> |
pad.ticket |
/list |
GET /api/queue/pad/ticket/list |
R<TicketPageVo> |
pad.window |
/list |
GET /api/queue/pad/window/list |
R<WindowPageVo> |
pad.window |
/monitor/list |
GET /api/queue/pad/window/monitor/list |
R<WindowMonitorListVo> |
pad.print |
/printers |
GET /api/queue/pad/print/printers |
R<List<String>> |
pad.print |
/text |
POST /api/queue/pad/print/text |
R<Boolean> |
pad.callTerminal |
/call |
POST /api/queue/caller/call-terminal/call |
R<CallTerminalActionResponse> |
4.4 /public 调用规则
- 除
pad.auth /login和pad.auth /sign外,其余已接入网关的接口都需要map.head.timestamp、map.head.nonce、map.head.signature POST类接口建议显式传map.head.methodpad.auth /sign在实际使用时还需要 Bearer Token
5. 常见返回字段说明
5.1 LoginResponse
主要字段:
access_tokenrefresh_tokentokenTypeexpire_inrefresh_expire_inclient_idscopeopeniduserInfo
userInfo 主要字段:
iduidusernamerealNameroletenantIdimage
5.2 Business
主要字段:
uidprefixnameenabledtypehandleCountisSpecial
5.3 TakeTicketVo / TakeTicketResponse
主要字段:
uidtktIdtktIntidstatusbizUidbizNamebizPrefixwaitingCountwaitingAheadestimatedWaitMinutestktDatetktTimehallNamewindowNamesmessage
5.4 TicketPageVo
主要字段:
listtotalpagesize
list 元素类型为 UnifiedTicketVo
5.5 TicketStatusVo
主要字段:
uidtktIdstatusstatusTextwaitingAheadestimatedWaitMinutes
5.6 TicketStatusDetailVo
主要字段:
ticketNumberuidbusinessUidstatusrankcustomerNamecustomerPhonegenerateTimewindowId
5.7 WaitingCountVo
主要字段:
waitingCountestimatedWaitMinutesbizUid
5.8 WindowPageVo
主要字段:
listtotalpagesizeenabledname
5.9 WindowActionVo
主要字段:
windowIdnameledAddressenabledcreateTimedisplayTextbusinessCount
5.10 WindowDetailVo
主要字段:
windowIdnameledAddressledTextenabledsidrankModerankAddresscurrentTickettodayServed
5.11 WindowBusinessListVo
主要字段:
windowIdlist
5.12 WindowMonitorListVo
主要字段:
listidleCountbusyCountpausedCount
5.13 HallSystemListVo
主要字段:
listtotal
list 元素 HallSystemItemVo 主要字段:
keyvaluememo
5.14 PadOverviewMetricsVo
主要字段:
waitingCounttodayAppointmentCountidleWindowCountidleKioskCountserverTime
5.15 PadOverviewMetricsTrendVo
主要字段:
startTimeendTimelist
5.16 AppointmentPageVo
主要字段:
listtotalpagesize
5.17 AppointmentActionVo
主要字段:
appointmentIdnewStatus
5.18 AppointmentStatisticsVo
主要字段:
totalAppointmentstodayAppointmentscompletedAppointmentscancelledAppointmentstimeSlotStats
5.19 CallerWindowBindingResponse
主要字段:
lockedneedSelectselectedWindowUidselectedWindowCodeselectedWindowNamenextStepwindows
5.20 CallTerminalActionResponse
主要字段:
actionsuccessmessageticketUidticketNoticketStatusticketStatusTextwindowUidwindowNameresumeTokenledtaxerNametaxerPhonewaitSeconds
5.21 CallTerminalTicketPoolResponse
主要字段:
winUidkeywordstatuspagesizetotalreturnedCountlist