完成3月试用问题修改

This commit is contained in:
2026-04-24 16:45:18 +08:00
parent 66e48d3165
commit 56aed87497
111 changed files with 793 additions and 464 deletions

View File

@@ -460,7 +460,12 @@ class ProjectController(ControllerBase):
item_qs = self.get_model_from_category(category).objects.filter(project=project_obj)
if item_qs.exists():
item_obj = item_qs.first()
return ChenResponse(status=200, code=25001, data={"table": item_obj.table, "fontnote": item_obj.fontnote})
if item_obj:
return ChenResponse(status=200, code=25001, data={
"table": item_obj.table,
"fontnote": item_obj.fontnote,
"rounds": item_obj.rounds_map or []
})
return ChenResponse(status=200, code=25002, data=None)
# ~~~静态软件项、静态硬件项、动态软件项、动态硬件项、测评数据 - 新增或修改~~~
@@ -470,10 +475,21 @@ class ProjectController(ControllerBase):
project_obj = self.get_project_by_id(data.id)
model = self.get_model_from_category(data.category)
item_qs = model.objects.filter(project=project_obj)
# 处理rounds_map
rounds = data.rounds
if rounds is None:
rounds = [["0"]] * len(data.table)
if item_qs.exists():
# 如果存在则修改
item_qs.delete()
model.objects.create(project=project_obj, table=data.table, fontnote=data.fontnote)
model.objects.create(
project=project_obj,
table=data.table,
fontnote=data.fontnote,
rounds_map=rounds,
)
return ChenResponse(status=200, code=20000, message="保存成功")
# ~~~环境差异性分析 - 获取~~~
@route.get("/get_env_analysis/")

View File

@@ -0,0 +1,43 @@
# Generated by Django 6.0.4 on 2026-04-23 18:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('project', '0035_design_is_bidirectional'),
]
operations = [
migrations.AddField(
model_name='dynamichardwaretable',
name='rounds_map',
field=models.JSONField(blank=True, default=list, help_text='二维数组,每个内层数组是该行选中的轮次索引(字符串)', verbose_name='轮次数据'),
),
migrations.AddField(
model_name='dynamicsofttable',
name='rounds_map',
field=models.JSONField(blank=True, default=list, help_text='二维数组,每个内层数组是该行选中的轮次索引(字符串)', verbose_name='轮次数据'),
),
migrations.AddField(
model_name='evaluatedata',
name='rounds_map',
field=models.JSONField(blank=True, default=list, help_text='二维数组,每个内层数组是该行选中的轮次索引(字符串)', verbose_name='轮次数据'),
),
migrations.AddField(
model_name='staticsofthardware',
name='rounds_map',
field=models.JSONField(blank=True, default=list, help_text='二维数组,每个内层数组是该行选中的轮次索引(字符串)', verbose_name='轮次数据'),
),
migrations.AlterField(
model_name='project',
name='beginTime',
field=models.DateField(blank=True, help_text='开始时间', null=True, verbose_name='开始时间'),
),
migrations.AlterField(
model_name='project',
name='endTime',
field=models.DateField(blank=True, help_text='结束时间', null=True, verbose_name='结束时间'),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 6.0.4 on 2026-04-23 18:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('project', '0036_dynamichardwaretable_rounds_map_and_more'),
]
operations = [
migrations.AddField(
model_name='staticsoftitem',
name='rounds_map',
field=models.JSONField(blank=True, default=list, help_text='二维数组,每个内层数组是该行选中的轮次索引(字符串)', verbose_name='轮次数据'),
),
]

View File

@@ -499,6 +499,12 @@ class StaticSoftItem(models.Model):
verbose_name="关联项目", help_text="关联项目")
table = models.JSONField(verbose_name="储存表格二维数组", help_text="储存表格二维数组", default=default_json_value)
fontnote = models.CharField(max_length=256, null=True, default="", verbose_name="题注", help_text="数据的题注说明")
rounds_map = models.JSONField(
verbose_name="轮次数据",
help_text="二维数组,每个内层数组是该行选中的轮次索引(字符串)",
default=list,
blank=True,
)
class Meta:
db_table = 'project_static_soft_item'
@@ -511,6 +517,12 @@ class StaticSoftHardware(models.Model):
verbose_name="关联项目", help_text="关联项目")
table = models.JSONField(verbose_name="储存表格二维数组", help_text="储存表格二维数组", default=default_json_value)
fontnote = models.CharField(max_length=256, null=True, default="", verbose_name="题注", help_text="数据的题注说明")
rounds_map = models.JSONField(
verbose_name="轮次数据",
help_text="二维数组,每个内层数组是该行选中的轮次索引(字符串)",
default=list,
blank=True,
)
class Meta:
db_table = 'project_static_hardware'
@@ -523,6 +535,12 @@ class DynamicSoftTable(models.Model):
verbose_name="关联项目", help_text="关联项目")
table = models.JSONField(verbose_name="储存表格二维数组", help_text="储存表格二维数组", default=default_json_value)
fontnote = models.CharField(max_length=256, null=True, default="", verbose_name="题注", help_text="数据的题注说明")
rounds_map = models.JSONField(
verbose_name="轮次数据",
help_text="二维数组,每个内层数组是该行选中的轮次索引(字符串)",
default=list,
blank=True,
)
class Meta:
db_table = 'project_dynamic_soft_item'
@@ -535,6 +553,12 @@ class DynamicHardwareTable(models.Model):
verbose_name="关联项目", help_text="关联项目")
table = models.JSONField(verbose_name="储存表格二维数组", help_text="储存表格二维数组", default=default_json_value)
fontnote = models.CharField(max_length=256, null=True, default="", verbose_name="题注", help_text="数据的题注说明")
rounds_map = models.JSONField(
verbose_name="轮次数据",
help_text="二维数组,每个内层数组是该行选中的轮次索引(字符串)",
default=list,
blank=True,
)
class Meta:
db_table = 'project_dynamic_hardware'
@@ -547,6 +571,12 @@ class EvaluateData(models.Model):
verbose_name="关联项目", help_text="关联项目")
table = models.JSONField(verbose_name="储存表格二维数组", help_text="储存表格二维数组", default=default_json_value)
fontnote = models.CharField(max_length=256, null=True, default="", verbose_name="题注", help_text="数据的题注说明")
rounds_map = models.JSONField(
verbose_name="轮次数据",
help_text="二维数组,每个内层数组是该行选中的轮次索引(字符串)",
default=list,
blank=True,
)
class Meta:
db_table = 'project_evaluate_data'

View File

@@ -62,6 +62,7 @@ class StaticDynamicData(Schema):
category: str
table: list[list[str]]
fontnote: Optional[str] = ""
rounds: Optional[List[List[str]]] = None # 允许不传递
# ~~~环境差异性分析~~~
class EnvAnalysisSchema(Schema):