Эх сурвалжийг харах

dev:目录审查模块的j流程精简;

ChenJiSheng 1 сар өмнө
parent
commit
2fc1b66019

+ 1 - 4
core/construction_review/component/ai_review_engine.py

@@ -1023,10 +1023,7 @@ class AIReviewEngine(BaseReviewer):
             path_redis = 'temp/document_temp/redis_data.csv'
 
             # 去除两个DataFrame中相同chapter_label行的miss_outline列与missing_items列的公共元素
-            miss_outline_df, common_elements_dict = remove_common_elements_between_dataframes(miss_outline_df, redis_data)
-            
-            # 更新 redis_data,使用apply函数去除公共元素
-            redis_data = redis_manager.update_redis_data_with_common_elements_removed(redis_data, common_elements_dict)
+            miss_outline_df, redis_data = remove_common_elements_between_dataframes(miss_outline_df, redis_data)
             
             # 将更新后的数据写回Redis
             for index, row in redis_data.iterrows():

+ 11 - 5
core/construction_review/component/reviewers/catalogues_check/catalogues_check.py

@@ -380,7 +380,7 @@ class CatalogCheckProcessor:
 def remove_common_elements_between_dataframes(
     miss_outline_df: pd.DataFrame,
     redis_data: pd.DataFrame
-) -> tuple[pd.DataFrame, Dict[str, set]]:
+) -> tuple[pd.DataFrame, pd.DataFrame]:
     """
     去除两个DataFrame中相同chapter_label行的miss_outline列与missing_items列的公共元素
 
@@ -389,7 +389,7 @@ def remove_common_elements_between_dataframes(
         redis_data: 包含missing_items列的DataFrame
 
     Returns:
-        tuple: (更新后的miss_outline_df, 公共元素字典)
+        tuple: (更新后的miss_outline_df, 更新后的redis_data)
     """
     # 合并两个DataFrame,基于chapter_label
     merged_df = pd.merge(miss_outline_df, redis_data, on='chapter_label', how='inner', suffixes=('_outline', '_redis'))
@@ -421,16 +421,22 @@ def remove_common_elements_between_dataframes(
         
         logger.info(f"[目录审查] 章节: {chapter_label}, 公共元素: {common_elements}")
     
-    # 更新 miss_outline_df,使用apply函数去除公共元素
+    # 同时更新两个DataFrame,去除公共元素
     miss_outline_df['miss_outline'] = miss_outline_df.apply(
         lambda row: list(set(row['miss_outline']) - common_elements_dict.get(row['chapter_label'], set()))
         if isinstance(row['miss_outline'], list) else [],
         axis=1
     )
     
-    logger.info(f"[目录审查] 已去除公共元素,更新后的miss_outline_df: {miss_outline_df.to_dict('records')}")
+    redis_data['missing_items'] = redis_data.apply(
+        lambda row: list(set(row['missing_items']) - common_elements_dict.get(row['chapter_label'], set()))
+        if isinstance(row['missing_items'], list) else [],
+        axis=1
+    )
+    
+    logger.info(f"[目录审查] 已去除公共元素,同时更新了miss_outline_df和redis_data")
     
-    return miss_outline_df, common_elements_dict
+    return miss_outline_df, redis_data
 
 
 async def catalogues_check(catalog_file = None):

+ 0 - 21
core/construction_review/component/reviewers/catalogues_check/utils/redis_utils.py

@@ -340,27 +340,6 @@ class CataloguesRedisManager:
         
         return pd.DataFrame(catalogues_data_list)
 
-    def update_redis_data_with_common_elements_removed(self, redis_data: pd.DataFrame, common_elements_dict: Dict[str, set]) -> pd.DataFrame:
-        """
-        从 redis_data 的 missing_items 列中去除公共元素
-
-        Args:
-            redis_data: 要更新的 DataFrame
-            common_elements_dict: 包含每个章节公共元素的字典
-
-        Returns:
-            pd.DataFrame: 更新后的 DataFrame
-        """
-        # 更新 redis_data,使用apply函数去除公共元素
-        redis_data['missing_items'] = redis_data.apply(
-            lambda row: list(set(row['missing_items']) - common_elements_dict.get(row['chapter_label'], set()))
-            if isinstance(row['missing_items'], list) else [],
-            axis=1
-        )
-        logger.info(f"[Redis] 已去除公共元素,更新后的redis_data: {redis_data.to_dict('records')}")
-        return redis_data
-
-
 # 全局单例实例
 _redis_manager = None