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