front/.cursor/skills/oms-auto-trigger-formula/SKILL.md
zzh a2e71a3a6b feat: 自动触发支持 AI 写公式,并完善下单失败与订单附件体验
触发条件接入 AI 助手(选模型、发送 skill、一键填入);预报时机并入下单并支持公式验证;下单失败可继续修改或存草稿;补充订单附件、H5 下单与渠道买价相关优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 20:54:28 +08:00

4.8 KiB
Raw Blame History

name description
oms-auto-trigger-formula Writes OMS auto-trigger (自动触发) Chinese formulas for /channel/autoTrigger. Use when the user asks for 触发条件, 自动触发公式, 拦截/警告/问题件规则, oversize/国家/客户/销售产品条件, or formula verification sample data.

OMS 自动触发公式编写

为 /channel/autoTrigger 生成可直接粘贴的中文公式(后端 ChineseFormulaEvaluator)。

源码权威:

  • 前端字段/算子:src/views/channel/autoTrigger/formulaMeta.ts
  • 后端解析:Oms.Application/.../ChineseFormulaEvaluator.cs、AutoTriggerFormulaMeta.cs

产出格式

回复必须包含:

  1. 时机:下单 | 入库 | 出库(无「预报」;旧「预报」=「下单」)
  2. 操作:拦截 | 警告 | 问题件
  3. 公式:单行可执行表达式(无解释性注释夹在公式内)
  4. 一句话说明:命中条件是什么
  5. (可选)验证样例:国家/尺寸/客户等,方便弹窗「验证触发条件」
时机:下单
操作:拦截
公式:(单件最大长度()>60||单件最大宽度()>46)&&国家包含('GB')
说明:英国且超尺寸时拦截
验证样例:国家 GB,长 70,宽 40,高 40

语法硬规则(必遵守)

规则 正确 错误
字段名必须是注册过的中文 label 国家包含('GB') ConsigneeCountry=='GB'
字符串字段用 字段包含('值') 客户包含('阿里') 客户()=='阿里'
数值/聚合用 字段() 再比较 实重()>5、单件最大长度()>60 实重>5、长度包含('60')
布尔用 字段()==1 / ==0 是否偏远()==1 是否偏远()==true
字符串字面量单引号 'GB';内部单引号翻倍 '' "GB"
逻辑运算 && || ! and or not / 中文「且」
比较运算 == != > >= < <= = <>
算术 + - * / 与 () —
空公式 空串视为恒真(勿故意输出空) —
长度 ≤ 10000 —

包含 语义:字段字符串 Contains 参数(子串匹配,非全等)。多选可用 \|\|:

国家包含('GB')||国家包含('UK')

排除产品:

!销售产品包含('EX_ASP_HKDHL_YD')

写公式工作流

  1. 从用户描述抽出:时机、操作、条件(国家/客户/产品/尺寸/重量/状态等)。
  2. 映射到中文字段(见下方常用表;完整目录见 field-catalog.md)。
  3. 按字段类型选 包含('') 或 字段()。
  4. 用 && / || / ! / () 组合;复杂条件先括号。
  5. 对照 examples.md 自检语法。
  6. 输出「时机 + 操作 + 公式 + 说明」;需要时给验证样例。

不确定字段名时:优先读 formulaMeta.ts 的 ORDER_TABLE_FIELDS / VIRTUAL_FORMULA_FIELDS,或后端 AutoTriggerFormulaMeta。禁止编造未注册中文名。

常用字段速查

聚合(下单尺寸最常用)

中文 用法
单件最大长度 / 宽度 / 高度 单件最大长度()>60
单件长宽高之和 单件长宽高之和()>150

订单 / 客户

中文 类型 典型
国家 string 国家包含('GB')(二字码)
收件国家名称 string 收件国家名称包含('英国')
销售产品 string 销售产品包含('EX_')
收货渠道 string 收货渠道包含('DHL')
客户 string 客户包含('阿里国际站')
客户组 string 客户组包含('VIP')
货物属性 string 货物属性包含('sensitive')
申报总金额 number 申报总金额()>1000
是否偏远 / 是否COD / 是否拦截 boolean 是否偏远()==1
实重 / 计费重 / 长度/宽度/高度 number 实重()>20(件重尺;下单前优先用聚合字段)

收件人(选填场景)

收件人邮编包含('9')、收件人省州包含('CA')、收件人城市包含('London')

完整字段见 field-catalog.md。

时机与操作注意

  • 下单 + 拦截:建单前阻断(含草稿保存尝试)。
  • 下单 + 警告/问题件:预报成功后触发;纯草稿保存不触发。
  • 入库/出库:作业创建之后触发;「拦截」只打标,不回滚入库/出库。
  • 问题件:需能匹配问题模板,否则可能静默跳过。

自检清单

  • 每个字段都是注册中文名
  • 字符串用 包含('…'),数字用 字段() 比较
  • 括号匹配;&&/|| 优先级按需加括号
  • 国家一般用二字码 国家包含('XX')
  • 排除条件用 !字段包含('…')
  • 公式可单行粘贴进触发条件编辑器

更多