admin/src/Oms.Application/Services/Orders/Issues/AutoTriggerTimingCodes.cs
zzh 43563b727f feat: 自动触发公式引擎与查价运输方式分组接口
实现中文公式预报前拦截、规则测试 API 及按销售产品分组返回查价运输方式选项。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 18:36:17 +08:00

46 lines
1.2 KiB
C#

namespace Oms.Application.Services.Orders.Issues;
public enum AutoTriggerTiming
{
OrderCreate,
Inbound,
Outbound
}
public static class AutoTriggerTimingCodes
{
public const string OrderCreate = "order_create";
public const string Inbound = "inbound";
public const string Outbound = "outbound";
public static bool Matches(string? triggerTiming, AutoTriggerTiming timing)
{
if (string.IsNullOrWhiteSpace(triggerTiming))
{
return false;
}
var text = triggerTiming.Trim();
return timing switch
{
AutoTriggerTiming.OrderCreate => ContainsAny(text, "下单", "order", "create", "parcel", "预报", "forecast"),
AutoTriggerTiming.Inbound => ContainsAny(text, "入库", "inbound", "receive", "收货"),
AutoTriggerTiming.Outbound => ContainsAny(text, "出库", "outbound", "ship", "发货"),
_ => false
};
}
private static bool ContainsAny(string text, params string[] keywords)
{
foreach (var keyword in keywords)
{
if (text.Contains(keyword, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
}