From 8a1181929630b4d1752c54205b928cdd197b3b04 Mon Sep 17 00:00:00 2001 From: Weiming Date: Wed, 3 Jun 2026 12:19:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E6=9C=9F=E6=9D=83?= =?UTF-8?q?=E5=92=8C=E4=BA=92=E6=8D=A2=E7=9A=84=E5=AE=A1=E6=89=B9=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E8=8A=82=E7=82=B9=E8=AE=B0=E5=BD=95=E6=9C=AA=E5=9C=A8?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=8E=86=E5=8F=B2=E4=B8=AD=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82=202.=20=E5=9C=A8=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E8=AE=B0=E5=BD=95=E7=9A=84=E5=AE=A1=E6=89=B9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=AD=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=BF=A1=E6=81=AF=E3=80=82=20=E7=89=B9?= =?UTF-8?q?=E5=88=AB=E6=B3=A8=E6=84=8F=EF=BC=9A=E6=9C=9F=E6=9D=83=E5=92=8C?= =?UTF-8?q?=E4=BA=92=E6=8D=A2=E7=9A=84=E6=93=8D=E4=BD=9C=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=98=AF=E5=9C=A8=E4=B8=A4=E5=BC=A0=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E8=A1=A8=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DealModule/TradeOpenService.cs | 45 ++++++++++++++++--- YLErpWeb/Controllers/tradeController.cs | 10 ++--- 2 files changed, 44 insertions(+), 11 deletions(-) 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)) {