数据接口完善

This commit is contained in:
lhx
2025-09-28 17:30:40 +08:00
parent af25665997
commit 2e735e587b
6 changed files with 79 additions and 35 deletions

View File

@@ -1,13 +1,12 @@
from sqlalchemy.orm import Session
from typing import List, Optional, Dict, Any
from ..models.checkpoint import Checkpoint
from ..models.section_data import SectionData
from .base import BaseService
from .section_data import SectionDataService
class CheckpointService(BaseService[Checkpoint]):
def __init__(self):
super().__init__(Checkpoint)
self.section_service = SectionDataService()
def get_by_section_id(self, db: Session, section_id: str) -> List[Checkpoint]:
"""根据断面ID获取观测点"""
@@ -33,6 +32,11 @@ class CheckpointService(BaseService[Checkpoint]):
return self.search_by_conditions(db, conditions)
def _check_section_exists(self, db: Session, section_id: str) -> bool:
"""检查断面是否存在"""
section = db.query(SectionData).filter(SectionData.section_id == section_id).first()
return section is not None
def batch_import_checkpoints(self, db: Session, data: List) -> Dict[str, Any]:
"""
批量导入观测点数据根据观测点ID判断是否重复重复数据改为更新操作
@@ -56,10 +60,8 @@ class CheckpointService(BaseService[Checkpoint]):
for item_data in data:
try:
# 判断断面id是否存在
section = self.section_service.get_by_section_id(db, item_data.get('section_id'))
if not section:
if not self._check_section_exists(db, item_data.get('section_id')):
logger.error(f"Section {item_data.get('section_id')} not found")
raise Exception(f"Section {item_data.get('section_id')} not found")