diff --git a/IRaCIS.Core.Application/Financial/CalculateService.cs b/IRaCIS.Core.Application/Financial/CalculateService.cs index 30c58f3..5729644 100644 --- a/IRaCIS.Core.Application/Financial/CalculateService.cs +++ b/IRaCIS.Core.Application/Financial/CalculateService.cs @@ -14,6 +14,7 @@ using IRaCIS.Core.Domain.Interfaces; using IRaCIS.Core.Domain.Models; using System.Data; using System.Linq.Dynamic.Core; +using System.Drawing; namespace IRaCIS.Application.Services { @@ -741,25 +742,33 @@ namespace IRaCIS.Application.Services } decimal totalUSD = award + totalNormal;//总费用 - result = AddOrUpdateMonthlyPayment(new PaymentCommand - { - DoctorId = doctor, - Year = param.CalculateMonth.Year, - Month = param.CalculateMonth.Month, - PaymentUSD = totalUSD, - CalculateUser = token, - CalculateTime = DateTime.Now, - ExchangeRate = exchangeRate, - PaymentCNY = exchangeRate * totalUSD, - }); + var paymentyearMonth = new DateTime(param.CalculateMonth.Year, param.CalculateMonth.Month, 1).ToString("yyyy-MM"); + var paymentModel = _paymentRepository.GetAll().FirstOrDefault(t => + t.DoctorId == doctor && t.YearMonth == paymentyearMonth); - - reviewerPaymentUSDList.Add(new ReviewerPaymentUSD { DoctorId = doctor, PaymentUSD = totalUSD, RecordId = result.Data }); - foreach (var detail in paymentDetailList) - { - detail.PaymentId = result.Data; - } - AddOrUpdateMonthlyPaymentDetail(paymentDetailList, result.Data); + // 计算金额为0 就不插入 + if (totalUSD != 0 || paymentModel != null) + { + result = AddOrUpdateMonthlyPayment(new PaymentCommand + { + 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); + } + + UpdatePaymentAdjustment(doctor, yearMonth); }