Compare commits
2 Commits
e2360e2cd5
...
2cf4f5d280
Author | SHA1 | Date |
---|---|---|
|
2cf4f5d280 | |
|
21074a5ffe |
|
@ -13,6 +13,8 @@ using System.Linq.Expressions;
|
||||||
using IRaCIS.Core.Domain.Interfaces;
|
using IRaCIS.Core.Domain.Interfaces;
|
||||||
using IRaCIS.Core.Domain.Models;
|
using IRaCIS.Core.Domain.Models;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Linq.Dynamic.Core;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -23,9 +25,11 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IReviewerPayInfoRepository _doctorPayInfoRepository;
|
private readonly IReviewerPayInfoRepository _doctorPayInfoRepository;
|
||||||
private readonly ITrialRepository _trialRepository;
|
private readonly ITrialRepository _trialRepository;
|
||||||
private readonly IDoctorRepository _doctorRepository;
|
private readonly IDoctorRepository _doctorRepository;
|
||||||
|
|
||||||
private readonly IWorkloadRepository _doctorWorkloadRepository;
|
private readonly IWorkloadRepository _doctorWorkloadRepository;
|
||||||
private readonly IRankPriceRepository _rankPriceRepository;
|
private readonly IRankPriceRepository _rankPriceRepository;
|
||||||
private readonly IPaymentDetailRepository _paymentDetailRepository;
|
private readonly IUserTrialRepository _userTrialRepository;
|
||||||
|
private readonly IPaymentDetailRepository _paymentDetailRepository;
|
||||||
private readonly IVolumeRewardService _volumeRewardPriceService;
|
private readonly IVolumeRewardService _volumeRewardPriceService;
|
||||||
private readonly IExchangeRateRepository _exchangeRateRepository;
|
private readonly IExchangeRateRepository _exchangeRateRepository;
|
||||||
private readonly IPaymentAdjustmentRepository _payAdjustmentRepository;
|
private readonly IPaymentAdjustmentRepository _payAdjustmentRepository;
|
||||||
|
@ -38,7 +42,8 @@ namespace IRaCIS.Application.Services
|
||||||
IDoctorRepository doctorRepository,
|
IDoctorRepository doctorRepository,
|
||||||
IWorkloadRepository workloadRepository,
|
IWorkloadRepository workloadRepository,
|
||||||
IRankPriceRepository rankPriceRepository,
|
IRankPriceRepository rankPriceRepository,
|
||||||
IPaymentDetailRepository paymentDetailRepository,
|
IUserTrialRepository userTrialRepository,
|
||||||
|
IPaymentDetailRepository paymentDetailRepository,
|
||||||
IVolumeRewardService volumeRewardService,
|
IVolumeRewardService volumeRewardService,
|
||||||
IExchangeRateRepository exchangeRateRepository,
|
IExchangeRateRepository exchangeRateRepository,
|
||||||
IEnrollRepository enrollRepository,
|
IEnrollRepository enrollRepository,
|
||||||
|
@ -52,7 +57,8 @@ namespace IRaCIS.Application.Services
|
||||||
_doctorRepository = doctorRepository;
|
_doctorRepository = doctorRepository;
|
||||||
_doctorWorkloadRepository = workloadRepository;
|
_doctorWorkloadRepository = workloadRepository;
|
||||||
_rankPriceRepository = rankPriceRepository;
|
_rankPriceRepository = rankPriceRepository;
|
||||||
_paymentDetailRepository = paymentDetailRepository;
|
this._userTrialRepository = userTrialRepository;
|
||||||
|
_paymentDetailRepository = paymentDetailRepository;
|
||||||
_volumeRewardPriceService = volumeRewardService;
|
_volumeRewardPriceService = volumeRewardService;
|
||||||
_exchangeRateRepository = exchangeRateRepository;
|
_exchangeRateRepository = exchangeRateRepository;
|
||||||
_payAdjustmentRepository = paymentAdjustmentRepository;
|
_payAdjustmentRepository = paymentAdjustmentRepository;
|
||||||
|
@ -736,25 +742,33 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
decimal totalUSD = award + totalNormal;//总费用
|
decimal totalUSD = award + totalNormal;//总费用
|
||||||
|
|
||||||
result = AddOrUpdateMonthlyPayment(new PaymentCommand
|
var paymentyearMonth = new DateTime(param.CalculateMonth.Year, param.CalculateMonth.Month, 1).ToString("yyyy-MM");
|
||||||
{
|
var paymentModel = _paymentRepository.GetAll().FirstOrDefault(t =>
|
||||||
DoctorId = doctor,
|
t.DoctorId == doctor && t.YearMonth == paymentyearMonth);
|
||||||
Year = param.CalculateMonth.Year,
|
|
||||||
Month = param.CalculateMonth.Month,
|
// 计算金额为0 就不插入
|
||||||
PaymentUSD = totalUSD,
|
if (totalUSD != 0 || paymentModel != null)
|
||||||
CalculateUser = token,
|
{
|
||||||
CalculateTime = DateTime.Now,
|
result = AddOrUpdateMonthlyPayment(new PaymentCommand
|
||||||
ExchangeRate = exchangeRate,
|
{
|
||||||
PaymentCNY = exchangeRate * totalUSD,
|
DoctorId = doctor,
|
||||||
});
|
Year = param.CalculateMonth.Year,
|
||||||
|
Month = param.CalculateMonth.Month,
|
||||||
|
PaymentUSD = totalUSD,
|
||||||
|
CalculateUser = token,
|
||||||
|
CalculateTime = DateTime.Now,
|
||||||
|
ExchangeRate = exchangeRate,
|
||||||
|
PaymentCNY = exchangeRate * totalUSD,
|
||||||
|
});
|
||||||
|
reviewerPaymentUSDList.Add(new ReviewerPaymentUSD { DoctorId = doctor, PaymentUSD = totalUSD, RecordId = result.Data });
|
||||||
|
foreach (var detail in paymentDetailList)
|
||||||
|
{
|
||||||
|
detail.PaymentId = result.Data;
|
||||||
|
}
|
||||||
|
AddOrUpdateMonthlyPaymentDetail(paymentDetailList, result.Data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
reviewerPaymentUSDList.Add(new ReviewerPaymentUSD { DoctorId = doctor, PaymentUSD = totalUSD, RecordId = result.Data });
|
|
||||||
foreach (var detail in paymentDetailList)
|
|
||||||
{
|
|
||||||
detail.PaymentId = result.Data;
|
|
||||||
}
|
|
||||||
AddOrUpdateMonthlyPaymentDetail(paymentDetailList, result.Data);
|
|
||||||
|
|
||||||
UpdatePaymentAdjustment(doctor, yearMonth);
|
UpdatePaymentAdjustment(doctor, yearMonth);
|
||||||
}
|
}
|
||||||
|
@ -915,9 +929,13 @@ namespace IRaCIS.Application.Services
|
||||||
IsLock = x.IsLock,
|
IsLock = x.IsLock,
|
||||||
DataFrom=x.DataFrom,
|
DataFrom=x.DataFrom,
|
||||||
}).Distinct().ToList();
|
}).Distinct().ToList();
|
||||||
var doctor = _doctorRepository.GetAll().Select(x => x.Id).ToList();
|
|
||||||
|
|
||||||
doctor.ForEach(x =>
|
var doctorIds = _enrollRepository.GetAll().Select(x => x.DoctorId).Distinct().ToList();
|
||||||
|
|
||||||
|
var doctorList = _doctorRepository.GetAll().Where(x=> doctorIds.Contains(x.Id)).Select(x => x.Id).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
doctorList.ForEach(x =>
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!workloadlist.Any(y => y.DoctorId == x))
|
if (!workloadlist.Any(y => y.DoctorId == x))
|
||||||
|
|
Loading…
Reference in New Issue