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
@@ -50,6 +50,11 @@
return;
}
foreach (var td in revokeTrades)
{
ArchiveActiveOaOrThrow(td);
}
var tradeids = revokeTrades.Select(n => n.id);
var revokeTrade_cashs = DbContext.trade_cash.Where(c => c.ValidState == "InValid" && !c.IsDeleted && tradeids.Contains(c.TradeId)).ToList();
revokeTrade_cashs.ForEach(x =>
@@ -94,6 +99,7 @@
var Withdraws = DbContext.trade.Where(t => tradeIds.Contains(t.id)).ToList();
foreach (var td in Withdraws)
{
ArchiveActiveOaOrThrow(td);
var changesTradeStatus = DbContext.TradeAuditLog.Where(x => (x.OptType == "确认交易" || x.OptType == "交易特批-确认交易") && x.TradeId == td.id).OrderByDescending(x => x.id)?.FirstOrDefault()?.Changes;
td.TradeStatus = changesTradeStatus == ConsTrade. ? ConsTrade. : ConsTrade.;
td.CheckStatus = null;
@@ -103,6 +109,12 @@
}
DbContext.SaveChanges();
}
private void ArchiveActiveOaOrThrow(trade td)
{
if (!new TradeApprovalOAService(this).ArchiveActiveForTrade(td, out var errorMessage))
throw new ServiceException(errorMessage);
}
/// <summary>
/// 获取包含黑箱结构的子交易集合
/// </summary>