From c72c71ff13981bcf9aa477e933633cf90ec1cb71 Mon Sep 17 00:00:00 2001 From: risingLee <871066422@qq.com> Date: Mon, 5 Jan 2026 15:22:58 +0800 Subject: [PATCH] Use model_dump(exclude_unset=True, by_alias=True) to get camelCase keys when constructing EditWarehouseSampleModel Check for 'sampleId' (camelCase) instead of 'sample_id' For new samples, use a separate model_dump() without by_alias=True to get snake_case keys for the DO object --- .../module_admin/service/warehouse_receipt_service.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py b/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py index f784baf..b41225b 100644 --- a/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py @@ -170,11 +170,11 @@ class WarehouseReceiptService: # 处理前端传来的样品 submitted_sample_ids = set() for sample_data in receipt_model.samples: - sample_dict = sample_data.model_dump(exclude_unset=True) + sample_dict = sample_data.model_dump(exclude_unset=True, by_alias=True) # 如果有sample_id,说明是更新现有样品 - if 'sample_id' in sample_dict and sample_dict['sample_id']: - sample_id = sample_dict['sample_id'] + if 'sampleId' in sample_dict and sample_dict['sampleId']: + sample_id = sample_dict['sampleId'] submitted_sample_ids.add(sample_id) # 更新样品 from module_admin.entity.vo.warehouse_sample_vo import EditWarehouseSampleModel @@ -183,8 +183,9 @@ class WarehouseReceiptService: edit_sample.update_by = receipt_model.update_by await WarehouseSampleDao.edit_sample(db, edit_sample) else: - # 新增样品 - sample = WarehouseSample(**sample_dict) + # 新增样品 - 转换为snake_case用于创建DO对象 + sample_dict_snake = sample_data.model_dump(exclude_unset=True) + sample = WarehouseSample(**sample_dict_snake) sample.receipt_id = receipt_model.receipt_id sample.receipt_no = receipt_model.receipt_no or receipt.receipt_no sample.create_by = receipt_model.update_by