|
|
|
@ -4,6 +4,7 @@ using Org.BouncyCastle.Asn1.Ocsp; |
|
|
|
using Shentun.Peis.ChargeRequestAsbitems; |
|
|
|
using Shentun.Peis.LisRequests; |
|
|
|
using Shentun.Peis.Models; |
|
|
|
using Shentun.Peis.PatientRegisters; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
@ -25,6 +26,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository; |
|
|
|
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository; |
|
|
|
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository; |
|
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
|
private readonly ChargeRequestManager _chargeRequestManager; |
|
|
|
private readonly ChargeRequestAsbitemManager _chargeRequestAsbitemManager; |
|
|
|
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|
|
|
@ -34,6 +36,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
IRepository<PatientRegister, Guid> patientRegisterRepository, |
|
|
|
IRepository<RegisterCheck, Guid> registerCheckRepository, |
|
|
|
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository, |
|
|
|
IRepository<Asbitem, Guid> asbitemRepository, |
|
|
|
ChargeRequestManager chargeRequestManager, |
|
|
|
ChargeRequestAsbitemManager chargeRequestAsbitemManager, |
|
|
|
IUnitOfWorkManager unitOfWorkManager |
|
|
|
@ -47,9 +50,10 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
_chargeRequestManager = chargeRequestManager; |
|
|
|
_chargeRequestAsbitemManager = chargeRequestAsbitemManager; |
|
|
|
_unitOfWorkManager = unitOfWorkManager; |
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// 创建申请单
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
@ -61,7 +65,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId); |
|
|
|
//var patientRegister = await _patientRegisterRepository.GetAsync(input.PatientRegisterId);
|
|
|
|
var list = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() |
|
|
|
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() |
|
|
|
on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId |
|
|
|
@ -81,10 +85,10 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
foreach (var item in list) |
|
|
|
{ |
|
|
|
item.registerCheckAsbitem.ChargeRequestId = chargeRequest.Id; |
|
|
|
await _registerCheckAsbitemRepository.UpdateAsync(item.registerCheckAsbitem,true); |
|
|
|
await _registerCheckAsbitemRepository.UpdateAsync(item.registerCheckAsbitem); |
|
|
|
} |
|
|
|
//插入申请单信息
|
|
|
|
chargeRequest = await _chargeRequestRepository.InsertAsync(chargeRequest,true); |
|
|
|
chargeRequest = await _chargeRequestRepository.InsertAsync(chargeRequest); |
|
|
|
foreach (var item in list) |
|
|
|
{ |
|
|
|
var chargeRequestAsbitemSource = new ChargeRequestAsbitem() |
|
|
|
@ -97,18 +101,131 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
IsCharge = 'N' |
|
|
|
}; |
|
|
|
var chargeRequestAsbitem = await _chargeRequestAsbitemManager.CreateAsync(chargeRequestAsbitemSource); |
|
|
|
await _chargeRequestAsbitemRepository.InsertAsync(chargeRequestAsbitem,true); |
|
|
|
await _chargeRequestAsbitemRepository.InsertAsync(chargeRequestAsbitem); |
|
|
|
} |
|
|
|
//await _unitOfWorkManager.Current.SaveChangesAsync();
|
|
|
|
await _unitOfWorkManager.Current.SaveChangesAsync(); |
|
|
|
await _unitOfWorkManager.Current.CompleteAsync(); |
|
|
|
//await UnitOfWorkManager.Current.SaveChangesAsync();
|
|
|
|
//await UnitOfWorkManager.Current.CompleteAsync();
|
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id); |
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id,"SendRequest"); |
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
result.Id = chargeRequest.Id; |
|
|
|
result.ChargeRequestNo = chargeRequest.ChargeRequestNo; |
|
|
|
return result; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 作废申请单
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
[HttpPost("api/app/ChargeRequest/CancelChargeRequest")] |
|
|
|
public async Task<ChargeRequestDto> CancelChargeRequestAsync(ChargeRequestIdInputDto input) |
|
|
|
{ |
|
|
|
if (input == null) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId,"CancelRequest"); |
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 退费申请单
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
[HttpPost("api/app/ChargeRequest/RefundChargeRequest")] |
|
|
|
public async Task<ChargeRequestDto> ReundChargeRequestAsync(ChargeRequestIdInputDto input) |
|
|
|
{ |
|
|
|
if (input == null) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "RefundRequest"); |
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
[HttpPost("api/app/ChargeRequest/GetChargeRequestsByPatientRegisterId")] |
|
|
|
public async Task<List<ChargeRequestDto>> GetChargeRequestsByPatientRegisterIdAsync(PatientRegisterIdInputDto input) |
|
|
|
{ |
|
|
|
if (input == null) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
//var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId);
|
|
|
|
var list = (from chargeRequest in await _chargeRequestRepository.GetQueryableAsync() |
|
|
|
join patientRegister in await _patientRegisterRepository.GetQueryableAsync() |
|
|
|
on chargeRequest.PatientRegisterId equals patientRegister.Id |
|
|
|
join chargeRequestAsbitem in await _chargeRequestAsbitemRepository.GetQueryableAsync() |
|
|
|
on chargeRequest.Id equals chargeRequestAsbitem.ChargeRequestId |
|
|
|
where patientRegister.Id == input.PatientRegisterId |
|
|
|
select new |
|
|
|
{ |
|
|
|
chargeRequest, |
|
|
|
chargeRequestAsbitem |
|
|
|
}).ToList(); |
|
|
|
var result = list.GroupBy(o => o.chargeRequest).Select(o => new ChargeRequestDto() |
|
|
|
{ |
|
|
|
Id = o.First().chargeRequest.Id, |
|
|
|
ChargeRequestNo = o.First().chargeRequest.ChargeRequestNo, |
|
|
|
ChargeRequestFlag = o.First().chargeRequest.ChargeRequestFlag, |
|
|
|
HisChargeNo = o.First().chargeRequest.HisChargeNo, |
|
|
|
Charges = o.Sum(o=>o.chargeRequestAsbitem.Amount * o.chargeRequestAsbitem.ChargePrice), |
|
|
|
CreationTime = o.First().chargeRequest.CreationTime, |
|
|
|
|
|
|
|
}).OrderByDescending(o=>o.CreationTime).ToList(); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
[HttpPost("api/app/ChargeRequest/GetChargeRequestAsbitemsByChargeQuestId")] |
|
|
|
public async Task<List<ChargeRequestAsbitemDto>> GetChargeRequestAsbitemsByChargeQuestIdAsync(ChargeRequestIdInputDto input) |
|
|
|
{ |
|
|
|
if (input == null) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
//var patientRegister = _patientRegisterRepository.GetAsync(input.PatientRegisterId);
|
|
|
|
var list = (from chargeRequest in await _chargeRequestRepository.GetQueryableAsync() |
|
|
|
join chargeRequestAsbitem in await _chargeRequestAsbitemRepository.GetQueryableAsync() |
|
|
|
on chargeRequest.Id equals chargeRequestAsbitem.ChargeRequestId |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on chargeRequestAsbitem.AsbitemId equals asbitem.Id |
|
|
|
where chargeRequest.Id == input.ChargeRequestId |
|
|
|
select new |
|
|
|
{ |
|
|
|
chargeRequest, |
|
|
|
chargeRequestAsbitem, |
|
|
|
asbitem |
|
|
|
}).ToList(); |
|
|
|
var result = list.Select(o => new ChargeRequestAsbitemDto() |
|
|
|
{ |
|
|
|
AsbitemId = o.chargeRequest.Id, |
|
|
|
AsbitemName = o.asbitem.DisplayName, |
|
|
|
ChargePrice = o.chargeRequestAsbitem.ChargePrice, |
|
|
|
Amount = o.chargeRequestAsbitem.Amount |
|
|
|
|
|
|
|
|
|
|
|
}).ToList(); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |