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} payload: Dict[str, Any] = {"table_id": table_id, "limit": limit, "offset": offset}
order_status_field = self._resolve_field_key("订单状态") order_status_field = self._resolve_field_key("订单状态")
project_no_field = "proj_id" project_no_field = "proj_id"
project_no_field_id = self._resolve_field_key("项目单号")
base_filters: List[Dict[str, Any]] = [ base_filters: List[Dict[str, Any]] = [
{"field": project_no_field, "query": {"em": False}}, {"field": project_no_field, "query": {"em": False}},
{"field": order_status_field, "query": {"ne": ["已完成"]}}, {"field": order_status_field, "query": {"ne": ["已完成"]}},
] ]
if linkage_project_no: if linkage_project_no:
base_filters.append( 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} payload["filter"] = {"and": base_filters}
elif key and query_value: elif key and query_value:
filter_field = project_no_field if key == "2200000149785345" else key 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} payload["filter"] = {"and": base_filters}
elif raw.get("filter"): elif raw.get("filter"):
payload["filter"] = raw.get("filter") payload["filter"] = raw.get("filter")
elif query_value: 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} payload["filter"] = {"and": base_filters}
else: else:
payload["filter"] = {"and": base_filters} payload["filter"] = {"and": base_filters}
@ -230,6 +243,7 @@ class HuobanyunService:
options = [] options = []
texts = {} texts = {}
logged_fields = False
for item in items: for item in items:
fields = item.get("fields", {}) fields = item.get("fields", {})
item_id = item.get("item_id", "") item_id = item.get("item_id", "")
@ -242,7 +256,9 @@ class HuobanyunService:
("账号名称", self._resolve_field_key("账号名称")), ("账号名称", self._resolve_field_key("账号名称")),
("项目名称", 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: for field_name, field_key in desired_fields:
value = self._extract_value(fields.get(field_key, "")) value = self._extract_value(fields.get(field_key, ""))
value_str = "" if value is None else str(value) value_str = "" if value is None else str(value)