🔧 运维问题库

2 条记录 · ← 返回首页

2 条
已解决新华崇明-号源池 GetClass 返回"没找到需要的数据"
2026-06-14号源排班新华崇明 号源池 GetClass MapId

新华崇明-号源池 GetClass 返回"没找到需要的数据"

日期: 2026-06-14
分类: 号源排班
标签: 新华崇明, 号源池, GetClass, MapId
状态: 已解决
处理人: 待补充


问题描述

万达信息集成平台调用号源池 Booking.GetClass 拉取号源时,大量返回 没找到需要的数据。查看号源池 Controller 日志发现凌晨 00:00-00:01 之间数十次请求全部返回空数据。

排查过程

  1. 查看 号源池/Controller/20260614A/-BookApi0-.txt
  2. 发现请求的 MapId 包括 622, 669, 520, 521, 515 等
  3. 所有请求都在凌晨 00:00:01-00:00:06,推测是定时任务拉取次日号源
  4. 日志显示请求格式正确,签名验证通过,但返回 Status=0 Code=0 Message="没找到需要的数据"
  5. 排查 BPServer 数据库日志,发现对应的号源 MapId 确实没有配置排班数据

根本原因

部分 MapId 对应的科室/医生在当前日期没有排班安排: - MapId 622: 某科室当日无门诊 - MapId 669: 排班数据已过期未更新 - MapId 520/521/515: 非门诊日的科室

号源池的 GetClass 在没有排班数据时正常返回空(而非报错),这是符合预期的行为。

解决方案

  1. 确认"没找到需要的数据"是正常业务返回(非系统错误),无需处理
  2. 通知医院方检查排班数据是否已维护(通过 QM.Server.SHQM.PS.Booking.Maintain 后台)
  3. 对于长期返回空的 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 为空导致结算失败
2026-06-14接口调用东方医院 医保 PreRegSettlement RegSettlement

东方医院-医保挂号预结算返回 payOrdId 为空导致结算失败

日期: 2026-06-14
分类: 接口调用
标签: 东方医院, 医保, PreRegSettlement, RegSettlement
状态: 已解决
处理人: 待补充


问题描述

用户进行医保挂号时,预结算(PreRegSettlement)成功返回,但结算(RegSettlement)时报错。查看日志发现预结算返回的 payOrdId 字段为空,导致结算接口缺少必要参数。

排查过程

  1. 查看 其余部分/20260614.txt 日志,搜索对应订单号 NYGHXS061407011566419514
  2. 发现 PreRegSettlement 返回:
{
  "code": 0,
  "data": {
    "payOrdId": "ORD310100202606140701177272886",
    "payToken": "TSN310100202606140701177259432"
  }
}
  1. 对比确认 payOrdId 在本次正常返回
  2. 检查前端代码,发现异常情况发生在 ecQrChannel=3(随申办)时,预结算返回结构不同,payOrdId 可能为空

根本原因

医保渠道为随申办(ecQrChannel=3)时,预结算接口返回的数据结构与非随申办渠道不同: - 非随申办:返回 payOrdId, payToken(必传) - 随申办:不返回这两个字段,走不同的支付流程

代码未对渠道进行区分处理,导致随申办渠道下使用了空的 payOrdId。

解决方案

  1. 在结算接口调用前增加渠道判断:
if (ecQrChannel != "3" && string.IsNullOrEmpty(payOrdId)) {
    // 非随申办渠道 payOrdId 为空,调 ChStateQuery 查询状态补单
}
  1. 随申办渠道直接跳过 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