feat:优化变量与代码结构

This commit is contained in:
ruisu
2026-08-24 13:31:26 +08:00
parent f41411485d
commit 739a1efd3b
2 changed files with 23 additions and 9 deletions
@@ -519,8 +519,10 @@ namespace YLErp.Modules.RiskEngine
/// </summary>
private static string BuildBooleanMessage(glms_risk_variable variable, ValueExecuteResult value, bool expected)
{
if (!string.IsNullOrWhiteSpace(value.DetailMessage))
return value.DetailMessage.Trim();
var parts = new List<string>();
AddDetail(parts, value.DetailMessage);
parts.Add($"{variable.VariableName}为{FormatDisplayValue(value.Value)}");
parts.Add($"期望为{FormatDisplayValue(expected)}");
return string.Join("", parts);
+20 -8
View File
@@ -4267,9 +4267,10 @@ NOT ((InterestDirection = 1 AND PositionType = 2) OR (InterestDirection = 2 AND
变量形式:
变量名:账户授权收支方向不匹配标记
DataTypeNumeric
规则配置:账户授权收支方向不匹配标记 > 0
变量名:账户授权收支方向不匹配
DataTypeBoolean
ValueDomaintrue/false
规则配置:账户授权收支方向不匹配 为是
变量取值表达式:
@@ -4333,24 +4334,35 @@ var mismatchItems = directionItems
var detailItems = directionItems
.Select(p => new RiskVariableValueDetailItem(
p.IsMismatch ? 1m : 0m,
p.IsMismatch,
$"浮动端记录ID为{p.FloatPositionId}PosiDirection为{p.PosiDirection},浮动端为{p.PositionTypeName};普通利息端记录ID为{p.InterestPositionId}InterestMode为{p.InterestMode},利息端为{p.InterestDirectionName}{(p.IsMismatch ? "" : "")}"))
.ToList();
if (mismatchItems.Any())
{
var matchedItems = directionItems
.Where(p => !p.IsMismatch)
.ToList();
var mismatchMessage = string.Join("", mismatchItems
.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"));
var matchedMessage = matchedItems.Any()
? string.Join("", matchedItems.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"))
: "无";
return new RiskVariableValueDetail(
1m,
$"交易ID {TradeId} 存在账户授权收支方向不匹配组合:{mismatchMessage}。只允许利息端收取且浮动端空头,或利息端支付且浮动端多头",
true,
$"交易ID {TradeId} 存在账户授权收支方向不匹配组合。不匹配组合{mismatchMessage}。匹配组合:{matchedMessage}。允许场景:利息端收取且浮动端空头,或利息端支付且浮动端多头",
detailItems);
}
var allMatchedMessage = string.Join("", directionItems
.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"));
return new RiskVariableValueDetail(
0m,
$"交易ID {TradeId} 的账户授权收支方向均符合允许场景浮动端共{floatItems.Count}条,普通利息端共{interestItems.Count}条,已逐条组合检查;只允许利息端收取且浮动端空头,或利息端支付且浮动端多头",
false,
$"交易ID {TradeId} 的账户授权收支方向均符合允许场景。匹配组合:{allMatchedMessage}。浮动端共{floatItems.Count}条,普通利息端共{interestItems.Count}条,已逐条组合检查",
detailItems);
```