This commit is contained in:
Marsway 2026-02-03 17:41:34 +08:00
parent 4da20a513b
commit 862e3270b5
1 changed files with 20 additions and 4 deletions

View File

@ -199,23 +199,36 @@ class HuobanyunService:
payload: Dict[str, Any] = {"table_id": table_id, "limit": limit, "offset": offset}
order_status_field = self._resolve_field_key("订单状态")
project_no_field = "proj_id"
project_no_field_id = self._resolve_field_key("项目单号")
base_filters: List[Dict[str, Any]] = [
{"field": project_no_field, "query": {"em": False}},
{"field": order_status_field, "query": {"ne": ["已完成"]}},
]
if linkage_project_no:
base_filters.append(
{"field": project_no_field, "query": {"ain": [str(linkage_project_no)]}}
{
"or": [
{"field": project_no_field, "query": {"in": [str(linkage_project_no)]}},
{"field": project_no_field_id, "query": {"in": [str(linkage_project_no)]}},
]
}
)
payload["filter"] = {"and": base_filters}
elif key and query_value:
filter_field = project_no_field if key == "2200000149785345" else key
base_filters.append({"field": filter_field, "query": {"ain": [str(query_value)]}})
base_filters.append({"field": filter_field, "query": {"in": [str(query_value)]}})
payload["filter"] = {"and": base_filters}
elif raw.get("filter"):
payload["filter"] = raw.get("filter")
elif query_value:
base_filters.append({"field": project_no_field, "query": {"ain": [query_value]}})
base_filters.append(
{
"or": [
{"field": project_no_field, "query": {"in": [query_value]}},
{"field": project_no_field_id, "query": {"in": [query_value]}},
]
}
)
payload["filter"] = {"and": base_filters}
else:
payload["filter"] = {"and": base_filters}
@ -230,6 +243,7 @@ class HuobanyunService:
options = []
texts = {}
logged_fields = False
for item in items:
fields = item.get("fields", {})
item_id = item.get("item_id", "")
@ -242,7 +256,9 @@ class HuobanyunService:
("账号名称", self._resolve_field_key("账号名称")),
("项目名称", self._resolve_field_key("项目名称")),
]
logger.info("联动返回字段: %s", [name for name, _ in desired_fields])
if not logged_fields:
logger.info("联动返回字段: %s", [name for name, _ in desired_fields])
logged_fields = True
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)