From 150af1a741375daf966bfa95da0f0df5152290b9 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sat, 31 Jan 2026 18:57:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(annotation):=20=E4=BF=AE=E5=A4=8D=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=98=A0=E5=B0=84=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除旧的映射服务查询方式,改为直接查询 ORM 模型获取原始数据 - 更新配置字段读取逻辑以使用新的 ORM 对象 - 修复更新无变化时的响应数据返回问题 - 添加软删除过滤条件确保只返回未删除的项目记录 - 统一数据访问方式提高查询效率和代码一致性 --- .../module/annotation/interface/project.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/runtime/datamate-python/app/module/annotation/interface/project.py b/runtime/datamate-python/app/module/annotation/interface/project.py index 95eaa1f..4ad3779 100644 --- a/runtime/datamate-python/app/module/annotation/interface/project.py +++ b/runtime/datamate-python/app/module/annotation/interface/project.py @@ -406,10 +406,16 @@ async def update_mapping( service = DatasetMappingService(db) - # 使用 mapping UUID 查询映射记录 - mapping = await service.get_mapping_by_uuid(project_id) + # 直接查询 ORM 模型获取原始数据 + result = await db.execute( + select(LabelingProject).where( + LabelingProject.id == project_id, + LabelingProject.deleted_at.is_(None) + ) + ) + mapping_orm = result.scalar_one_or_none() - if not mapping: + if not mapping_orm: raise HTTPException( status_code=404, detail=f"Mapping not found: {project_id}" @@ -422,8 +428,8 @@ async def update_mapping( # 从 configuration 字段中读取和更新 description 和 label_config configuration = {} - if mapping.configuration: - configuration = mapping.configuration.copy() if isinstance(mapping.configuration, dict) else {} + if mapping_orm.configuration: + configuration = mapping_orm.configuration.copy() if isinstance(mapping_orm.configuration, dict) else {} if request.description is not None: configuration["description"] = request.description @@ -438,10 +444,11 @@ async def update_mapping( if not update_values: # 没有要更新的字段,直接返回当前数据 + response_data = await service.get_mapping_by_uuid(project_id) return StandardResponse( code=200, message="success", - data=mapping + data=response_data ) # 执行更新