diff --git a/app/services/huobanyun_service.py b/app/services/huobanyun_service.py index 6ff89e3..7dea201 100644 --- a/app/services/huobanyun_service.py +++ b/app/services/huobanyun_service.py @@ -197,16 +197,28 @@ class HuobanyunService: logger.info("外部选项请求: token_key=%s linkage_project_no=%s", key, linkage_project_no) payload: Dict[str, Any] = {"table_id": table_id, "limit": limit, "offset": offset} + order_status_field = self._resolve_field_key("订单状态") + project_no_field = "proj_id" + base_filters: List[Dict[str, Any]] = [ + {"field": project_no_field, "query": {"em": False}}, + {"field": order_status_field, "query": {"ne": ["已完成"]}}, + ] if linkage_project_no: - filter_field = "proj_id" - payload["filter"] = {"and": [{"field": filter_field, "query": {"ain": [str(linkage_project_no)]}}]} + base_filters.append( + {"field": project_no_field, "query": {"ain": [str(linkage_project_no)]}} + ) + payload["filter"] = {"and": base_filters} elif key and query_value: - filter_field = "proj_id" if key == "2200000149785345" else key - payload["filter"] = {"and": [{"field": filter_field, "query": {"ain": [str(query_value)]}}]} + filter_field = project_no_field if key == "2200000149785345" else key + base_filters.append({"field": filter_field, "query": {"ain": [str(query_value)]}}) + payload["filter"] = {"and": base_filters} elif raw.get("filter"): payload["filter"] = raw.get("filter") elif query_value: - payload["filter"] = {"and": [{"field": "proj_id", "query": {"ain": [query_value]}}]} + base_filters.append({"field": project_no_field, "query": {"ain": [query_value]}}) + payload["filter"] = {"and": base_filters} + else: + payload["filter"] = {"and": base_filters} payload["order"] = {"field_id": "created_on", "type": "desc"} payload["with_field_config"] = 0