1. 修复期权和互换的审批中间节点记录未在操作历史中展示的问题。

2. 在操作记录的审批记录中,增加审批角色信息。
特别注意:期权和互换的操作历史是在两张不同的表中
This commit is contained in:
Weiming
2026-06-03 12:19:11 +08:00
parent 524f9a5cd8
commit 8a11819296
2 changed files with 44 additions and 11 deletions
@@ -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
/// </summary>
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}";
}
}
/// <summary>