--2022.12.02 chenrh by 	ZYSF13X-20221202-001 
create or replace procedure SP_ZY_PAY_YNZFRZ(
  PJKLXBH  in     number                       ,--输入:接口类型编号
  PBRID00  in     number                       ,--输入:BRID00
  PZYGHID  in     number                       ,--输入:住院(ZYID00)或门诊(GHID000)流水号
  PZYHGHH  in     varchar2                     ,--输入:住院(ZYH000)或门诊(GHH000)号
  PCZY000  in     number                       ,--输入:操作员编码
  PCZYXM0  in     varchar2                     ,--输入:操作员姓名
  PMZZYBZ  in     varchar2                     ,--输入:门诊住院标志 0:门诊 1:住院
  PJFBZ00  in     varchar2                     ,--输入:缴费备注0：交,1：退
  PJZDH00  in     number    default 0          ,--输入:结账单号
  PYJDH00  in     number    default 0          ,--输入:医技单号
  PZFFS00  in     number                       ,--输入:支付编码
  PZFFSMC  in     varchar2                     ,--输入:支付名称
  PJFJE00  in     number                       ,--输入:缴费金额
  PFKTM00  in     varchar2  default ''         ,--输入:付款条码
  PTKDDH0  in     varchar2  default ''         ,--输入:退款订单号
  PPJXH00  in     varchar2  default '0'        ,--输入:票据序号
  PZDBH00  in     varchar2  default ''         ,--输入:终端编号
  PZFQDBM  in     varchar2  default 'AHLEAN'    ,--输入:支付渠道编码
  PZPKHYH  in     varchar2  default ''         ,--输入:开户银行
  PZPDWMC  in     varchar2  default ''         ,--输入:转账单位
  PZPH000  in     varchar2  default ''         ,--输入:支票号或交易单号
  PINCS00  in     varchar2                     ,--输入:输入参数
  PCOMMIT  in     varchar2  default 'N'        ,--输入:是否提交事务 Y:提交 N:不提交
  PZXZT00  out    number                       ,--输出:执行状态 0:失败 1：成功
  PDDLSH0  out    varchar2                     ,--输出:订单流水号
  PERRMSG  out    varchar2                     ,--输出:错误信息
  PJKQQCS  in     varchar2  default ''         ,--输入:请求入参xml格式
  PZFMXBH  in     varchar2  default ''         ,--输入:支付明细编码
  PCZYKS0  in     number    default 0           --输入:操作员科室
)
-- MODIFICATION HISTORY
-- Person      Date         Comments
-- jlg         2018.08.07   5.0同名过程移植 ZYSF9-20180807-002
-- jlg         2018.08.13   修改医联支付operator_id、operator_name 未写入导致接口报错 ZYSF9-20180810-004
-- zhangyc     2018.08.24   修改银行卡退款 ZYSF9-20180824-002
-- zhangyc     2018.09.06   修正银联二维码退款ZFMXBM写入错误 for ZYSF9-20180906-002
-- zhangyc     2019.04.25   健康之路接口修改 by ZYSF9-20190425-001
-- zhangyc     2019.05.29   健康之路银联支付（2：银联） by  ZYSF9-20190530-002
-- zhangyc     2020.07.01   处理床边院内优先退款业务PJKLXBH=43 by ZYSF9-20200703-001
-- zhangyc     2020.10.27   增加[医信]支付厂家功能 by  ZYSF9-20201028-001
-- zhangyc     2021.10.13   增加医联支付（非多码）pay_way取值,LS_DMYLJYM_DMRH、LS_DMYLJYM_STK by ZYSF9-20211014-003
-- qiulf       2021.12.15   移除9.0中支付接口，增加精宸支付接口 by  ZYSF9EX-20211217-001
-- qiulf       2022.03.10   增加银联支付接口 by ZYSF9EX-20220310-002
-- chenrh      2022.12.02   增加区域支付接口 by ZYSF13X-20221202-001
-----------------------------------------------------------
as

  LS_ZFQDBM          BM_ZFRZ00.JGBM00%type;     --支付渠道编码


begin

  PZXZT00:=0; --执行状态 0:失败 1：成功
  PDDLSH0:='';

  LS_ZFQDBM:=nvl(PZFQDBM,'AHLEAN');--支付渠道编码
  if LS_ZFQDBM in ('AHLEAN') then
    SP_ZY_PAY_YNZFRZ_AHLEAN(
    PJKLXBH   ,--输入:接口类型编号
    PBRID00   ,--输入:BRID00
    PZYGHID   ,--输入:住院(ZYID00)或门诊(GHID000)流水号
    PZYHGHH   ,--输入:住院(ZYH000)或门诊(GHH000)号
    PCZY000   ,--输入:操作员编码
    PCZYXM0   ,--输入:操作员姓名
    PMZZYBZ   ,--输入:门诊住院标志 0:门诊 1:住院
    PJFBZ00   ,--输入:缴费备注0：交,1：退
    PJZDH00   ,--输入:结账单号
    PYJDH00   ,--输入:医技单号
    PZFFS00   ,--输入:支付编码
    PZFFSMC   ,--输入:支付名称
    PJFJE00   ,--输入:缴费金额
    PFKTM00   ,--输入:付款条码
    PTKDDH0   ,--输入:退款订单号
    PPJXH00   ,--输入:票据序号
    PZDBH00   ,--输入:终端编号
    PZFQDBM   ,--输入:支付渠道编码
    PZPKHYH   ,--输入:开户银行
    PZPDWMC   ,--输入:转账单位
    PZPH000   ,--输入:支票号或交易单号
    PINCS00   ,--输入:输入参数
    PCOMMIT   ,--输入:是否提交事务 Y:提交 N:不提交
    PZXZT00   ,--输出:执行状态 0:失败 1：成功
    PDDLSH0   ,--输出:订单流水号
    PERRMSG   ,--输出:错误信息
    PJKQQCS   ,--输入:请求入参xml格式
    PZFMXBH   ,--输入:支付明细编码
    PCZYKS0    --输入:操作员科室
  );
  elsif LS_ZFQDBM in ('AHUNION') then
    SP_ZY_PAY_YNZFRZ_AHUNION(
    PJKLXBH   ,--输入:接口类型编号
    PBRID00   ,--输入:BRID00
    PZYGHID   ,--输入:住院(ZYID00)或门诊(GHID000)流水号
    PZYHGHH   ,--输入:住院(ZYH000)或门诊(GHH000)号
    PCZY000   ,--输入:操作员编码
    PCZYXM0   ,--输入:操作员姓名
    PMZZYBZ   ,--输入:门诊住院标志 0:门诊 1:住院
    PJFBZ00   ,--输入:缴费备注0：交,1：退
    PJZDH00   ,--输入:结账单号
    PYJDH00   ,--输入:医技单号
    PZFFS00   ,--输入:支付编码
    PZFFSMC   ,--输入:支付名称
    PJFJE00   ,--输入:缴费金额
    PFKTM00   ,--输入:付款条码
    PTKDDH0   ,--输入:退款订单号
    PPJXH00   ,--输入:票据序号
    PZDBH00   ,--输入:终端编号
    PZFQDBM   ,--输入:支付渠道编码
    PZPKHYH   ,--输入:开户银行
    PZPDWMC   ,--输入:转账单位
    PZPH000   ,--输入:支票号或交易单号
    PINCS00   ,--输入:输入参数
    PCOMMIT   ,--输入:是否提交事务 Y:提交 N:不提交
    PZXZT00   ,--输出:执行状态 0:失败 1：成功
    PDDLSH0   ,--输出:订单流水号
    PERRMSG   ,--输出:错误信息
    PJKQQCS   ,--输入:请求入参xml格式
    PZFMXBH   ,--输入:支付明细编码
    PCZYKS0    --输入:操作员科室
    );
  elsif LS_ZFQDBM in ('YXPAY') then
    SP_ZY_PAY_YNZFRZ_YXPAY(
    PJKLXBH   ,--输入:接口类型编号
    PBRID00   ,--输入:BRID00
    PZYGHID   ,--输入:住院(ZYID00)或门诊(GHID000)流水号
    PZYHGHH   ,--输入:住院(ZYH000)或门诊(GHH000)号
    PCZY000   ,--输入:操作员编码
    PCZYXM0   ,--输入:操作员姓名
    PMZZYBZ   ,--输入:门诊住院标志 0:门诊 1:住院
    PJFBZ00   ,--输入:缴费备注0：交,1：退
    PJZDH00   ,--输入:结账单号
    PYJDH00   ,--输入:医技单号
    PZFFS00   ,--输入:支付编码
    PZFFSMC   ,--输入:支付名称
    PJFJE00   ,--输入:缴费金额
    PFKTM00   ,--输入:付款条码
    PTKDDH0   ,--输入:退款订单号
    PPJXH00   ,--输入:票据序号
    PZDBH00   ,--输入:终端编号
    PZFQDBM   ,--输入:支付渠道编码
    PZPKHYH   ,--输入:开户银行
    PZPDWMC   ,--输入:转账单位
    PZPH000   ,--输入:支票号或交易单号
    PINCS00   ,--输入:输入参数
    PCOMMIT   ,--输入:是否提交事务 Y:提交 N:不提交
    PZXZT00   ,--输出:执行状态 0:失败 1：成功
    PDDLSH0   ,--输出:订单流水号
    PERRMSG   ,--输出:错误信息
    PJKQQCS   ,--输入:请求入参xml格式
    PZFMXBH   ,--输入:支付明细编码
    PCZYKS0    --输入:操作员科室
    );
  elsif LS_ZFQDBM in ('QYYJJ') then
    SP_ZY_PAY_YNZFRZ_QYYJJ(
    PJKLXBH   ,--输入:接口类型编号
    PBRID00   ,--输入:BRID00
    PZYGHID   ,--输入:住院(ZYID00)或门诊(GHID000)流水号
    PZYHGHH   ,--输入:住院(ZYH000)或门诊(GHH000)号
    PCZY000   ,--输入:操作员编码
    PCZYXM0   ,--输入:操作员姓名
    PMZZYBZ   ,--输入:门诊住院标志 0:门诊 1:住院
    PJFBZ00   ,--输入:缴费备注0：交,1：退
    PJZDH00   ,--输入:结账单号
    PYJDH00   ,--输入:医技单号
    PZFFS00   ,--输入:支付编码
    PZFFSMC   ,--输入:支付名称
    PJFJE00   ,--输入:缴费金额
    PFKTM00   ,--输入:付款条码
    PTKDDH0   ,--输入:退款订单号
    PPJXH00   ,--输入:票据序号
    PZDBH00   ,--输入:终端编号
    PZFQDBM   ,--输入:支付渠道编码
    PZPKHYH   ,--输入:开户银行
    PZPDWMC   ,--输入:转账单位
    PZPH000   ,--输入:支票号或交易单号
    PINCS00   ,--输入:输入参数
    PCOMMIT   ,--输入:是否提交事务 Y:提交 N:不提交
    PZXZT00   ,--输出:执行状态 0:失败 1：成功
    PDDLSH0   ,--输出:订单流水号
    PERRMSG   ,--输出:错误信息
    PJKQQCS   ,--输入:请求入参xml格式
    PZFMXBH   ,--输入:支付明细编码
    PCZYKS0    --输入:操作员科室
    );
  end if;

exception
  when no_data_found then
    PZXZT00:=0;
    PERRMSG:=substrb('执行过程SP_ZY_PAY_YNZFRZ错误!'||sqlerrm,1,200);
  when others   then
    PZXZT00:=0;
    PERRMSG:=substrb('执行过程SP_ZY_PAY_YNZFRZ错误!'||sqlerrm,1,200);
end;




create or replace procedure SP_ZY_PAY_YNZFRZ_QYYJJ(
  PJKLXBH  in     number                       ,--输入:接口类型编号
  PBRID00  in     number                       ,--输入:BRID00
  PZYGHID  in     number                       ,--输入:住院(ZYID00)或门诊(GHID000)流水号
  PZYHGHH  in     varchar2                     ,--输入:住院(ZYH000)或门诊(GHH000)号
  PCZY000  in     number                       ,--输入:操作员编码
  PCZYXM0  in     varchar2                     ,--输入:操作员姓名
  PMZZYBZ  in     varchar2                     ,--输入:门诊住院标志 0:门诊 1:住院
  PJFBZ00  in     varchar2                     ,--输入:缴费备注0：交,1：退
  PJZDH00  in     number    default 0          ,--输入:结账单号
  PYJDH00  in     number    default 0          ,--输入:医技单号
  PZFFS00  in     number                       ,--输入:支付编码
  PZFFSMC  in     varchar2                     ,--输入:支付名称
  PJFJE00  in     number                       ,--输入:缴费金额
  PFKTM00  in     varchar2  default ''         ,--输入:付款条码
  PTKDDH0  in     varchar2  default ''         ,--输入:退款订单号
  PPJXH00  in     varchar2  default '0'        ,--输入:票据序号
  PZDBH00  in     varchar2  default ''         ,--输入:终端编号
  PZFQDBM  in     varchar2  default 'AHLEAN'    ,--输入:支付渠道编码
  PZPKHYH  in     varchar2  default ''         ,--输入:开户银行
  PZPDWMC  in     varchar2  default ''         ,--输入:转账单位
  PZPH000  in     varchar2  default ''         ,--输入:支票号或交易单号
  PINCS00  in     varchar2                     ,--输入:输入参数
  PCOMMIT  in     varchar2  default 'N'        ,--输入:是否提交事务 Y:提交 N:不提交
  PZXZT00  out    number                       ,--输出:执行状态 0:失败 1：成功
  PDDLSH0  out    varchar2                     ,--输出:订单流水号
  PERRMSG  out    varchar2                     ,--输出:错误信息
  PJKQQCS  in     varchar2  default ''         ,--输入:请求入参xml格式
  PZFMXBH  in     varchar2  default ''         ,--输入:支付明细编码
  PCZYKS0  in     number    default 0           --输入:操作员科室
)
-- MODIFICATION HISTORY
-- Person      Date         Comments
-- qiulf      2021.12.17  created by 院内微信支付宝业务过程(住院)精宸支付接口 ZYSF9EX-20211217-001
-- chenrh     2022.12.02   增加区域支付接口 by ZYSF13X-20221202-001

-----------------------------------------------------------
as
  LS_COUNT0          number(5);
  LS_CZRQ00          char(8);
  LS_CZSJ00          char(8);
  LS_TYJE00          number(12,2);
  LS_ICKH00          IC_YHXX00.ICKH00%type;
  LS_DDLSH0          BM_ZFRZ00.DDLSH0%type;
  LS_CARDNO          varchar2(200);             --去前缀卡号
  LS_AMOUNT          number(12,2);
  LS_PJXH00          SF_PJSYQK.PJXH00%type;
  LS_ERRSTR          varchar2(200);
  LS_YPTLSH          varchar2(50);              --原平台流水号
  LS_YJYJE0          number(12,2);              --原交易金额
  LS_YJDH00          BM_ZFRZ00.YJDH00%type;     --医技单号或缴费单号
  LS_ZFQDBM          BM_ZFRZ00.JGBM00%type;     --支付渠道编码
  LS_JGBM00          BM_ZFRZ00.JGBM00%type;     --机构编码
  LS_JGMC00          BM_ZFRZ00.JGMC00%type;     --机构名称
  LS_ZPKHYH          BM_ZFRZ00.ZPKHYH%type;     --开户银行
  LS_ZPDWMC          BM_ZFRZ00.ZPDWMC%type;     --转账单位
  LS_ZPH000          BM_ZFRZ00.ZPH000%type;     --支票号或交易单号
  LS_JFBZ00          BM_ZFRZ00.JFBZ00%type;
  LS_MZZYBZ          BM_ZFRZ00.JFBZ00%type;
  LS_BRID00          BM_BRXXB0.BRID00%type;
  LS_BRXM00          BM_BRXXB0.BRXM00%type;
  LS_BRXB00          BM_BRXXB0.BRXB00%type;
  LS_YBKH00          BM_BRXXB0.YBKH00%type;
  LS_YBID00          BM_BRXXB0.YBID00%type;
  LS_BRZJBH          BM_BRXXB0.BRZJBH%type;
  LS_BRDH00          BM_BRXXB0.BRDH00%type;
  LS_BRLXDH          BM_BRXXB0.BRLXDH%type;
  LS_JYLXMC          BM_ZFRZ00.JYLXMC%type;     --交易类型名称
  --健康之路当面付参数
  LS_NBJYDH          BM_ZFRZ00.NBJYDH%type;     --内部校验流水号
  LS_ZFMXBH          BM_ZFRZ00.ZFMXBH%type;
  LS_ZFMXBH_ORD  BM_ZFFSMX.ZFMXBH%type;
  LS_CZYKS0          BM_ZFRZ00.CZYKS0%type;     --操作员科室
  LS_JKQQCS          BM_ZFRZ00.JKQQCS%type;     --请求入参xml格式
  LS_PAYWAY              BM_ZFRZ00.PAYWAY%type;--（交易渠道编码）
  LS_ZFDDH0              BM_ZFRZ00.DDLSH0%type;--院内优先退款订单
  LS_JSTKLX              varchar2(1);--0:正常模式 1:交互前院内优先退款 2:结算后院内优先退款 3：平台退款成功

  LS_bke284              BM_ZFRZ00.bke284%type;--身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上)

begin
    --接口定义
    /*
 --易惠 0：设置服务 1：查询预交金 2：预交金充值 3：预交金退款 4：查询交易结果
 --10:门诊支付撤销 11:门诊建档充值   12:门诊预交金充值 13:门诊预交金退款 14:门诊预交金作废 15:门诊取消结算 16:门诊退费应退 17:门诊退费应补
 --20:住院支付撤销 21:入院登记充值   22:住院预交金充值 23:出院结算充值   24:重新结算充值
 --31:取消入院退款 32:住院预交金退款 33:出院结算退款   34:重新结算退款
 --35:年度结算退款 36:年度结算充值   37:住院取消结算
    */
    LS_ERRSTR :='';
  PZXZT00:=0; --执行状态 0:失败 1：成功
  PDDLSH0:='';
  LS_TYJE00:=0;
  LS_CZRQ00:=to_char(sysdate,'YYYYMMDD');
  LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS');
  LS_ZFQDBM:=nvl(PZFQDBM,'QYYJJ');--支付渠道编码
  LS_JGBM00:='';--机构编码
  LS_JGMC00:='';--机构名称
  LS_ZPKHYH:=PZPKHYH;--开户银行
  LS_ZPDWMC:=PZPDWMC;--转账单位
  LS_ZPH000:=PZPH000;--支票号或交易单号
  LS_YJDH00:=nvl(PYJDH00,0);--医技单号或缴费单号
  LS_JFBZ00:=nvl(PJFBZ00,'0');--缴费备注0：交,1：退
  LS_MZZYBZ:=nvl(PMZZYBZ,'0');--门诊住院标志 0:门诊 1:住院
  LS_JKQQCS:=PJKQQCS;--请求入参xml格式
  LS_PAYWAY:=null;
  LS_ZFDDH0:=null;--院内优先退款订单
  LS_JSTKLX:='0';--0:正常模式 1:交互前院内优先退款 2:结算后院内优先退款 3：平台退款成功







  --判断支付字典是否正常
  select count(1) into LS_COUNT0 from BM_BRZFFS where ZFFSBH=PZFFS00;
  if LS_COUNT0<=0 then
    PERRMSG:='支付字典不完整(BM_BRZFFS)!';
    return;
  end if;

  --获取内部校验流水号：接口编码|缴费备注|票据序号|开户银行|转账单位|支票号码|brid00|模块名称|支付名称|支付金额| 结账单号 |是否一次补交 |支付明细编码|内部校验号
  --12|0|10000341||||1619278|收预交金|微信支付|0.01|0|N|E|20180712161602
  begin
    select substrb(SF_XT_RETURNINDEXEH(trim(PINCS00),'|', 14),1,30) into LS_NBJYDH  from dual;
  exception
    when others  then
      LS_NBJYDH:=null;
  end;

  begin
    select substrb(SF_XT_RETURNINDEXEH(trim(PINCS00),'|', 13),1,2) into LS_ZFMXBH  from dual;
  exception
    when others  then
     LS_ZFMXBH:=null;
  end;




  --2018.09.06 zhangyc 退款时重新取原单支付明细编码
 if trim(PTKDDH0) is not null and LS_ZFMXBH is null then
  begin
   select ZFMXBH into LS_ZFMXBH  from  BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00;
  exception
   when others  then
    LS_ZFMXBH:=null;
  end;
 end if;

  if  LS_ZFMXBH is null then
    --支付明细编码H:现金I:转账J:POS离线K:POS刷卡L:龙支付M:银联二维码D:微信离线E:微信扫码F:支付宝离线G:支付宝扫码A:榕医通B:聚合支付C:健康通N:银医通P:一卡通
    begin
      select substrb(SF_XT_ZFMXBH(PZFFS00,LS_ZFQDBM,''),1,2) into LS_ZFMXBH from dual;
    exception
      when others then
        LS_ZFMXBH:=null;
    end;
  end if;

 if trim(PZFMXBH) is not  null then
    select count(1) into LS_COUNT0 from BM_ZFFSMX where ZFFSBH=PZFFS00 and ZFMXBH=PZFMXBH;
    if nvl(LS_COUNT0,0)>0 then
     LS_ZFMXBH:=PZFMXBH;
    end if;
 end if;
 --获取原单支付明细编码
 if trim(PTKDDH0) is not null and trim(PTKDDH0) not in ('0') and LS_JFBZ00 in ('1') then
  begin
      select ZFMXBH,PAYWAY into LS_ZFMXBH_ORD,LS_PAYWAY from  BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00;
    exception
   when others  then
    LS_ZFMXBH_ORD:=null;
  end;
  if LS_ZFMXBH_ORD is not null then
      LS_ZFMXBH:=LS_ZFMXBH_ORD;
  end if;
 end if;




  if LS_ZFDDH0 is not null and LS_JSTKLX in ('2') then
     LS_DDLSH0:=LS_ZFDDH0;
  else
  --获取订单流水号
   select SF_SF_PAY_DDLSH0('',LS_MZZYBZ) into LS_DDLSH0 from dual;
  end if;

  --获取病人基本信息
  begin
    select BRID00,BRXM00,BRXB00,YBKH00,YBID00,BRZJBH,BRDH00,BRLXDH
      into LS_BRID00,LS_BRXM00,LS_BRXB00,LS_YBKH00,LS_YBID00,LS_BRZJBH,LS_BRDH00,LS_BRLXDH
      from BM_BRXXB0  where BRID00=PBRID00;
  exception
    when others then
     PERRMSG:='未找到有效的基本信息(BM_BRXXB0)';
     return;
  end;




  if LS_JFBZ00 in ('0') then --:缴费备注0：交,1：退
    LS_AMOUNT:=PJFJE00;

  else  --:缴费备注,1：退
      LS_AMOUNT:=abs(PJFJE00);

  end if;

   --住院

    LS_CARDNO:=PZYHGHH;





  --数据统一校验
  SP_SF_PAY_CHECK(PBRID00,PCZY000,PZFFS00,LS_MZZYBZ,LS_JFBZ00,PJFJE00,'',LS_ERRSTR);
  if (trim(LS_ERRSTR) is not null) and (PJKLXBH not in (33,43)) then
      PERRMSG:=LS_ERRSTR;
    return;
  end if;


  --插入日志主表
  insert into BM_ZFRZ00(
    DDLSH0,CZRQ00,CZSJ00,CZY000,CZYXM0,JKLXBH,JKLXMC,ZDBH00,BRID00,BRXM00,
    BRXB00,YBKH00,YBID00,ICKH00,BRZJBH,BRDH00,MZZYBZ,JFBZ00,ZYGHID,ZYHGHH,
    JZDH00,YJDH00,ZFFS00,ZFFSMC,DJH000,JFJE00,JFRQ00,JFSJ00,ZXZTBZ,BRYE00,
    BZ0000,PTDDH0,ZFQD00,JYCGSJ,PTGZH0,JKXYBM,JKXYXX,JYLSH0,YKTSH0,JYLXMC,
    JGBM00,JGMC00,INCS00,INQTCS,OUTCS0,TKDDH0,TKJE00,TYJE00,PJXH00,ZPKHYH,
    ZPDWMC,ZPH000,ZFQDBM,FKTM00,ZFMXBH,NBJYDH,JKQQCS,CZYKS0,BKE284,PAYWAY
   )values(
    LS_DDLSH0,LS_CZRQ00,LS_CZSJ00,PCZY000,PCZYXM0,PJKLXBH,SF_SF_PAY_JKLXMC(PJKLXBH,0),PZDBH00,PBRID00,trim(LS_BRXM00),
    LS_BRXB00,trim(LS_YBKH00),trim(LS_YBID00),trim(LS_ICKH00),trim(LS_BRZJBH),trim(LS_BRDH00),LS_MZZYBZ,LS_JFBZ00,PZYGHID,PZYHGHH,
    PJZDH00,LS_YJDH00,PZFFS00,PZFFSMC,0,PJFJE00,null,null,'0',0,
    null,null,null,null,null,null,null,null,null,LS_JYLXMC,
    LS_JGBM00,LS_JGMC00,null,PINCS00,null,PTKDDH0,0,LS_TYJE00,LS_PJXH00,LS_ZPKHYH,
    LS_ZPDWMC,LS_ZPH000,LS_ZFQDBM,PFKTM00,LS_ZFMXBH,LS_NBJYDH,LS_JKQQCS,LS_CZYKS0,LS_bke284,LS_PAYWAY
   );



   --插入接口名称---begin---
  if LS_JFBZ00 in ('0') then  --输入:缴费备注0：交,1：退

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JEM000','交易码 81充值 91退款','81','0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','FKTM00','授权码付款码',PFKTM00,'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JFJE00','交易金额(分)',LS_AMOUNT*100,'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','DDLSH0','业务流水号',LS_DDLSH0,'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','BRXM00','患者姓名',trim(LS_BRXM00),'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','ZYID00','患者 ID',PZYGHID,'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CARDNO','患者卡号',LS_CARDNO,'0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CZY000','操作员 ID',PCZY000,'0','D');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','XTBS00','系统标识','HIS','0','Y');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YWBS00','业务标识 3门诊4住院','4','0','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YQBS00','院区标识','1','0','N');


   --返回参数
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTM000','状态码 0000成功 0001失败',null,'1','N');
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTXX00','状态信息',null,'1','N');
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZFLX00','支付类型  WX：微信；ZFB：支付宝；UNIONPAY：银联',null,'1','N');
    --支付系统生成每次收款的唯一记录号
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','JYLSH0','交易订单号',null,'1','N');
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','DDZT00','订单状态 订单的交易状态，是否交易成功等',null,'1','N');
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','DDJE00','订单金额(分）',null,'1','N');
    --his 系统中本次收款的记录号，需具有唯一性
    insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
    values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','YWLSH0','业务流水号',null,'1','N');




  else  --退款
    begin
      if trim(PTKDDH0) is not null then
        select JYLSH0, JFJE00 into LS_YPTLSH,LS_YJYJE0  from  BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00;
      end if;
     exception
     when others  then
      LS_YPTLSH:=null;

      LS_YJYJE0:=0;

     end;


   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JEM000','交易码  81充值 91退款','91','0','Y');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YPTLSH','交易订单号',LS_YPTLSH,'0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JFJE00','交易金额(分)',LS_YJYJE0*100,'0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKDDH0','业务流水号',PTKDDH0,'0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKJE00','退款金额',LS_AMOUNT*100,'0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','DDLSH0','退款流水号',LS_DDLSH0,'0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKYY00','退款原因','退款','0','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CZY000','操作员 ID',PCZY000,'0','N');

   --返回参数

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTM000','状态码0000成功 0001失败',null,'1','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTXX00','状态信息',null,'1','N');
   --支付系统对一次退款交易生成的唯一记录号
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','YJLSH0','退款订单号',null,'1','N');

   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKJE01','退款金额',null,'1','N');
   --平台支付时间
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKLSH0','退款流水号',null,'1','N');
   insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00)
   values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKZT00','退款状态',null,'1','N');

  end if;
 --插入接口名称---end---


  if PCOMMIT='Y' then
    commit;
  end if;

  PZXZT00:=1;--输出:执行状态 0:失败 1：成功
  PDDLSH0:=LS_DDLSH0;--输出:订单流水号
exception
  when no_data_found then
    PZXZT00:=0;
    PERRMSG:=substrb('执行过程SP_ZY_PAY_YNZFRZ_QYYJJ错误!'||sqlerrm,1,200);
  when others   then
    PZXZT00:=0;
    PERRMSG:=substrb('执行过程SP_ZY_PAY_YNZFRZ_QYYJJ错误!'||sqlerrm,1,200);
end;

