修复:测试记录序号、测评报告统计、富文本渲染word字符问题

This commit is contained in:
2026-02-09 15:41:17 +08:00
parent 2f58bdc668
commit 74d3d22ffe
85 changed files with 1236 additions and 52 deletions

View File

@@ -1,6 +1,6 @@
from pathlib import Path
from copy import deepcopy
from typing import Union, TypedDict, Optional
from typing import Union
from ninja_extra import api_controller, ControllerBase, route
from django.db import transaction
from django.shortcuts import get_object_or_404
@@ -20,6 +20,7 @@ from apps.createDocument.extensions.util import delete_dir_files
from apps.createDocument.extensions.parse_rich_text import RichParser
from apps.createDocument.extensions.documentTime import DocTime
from utils.util import get_str_abbr
from apps.createDocument.extensions.content_result_tool import create_influence_context
# 导入生成日志记录模块
from apps.createSeiTaiDocument.extensions.logger import GenerateLogger
# 导入排序
@@ -236,35 +237,9 @@ class GenerateControllerHSM(ControllerBase):
message=f'您第{chinese_round_name[int(hround.key)]}轮次中缺少源代码版本信息,请添加')
last_dm_version = last_round_so_dut.version
now_dm_version = so_dut.version
# 这里插入影响域分析部分
## 先查找是否有影响域分析填写
area_qs = InfluenceArea.objects.filter(round=hround)
## 如果存在则查询items
item_render_list = []
if area_qs.exists():
area_obj = area_qs.first()
items_qs = area_obj.influence_items.all()
if items_qs.exists():
index = 1
for item in items_qs:
# 1.处理关联case - 找第一轮cases
case_str_list = []
for case in project_obj.pcField.filter(key__in=item.effect_cases):
case_ident_index = str(int(case.key.split("-")[-1]) + 1).zfill(3)
case_str_list.append("_".join(["YL", get_str_abbr(case.test.testType, "testType"), case.ident, case_ident_index]))
# 2.处理富文本框
parser = RichParser(item.change_des)
item_dict = {
"change_type": item.change_type,
"change_influ": item.change_influ,
"case_str_list": case_str_list,
"change_des": parser.get_final_list(doc, img_size=40, height=30), # 富文本未处理
"index": str(index),
}
index = index + 1
item_render_list.append(item_dict)
# 将影响域分析加入context
context_round['influence'] = item_render_list # noqa
# 这里插入影响域分析部分并加入context
context_round['influence'] = create_influence_context(doc, hround, project_obj) # noqa
context_round['influence'] = None
# 如果存在这个轮次的需求文档,则查询上个版本
last_xq_version = ""
if xq_dut: