diff --git a/YLErpDAL/Modules/TradeModule/DealModule/TradeOpenService.cs b/YLErpDAL/Modules/TradeModule/DealModule/TradeOpenService.cs index af98e155..0e354bf0 100644 --- a/YLErpDAL/Modules/TradeModule/DealModule/TradeOpenService.cs +++ b/YLErpDAL/Modules/TradeModule/DealModule/TradeOpenService.cs @@ -1,4 +1,5 @@ -using YLErp.BLL; +using BaseOUDAL; +using YLErp.BLL; using YLErp.BLL.Eod; using YLErp.Model; using YLErp.Model.Enum; @@ -143,6 +144,7 @@ namespace YLErp.Modules.TradeModule.DealModule var count = tradeProessQuery.Count(); if (count == 0 || td.ProcessOrderId == ProcessTradeLog.审批通过)//投资规模校验已经将数据设置为已通过 { + req.comments = FormatCommentsWithRole(td.ProcessOrderId, req.comments); result.ChangeConfirmPath = SetTradeOpen(req, td); return result; } @@ -166,7 +168,8 @@ namespace YLErp.Modules.TradeModule.DealModule //} if (nextOrder==null) { - + + req.comments = FormatCommentsWithRole(td.ProcessOrderId, req.comments); result.ChangeConfirmPath = SetTradeOpen(req, td); return result; } @@ -175,6 +178,8 @@ namespace YLErp.Modules.TradeModule.DealModule // 继续审批流转 //----------------------------------------------- + var oldOrderId = td.ProcessOrderId; + var formattedComments = FormatCommentsWithRole(oldOrderId, req.comments); td.ProcessOrderId = nextOrder.order; //client.ProcessStatus = "审批中"; td.ProcessOptDate = OptDate; @@ -194,7 +199,12 @@ namespace YLErp.Modules.TradeModule.DealModule if (!req.notNeedOperationHistory) { - AddTradeOperationHistoryAndSetParentTradeInfo(false, td, req.ignoreMoneyCheck ? "交易特批-交易审批同意" : "交易审批同意", req.comments); + AddTradeOperationHistoryAndSetParentTradeInfo(false, td, req.ignoreMoneyCheck ? "交易特批-交易审批同意" : "交易审批同意", formattedComments); + } + + if (td.TradeType == "收益互换") + { + new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批通过, "", 0, true, formattedComments); } DbContext.SaveChanges(); @@ -278,6 +288,8 @@ namespace YLErp.Modules.TradeModule.DealModule /// private TradeOpenResult TradeReject(TradeOpenReqModel req, trade td) { + var oldOrderId = td.ProcessOrderId; + req.comments = FormatCommentsWithRole(oldOrderId, req.comments); td.ProcessOrderId = Convert.ToInt32(PStatusEnum.reject); td.ProcessOrderBranch = 0; //td.IsApproval = false; @@ -299,7 +311,7 @@ namespace YLErp.Modules.TradeModule.DealModule var swapFlowEvents = DbContext.swap_flow_event.Where(x => x.SwapTradeId == td.id && x.EventType == swapTradeEventType && x.EventDate == swapEvent.ValueDate); DbContext.swap_flow_event.RemoveRange(swapFlowEvents); } - new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批拒绝, "", 0, true, "提前终止拒绝"); + new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批拒绝, "", 0, true, req.comments); } } else @@ -311,7 +323,7 @@ namespace YLErp.Modules.TradeModule.DealModule } if (td.TradeType == "收益互换") { - new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批拒绝, "", 0, true, "交易审批拒绝"); + new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批拒绝, "", 0, true, req.comments); } } td.ProcessStatus = ProcessTradeStatus.已拒绝.ToString(); @@ -515,7 +527,7 @@ namespace YLErp.Modules.TradeModule.DealModule if (td.TradeType=="收益互换") { SwapTradeService swapTradeService = new SwapTradeService(this); - new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批通过, "", 0, true); + new SwapEventService(UserInfo).AddSwapEventDate(DateTime.Now.Date, td.id, (int)SwapEventTypeEnum.审批通过, "", 0, true, req.comments); new TradeConfirmService(UserInfo).SwapTradeConfirm(td, "确认交易",false, optlog: "手工操作"); } //组合交易(非互换) @@ -727,6 +739,27 @@ namespace YLErp.Modules.TradeModule.DealModule throw; } } + + private string GetRoleNameByOrderId(int orderId) + { + var node = DbContext.approvalprocess + .FirstOrDefault(x => x.processType == "TradeProcess" && x.order == orderId); + if (node == null) + return null; + + return new ErpBaseContext().Roles + .Where(r => r.Id == node.roleId) + .Select(r => r.Name) + .FirstOrDefault(); + } + + private string FormatCommentsWithRole(int orderId, string comments) + { + var roleName = GetRoleNameByOrderId(orderId); + if (string.IsNullOrEmpty(roleName)) + return comments ?? string.Empty; + return $"【角色:{roleName}】{comments}"; + } } /// diff --git a/YLErpWeb/Controllers/tradeController.cs b/YLErpWeb/Controllers/tradeController.cs index 0624d5ad..428a4c66 100644 --- a/YLErpWeb/Controllers/tradeController.cs +++ b/YLErpWeb/Controllers/tradeController.cs @@ -2108,16 +2108,16 @@ namespace YLErp.Web.Controllers OptName = n.OptName, OptDate = n.OptDate }).ToArray(); - datas = datas.GroupBy(O => new { O.OptDate, O.OptName, O.OptType }).Select(O => O.First()).OrderByDescending(n => n.id).ToArray(); + datas = datas.OrderByDescending(n => n.id).ToArray(); foreach (var item in datas) { - if (IsExchange) + if (IsExchange && item.OptType == "批量调整-标的交易") { - item.Changes = item.OptType == "批量调整-标的交易" ? new DatatraceQueryService(CurUser).ReplaceDataChanges(new trade(), item.Changes) : ""; + item.Changes = new DatatraceQueryService(CurUser).ReplaceDataChanges(new trade(), item.Changes); } - else + else if (!IsExchange && item.OptType == "修改交易") { - item.Changes = item.OptType == "修改交易" ? new DatatraceQueryService(CurUser).ReplaceDataChanges(new trade(), item.Changes) : ""; + item.Changes = new DatatraceQueryService(CurUser).ReplaceDataChanges(new trade(), item.Changes); } if (!string.IsNullOrEmpty(item.Changes)) {