diff --git a/Framework/YLErp.Core/DBModels/SwapFlowEvent.cs b/Framework/YLErp.Core/DBModels/SwapFlowEvent.cs index de644ae3..6eec6675 100644 --- a/Framework/YLErp.Core/DBModels/SwapFlowEvent.cs +++ b/Framework/YLErp.Core/DBModels/SwapFlowEvent.cs @@ -253,6 +253,22 @@ namespace YLErp.DBModels [DisplayName("收支方向")] [DataChange] public int InterestDirection { get; set; } + [NotMapped] + public string InterestDirectionStr + { + get + { + if (InterestDirection == 1) + { + return "收取"; + } + else if (InterestDirection == 2) + { + return "支付"; + } + else return ""; + } + } /// /// 计息方式 1:固定值,2:合约名义本金规模,3:持仓名义本金,4:持仓市值 /// diff --git a/Framework/YLErp.Core/Models/SwapEndConfirmModel.cs b/Framework/YLErp.Core/Models/SwapEndConfirmModel.cs index a17503a1..6ffbccf3 100644 --- a/Framework/YLErp.Core/Models/SwapEndConfirmModel.cs +++ b/Framework/YLErp.Core/Models/SwapEndConfirmModel.cs @@ -39,5 +39,9 @@ namespace YLErp.Models public string NetSettleAmout { get; set; } public string MarginInterestAmount { get; set; } + /// + /// 分红 + /// + public string DividendIn { get; set; } } } diff --git a/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx b/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx index 1f66aab5..6cadad28 100644 Binary files a/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx and b/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx differ diff --git a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs index 3daaa585..2a5d6167 100644 --- a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs +++ b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs @@ -68,7 +68,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator row.ClosePrice = ((flowEventGroup.TradingAmountAvg) * 100).OtcFormat(OtcFormatFlag.umprice); decimal interestRate = unwindFlowEvents.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode)).Sum(s => s.InterestRate); row.InterestRate = interestRate.ToString("0.00%"); - var PosiNotionalValue = flowEventGroup.Quantity * flowEventGroup.ContractSize; + var PosiNotionalValue = flowEventGroup.Quantity * flowEventGroup.ContractSize* posi.PosiGrossPrice; row.PosiNotionalValue = PosiNotionalValue.ToString("0.00"); row.PosiNetPrice = (posi.PosiGrossPrice * 100).OtcFormat(OtcFormatFlag.umprice); //var tradingFee = (flowEventGroup.TradingAmountFeeAvg- posi.PosiNetPrice- flowEventGroup.TradingAmountAvg+ posi.PosiGrossPrice)* PosiNotionalValue* ratio; @@ -98,10 +98,11 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator //row.MarginInterestAmount = MarginInterestAmount.ToString("0.00"); var FloatRate = PosiNotionalValue == 0 ? 0 : InterestAmount / PosiNotionalValue; row.FloatRate = FloatRate.ToString("0.0000%"); - var PosiPnl = -(flowEventGroup.MarkClosePnl- tradingFee); + var PosiPnl = -(flowEventGroup.MarkClosePnl- tradingFee-flowEventGroup.DividendIn); row.PosiPnl = PosiPnl.ToString("0.00"); var markClosePnl = (-flowEventGroup.MarkClosePnl); row.MarkClosePnl = markClosePnl.ToString("0.00"); + row.DividendIn = (-flowEventGroup.DividendIn).ToString("0.00"); var marginBackAmount = unwindFlowEvents.Where(x => ConsTrade.InterestMarginModels.Contains(x.InterestMode)).Sum(s => s.InterestPrincipal); var NetSettleAmout = unwindFlowEvents.Sum(x => x.InterestClosePnL) * -1 + flowEventGroup.MarkClosePnl * -1 + marginBackAmount; row.NetSettleAmout = NetSettleAmout.ToString("0.00"); diff --git a/YLErpDAL/Model/ClientSwapPositionRequest.cs b/YLErpDAL/Model/ClientSwapPositionRequest.cs index 34e8de76..e688d281 100644 --- a/YLErpDAL/Model/ClientSwapPositionRequest.cs +++ b/YLErpDAL/Model/ClientSwapPositionRequest.cs @@ -36,5 +36,30 @@ namespace YLErp.Model public string StructureType { get; set; } public string ContractCode { get; set; } + /// + /// 交易费用 + /// + public decimal TradeFee { get; set; } + /// + /// 交易费用后付 + /// + public decimal TradingFee { get; set; } + + /// + /// 净额结算金额 互换持仓价值+待返还的预付金本金 + /// + public decimal NetSettmentAmount { get; set; } + /// + /// 浮动标的代码 + /// + public string FloatRateUnderlyingCode { get; set; } + + public decimal PosiPnl { get; set; } + /// + /// 计息天数 + /// + public decimal Days { get; set; } + + public DateTime StartDate { get; set; } } } diff --git a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs index 2298e3fb..1e54f8b8 100644 --- a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs +++ b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs @@ -233,7 +233,17 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule } if (report.EodSwapPositions != null) { - modelDict.Add("互换估值", report.EodSwapPositions); + modelDict.Add("互换估值", new + { + EodSwapPositions = report.EodSwapPositions, + PosiNotionalValueSum= report.EodSwapPositions.Sum(x => x.position.PosiNotionalValue), + PosiQuantitySum= report.EodSwapPositions.Sum(x => x.position.PosiQuantity), + PeriodAmountSum= report.EodSwapPositions.Sum(x => x.PeriodAmount), + InterestAmountSum= report.EodSwapPositions.Sum(x => x.InterestAmount), + VTradingFeeSum= report.EodSwapPositions.Sum(x => x.position.VTradingFee), + PosiProfitSum= report.EodSwapPositions.Sum(x => x.position.PosiProfitSum), + NetSettmentAmountSum= report.EodSwapPositions.Sum(x => x.NetSettmentAmount), + }); } if (report.SwapPositions != null) { @@ -241,7 +251,17 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule } if (report.clientSwapPositions != null) { - modelDict.Add("互换交易流水", report.clientSwapPositions); + modelDict.Add("互换交易流水", new + { + ClientSwapPositions = report.clientSwapPositions, + TradeFeeSum= report.clientSwapPositions.Sum(x => x.TradeFee), + TradingFeeSum= report.clientSwapPositions.Sum(x => x.TradingFee), + PosiPnlSum = report.clientSwapPositions.Sum(x => x.PosiPnl), + DividendInSum= report.clientSwapPositions.Sum(x => x.FlowEvent.DividendIn), + InterestAmountSum= report.clientSwapPositions.Sum(x => x.FlowEvent.InterestAmount), + InterestFeeSum= report.clientSwapPositions.Sum(x => x.FlowEvent.InterestFee), + NetSettmentAmountSum = report.clientSwapPositions.Sum(x => x.NetSettmentAmount), + }); } if (report.ClientCashInCashOutExtendList != null) { diff --git a/YLErpDAL/Modules/SwapModule/SwapDealService.cs b/YLErpDAL/Modules/SwapModule/SwapDealService.cs index 056017ba..33093c4c 100644 --- a/YLErpDAL/Modules/SwapModule/SwapDealService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapDealService.cs @@ -556,28 +556,22 @@ namespace YLErp.Modules.SwapModule } else { + decimal aDays = position.IsAnnualized ? annualDays : 1; InterestAmount = closePosiNotionalValue * (interest.InterestRate + position.FloatRate); TdInterestAmount = posiNotionalValue * (interest.InterestRate + position.FloatRate); if (settment) { - if (position.IsAnnualized) - { - InterestAmount = InterestAmount * ((decimal)itemDays / annualDays); - TdInterestAmount = TdInterestAmount * ((decimal)itemDays / annualDays); - } + InterestAmount = InterestAmount * ((decimal)itemDays / aDays); + TdInterestAmount = TdInterestAmount * ((decimal)itemDays / aDays); InterestAmount = (interestProfitSum * closePrecent) + InterestAmount; } else { - if (itemDays > 1)//日期超算情况 + if (endDate > lastSwapDate)//日期超算情况 { - decimal days = (decimal)itemDays - 1m; - if (position.IsAnnualized) - { - InterestAmount = InterestAmount * (days / annualDays); - TdInterestAmount = TdInterestAmount * (days / annualDays); - InterestAmount += (interestProfitSum * closePrecent); - } + InterestAmount = InterestAmount * ((decimal)itemDays / aDays); + TdInterestAmount = TdInterestAmount * ((decimal)itemDays / aDays); + InterestAmount += (interestProfitSum * closePrecent); } else { @@ -1251,55 +1245,31 @@ namespace YLErp.Modules.SwapModule swapEvent.unwindData = JsonConvert.DeserializeObject(swapEvent.EventData); var flowList = DbContext.swap_flow_event.Where(x => x.EventId == swapEvent.id).ToList(); string action = eventType == (int)SwapEventTypeEnum.互换 ? ClientCashInCashOut.系统操作_互换 : ClientCashInCashOut.系统操作_平仓费; - int clientCashId = AddClientCashInCashOut(td, Convert.ToDouble(swapEvent.unwindData.SwapCloseAmount), action, swapEvent.unwindData.ValueDate); - swapEvent.ClientCashId = clientCashId; - if (td.StructureType != "多空组合") + int clientCashId = AddClientCashInCashOut(td, Convert.ToDouble(-swapEvent.unwindData.SwapRealizedPnL), action, swapEvent.unwindData.ValueDate); + if (swapEvent.unwindData.SwapMarginAmount != 0) { - if (eventType == (int)SwapEventTypeEnum.互换) + AddClientCashInCashOut(td, Convert.ToDouble(swapEvent.unwindData.SwapMarginAmount), ClientCashInCashOut.系统操作_应付预付金, swapEvent.unwindData.ValueDate); + } + swapEvent.ClientCashId = clientCashId; + if (swapEvent.unwindData.CloseMethod == (int)CloseMethodEnum.全部平仓) + { + td.TradeStatus = "已平仓"; + td.trade_extend = DbContext.trade_extend.FirstOrDefault(x => x.TradeId == td.id); + if (td.trade_extend != null && !td.trade_extend.ExtendObj.NeedOpenFee) { - if (td.ExerciseDate <= swapEvent.unwindData.ValueDate) - { - td.Notional = 0; - td.StockEqvNotional = 0; - td.TradeStatus = ConsTrade.已到期; - } - else - { - td.TradeStatus = ConsTrade.确认成交; - } + new ClientCashInCashOutService(this).SaveSwapTradeClientCash(td, td.TradePrice ?? 0, swapEvent.unwindData.ValueDate, 0); } - else - { - if (swapEvent.unwindData.CloseMethod == (int)CloseMethodEnum.全部平仓) - { - td.TradeStatus = ConsTrade.已平仓; - td.Notional = 0; - td.TradeAmount = 0; - } - else - { - td.TradeStatus = ConsTrade.确认成交; - td.HasPartialUnWind = 1; - td.TradeAmount -= Convert.ToDouble(swapEvent.unwindData.CloseQty); - } - td.StockEqvNotional -= Convert.ToDouble(swapEvent.unwindData.CloseNotionalValue); - } - td.UnWindDate = swapEvent.unwindData.UnwindDate; - UpdateInitalPosition(flowList, swapEvent.unwindData, eventType); - DbContext.SaveChanges(); } else { - if (eventType == (int)SwapEventTypeEnum.平仓) - { - td.UnWindDate = swapEvent.unwindData.UnwindDate; - td.StockEqvNotional = 0; - td.TradeStatus = "已平仓"; - } - UpdateInitalPosition(flowList, swapEvent.unwindData, eventType); - DbContext.SaveChanges(); + td.HasPartialUnWind = 1; } - + td.UnWindDate = swapEvent.unwindData.UnwindDate; + td.StockEqvNotional -= Convert.ToDouble(swapEvent.unwindData.CloseNotionalValue); + td.TradeAmount -= Convert.ToDouble(swapEvent.unwindData.CloseQty); + td.Notional = td.TradeAmount; + UpdateInitalPosition(flowList, swapEvent.unwindData, eventType); + DbContext.SaveChanges(); } /// diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index 99a5755b..fb7d29c7 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -137,7 +137,7 @@ namespace YLErp.Modules.SwapModule } var flowEvents = new List(); Expression> 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 GetSearchEodPositionList(ClientSwapPositionRequest req) { - var predicate = PredicateBuilder.Create(n => !n.Invalid && n.PosiQuantity > 0); + var predicate = PredicateBuilder.Create(n => !n.Invalid && n.PosiDirection > 0); var interestPredicate = PredicateBuilder.Create(n => !n.Invalid && n.InterestDirection > 0); var tradePredicate = PredicateBuilder.Create(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) { diff --git a/YLErpDAL/Modules/SwapModule/SwapFlowEventService.cs b/YLErpDAL/Modules/SwapModule/SwapFlowEventService.cs index a57f8e0d..309be6d3 100644 --- a/YLErpDAL/Modules/SwapModule/SwapFlowEventService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapFlowEventService.cs @@ -475,6 +475,7 @@ namespace YLErp.Modules.SwapModule var tradeQuery = DbContext.trade.Where(tradePredicate); var query = from flow in positionQuery join td in tradeQuery on flow.SwapTradeId equals td.id + join posi in DbContext.swap_position on flow.PositionId equals posi.PositionId join tr in DbContext.trade_contract_r on td.id equals tr.TradeId into tradeContractGroup from tradeContract in tradeContractGroup.DefaultIfEmpty() select new ClientSwapPositionResponse @@ -485,6 +486,8 @@ namespace YLErp.Modules.SwapModule ClientName = td.ClientName, ClientId = td.ClientId, ContractCode = tradeContract.ContractCode, + FloatRateUnderlyingCode=posi.FloatRateUnderlyingCode, + StartDate = td.StartDate.Value, }; if (string.IsNullOrEmpty(req.sidx)) { @@ -501,6 +504,21 @@ namespace YLErp.Modules.SwapModule item.FlowEvent.InterestFee = -item.FlowEvent.InterestFee; item.FlowEvent.TradingFee = -item.FlowEvent.TradingFee; item.FlowEvent.TradingFeePending = -item.FlowEvent.TradingFeePending; + + if (item.FlowEvent.EventType==(int)SwapFlowEventTypeEnum.开仓) + { + item.TradeFee = 0; + item.TradingFee= item.FlowEvent.TradingFeePending; + } + else + { + item.TradeFee = item.FlowEvent.TradingFee; + item.TradingFee = item.FlowEvent.TradingFeePending; + item.PosiPnl= item.FlowEvent.MarkClosePnl- item.FlowEvent.CloseFee-item.FlowEvent.DividendIn; + item.NetSettmentAmount = item.FlowEvent.MarkClosePnl + item.FlowEvent.InterestClosePnL; + item.Days = (item.FlowEvent.UnwindDate - item.StartDate).Value.Days; + } + } return retListResult; } diff --git a/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs b/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs index 52e82bd1..b220a92f 100644 --- a/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs @@ -4,6 +4,7 @@ using CsvHelper; using Dapper; using DocumentFormat.OpenXml.Drawing; using MoreLinq; +using Newtonsoft.Json; using NPOI.SS.Formula.Functions; using Qdp.ComputeServiceV2.Data.CommonModels.TradeInfos; using Qdp.Pricing.Base.Enums; @@ -213,6 +214,19 @@ namespace YLErp.Modules.SwapModule return resetTradeIds; } /// + /// 检查FR007数据 + /// + /// + /// + public void CheckFR007Data(DateTime valueDate) + { + var existFr007= DbContext.eod_commodity_future_price.Any(s => s.ValueDate==valueDate && s.UnderlyingCode=="FR007"); + if (!existFr007) + { + throw new ServiceException($"{valueDate.ToString("yyyy-MM-dd")}没有FR007数据不能进行簿记"); + } + } + /// /// 校验交易是否收盘 /// /// diff --git a/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx b/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx index 2ded3ffc..ded2478e 100644 Binary files a/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx and b/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx differ diff --git a/YLErpWeb/Hubs/SwapFlowCombookingHub.cs b/YLErpWeb/Hubs/SwapFlowCombookingHub.cs index 950487d8..582786d7 100644 --- a/YLErpWeb/Hubs/SwapFlowCombookingHub.cs +++ b/YLErpWeb/Hubs/SwapFlowCombookingHub.cs @@ -1,4 +1,5 @@ -using Confluent.Kafka; +using Autofac.Core; +using Confluent.Kafka; using CsvHelper; using DocumentFormat.OpenXml.InkML; using DocumentFormat.OpenXml.Spreadsheet; @@ -60,6 +61,11 @@ namespace YLErp.Web.Hubs // 数据校验逻辑 currentStep = "校验上一日是否收盘"; await client.SendAsync("ReceiveMessage", currentStep); + // 数据校验逻辑 + currentStep = "校验FR007数据"; + await client.SendAsync("ReceiveMessage", currentStep); + //检验FR007 + service.CheckFR007Data(req.tradeDate); service.CheckTradEods(req.tradeDate, mergeList); //currentStep = "检测当前日期是否已经流水合成簿记"; //service.CheckBookByDate(tradeDate); diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js index 2abb9762..9c6b9f68 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js @@ -210,6 +210,21 @@ var colModelGrid = [ align: 'center', sortable: false, formatter: RateFormat + }, { + name: 'position.FloatRateUnderlyingCode', + label: '基准利率', + index: 'position.FloatRateUnderlyingCode', + width: 120, + align: 'center', + sortable: false + }, { + name: 'position.FloatRate', + label: '当日适用基准利率', + index: 'position.FloatRate', + width: 120, + align: 'center', + sortable: false, + formatter: RateFormat }, { name: 'position.PosiNotionalValue', label: '标的名义金额', @@ -218,6 +233,14 @@ var colModelGrid = [ align: 'center', sortable: false, formatter: StockEqvNotionalFormat, + }, { + name: 'position.PosiQuantity', + label: '标的数量', + index: 'position.PosiQuantity', + width: 150, + align: 'center', + sortable: false, + formatter: StockEqvNotionalFormat, }, { name: 'PeriodAmount', label: '期间付息', @@ -266,7 +289,7 @@ var colModelGrid = [ sortable: false, }, { name: 'position.VTradingFee', - label: '交易费用', + label: '预估交易费用', index: 'position.VTradingFee', width: 120, align: 'center', diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js index 2917a342..a0a73c03 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js @@ -224,13 +224,6 @@ var colModelGrid = [ width: 90, align: 'center', formatter: PriceFormat - }, { - name: 'FlowEvent.TradingAmountFeeAvg', - label: '含费均价', - index: 'FlowEvent.TradingAmountFeeAvg', - width: 90, - align: 'center', - formatter: PriceFormat }, { name: 'FlowEvent.Quantity', label: '成交数量', @@ -253,30 +246,23 @@ var colModelGrid = [ align: 'center', formatter: StockEqvNotionalFormat, }, { - name: 'FlowEvent.TradingFee', - label: '交易费用佣金', - index: 'FlowEvent.TradingFee', - width: 120, - align: 'center', - formatter: StockEqvNotionalFormat - }, { - name: 'FlowEvent.TradingFeePending', - label: '待结算后付交易费用佣金', - index: 'FlowEvent.TradingFeePending', + name: 'TradingFee', + label: '待结算交易费用佣金', + index: 'TradingFee', width: 220, align: 'center', formatter: StockEqvNotionalFormat }, { - name: 'FlowEvent.DividendPending', - label: '待结算分红收益', - index: 'FlowEvent.DividendPending', + name: 'TradeFee', + label: '交易费用佣金', + index: 'TradeFee', width: 120, align: 'center', formatter: StockEqvNotionalFormat }, { - name: 'FlowEvent.MarkClosePnl', + name: 'PosiPnl', label: '浮动端平仓盈亏·盯市', - index: 'FlowEvent.MarkClosePnl', + index: 'PosiPnl', width: 220, align: 'center', formatter: StockEqvNotionalFormat, @@ -287,13 +273,6 @@ var colModelGrid = [ width: 220, align: 'center', formatter: StockEqvNotionalFormat, - }, { - name: 'FlowEvent.CloseFee', - label: '浮动端平仓盈亏·费用', - index: 'FlowEvent.CloseFee', - width: 220, - align: 'center', - formatter: StockEqvNotionalFormat, }, { name: 'FlowEvent.InterestDirection', label: '[利息]收支方向', @@ -302,25 +281,38 @@ var colModelGrid = [ align: 'center', formatter: DrictionFormat }, { - name: 'FlowEvent.InterestModeStr', - label: '计息基准类型', - index: 'FlowEvent.InterestModeStr', - width: 90, + name: 'FloatRateUnderlyingCode', + label: '基准利率', + index: 'FloatRateUnderlyingCode', + width: 120, align: 'center', + }, { + name: 'FlowEvent.FloatRate', + label: '当日适用基准利率', + index: 'FlowEvent.FloatRate', + width: 120, + align: 'center', + formatter: PercentFormat }, { name: 'FlowEvent.InterestPrincipal', - label: '计息基准固定值', + label: '计息基数', index: 'FlowEvent.InterestPrincipal', width: 120, align: 'center', formatter: StockEqvNotionalFormat }, { name: 'FlowEvent.InterestRate', - label: '互换利率(年化)', + label: '利率', index: 'FlowEvent.InterestRate', width: 140, align: 'center', formatter:PercentFormat + }, { + name: 'Days', + label: '计息天数', + index: 'Days', + width: 140, + align: 'center' }, { name: 'FlowEvent.InterestAmount', label: '利息端平仓盈亏·利息', @@ -336,6 +328,14 @@ var colModelGrid = [ align: 'center', formatter: StockEqvNotionalFormat } + , { + name: 'NetSettmentAmount', + label: '净额结算金额', + index: 'NetSettmentAmount', + width: 220, + align: 'center', + formatter: StockEqvNotionalFormat + } ]; function formatter6(cellvalue, options, rowObject) {