diff --git a/app/services/huobanyun_service.py b/app/services/huobanyun_service.py index 38af3ed..43ee97d 100644 --- a/app/services/huobanyun_service.py +++ b/app/services/huobanyun_service.py @@ -50,6 +50,19 @@ class HuobanyunService: } return mapping.get(key, key) + def _resolve_field_label(self, key: str) -> str: + reverse = { + "2200000149785345": "项目单号", + "2200000150711223": "项目名称", + "2200000150497330": "订单状态", + "2200000149785349": "下单金额", + "2200000589775224": "是否已关联对公付款审批", + "2200000589775228": "是否已关联对私付款审批", + "2200000149785346": "平台", + "2200000150497326": "账号名称", + } + return reverse.get(key, key) + def _to_bool(self, value: Any) -> Optional[bool]: if isinstance(value, bool): return value @@ -177,7 +190,7 @@ class HuobanyunService: offset = 0 key = req.key or raw.get("key") or raw.get("field") or req.token or "" - key = self._resolve_field_key(str(key)) if key else "" + key = self._resolve_field_key(str(key).strip()) 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 @@ -208,15 +221,15 @@ class HuobanyunService: item_id = item.get("item_id", "") if linkage_project_no: if key: - value = self._extract_value(fields.get(key, "")) - values = {key: value} + desired_fields = [(self._resolve_field_label(key), key)] else: - 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(): + desired_fields = [ + ("平台", self._resolve_field_key("平台")), + ("账号名称", self._resolve_field_key("账号名称")), + ("项目名称", self._resolve_field_key("项目名称")), + ] + for field_name, field_key in desired_fields: + value = self._extract_value(fields.get(field_key, "")) 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})