feat: 收益互换开平仓及收益结算接入OA移动审批

#EQD-6425 国联民生-衍生品系统移动审批(提交OA流程)
- 审批节点支持配置“关联OA移动审批”
- 创建OA流程并记录请求、requestId、状态及异常备注
- 支持OA轮询同步审批通过、退回和归档状态
- 本地通过、拒绝、撤回时同步强制归档未结束OA流程
- 增加审批列表OA备注展示及本地Mock联调接口
- 新增OA审批记录表和数据库升级脚本
- OA移动审批使用独立查询地址及isnextflow配置,不影响交易确认书OA
This commit is contained in:
tengyufan
2026-08-21 15:54:54 +08:00
parent 23a02e06c4
commit 3f0984800a
19 changed files with 784 additions and 9 deletions
+30
View File
@@ -287,6 +287,13 @@ namespace YLErp.BLL
.Select(a => new { a.order, a.roleId })
.ToList()
.ToDictionary(a => a.order, a => a.roleId);
var approvalNodes = db.approvalprocess
.Select(a => new { a.id, a.processType, a.order, a.node })
.ToList();
var oaRecords = db.tradeApprovalOaResult
.Where(x => swapTradeIds.Contains(x.trade_id) && x.is_valid)
.Select(x => new { x.id, x.trade_id, x.approval_process_id, x.status, x.oa_msg })
.ToList();
foreach (var tradeLinq in retListResult.rows)
{
@@ -305,6 +312,29 @@ namespace YLErp.BLL
tradeLinq.ProcessRoleName = name;
}
if (tradeLinq.TradeType == "收益互换")
{
var processType = tradeLinq.TradeStatus == "平仓待复核" || tradeLinq.TradeStatus == "行权待复核" || tradeLinq.TradeStatus == "互换待复核"
? "CloseProcess"
: "TradeProcess";
var currentNode = approvalNodes
.Where(x => x.processType == processType
&& x.order == tradeLinq.ProcessOrderId
&& (x.node == tradeLinq.ProcessOrderBranch || x.node == 0))
.OrderByDescending(x => x.node == tradeLinq.ProcessOrderBranch)
.FirstOrDefault();
var oa = currentNode == null ? null : oaRecords
.Where(x => x.trade_id == tradeLinq.id && x.approval_process_id == currentNode.id)
.OrderByDescending(x => x.id)
.FirstOrDefault();
if (oa != null)
{
tradeLinq.OaRemark = string.IsNullOrWhiteSpace(oa.oa_msg)
? oa.status
: oa.status + "" + oa.oa_msg;
}
}
if (tradeLinq.TradeType == "远期" || tradeLinq.TradeType == "掉期")
{
var option = db.trade_forward.FirstOrDefault(x => x.TradeId == tradeLinq.id);