@ -2,6 +2,7 @@
using log4net.Repository.Hierarchy ;
using Npgsql ;
using ServiceReferenceHzcyHis ;
using Shentun.Peis.Enums ;
using System ;
using System.Collections.Generic ;
using System.Data.Common ;
@ -20,11 +21,11 @@ namespace Shentun.Peis.PlugIns.Gem
{
_endpointAddress = InterfaceConfig . GetSection ( "Interface" ) . GetSection ( "EndpointAddress" ) . Value ;
}
public override async Task < ChargeRequestPlugInsOut > SendRequestAsync ( ChargeRequestPlugInsInput input )
public override async Task < ChargeRequestPlugInsOut > SendCharge RequestAsync ( ChargeRequestPlugInsInput input )
{
//建立人员档案
var patientRegisterForPlugIns = await GetPatientRegisterForPlugIns Async ( input . ChargeRequestId ) ;
var chargeRequestForPlugIns = await GetChargeRequestForPlugIns Async ( input . ChargeRequestId ) ;
var patientRegisterForPlugIns = await GetPatientRegisterAsync ( input . ChargeRequestId ) ;
var chargeRequestForPlugIns = await GetChargeRequestAsync ( input . ChargeRequestId ) ;
if ( chargeRequestForPlugIns = = null )
{
throw new Exception ( "没有申请单信息" ) ;
@ -131,9 +132,9 @@ namespace Shentun.Peis.PlugIns.Gem
return new ChargeRequestPlugInsOut ( ) ;
}
public override async Task < ChargeRequestPlugInsOut > CancelRequestAsync ( ChargeRequestPlugInsInput input )
public override async Task < ChargeRequestPlugInsOut > CancelCharge RequestAsync ( ChargeRequestPlugInsInput input )
{
var chargeRequestForPlugIns = await GetChargeRequestForPlugIns Async ( input . ChargeRequestId ) ;
var chargeRequestForPlugIns = await GetChargeRequestAsync ( input . ChargeRequestId ) ;
if ( chargeRequestForPlugIns = = null )
{
throw new Exception ( "没有申请单信息" ) ;
@ -161,18 +162,82 @@ namespace Shentun.Peis.PlugIns.Gem
{
throw new Exception ( "作废申请单失败" + result . MsgHeader . Detail ) ;
}
await CancelAppChargeRequest Async( input . ChargeRequestId ) ;
await SetAppChargeRequestFlag Async( input . ChargeRequestId , ChargeRequestFlag . AlreadyCancelCharge ) ;
return new ChargeRequestPlugInsOut ( ) ;
}
public override Task DoWorkAsync ( )
public override async Task DoWorkAsync ( )
{
throw new Exception ( "格尔木DoWorkAsync。。。" ) ;
//return base.DoWorkAsync();
}
public override Task DoWork ( )
{
var queryDaysStr = InterfaceConfig . GetSection ( "Scheduler" ) . GetSection ( "QueryDays" ) . Value ;
if ( string . IsNullOrWhiteSpace ( queryDaysStr ) )
{
queryDaysStr = "1" ;
}
if ( ! int . TryParse ( queryDaysStr , out int days ) )
{
days = 1 ;
}
var chargeRequests = GetRequests ( days ) . Result ;
foreach ( var chargeRequest in chargeRequests )
{
var hisInput = new HisPayStatusInput ( )
{
Data = new HisPayStatusDataInput ( )
{
MsgHeader = new HisMsgHeaderInput ( )
{
Sender = "PEIS" ,
MsgType = "SVR_ODS_6105" ,
MsgVersion = "3.1" ,
} ,
Item = new HisPayStatusDataItemInput ( )
{
Yjxh = chargeRequest . HisChargeNo ,
ExamRequestNo = chargeRequest . ChargeRequestNo ,
}
}
} ;
var result = PayStatus ( hisInput ) . Result ;
if ( result . MsgHeader . Status ! = "true" )
{
throw new Exception ( "查询支付状态失败" + result . MsgHeader . Detail ) ;
}
//1:已支付,2.已作废3.已退费, 其他:未支付
char charRequstFlag ;
if ( result . MsgHeader . ErrCode = = "1" )
{
charRequstFlag = ChargeRequestFlag . AlreadyCharge ;
SetAppChargeRequestFlagAsync ( chargeRequest . ChargeRequestId , charRequstFlag ) ;
}
else if ( result . MsgHeader . ErrCode = = "2" )
{
charRequstFlag = ChargeRequestFlag . AlreadyCancelCharge ;
SetAppChargeRequestFlagAsync ( chargeRequest . ChargeRequestId , charRequstFlag ) ;
}
else if ( result . MsgHeader . ErrCode = = "3" )
{
charRequstFlag = ChargeRequestFlag . AlreadyRefund ;
SetAppChargeRequestFlagAsync ( chargeRequest . ChargeRequestId , charRequstFlag ) ;
}
else
{
throw new Exception ( "查询支付状态不支持的收费标志" + result . MsgHeader . ErrCode ) ;
}
}
return base . DoWork ( ) ;
}
public override async Task < ChargeRequestPlugInsOut > RefundRequestAsync ( ChargeRequestPlugInsInput input )
{
var chargeRequestForPlugIns = await GetChargeRequestForPlugInsAsync ( input . ChargeRequestId ) ;
var chargeRequestForPlugIns = await GetChargeRequestAsync ( input . ChargeRequestId ) ;
if ( chargeRequestForPlugIns = = null )
{
throw new Exception ( "没有申请单信息" ) ;
@ -201,7 +266,7 @@ namespace Shentun.Peis.PlugIns.Gem
{
throw new Exception ( "允许退费申请失败" + result . MsgHeader . Detail ) ;
}
await RefundAppChargeRequest Async( input . ChargeRequestId ) ;
await SetAppChargeRequestFlag Async( input . ChargeRequestId , ChargeRequestFlag . RefundRequest ) ;
return new ChargeRequestPlugInsOut ( ) ;
}
public async Task < HisPatientQueryOut > PatientQuery ( HisPatientQueryInput input )