diff --git a/app/services/huobanyun_service.py b/app/services/huobanyun_service.py index 7dea201..a99eed1 100644 --- a/app/services/huobanyun_service.py +++ b/app/services/huobanyun_service.py @@ -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)