From 4e5d09d0f21ae177cc444144a9bb01a0e8c96f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=B9=E6=B5=B7?= Date: Fri, 30 May 2025 14:59:28 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../App_Docs/结算单/非DMA结算单.xlsx | Bin 10378 -> 10445 bytes .../TradeSettleBillGenerator.cs | 4 ++-- .../Modules/SwapModule/SwapDealService.cs | 2 +- .../SwapModule/SwapTradeAutoService.cs | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx b/Plugins/YLErp.Plugins.ZheShang/App_Docs/结算单/非DMA结算单.xlsx index f5e2a2fc2b394aed30f57d96412d33f71b5fb543..2cf6a553190a988bc29368ba950ad764186abc5b 100644 GIT binary patch delta 4160 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 delta 4096 zcmY*cbx_m|*ImFxx{+n+4rx{zmXKDun+2u2gav+-ASvupA}x)SNJ&aJ2nfPb0)jM1 zDf#()^UeEy&z(7U?#w;^-I#O6bmMeu*KonQkLls#=q+3hpf)&iVEoUxq>Nb+{-vRFiX!oJeX@yZ zB(Y1^vqaNU0yb|n()4gNAJzMnKoWgNGu0_Ee)JPsJT%RUM_*lpHhhPbX3@5}BDTC_ zeH6}N9Z7*D#*R+Eq0OlkyE65PZ=QpMzvGJsaB! z$9qMF&V4bf?c`N;o11I1-&48v3Q+=ursr=;luIZQC@P-9*P@lN+`IM0=Qovb*wP$w zvbk*hE@T5pF;xxOss!PerZ4>%eL`Ah0_*T$U$ltyBcQWs-C_4K1lo<=IsC=bncaPd z-MyJRpNH=qrK%G}(ZU0h8Zi-M<@y#J6APuIRmBK}@(QMPOyO(3Itt5M4K zj;xIoIgnf_8btU8C*<)+H>0BS;Bp#XnszlKaG7%+KIg+Q!g3Z;x$J&g<=@%qz(AC> zKi=i$|7qzno5VXAcq&Z%SdR+q8@8Jt#xRX<`JS)$*oV>0QAT29gm;ssXZYMi!s25m z;rM0{TOK0zL59U+Z$_K==GB>{b8joCV4yu>awS|phW~4mcESY0<_UCc4bF{@Fb!)` zfSmEF;55HSd_&m7-x-LR717yypOY&`Ch{Jb7w3&ZyHo~s-e$kA za@$l#{D!iN);Z_*1JcD)DAVgo<5(wHZFi)7n!S_MQ+CQnPPChsvh)>v;263-aSCS) z%CRg{`Q|x4l=2%pK$>HJ891Ho#X(nO5~uO4or@!7llE4n zAi)~YS0|`W(=AR+k#u_0>2}B3q6UErweR0q!hEwGUyzRjUAeqhne0-Mp3h|Ge@5C* z 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 LIdSVb{vrGia&3g0 diff --git a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs index 06d52fa3..0536d73d 100644 --- a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs +++ b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeSettleBillGenerator.cs @@ -65,13 +65,13 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator payDate = QdpCalendarHelper.GetNonHoliday(flowEventGroup.EventDate.AddDays(sr)); } row.PayDate = payDate.Value.ToString("yyyy-MM-dd"); - row.ClosePrice = ((flowEventGroup.TradingAmountAvg) * 100).OtcFormat(OtcFormatFlag.umprice); + row.ClosePrice = ((flowEventGroup.TradingAmountAvg) * 100).ToString("0.00000000"); 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* posi.PosiGrossPrice; row.Quantity= flowEventGroup.Quantity.ToString("0.00"); row.PosiNotionalValue = PosiNotionalValue.ToString("0.00"); - row.PosiNetPrice = (posi.PosiGrossPrice * 100).OtcFormat(OtcFormatFlag.umprice); + row.PosiNetPrice = (posi.PosiGrossPrice * 100).ToString("0.00000000"); //var tradingFee = (flowEventGroup.TradingAmountFeeAvg- posi.PosiNetPrice- flowEventGroup.TradingAmountAvg+ posi.PosiGrossPrice)* PosiNotionalValue* ratio; var tradingFee = flowEventGroup.TradingFee + flowEventGroup.TradingFeePending; row.Fee = (-tradingFee).ToString("0.00"); diff --git a/YLErpDAL/Modules/SwapModule/SwapDealService.cs b/YLErpDAL/Modules/SwapModule/SwapDealService.cs index 7e731add..d14a007d 100644 --- a/YLErpDAL/Modules/SwapModule/SwapDealService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapDealService.cs @@ -877,7 +877,7 @@ namespace YLErp.Modules.SwapModule floatEvent.TradingAmountNetFeeAvg = unwindNetFee; floatEvent.TradingAmountNetAvg = unwindNet; floatEvent.TradingFeePending = position.PosiTradingFeePending * unwindData.ClosePercent; - floatEvent.TradingFeePending = Math.Round(floatEvent.TradingFeePending, 2, MidpointRounding.AwayFromZero); + floatEvent.TradingFeePending = Math.Round(floatEvent.TradingFeePending, 4, MidpointRounding.AwayFromZero); floatEvent.TradingFee = closeFee; floatEvent.MarkClosePnl = (unwindPrice - position.PosiGrossPrice) * unwindQty * floatRatio * longRatio; floatEvent.MarkClosePnl = Math.Round(floatEvent.MarkClosePnl + ((floatEvent.TradingFeePending+ closeFee) * floatRatio * -1), ConsGlobal.MoneyRound, MidpointRounding.AwayFromZero); diff --git a/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs b/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs index 90eddc20..733ce93b 100644 --- a/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapTradeAutoService.cs @@ -698,6 +698,7 @@ namespace YLErp.Modules.SwapModule } flowMergeClone.TradingAmount = Math.Abs(amount); flowMergeClone.TradingFeePending = flowMergeClone.TradingFeePending * qtyAbs / flowMergeClone.TradingQty;//剩余后付费用 + flowMergeClone.TradingFeePending = Math.Round(flowMergeClone.TradingFeePending, 4, MidpointRounding.AwayFromZero); flowMergeClone.TradingQty = qtyAbs; if (qty > 0)//交易有剩余新开仓 { @@ -1333,6 +1334,7 @@ namespace YLErp.Modules.SwapModule var newQtyAbs = Math.Abs(newQty); flowMerge.SwapTradeNo = td.TradeNumber; var unwindFee= newQty>0? flowMerge.TradingFeePending: flowMerge.TradingFeePending* floatPosition.PosiQuantity / flowMerge.TradingQty; + unwindFee = Math.Round(unwindFee, 4, MidpointRounding.AwayFromZero); // 全平 new SwapDealService(UserInfo).AuotoSwapUnwind(td.id, flowMerge.TradingAmountAvg,