在账号获取的接口加入了账号最大变化量
This commit is contained in:
@@ -9,6 +9,7 @@ from .core.database import init_db
|
||||
from .api.account import router as account_router
|
||||
from .api.database import router as database_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 .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(task_router, prefix="/api")
|
||||
app.include_router(comprehensive_data_router, prefix="/api")
|
||||
app.include_router(test_router, prefix="/api")
|
||||
|
||||
# 根路径
|
||||
@app.get("/")
|
||||
|
||||
@@ -14,6 +14,7 @@ class Account(Base):
|
||||
created_at = Column(DateTime, server_default=func.now(), comment="创建时间")
|
||||
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间")
|
||||
update_time = Column(String(1000), nullable=False, comment="更新时间跨度")
|
||||
max_variation = Column(Integer, default=1, comment="变化量的绝对值,单位是毫米")
|
||||
|
||||
|
||||
# 模型转字典
|
||||
|
||||
@@ -5,8 +5,11 @@ class DailyData(Base):
|
||||
__tablename__ = "daily"
|
||||
|
||||
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")
|
||||
point_id = Column(String(100), comment="测点id")
|
||||
NYID = Column(String(100), nullable=False, comment="期数id")
|
||||
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")
|
||||
|
||||
@@ -9,6 +9,7 @@ class AccountBase(BaseModel):
|
||||
today_updated: Optional[int] = 0
|
||||
project_name: Optional[str] = None
|
||||
update_time: Optional[str] = None
|
||||
max_variation: Optional[int] = None
|
||||
|
||||
class AccountCreate(AccountBase):
|
||||
pass
|
||||
@@ -42,7 +43,8 @@ class AccountResponse(AccountBase):
|
||||
project_name=account.project_name,
|
||||
created_at=account.created_at,
|
||||
updated_at=account.updated_at,
|
||||
update_time=account.update_time
|
||||
update_time=account.update_time,
|
||||
max_variation=account.max_variation,
|
||||
)
|
||||
|
||||
class AccountListRequest(BaseModel):
|
||||
|
||||
@@ -149,4 +149,46 @@ class DailyDataService(BaseService[DailyData]):
|
||||
# 构建[[{}], [{}]]格式
|
||||
return [
|
||||
[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
|
||||
@@ -425,8 +425,6 @@ class SettlementDataService(BaseService[SettlementData]):
|
||||
work_type = 3
|
||||
elif "H" in aname :
|
||||
work_type = 4
|
||||
|
||||
|
||||
# 组装返回字典(新增aname字段)
|
||||
record_dict = {
|
||||
"id": settlement.id,
|
||||
|
||||
@@ -280,7 +280,8 @@ def scheduled_get_max_nyid_by_point_id():
|
||||
'point_id': d['point_id'],
|
||||
'linecode': d['level_data']['linecode'],
|
||||
'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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user