|
@@ -16,6 +16,8 @@ async def get_emergency_plan_list(
|
|
|
plan_type: str = Query(None, description='预案类型'),
|
|
|
publish_date: datetime = Query(None, description='发布日期'),
|
|
|
plan_name: str = Query(None, description='预案名称'),
|
|
|
+ page: int = Query(1, gt=0, description='页码'),
|
|
|
+ page_size: int = Query(10, gt=0, description='每页条目数量'),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
@@ -30,29 +32,43 @@ async def get_emergency_plan_list(
|
|
|
if plan_name:
|
|
|
query = query.filter(EmergencyPlan.plan_name.like(f'%{plan_name}%'))
|
|
|
|
|
|
- # 执行查询
|
|
|
- emergency_plans = query.all()
|
|
|
-
|
|
|
- # 将查询结果转换为列表形式的字典
|
|
|
- emergency_plans_list = [
|
|
|
- {
|
|
|
- "plan_id": plan.plan_id,
|
|
|
- "plan_number": plan.plan_number,
|
|
|
- "plan_name": plan.plan_name,
|
|
|
- "plan_type_desc": plan.plan_type_desc,
|
|
|
- "organizing_unit": plan.organizing_unit,
|
|
|
- "document_number": plan.document_number,
|
|
|
- "publish_date": plan.publish_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ # 计算总条目数
|
|
|
+ total_items = query.count()
|
|
|
+
|
|
|
+ # 执行分页查询
|
|
|
+ emergency_plans = query.offset((page - 1) * page_size).limit(page_size).all()
|
|
|
+
|
|
|
+ # 将查询结果转换为列表形式的字典
|
|
|
+ emergency_plans_list = [
|
|
|
+ {
|
|
|
+ "plan_id": plan.plan_id,
|
|
|
+ "plan_number": plan.plan_number,
|
|
|
+ "plan_name": plan.plan_name,
|
|
|
+ "plan_type_desc": plan.plan_type_desc,
|
|
|
+ "organizing_unit": plan.organizing_unit,
|
|
|
+ "document_number": plan.document_number,
|
|
|
+ "publish_date": plan.publish_date.strftime('%Y-%m-%d %H:%M:%S')
|
|
|
+ }
|
|
|
+ for plan in emergency_plans
|
|
|
+ ]
|
|
|
+
|
|
|
+ # 构建分页信息
|
|
|
+ pagination_info = {
|
|
|
+ "total": total_items,
|
|
|
+ "page": page,
|
|
|
+ "page_size": page_size,
|
|
|
+ "total_pages": (total_items + page_size - 1) // page_size
|
|
|
}
|
|
|
- for plan in emergency_plans
|
|
|
- ]
|
|
|
|
|
|
- # 返回结果
|
|
|
- return {
|
|
|
- "code": 200,
|
|
|
- "msg": "成功获取预案列表",
|
|
|
- "data": emergency_plans_list
|
|
|
- }
|
|
|
+ # 返回结果
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "成功获取预案列表",
|
|
|
+ "data": {
|
|
|
+ "list": emergency_plans_list
|
|
|
+ },
|
|
|
+ "pagination": pagination_info
|
|
|
+ }
|
|
|
except Exception as e:
|
|
|
# 处理异常
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
@@ -170,4 +186,5 @@ async def delete_emergency_plan(
|
|
|
# 处理异常
|
|
|
if str(e) == '':
|
|
|
e = detail
|
|
|
- raise HTTPException(status_code=500, detail=str(e))
|
|
|
+ raise HTTPException(status_code=500, detail=str(e))
|
|
|
+
|