🔧 运维问题库
2 条记录 · ← 返回首页
已解决新华崇明-号源池 GetClass 返回"没找到需要的数据"
新华崇明-号源池 GetClass 返回"没找到需要的数据"
日期: 2026-06-14
分类: 号源排班
标签: 新华崇明, 号源池, GetClass, MapId
状态: 已解决
处理人: 待补充
问题描述
万达信息集成平台调用号源池 Booking.GetClass 拉取号源时,大量返回 没找到需要的数据。查看号源池 Controller 日志发现凌晨 00:00-00:01 之间数十次请求全部返回空数据。
排查过程
- 查看
号源池/Controller/20260614A/-BookApi0-.txt - 发现请求的 MapId 包括 622, 669, 520, 521, 515 等
- 所有请求都在凌晨 00:00:01-00:00:06,推测是定时任务拉取次日号源
- 日志显示请求格式正确,签名验证通过,但返回 Status=0 Code=0 Message="没找到需要的数据"
- 排查 BPServer 数据库日志,发现对应的号源 MapId 确实没有配置排班数据
根本原因
部分 MapId 对应的科室/医生在当前日期没有排班安排: - MapId 622: 某科室当日无门诊 - MapId 669: 排班数据已过期未更新 - MapId 520/521/515: 非门诊日的科室
号源池的 GetClass 在没有排班数据时正常返回空(而非报错),这是符合预期的行为。
解决方案
- 确认"没找到需要的数据"是正常业务返回(非系统错误),无需处理
- 通知医院方检查排班数据是否已维护(通过
QM.Server.SHQM.PS.Booking.Maintain后台) - 对于长期返回空的 MapId,考虑从万达的拉取列表中移除,减少无效请求
相关日志
2026-06-14 00:00:01 045973 GetClass请求参数: MapId=622, OnlyFree=0
2026-06-14 00:00:01 311615 请求XML: Booking.GetClass, Customer=10, PoolId=17
2026-06-14 00:00:01 717891 返回XML: Status=0, Code=0, Message="没找到需要的数据"
预防措施
- 定期检查号源池排班维护状态
- 监控 GetClass 的空返回率,超过阈值时主动告警
- 区分"系统错误"和"业务空数据"的日志级别(后者不应是 Error)
已解决东方医院-医保挂号预结算返回 payOrdId 为空导致结算失败
东方医院-医保挂号预结算返回 payOrdId 为空导致结算失败
日期: 2026-06-14
分类: 接口调用
标签: 东方医院, 医保, PreRegSettlement, RegSettlement
状态: 已解决
处理人: 待补充
问题描述
用户进行医保挂号时,预结算(PreRegSettlement)成功返回,但结算(RegSettlement)时报错。查看日志发现预结算返回的 payOrdId 字段为空,导致结算接口缺少必要参数。
排查过程
- 查看
其余部分/20260614.txt日志,搜索对应订单号NYGHXS061407011566419514 - 发现 PreRegSettlement 返回:
{
"code": 0,
"data": {
"payOrdId": "ORD310100202606140701177272886",
"payToken": "TSN310100202606140701177259432"
}
}
- 对比确认 payOrdId 在本次正常返回
- 检查前端代码,发现异常情况发生在
ecQrChannel=3(随申办)时,预结算返回结构不同,payOrdId 可能为空
根本原因
医保渠道为随申办(ecQrChannel=3)时,预结算接口返回的数据结构与非随申办渠道不同:
- 非随申办:返回 payOrdId, payToken(必传)
- 随申办:不返回这两个字段,走不同的支付流程
代码未对渠道进行区分处理,导致随申办渠道下使用了空的 payOrdId。
解决方案
- 在结算接口调用前增加渠道判断:
if (ecQrChannel != "3" && string.IsNullOrEmpty(payOrdId)) {
// 非随申办渠道 payOrdId 为空,调 ChStateQuery 查询状态补单
}
- 随申办渠道直接跳过 payOrdId 校验
相关日志
21-07:01:15 PreRegSettlement 请求: orderId=NYGHXS061407011566419514
21-07:01:18 PreRegSettlement 返回: payOrdId=ORD310100..., payToken=TSN310100...
21-07:01:18 RegSettlement 请求: payOrdId=ORD310100..., payToken=TSN310100...
21-07:01:19 RegSettlement 返回: code=0, idMedstoe=2065932555332890624
21-07:01:44 ChStateQuery 确认: hisId=828314639006703616, jzpdh=06001
预防措施
- 所有涉及多渠道(微信/支付宝/随申办)的接口,增加渠道差异的日志标记
- 预结算返回后增加 payOrdId/payToken 的空值校验
📝 新增记录:在
运维记录/ 新建 .md → python build.py && python deploy.py