This commit is contained in:
Marsway 2026-02-03 17:20:35 +08:00
parent 0ec290c193
commit e0bdc7331b
1 changed files with 26 additions and 9 deletions

View File

@ -45,6 +45,8 @@ class HuobanyunService:
"下单金额": "2200000149785349",
"是否已关联对公付款审批": "2200000589775224",
"是否已关联对私付款审批": "2200000589775228",
"平台": "2200000149785346",
"账号名称": "2200000150497326",
}
return mapping.get(key, key)
@ -177,14 +179,19 @@ class HuobanyunService:
key = req.key or raw.get("key") or raw.get("field") or ""
key = self._resolve_field_key(str(key)) if key else ""
query_value = req.query or req.keyword or ""
linkage_params = req.linkage_params or raw.get("linkage_params") or {}
linkage_project_no = linkage_params.get("项目单号") if isinstance(linkage_params, dict) else None
payload: Dict[str, Any] = {"table_id": table_id, "limit": limit, "offset": offset}
if key and query_value:
if linkage_project_no:
project_key = self._resolve_field_key("项目单号")
payload["filter"] = {"and": [{"field": project_key, "query": {"eqm": [str(linkage_project_no)]}}]}
elif key and query_value:
payload["filter"] = {"and": [{"field": key, "query": {"eqm": [str(query_value)]}}]}
elif raw.get("filter"):
payload["filter"] = raw.get("filter")
elif query_value:
payload["filter"] = {"and": [{"field": "title", "query": {"eqm": [query_value]}}]}
payload["filter"] = {"and": [{"field": self._resolve_field_key("项目单号"), "query": {"eqm": [query_value]}}]}
payload["order"] = {"field_id": "created_on", "type": "desc"}
payload["with_field_config"] = 0
@ -199,10 +206,20 @@ class HuobanyunService:
for item in items:
fields = item.get("fields", {})
item_id = item.get("item_id", "")
if key:
value = self._extract_value(fields.get(key, ""))
if linkage_project_no:
values = {
"平台": self._extract_value(fields.get(self._resolve_field_key("平台"), "")),
"账号名称": self._extract_value(fields.get(self._resolve_field_key("账号名称"), "")),
"项目名称": self._extract_value(fields.get(self._resolve_field_key("项目名称"), "")),
}
for field_name, value in values.items():
value_str = "" if value is None else str(value)
i18n_key = f"@i18n@{item_id}:{field_name}" if item_id else f"@i18n@{field_name}:{value_str}"
options.append({"id": f"{item_id}:{field_name}", "value": i18n_key, "isDefault": False})
texts[i18n_key] = value_str
else:
value = item.get("title", "")
project_key = key or self._resolve_field_key("项目单号")
value = self._extract_value(fields.get(project_key, ""))
value_str = "" if value is None else str(value)
i18n_key = f"@i18n@{item_id}" if item_id else f"@i18n@{value_str}"
options.append({"id": str(item_id), "value": i18n_key, "isDefault": False})