Files
LWLT-AIBOT/agent设计规范/businesses/shared_plan_create.md

9.3 KiB
Raw Blame History

散拼团新增计划业务适配包

业务身份

字段
business_id shared_plan_create
业务行为名称 散拼团新增计划
Skill lwlt-newbooking
标准 action shared_plan_create
当前状态 单日及三日期母团创建已重复验证E2E3/E2E4 连续证明多日期携带客户/15+1 会逐日形成具体子单,普通任务仍受发布闸门约束
ERP 环境 https://lwlt.hisy.cc/System/Mainlt.asp

1. 用户输入模板与示例

1.1 模板

散拼团新增计划
发团日期(必填):<YYYY-MM-DD或YYYY-MM-DD到YYYY-MM-DD>
产品搜索(必填):<产品名称或唯一搜索关键词>
计划收客数(必填):<正整数>
用房数量(必填):<x单+x标+x双数字格式>
发团周期(选填):<多日期批量时必填,以/分隔>
拼团客户(选填):<需要同时形成具体子单时填写客户关键词>
拼团人数(选填):<需要同时形成具体子单时填写x+x人数>

1.2 示例

散拼团新增计划
发团日期09-01到09-30
产品搜索广东衡阳6D
计划收客数40
用房数量8标1单
发团周期09.07/09.15/09.26

说明:上例中的 2026 只是完整日期示例,不是运行时默认年份。用户只写月日时,按任务日期归一为下一次发生日;例如任务日期为 2026-08-18 时,01-01到01-30 应归一为 2027-01-01到2027-01-30

1.3 operation 归一化

{
  "action": "shared_plan_create",
  "order_nature": "formal",
  "submit_mode": "dry_run",
  "data": {
    "product": { "name": "广东衡阳6D", "keyword": "广东衡阳6D" },
    "recurrence": {
      "start_date": "2026-09-01",
      "end_date": "2026-09-30",
      "pattern": "specified_dates"
    },
    "departure_dates": ["2026-09-07", "2026-09-15", "2026-09-26"],
    "planned_capacity": 40,
    "room_counts": { "TWN": 8, "SGL": 1 },
    "resolution": {
      "mode": "task_ready",
      "deferred_fields": ["route", "trip", "order_number"]
    }
  }
}

关键边界:

  • planned_capacity=40 是母团计划的计划收客数;它与可选的拼团实际人数不是同一个字段。
  • room_counts 属于计划表整体字段;split_order.customersplit_order.passenger_counts 是 ERP 选填字段,可以独立提交,缺少哪一个就省略哪一个。
  • 产品关键字可以是业务侧缩写,但必须保留原始 keyword。Skill 不写 ERP 全称、产品 ID、客户隐藏 ID 或团号。
  • 广东衡阳6D 只是业务搜索关键词;产品名称和天数分开匹配。若当前散拼候选无法唯一解析,插件先通过 S_chanpinming 发起原生非空产品名检索,再对返回候选做本地唯一匹配;尾部数字时长不发送给产品名检索,最后仅保留一次空条件兼容重载。如果最终 0 个或多个候选命中,必须提示用户并停止。拼团客户与产品分别唯一解析,来源地关键字不再作为两者之间的强制匹配门禁。

2. ERP 操作系统流程

当前页面为已登录的 https://lwlt.hisy.cc/System/Mainlt.asp。插件按以下顺序操作:

  1. 进入“散拼团计划表”后立即检查“新增计划”按钮;若 ERP 主 iframe 已进入 /System/Business/plan.asp 但按钮仍在渲染,则持续重新取得当前 iframe document 并按条件短轮询,按钮一旦存在且可用便立即点击,不使用固定等待。只有在 15 秒总超时后仍不可用才在写前阻断,然后打开 /System/Business/plan_add.asp
  2. 填写 Riqi1=2026-09-01Riqi2=2026-09-30
  3. 先在散拼团产品列表的产品名称/天数单元格中按 广东衡阳6D 做连续或有序唯一匹配并点选 cp_id。若当前候选无法解析,调用 S_chanpinming 的原生非空检索:完整产品名原样搜索,10D/8天 等尾部数字时长先剥离后只搜索产品名;再对返回候选本地唯一匹配,必要时以空条件做一次兼容重载。点选后的 set_th 必须自动带入团号前缀/后缀。
  4. 填写 jihuashu=40
  5. 填写房型:frenshu0=1SGLfrenshu1=8TWN其余明确未提供房型为 0调用 sum_fang(),确认 frenshu6=9
  6. 调用 ShowFoucsBox() 生成日期枚举,只勾选 2026-09-072026-09-152026-09-26 各一个 zhidingzhouqi 节点。
  7. 若 operation 提供 split_order.customer,唯一匹配客户并同步 zutuansheid 等隐藏字段;若提供 split_order.passenger_counts,填写人数并调用 GetVisitorsHtml();未提供的字段不主动修改。
  8. 预检计划容量、房型总数、已提供的可选字段及其联动结果、日期勾选、产品团号设置和 ERP 默认人员;通过业务系统确认后调用 SubmitInfoForm() 保存。
  9. 监听 /System/DAT/plan.aspAct=DoInfoSPs 响应,解析全部返回的母团团号;按日期范围逐一回查散拼团计划表,所有团号均命中后才返回完成。

2.1 真实 ERP 字段映射

用户/系统事实 ERP 字段
发团日期范围 Riqi1, Riqi2
产品搜索关键字 S_chanpinming;先原生检索完整产品名或剥离尾部数字时长后的产品名,再本地唯一匹配;必要时空条件兼容重载
产品选择 cp_id
计划收客数 jihuashu
房型 SGL/TWN/TRP/DBL frenshu0/frenshu1/frenshu2/frenshu3
房型 HNM/TL 兼容字段 frenshu4/frenshu5
房型总数 frenshu6,由 sum_fang() 计算
显式周期日期 zhidingzhouqi
快捷周期 zhouqiAll、星期值、单双日值
拼团客户 可选 split_order.customerzutuanshezutuansheid、联系人/币种等由唯一客户匹配联动
拼团人数 可选 split_order.passenger_counts;写入 darenshuxiaorenshuertrenshuyingrenshuquanrenshu,并调用 GetVisitorsHtml()
提交 POST /System/DAT/plan.asp, Act=DoInfoSPs

2.2 保存前阻断

  • 缺少母团必填字段,或已提供的 split_order.customer / split_order.passenger_counts 格式、唯一匹配、人数合计校验失败;
  • 产品选择没有生成团号设置;
  • 日期枚举无法完整覆盖周期日期,或同一日期会提交多个勾选值;
  • 计划容量或房型总数为 0或已提供的可选字段未能正确落到 ERP 控件;
  • ERP 默认跟团人/销售人为空;
  • 散拼团计划表在 15 秒条件等待后仍未出现可用的“新增计划”按钮;
  • 页面自身校验弹窗、登录失效、权限错误、响应不明确或任一返回团号回查未命中。

3. Skill 适配

Skill 相关文件:

Skill 负责把用户明确提供的产品、日期范围、周期日期、计划容量、房型以及可选的拼团客户/人数放入标准 operation客户和人数分别放在 split_order 下,插件按 ERP 字段能力选择性写入。

4. 代码、Schema 与证据

用途 文件
标准 operation Schema standard_system_operation.schema.json
散拼页面 Schema plan_add_form_schema.json
散拼字段映射 plan_add.mapping.json
插件页面适配 inpage.js
产品名称/天数匹配 product-lookup.jsproduct-lookup.test.mjs
插件规划/校验 operation-plans.js
插件后台与回执 background.js
规划测试 operation-plans.test.mjs
不可变真实运行证据 2026-08-12 E2E4 证据登记

5. 验证状态

历史授权真实验证2026-08-06旧契约仅保留作为 ERP 产品匹配、周期选择、提交响应和回查机制的证据:

  • 产品关键字 老挝广东8D 唯一命中 老挝行程--广东 8D7N,并曾在旧流程中匹配客户、填写拼单人数。
  • 旧流程曾成功创建 3 个团队并按日期/团号逐一回查;其中客户和人数的填写证据也支持当前“有值才写、缺值不动”的映射。
  • 0.5.81 历史实证基线曾记录来源地兼容校验;该历史策略不再作为当前写前阻断。当前仍要求 ERP 产品和客户各自唯一解析E2E3 与 E2E4 均使用全新三日期计划和完整专用测试上下文,逐日期形成具体子单并回查客户、成人 15、领队 1、母团 tid 和子单 ddid;全部测试对象最终按允许清单删除。当前执行边界以 生命周期发布门槛 为准,该历史事实不自动解除普通任务的业务发布闸门,批量结果也必须逐日期登记。