ソースを参照

fix(时效性审查):修改时效性审查的返回字段以适配前端

Meric 2 日 前
コミット
07ee00df82

+ 13 - 8
core/construction_review/component/reviewers/standard_timeliness_reviewer.py

@@ -265,7 +265,7 @@ class StandardTimelinessReviewer:
                 status_code=status_code,
                 has_issue=True,
                 issue_type="标准已废止",
-                suggestion="该标准已废止且无现行替代,请检查是否仍需引用或寻找其他替代方案",
+                suggestion=f"在数据库中查询到相关标准:{match_result.matched_name}{(match_result.matched_number)},该标准已废止且在库中无现行替代,请检查是否仍需引用或前往官网获取最新或者其他方案",
                 reason=match_result.final_result,
                 risk_level="high",
                 final_result=match_result.final_result
@@ -590,6 +590,15 @@ class StandardTimelinessReviewer:
 
         return text
 
+    def _to_cn_risk_level(self, risk_level: str) -> str:
+        """将英文风险等级转换为中文显示文案"""
+        risk_level_map = {
+            "high": "高风险",
+            "medium": "中风险",
+            "low": "低风险",
+        }
+        return risk_level_map.get((risk_level or "").lower(), "中风险")
+
     def convert_to_standardized_format(
         self,
         review_results: List[TimelinessReviewResult],
@@ -633,15 +642,11 @@ class StandardTimelinessReviewer:
                 "chapter_code": chapter_code,
                 "check_item_code": check_item_code,
                 "check_result": {
+                    "issue_point": result.issue_type,
                     "location": f"《{result.standard_name}》({result.standard_number})",
-                    "description": result.reason or result.final_result,
                     "suggestion": result.suggestion,
-                    "issue_type": result.issue_type,
-                    "standard_name": result.standard_name,
-                    "standard_number": result.standard_number,
-                    "replacement_name": result.replacement_name,
-                    "replacement_number": result.replacement_number,
-                    "mismatch_analysis": result.mismatch_analysis,
+                    "reason": result.reason or result.final_result,
+                    "risk_level": self._to_cn_risk_level(result.risk_level),
                 },
                 "exist_issue": True,
                 "risk_info": {"risk_level": result.risk_level}

+ 2 - 4
core/construction_review/component/reviewers/timeliness_content_reviewer.py

@@ -300,10 +300,8 @@ class ContentTimelinessReviewer:
 
                 # 增强结果:添加位置信息
                 for item in standardized_results:
-                    # 构建原始引用文本(《名称》(编号))
-                    std_name = item.get("check_result", {}).get("standard_name", "")
-                    std_number = item.get("check_result", {}).get("standard_number", "")
-                    review_item_text = f"《{std_name}》({std_number})"
+                    # 标准化输出中的 location 初始值即原始引用文本(《名称》(编号))
+                    review_item_text = item.get("check_result", {}).get("location", "")
 
                     if review_item_text in reference_to_location:
                         locations = reference_to_location[review_item_text]

+ 7 - 4
core/construction_review/component/standard_matching/standard_service.py

@@ -498,6 +498,8 @@ class StandardMatcher:
     ) -> StandardMatchResult:
         """处理已废止标准的情况"""
         # 查询同名现行标准作为替代(使用规范化名称)
+        result.matched_name = abolished_record.standard_name
+        result.matched_number = abolished_record.standard_number
         substitutes = self.repo.find_current_by_normalized_name(abolished_record.normalized_name)
 
         if substitutes:
@@ -567,8 +569,9 @@ class StandardMatcher:
         result.process_result = "废止无现行"
         result.status_code = MatchResultCode.ABOLISHED.value
         result.final_result = (
-            f"{self._format_standard_name(result.raw_name)}"
-            f"{self._format_standard_number(result.raw_number)}已废止,无现行状态"
+            f"数据库中查询到的标准:"
+            f"{self._format_standard_name(result.matched_name)}"
+            f"{self._format_standard_number(result.matched_number)}已废止,无现行状态"
         )
         return result
 
@@ -583,8 +586,8 @@ class StandardMatcher:
         result.process_result = "不匹配"
         result.status_code = MatchResultCode.MISMATCH.value
         result.final_result = (
-            f"{self._format_standard_name(result.raw_name)}"
-            f"{self._format_standard_number(result.raw_number)}"
+            f"{self._format_standard_name(result.matched_name)}"
+            f"{self._format_standard_number(result.matched_number)}"
             f"与实际{self._format_standard_name(actual.standard_name)}"
             f"{self._format_standard_number(actual.standard_number)}不匹配"
         )