fix: use native ERP product search

This commit is contained in:
inman
2026-09-02 19:29:04 +08:00
parent a618d3dd9f
commit b5c727b6f9
20 changed files with 289 additions and 58 deletions

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://local.lwltapi/schemas/ltjt_form_mapping.schema.json",
"mapping_version": "2026-08-18.shared_plan_create.plan_add.v0.8",
"status": "multi_date_split_facts_repeated_live_validated_test_context_release_gated_0.5.81",
"mapping_version": "2026-09-02.shared_plan_create.plan_add.v0.9",
"status": "native_nonempty_product_search_live_verified_release_gated_0.5.165",
"source": {
"schema": "schemas/standard_system_operation.schema.json",
"action": "shared_plan_create"
@@ -18,7 +18,7 @@
},
"ordered_steps": [
{ "step": 1, "operation": "set_date_range", "source": "data.recurrence.start_date/end_date", "targets": ["Riqi1", "Riqi2"] },
{ "step": 2, "operation": "resolve_and_select_product", "source": "data.product.keyword || data.product.name", "search_target": "S_chanpinming", "radio_target": "cp_id", "side_effect": "set_th fills tuanxuhao1/tuanxuhao2", "unique_required": true, "fallback": "match loaded candidates by product-name/duration fields; if unresolved, reload with an empty native query and match locally; never send a compound name+duration keyword or choose the first row" },
{ "step": 2, "operation": "resolve_and_select_product", "source": "data.product.keyword || data.product.name", "search_target": "S_chanpinming", "radio_target": "cp_id", "side_effect": "set_th fills tuanxuhao1/tuanxuhao2", "unique_required": true, "fallback": "match loaded candidates first; if unresolved, issue the native non-empty product-name query and match the returned name/duration fields locally; strip only a trailing numeric duration before the native query; retain one empty-query compatibility reload; never choose the first row" },
{ "step": 3, "operation": "conditionally_apply_explicit_order_suffix", "source": "data.order_number.suffix", "target": "tuanxuhao2", "rule": "ordinary Agent output leaves this absent; when a host/business system explicitly supplies it, apply only after product set_th and require exact persistence before payload approval" },
{ "step": 4, "operation": "set_planned_capacity", "source": "data.planned_capacity", "target": "jihuashu" },
{ "step": 5, "operation": "set_room_counts", "source": "data.room_counts", "targets": ["frenshu0", "frenshu1", "frenshu2", "frenshu3", "frenshu4", "frenshu5", "frenshu6"], "side_effect": "sum_fang()" },
@@ -35,7 +35,7 @@
"radio_name": "cp_id",
"match_order": ["unique_contiguous", "unique_name_duration_tokens", "unique_ordered_tokens"],
"label_scope": "product-name-and-duration cell, not full remarks",
"native_query_policy": "S_chanpinming supports contiguous product-name LIKE only; use empty query for broad reload when a compound keyword cannot be resolved",
"native_query_policy": "S_chanpinming supports contiguous product-name LIKE only; submit the complete product name unchanged, or strip a trailing numeric duration shorthand before querying; await native Ajax and match returned candidates locally; use one empty query only as the final compatibility reload",
"ambiguous_or_empty": "block"
},
"customer": {