实现中文公式预报前拦截、规则测试 API 及按销售产品分组返回查价运输方式选项。 Co-authored-by: Cursor <cursoragent@cursor.com>
46 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|