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;