diff --git a/YLErpDAL/Modules/SwapModule/SwapDealService.cs b/YLErpDAL/Modules/SwapModule/SwapDealService.cs index c60eccf5..43d0eef3 100644 --- a/YLErpDAL/Modules/SwapModule/SwapDealService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapDealService.cs @@ -402,7 +402,6 @@ namespace YLErp.Modules.SwapModule // 根据场景计算利息 if (settment) { - calcLast = calcLast = td.trade_extend.ExtendObj.InterestCalcMode.EndsWith("1");//算尾 // 收盘归档场景,使用 CalcEodInterest interests.Add(CalcEodInterest(td, valueDate, positionClone, rate, floatRate, closePrincipal, posiPrincipal, annualDays, calcFirst, calcLast, preEodPosition, eventType, add)); } @@ -530,26 +529,17 @@ namespace YLErp.Modules.SwapModule decimal tdInterestAmount = 0; if (calcToday) { - // 收盘自动互换场景,如果不算尾,当天是不产生利息的 - if (calcLast == false && eventType == (int)SwapEventTypeEnum.自动互换) + if (position.InterestType == (int)InterestTypeEnum.复利) { - interestAmount= preEod.InterestProfitSum; - tdInterestAmount = 0; + // 复利计算 + CalcDailyCompoundInterestByEod(preEod, valueDate, td.StartDate.Value, position, closePrincipal, posiPrincipal, interest, annualDays, false, eodFloatRate, 1m, posiPrincipal, ref interestAmount, ref tdInterestAmount); } else { - if (position.InterestType == (int)InterestTypeEnum.复利) - { - // 复利计算 - CalcDailyCompoundInterestByEod(preEod, valueDate, td.StartDate.Value, position, closePrincipal, posiPrincipal, interest, annualDays, false, eodFloatRate, 1m, posiPrincipal, ref interestAmount, ref tdInterestAmount); - } - else - { - // 单利计算 - CalcDailySimpleInterestByEod(preEod, valueDate, td.StartDate.Value, position, closePrincipal, posiPrincipal, interest, annualDays, false, eodFloatRate, 1m, posiPrincipal, ref interestAmount, ref tdInterestAmount); - } + // 单利计算 + CalcDailySimpleInterestByEod(preEod, valueDate, td.StartDate.Value, position, closePrincipal, posiPrincipal, interest, annualDays, false, eodFloatRate, 1m, posiPrincipal, ref interestAmount, ref tdInterestAmount); } - + } // 四舍五入并赋值 interest.InterestAmount = Math.Round(interestAmount, ConsGlobal.PriceRound, MidpointRounding.AwayFromZero);