在账号获取的接口加入了账号最大变化量
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.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("/")
|
||||||
|
|||||||
@@ -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="变化量的绝对值,单位是毫米")
|
||||||
|
|
||||||
|
|
||||||
# 模型转字典
|
# 模型转字典
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user