From e0bdc7331ba2d5bff115601d728c11f0a8fd6f84 Mon Sep 17 00:00:00 2001 From: Marsway Date: Tue, 3 Feb 2026 17:20:35 +0800 Subject: [PATCH] update --- app/services/huobanyun_service.py | 35 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/app/services/huobanyun_service.py b/app/services/huobanyun_service.py index af8fe99..4542da5 100644 --- a/app/services/huobanyun_service.py +++ b/app/services/huobanyun_service.py @@ -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,14 +206,24 @@ 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", "") - 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}) - texts[i18n_key] = value_str + 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}) + texts[i18n_key] = value_str return { "options": options,