Browse Source

插件

bjmzak
DESKTOP-G961P6V\Zhh 1 year ago
parent
commit
5bc64f62da
  1. 58
      src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs

58
src/Shentun.Peis.Application/ChargeRequests/ChargeRequestAppService.cs

@ -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;
@ -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,7 +152,13 @@ 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();
@ -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;
}

Loading…
Cancel
Save