TRS-ZS-464 估值单调整& 利息计算修复&审批修复

This commit is contained in:
吴方海
2025-05-28 18:09:19 +08:00
parent eb5990b9a3
commit 083848fb62
14 changed files with 198 additions and 99 deletions
@@ -137,7 +137,7 @@ namespace YLErp.Modules.SwapModule
}
var flowEvents = new List<swap_flow_event>();
Expression<Func<swap_flow_event, bool>> eventExpression = x => x.SwapTradeId == td.id && x.DataState == (int)SwapFlowDateStateEnum.;
eventExpression = eventExpression.And(x => (x.EventDate == settleDate && x.EventType == (int)SwapFlowEventTypeEnum.) || (x.UnwindDate == settleDate && eventTyps.Contains(x.EventType)));
eventExpression = eventExpression.And(x => x.EventDate == settleDate );
//if (settleDate == td.TradeDate)
//{
// eventExpression = eventExpression.And(x => x.EventDate == settleDate);
@@ -1834,7 +1834,7 @@ namespace YLErp.Modules.SwapModule
private SearchListResult<EodSwapPositionResponse> GetSearchEodPositionList(ClientSwapPositionRequest req)
{
var predicate = PredicateBuilder.Create<eod_swap_position>(n => !n.Invalid && n.PosiQuantity > 0);
var predicate = PredicateBuilder.Create<eod_swap_position>(n => !n.Invalid && n.PosiDirection > 0);
var interestPredicate = PredicateBuilder.Create<eod_swap_position>(n => !n.Invalid && n.InterestDirection > 0);
var tradePredicate = PredicateBuilder.Create<trade>(n => n.StructureType == req.StructureType
&& n.ValidState != "InValid");
@@ -1894,8 +1894,9 @@ namespace YLErp.Modules.SwapModule
//item.position.PosiProfitSum += item.TradingFee;
var posiProfitSum= item.position.PosiProfitSum;
//item.position.PosiProfitSum 不需要加交易费用
item.position.PosiProfitSum = item.position.PosiProfitSum - item.position.VTradingFee;
item.position.PosiProfitSum = item.position.PosiProfitSum - item.position.VTradingFee-item.position.PosiDividendSum;
item.NetSettmentAmount = posiProfitSum;
item.PeriodAmount = item.position.PosiDividendSum;
var margins = positions.Where(x => x.SwapTradeId == item.position.SwapTradeId);
var interests = eodPositions.Where(x => x.SwapTradeId == item.position.SwapTradeId && x.ValueDate == item.position.ValueDate);
var eodMargins = interests.Where(x => marginTypes.Contains(x.InterestMode));
@@ -1936,6 +1937,7 @@ namespace YLErp.Modules.SwapModule
position.PosiProfitSum = -position.PosiProfitSum;
position.VTradingFee = -position.VTradingFee;
position.SwapPositionValue = -position.SwapPositionValue;
position.PosiDividendSum = -position.PosiDividendSum;
}
private void SetPosiPrice(eod_swap_position position)
{