From 84703d1f4dcd9132de944116a0ed7abda57d2a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=A6=E9=BA=9F=20=E7=8E=8B?= Date: Thu, 16 Jul 2026 11:00:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E4=BB=93=E5=AE=A1=E6=89=B9=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=A7=92=E8=89=B2=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YLErpDAL/Modules/TradeModule/TradeBLL.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/YLErpDAL/Modules/TradeModule/TradeBLL.cs b/YLErpDAL/Modules/TradeModule/TradeBLL.cs index 5daff142..e91abbae 100644 --- a/YLErpDAL/Modules/TradeModule/TradeBLL.cs +++ b/YLErpDAL/Modules/TradeModule/TradeBLL.cs @@ -276,8 +276,25 @@ namespace YLErp.BLL var logger = LogFactory.GetLogger(); var posDict = swapPositions.GroupBy(sp => sp.SwapTradeId).ToDictionary(g => g.Key, g => g.First().PosiNetPrice); var umProvider = DataCacheProvider.GetUnderlyingDataSource(); + // 需求②:平仓/行权/互换交易,审批角色应取 CloseProcess 流程的节点角色,而非 TradeProcess + var closeProcessRoles = db.approvalprocess + .Where(a => a.processType == "CloseProcess") + .Select(a => new { a.order, a.roleId }) + .ToList() + .ToDictionary(a => a.order, a => a.roleId); + foreach (var tradeLinq in retListResult.rows) { + // 了结类交易:用 CloseProcess 的角色覆盖 + if (tradeLinq.TradeStatus == "平仓待复核" || tradeLinq.TradeStatus == "行权待复核" || tradeLinq.TradeStatus == "互换待复核" + && closeProcessRoles.Count > 0) + { + if (closeProcessRoles.TryGetValue(tradeLinq.ProcessOrderId, out var closeRoleId)) + { + tradeLinq.ProcessRoleId = closeRoleId; + } + } + if (tradeLinq.ProcessRoleId != null && listRoles.TryGetValue(tradeLinq.ProcessRoleId.Value, out var name)) { tradeLinq.ProcessRoleName = name;