|
|
|
@ -20,7 +20,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
{ |
|
|
|
[ApiExplorerSettings(GroupName = "Work")] |
|
|
|
[Authorize] |
|
|
|
public class ChargeRequestAppService: ApplicationService |
|
|
|
public class ChargeRequestAppService : ApplicationService |
|
|
|
{ |
|
|
|
private readonly IRepository<ChargeRequest, Guid> _chargeRequestRepository; |
|
|
|
private readonly IRepository<ChargeRequestAsbitem, Guid> _chargeRequestAsbitemRepository; |
|
|
|
@ -41,7 +41,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
ChargeRequestManager chargeRequestManager, |
|
|
|
ChargeRequestAsbitemManager chargeRequestAsbitemManager, |
|
|
|
IUnitOfWorkManager unitOfWorkManager |
|
|
|
) |
|
|
|
) |
|
|
|
{ |
|
|
|
_chargeRequestRepository = chargeRequestRepository; |
|
|
|
_chargeRequestAsbitemRepository = chargeRequestAsbitemRepository; |
|
|
|
@ -65,7 +65,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("input参数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//var patientRegister = await _patientRegisterRepository.GetAsync(input.PatientRegisterId);
|
|
|
|
var list = (from registerCheck in await _registerCheckRepository.GetQueryableAsync() |
|
|
|
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() |
|
|
|
@ -73,7 +73,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on registerCheckAsbitem.AsbitemId equals asbitem.Id |
|
|
|
where registerCheck.PatientRegisterId == input.PatientRegisterId && |
|
|
|
input.RegisterCheckAsbitems.Select(o=>o.RegisterCheckAsbitemId) |
|
|
|
input.RegisterCheckAsbitems.Select(o => o.RegisterCheckAsbitemId) |
|
|
|
.Contains(registerCheckAsbitem.Id) |
|
|
|
select new |
|
|
|
{ |
|
|
|
@ -83,15 +83,15 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
var chargeRequestSource = new ChargeRequest() |
|
|
|
{ |
|
|
|
PatientRegisterId = input.PatientRegisterId |
|
|
|
}; |
|
|
|
}; |
|
|
|
var chargeRequest = await _chargeRequestManager.CreateAsync(chargeRequestSource); |
|
|
|
//更新登记组合项目
|
|
|
|
foreach (var item in list) |
|
|
|
{ |
|
|
|
if(item.registerCheckAsbitem.ChargeRequestId != null) |
|
|
|
if (item.registerCheckAsbitem.ChargeRequestId != null) |
|
|
|
{ |
|
|
|
var haveChargeRequest = await _chargeRequestRepository.GetAsync((Guid)item.registerCheckAsbitem.ChargeRequestId); |
|
|
|
if(haveChargeRequest.ChargeRequestFlag == ChargeRequestFlag.ChargeRequest || |
|
|
|
var haveChargeRequest = await _chargeRequestRepository.GetAsync((Guid)item.registerCheckAsbitem.ChargeRequestId); |
|
|
|
if (haveChargeRequest.ChargeRequestFlag == ChargeRequestFlag.ChargeRequest || |
|
|
|
haveChargeRequest.ChargeRequestFlag == ChargeRequestFlag.CancelChargeRequest || |
|
|
|
haveChargeRequest.ChargeRequestFlag == ChargeRequestFlag.RefundRequest) |
|
|
|
{ |
|
|
|
@ -121,7 +121,13 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
await _unitOfWorkManager.Current.CompleteAsync(); |
|
|
|
//await UnitOfWorkManager.Current.SaveChangesAsync();
|
|
|
|
//await UnitOfWorkManager.Current.CompleteAsync();
|
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id, "SendChargeRequestAsync"); |
|
|
|
|
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) |
|
|
|
{ |
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(chargeRequest.Id, "SendChargeRequestAsync"); |
|
|
|
await unitOfWork.CompleteAsync(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
result.Id = chargeRequest.Id; |
|
|
|
@ -146,10 +152,16 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("状态不是收费申请,不允许作废申请"); |
|
|
|
} |
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "CancelChargeRequestAsync"); |
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) |
|
|
|
{ |
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "CancelChargeRequestAsync"); |
|
|
|
await unitOfWork.CompleteAsync(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
@ -170,7 +182,13 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("状态不是已收费,不允许退费申请"); |
|
|
|
} |
|
|
|
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) |
|
|
|
{ |
|
|
|
await _chargeRequestManager.SendThirChargeRequestAsync(input.ChargeRequestId, "RefundRequestAsync"); |
|
|
|
await unitOfWork.CompleteAsync(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ChargeRequestDto result = new ChargeRequestDto(); |
|
|
|
|
|
|
|
@ -192,26 +210,26 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
|
|
|
|
//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(); |
|
|
|
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), |
|
|
|
Charges = o.Sum(o => o.chargeRequestAsbitem.Amount * o.chargeRequestAsbitem.ChargePrice), |
|
|
|
CreationTime = o.First().chargeRequest.CreationTime, |
|
|
|
|
|
|
|
}).OrderByDescending(o=>o.CreationTime).ToList(); |
|
|
|
|
|
|
|
}).OrderByDescending(o => o.CreationTime).ToList(); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@ -242,7 +260,7 @@ namespace Shentun.Peis.ChargeRequests |
|
|
|
AsbitemName = o.asbitem.DisplayName, |
|
|
|
ChargePrice = o.chargeRequestAsbitem.ChargePrice, |
|
|
|
Amount = o.chargeRequestAsbitem.Amount |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}).ToList(); |
|
|
|
return result; |
|
|
|
|