在账号获取的接口加入了账号最大变化量

This commit is contained in:
whm
2025-10-30 17:24:05 +08:00
parent a66f5db3f2
commit f45c743e3c
7 changed files with 55 additions and 6 deletions

View File

@@ -9,6 +9,7 @@ from .core.database import init_db
from .api.account import router as account_router from .api.account import router as account_router
from .api.database import router as database_router from .api.database import router as database_router
from .api.task import router as task_router from .api.task import router as task_router
from .api.test import router as test_router
from .api.comprehensive_data import router as comprehensive_data_router from .api.comprehensive_data import router as comprehensive_data_router
from .utils.scheduler import task_scheduler from .utils.scheduler import task_scheduler
@@ -68,6 +69,7 @@ app.include_router(account_router, prefix="/api")
app.include_router(database_router, prefix="/api") app.include_router(database_router, prefix="/api")
app.include_router(task_router, prefix="/api") app.include_router(task_router, prefix="/api")
app.include_router(comprehensive_data_router, prefix="/api") app.include_router(comprehensive_data_router, prefix="/api")
app.include_router(test_router, prefix="/api")
# 根路径 # 根路径
@app.get("/") @app.get("/")

View File

@@ -14,6 +14,7 @@ class Account(Base):
created_at = Column(DateTime, server_default=func.now(), comment="创建时间") created_at = Column(DateTime, server_default=func.now(), comment="创建时间")
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间") updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间")
update_time = Column(String(1000), nullable=False, comment="更新时间跨度") update_time = Column(String(1000), nullable=False, comment="更新时间跨度")
max_variation = Column(Integer, default=1, comment="变化量的绝对值,单位是毫米")
# 模型转字典 # 模型转字典

View File

@@ -5,8 +5,11 @@ class DailyData(Base):
__tablename__ = "daily" __tablename__ = "daily"
id = Column(Integer, primary_key=True, index=True, autoincrement=True) id = Column(Integer, primary_key=True, index=True, autoincrement=True)
user_id = Column(Integer, nullable=False, comment="用户id")
account_id = Column(Integer, nullable=False, comment="账户id") account_id = Column(Integer, nullable=False, comment="账户id")
point_id = Column(String(100), comment="测点id") point_id = Column(String(100), comment="测点id")
NYID = Column(String(100), nullable=False, comment="期数id") NYID = Column(String(100), nullable=False, comment="期数id")
linecode = Column(String(255), nullable=False, comment="水准线路编码") linecode = Column(String(255), nullable=False, comment="水准线路编码")
section_id = Column(String(255), nullable=False, comment="所属断面id") section_id = Column(String(255), nullable=False, comment="所属断面id")
remaining = Column(Integer, nullable=False, comment="剩余天数")
user_id = Column(Integer, default=1, nullable=False, comment="用户id")

View File

@@ -9,6 +9,7 @@ class AccountBase(BaseModel):
today_updated: Optional[int] = 0 today_updated: Optional[int] = 0
project_name: Optional[str] = None project_name: Optional[str] = None
update_time: Optional[str] = None update_time: Optional[str] = None
max_variation: Optional[int] = None
class AccountCreate(AccountBase): class AccountCreate(AccountBase):
pass pass
@@ -42,7 +43,8 @@ class AccountResponse(AccountBase):
project_name=account.project_name, project_name=account.project_name,
created_at=account.created_at, created_at=account.created_at,
updated_at=account.updated_at, updated_at=account.updated_at,
update_time=account.update_time update_time=account.update_time,
max_variation=account.max_variation,
) )
class AccountListRequest(BaseModel): class AccountListRequest(BaseModel):

View File

@@ -149,4 +149,46 @@ class DailyDataService(BaseService[DailyData]):
# 构建[[{}], [{}]]格式 # 构建[[{}], [{}]]格式
return [ return [
[record] for pid in point_ids for record in grouped.get(pid, []) [record] for pid in point_ids for record in grouped.get(pid, [])
] ]
# 获取所有的今日数据
def get_all_daily_data(
self,
db: Session,
user_id: Optional[int] = None # 可选参数按user_id筛选
) -> List[Dict[str, Any]]:
"""
获取所有日常数据DailyData支持按user_id筛选
:param db: 数据库会话
:param user_id: 可选用户ID若提供则只返回该用户的数据
:return: 日常数据字典列表,包含所有字段
"""
try:
# 基础查询
query = db.query(DailyData)
# 若提供了user_id则添加筛选条件
if user_id is not None:
query = query.filter(DailyData.user_id == user_id)
logger.info(f"查询user_id={user_id}的所有日常数据")
else:
logger.info("查询所有日常数据")
# 执行查询并获取所有记录
daily_records = query.all()
# 转换为字典列表(保留所有字段)
result = []
for record in daily_records:
record_dict = {
column.name: getattr(record, column.name)
for column in DailyData.__table__.columns
}
result.append(record_dict)
logger.info(f"查询完成,共获取{len(result)}条日常数据")
return result
except Exception as e:
logger.error(f"获取日常数据失败:{str(e)}", exc_info=True)
raise e

View File

@@ -425,8 +425,6 @@ class SettlementDataService(BaseService[SettlementData]):
work_type = 3 work_type = 3
elif "H" in aname : elif "H" in aname :
work_type = 4 work_type = 4
# 组装返回字典新增aname字段 # 组装返回字典新增aname字段
record_dict = { record_dict = {
"id": settlement.id, "id": settlement.id,

View File

@@ -280,7 +280,8 @@ def scheduled_get_max_nyid_by_point_id():
'point_id': d['point_id'], 'point_id': d['point_id'],
'linecode': d['level_data']['linecode'], 'linecode': d['level_data']['linecode'],
'account_id': d['account_data']['account_id'], 'account_id': d['account_data']['account_id'],
'section_id': d['section_data']['id'] 'section_id': d['section_data']['id'],
'remaining': d['remaining'],
} }
daily_create_data.append(tem) daily_create_data.append(tem)