Merge remote-tracking branch 'origin/glms/feature/1.4.2' into glms/feature/1.4.2-margin

This commit is contained in:
锦麟 王
2026-08-24 09:40:03 +08:00
338 changed files with 9170 additions and 64604 deletions
@@ -56,6 +56,23 @@ namespace YLErp.Modules.TradeModule.DealModule
throw new ServiceException("该交易状态已变更,不能被审批,请先刷新页面");
}
if (!req.isFromOa && (req.status == "pass" || req.status == "reject"))
{
var currentNode = TradeProcessByCategory(td)
.Where(x => x.order == td.ProcessOrderId && (x.node == 0 || x.node == td.ProcessOrderBranch))
.OrderByDescending(x => x.node == td.ProcessOrderBranch)
.FirstOrDefault();
if (currentNode?.isOaApproval == true)
{
var oa = DbContext.tradeApprovalOaResult.FirstOrDefault(x => x.trade_id == td.id
&& x.approval_process_id == currentNode.id
&& x.is_valid
&& (x.status == "提交成功" || x.status == "同步中" || x.status == "归档中"));
if (oa != null && !new TradeApprovalOAService(this).ArchiveForLocalAction(oa, out var errorMessage))
throw new ServiceException(errorMessage);
}
}
if (req.status == "pass")
{
return TradePass(req, td);
@@ -179,6 +196,13 @@ namespace YLErp.Modules.TradeModule.DealModule
return result;
}
// 关联 OA 的节点必须先成功创建 OA 流程,才允许本地审批推进到该节点。
if (nextOrder.isOaApproval && td.TradeType == "收益互换")
{
// OA 创建是节点通过后的外部动作;明确失败只记录在 OA 结果表,不能回滚本地节点通过。
new TradeApprovalOAService(this).CreateForNode(td, nextOrder);
}
//-----------------------------------------------
// 继续审批流转
//-----------------------------------------------
@@ -788,6 +812,7 @@ namespace YLErp.Modules.TradeModule.DealModule
public bool notNeedOperationHistory;
public bool isPartialExercise;
public bool isExpire = false;
public bool isFromOa;
}
/// <summary>