Files
LWLT-AIBOT/agent设计规范/businesses/team_order_batch_create.md
2026-09-02 19:29:04 +08:00

10 KiB
Raw Blame History

独立团批量下单业务适配包

业务身份

字段
business_id team_order_batch_create
业务行为名称 独立团批量下单
Skill lwlt-newbooking
标准 action team_order_batch_create
当前状态 已真实验证
最近验证 2026-08-06https://lwlt.hisy.cc/System/Mainlt.asp;授权真实写入并逐条回查

1. 用户输入模板与示例

1.1 模板

独立团批量下单
发团日期(必填):<YYYY-MM-DD到YYYY-MM-DD>
预订客户(必填):<客户名称或唯一搜索关键词>
产品搜索(必填):<产品名称或唯一搜索关键词>
预估人数(必填):<x+x占/不占)+x数字格式>
用房数量(必填):<x单+x标+x双数字格式>
发团周期(必填):<范围内的实际发团日期,以/分隔>
特殊要求(选填):<其他业务要求>

1.2 示例

独立团批量下单
发团日期09-01到09-30
预订客户:衡阳广东
产品搜索:老挝好时光
预估人数15+1
用房数量8标1单
发团周期09.03/09.05/09.30

发团日期是 ERP 批量页面的可选日期范围,发团周期是范围内实际要勾选的日期;两者不能混为一组日期。客户和产品允许使用业务侧简称,但必须保留原始关键词交给插件做唯一匹配。

1.3 字段规则

用户字段 必填 标准结果 处理边界
发团日期 data.recurrence.start_date/end_date 必须形成完整日期范围;无法确定年份时追问
预订客户 data.customer.name/keyword 保留关键词ERP 当前数据集零/多候选均阻断;历史预定客户为兼容别名
产品搜索 data.product.name/keyword 保留关键词;候选内按产品名/天数匹配,必须唯一点选产品
预估人数 data.passenger_counts 15+1adult: 15, leader: 1;数量必须为正
用房数量 data.room_counts 标/TWN单/SGL 等别名归一化;只写明确房型
发团周期 data.departure_datesdata.recurrence.pattern 显式日期必须在范围内;星期/单双日交给 ERP 快捷标签

价格、币种、OP、销售人员、团号前后缀和客户隐藏 ID 不属于本业务的用户必填事实;它们由产品联动、当前登录账号或 ERP 数据派生。缺少房型分配时只追问房型,不追问价格或人员。

1.4 标准 operation 摘要

{
  "action": "team_order_batch_create",
  "order_nature": "formal",
  "submit_mode": "dry_run",
  "data": {
    "customer": { "name": "衡阳广东", "keyword": "衡阳广东" },
    "product": { "name": "老挝好时光", "keyword": "老挝好时光" },
    "recurrence": {
      "start_date": "2026-09-01",
      "end_date": "2026-09-30",
      "pattern": "specified_dates"
    },
    "departure_dates": ["2026-09-03", "2026-09-05", "2026-09-30"],
    "passenger_counts": { "adult": 15, "leader": 1 },
    "room_counts": { "TWN": 8, "SGL": 1 }
  }
}

对应的 Skill 规则和 fixture

1.5 缺失和阻断示例

  • 用房数量8:缺少房型分配,返回 agent_parse_needs_input,只询问房型。
  • 客户关键词匹配到零个或多个 ERP 候选:插件在保存前阻断,不选择第一个候选。
  • 产品点选后未产生团号前缀/后缀或产品联动不完整:插件阻断,不猜团号。
  • 发团周期包含范围外日期、人数/房间为零、或多个独立业务混在同一请求:阻断或先澄清。

2. ERP 操作系统流程

当前真实验证的原生流程如下,顺序不可打乱:

  1. 在已登录的 ERP 主页面进入独立团计划表,打开“批量下单”功能,进入 /System/Business/orders_adds.asp
  2. 填写发团日期范围,对应页面字段 Riqi1Riqi2;范围用于生成可选日期集合。
  3. 在预订客户字段 zutuanshe 中使用用户关键词匹配当前 SelectBox 数据集的可搜索字段。必须唯一匹配后通过页面自身映射点选,不能把关键词当作最终客户全称或隐藏 ID。
  4. 在当前产品候选中按用户关键词匹配产品名和天数并点选唯一 cp_id;当前候选无法唯一解析时,通过 S_chanpinming 发起原生非空检索:完整产品名原样搜索,尾部数字时长先剥离后只搜索产品名。插件再对返回候选做本地唯一匹配,必要时以空条件做一次兼容重载。点选后执行页面产品联动,等待团号设置等必填字段自动带入;不能自行生成团号前后缀。
  5. 填写预估人数,对应成人和领队/工作人员数量字段(当前页面为 darenshufrenshu1)。
  6. 填写用房数量,只提交明确的房型数量,例如 TWN=8SGL=1;不能把总房间数当作房型分配。
  7. 在发团周期中选择实际日期:显式日期通过 zhidingzhouqi 勾选;星期、单日/双日等表达通过页面旁的快捷标签转换后批量勾选。所有选中日期必须落在发团日期范围内。
  8. 运行页面自身校验和提交门禁,然后提交原生批量表单 InfoForm1POST /System/DAT/orders.asp,动作是 Act=DoInfoJHs。解析成功弹窗中的全部团号,不只读取第一条。
  9. 对返回的每一个团号逐一执行 ERP JH_OrderList 回查;只有全部团号命中且无登录超时/权限错误,业务系统才标记为 completed

原生批量路线已经真实验证。旧的逐日期 DoInfoJH 单团路线只作为兼容经验保留;原生路线成功或结果不确定时,不得静默切换到 fallback 重复写入。

ERP 阻断

  • ERP 未登录、会话失效或权限失败;
  • 客户/产品零候选或多候选;
  • 产品联动没有产生团号设置等必填字段;
  • 选中日期超出范围、无选中日期、人数/房型数量不合法;
  • 页面自身校验弹窗;
  • 提交已开始但没有确定回执;
  • 返回团号数量与逐条回查结果不一致。

代码与证据

用途 入口
原生批量页面逻辑 team-batch.jsteam-batch-inpage.js
后台任务与回执 background.js
相关标准映射 orders_adds.mapping.jsonorders_adds_form_schema.json
批量测试 team-batch.test.mjs
产品名称/天数匹配 product-lookup.jsproduct-lookup.test.mjs
不可变真实运行证据 2026-08-12 E2E4 证据登记

3. Skill 适配

Skill 负责识别“独立团批量下单”、保留客户/产品模糊关键词、分离日期范围和周期日期、归一化人数/房型,并输出标准 operation。Skill 不负责匹配 ERP 全称、生成隐藏 ID、决定选择哪个候选或声称保存成功。

当前 Skill 适配文件:

三层边界:

本业务的内容
用户事实 客户关键词、产品关键词、日期范围、实际周期、人数、房型数量
Skill 归一化 标准日期、adult/leaderTWN/SGLformal/dry_run、唯一 action
ERP 派生/结果 客户隐藏 ID、产品 ID、团号设置、价格/人员默认值、团号列表和回查证据

4. 真实验证结果

用户授权的真实案例在 ERP 修复后执行成功:

  • 返回:操作成功,共计新增 3 个团队
  • 团号:LW-260903A-ALW-260905A-ALW-260930A-B
  • 三个团号均完成 ERP 回查HTTP 200、命中、无登录超时/权限错误;
  • 业务系统和流程日志均返回完整三条团号;
  • 0.5.78 历史候选在 2026-08-11 的两轮真实回放中,均以不同测试 suffix 完成独立团批量 3 日期创建,逐日期取得明确 HTTP 200 回执、团号与 tid/ddid 回查,并全部纳入允许清单后精确删除。这些证据继续支持产品名+天数候选本地匹配、动态页面完整度、产品联动后的显式团号 suffix 精确覆盖、原生列表 action 归属回查,以及生命周期的精确对象路由和写后回查;来源地关键字不再作为产品/客户跨字段强制匹配。当前候选版本与发布条件以 生命周期发布门槛 为准。

真实验证不会保存凭据、Cookie 或客户隐藏 ID具体运行证据保留在 2026-08-12 E2E4 证据登记

5. 后续变更规则

以下任一变化都必须重新检查三项设计,并按影响范围重新预检/真实验证:

  • ERP 批量页入口、字段名、产品/客户数据结构或提交动作变化;
  • 客户/产品匹配规则或业务关键词语义变化;
  • 人数、房型、日期周期或回执格式变化;
  • 标准 operation、Schema、插件版本或回查接口变化。