导入沉降数据逻辑修改

This commit is contained in:
lhx
2025-10-24 15:31:38 +08:00
parent 34b698386a
commit 0ff15a25ac

View File

@@ -209,8 +209,9 @@ class SettlementDataService(BaseService[SettlementData]):
def batch_import_settlement_data(self, db: Session, data: List) -> Dict[str, Any]:
"""
批量导入沉降数据,根据观测点ID和期数ID判断是否重复重复数据改为更新操作
判断观测点数据是否存在,不存在则全部不导入
批量导入沉降数据,
1.根据观测点ID和期数ID判断是否重复修复记录跳过插入操作
2.判断观测点数据是否存在,不存在则记录,跳过插入操作
支持事务回滚,失败时重试一次
"""
import logging
@@ -236,7 +237,13 @@ class SettlementDataService(BaseService[SettlementData]):
logger.info(f"Checkpoint {item_data.get('point_id')}: {checkpoint}")
if not checkpoint:
logger.error(f"Checkpoint {item_data.get('point_id')} not found")
raise Exception(f"Checkpoint {item_data.get('point_id')} not found")
logger.error(f"Checkpoint {item_data} not found")
failed_count += 1
failed_items.append({
'data': item_data,
'error': '测点id不存在跳过插入操作'
})
continue
settlement = self.get_by_point_and_nyid(
db,
@@ -271,7 +278,7 @@ class SettlementDataService(BaseService[SettlementData]):
# settlement.useflag = item_data.get('useflag')
# settlement.workinfoname = item_data.get('workinfoname')
# settlement.upd_remark = item_data.get('upd_remark')
else:
# 新增操作
settlement = SettlementData(