类 EsbPushRequestBuilder

java.lang.Object
com.midi.his.sdk.esb.EsbPushRequestBuilder

public final class EsbPushRequestBuilder extends Object
装配推送请求的 ESBEntry 报文,结构对齐 docs/WebServer/消息外层格式定义/业务推送格式.xml 与 PS25001、PS25007 样例。

与查询报文的三处差异:AccessControl 子节点顺序为 UserName/Password/Fid/OrderNo/SysFlag;MessageHeader 多一个 ReturnFlag;没有 RequestOption,且 MsgInfo 不带 flag 属性, 每个 Msg 携带 id、lastUpdate、action 三个属性。

发送前按定义书的"非空=Y"校验必填字段,缺失即抛异常,避免把明显不完整的记录推给消费方。

  • 构造器详细资料

    • EsbPushRequestBuilder

      public EsbPushRequestBuilder(HisConfig config)
      创建构建器。
      参数:
      config - 运行配置
  • 方法详细资料

    • build

      public <T> EsbRequest build(HisService service, List<? extends PushRecord<? extends T>> records)
      装配一次推送请求,一条记录对应一个 Msg 节点。
      类型参数:
      T - 载荷类型
      参数:
      service - 目标服务,必须是推送方向
      records - 待推送记录,至少一条
      返回:
      待发送报文
      抛出:
      IllegalArgumentException - 服务方向不符、记录为空,或必填字段缺失
    • requiredFieldsOf

      public static Set<String> requiredFieldsOf(HisService service)
      该服务在定义书里标注为必填的字段集合。
      参数:
      service - 服务
      返回:
      不可修改的字段名集合,顺序按定义书排列;查询服务返回空集
      抛出:
      UnsupportedOperationException - 调用方试图修改返回的集合