|
@@ -11,6 +11,8 @@ from datetime import datetime, timedelta
|
|
from fastapi import APIRouter, Depends, HTTPException, Response, Query
|
|
from fastapi import APIRouter, Depends, HTTPException, Response, Query
|
|
from database import get_db
|
|
from database import get_db
|
|
from pydantic import BaseModel
|
|
from pydantic import BaseModel
|
|
|
|
+from utils import *
|
|
|
|
+from common.db import db_event_management
|
|
|
|
|
|
router = APIRouter()
|
|
router = APIRouter()
|
|
|
|
|
|
@@ -231,4 +233,49 @@ async def select_unit(
|
|
raise e
|
|
raise e
|
|
except Exception as e:
|
|
except Exception as e:
|
|
db.rollback()
|
|
db.rollback()
|
|
- raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")
|
|
|
|
|
|
+ raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#
|
|
|
|
+# 小屏专用,不敢搞大屏相关代码
|
|
|
|
+#
|
|
|
|
+@router.get('/list')
|
|
|
|
+async def select_tasks(
|
|
|
|
+ request: Request,
|
|
|
|
+ task_type: str = Query(None),
|
|
|
|
+ processing_status: str = Query(None),
|
|
|
|
+ task_description: str = Query(None),
|
|
|
|
+ page: int = Query(1, gt=0, description="页码"),
|
|
|
|
+ page_size: int = Query(10, gt=0, le=100, description="每页大小"),
|
|
|
|
+ db: Session = Depends(get_db)):
|
|
|
|
+ try:
|
|
|
|
+ data_query = db.query(TaskRegistration).filter(TaskRegistration.del_flag != '2').filter(TaskRegistration.event_code is not None)
|
|
|
|
+ # 应用过滤条件
|
|
|
|
+ if task_type is not None:
|
|
|
|
+ data_query = data_query.filter(TaskRegistration.task_type == task_type)
|
|
|
|
+ if task_description is not None:
|
|
|
|
+ data_query = data_query.filter(TaskRegistration.task_description == task_description)
|
|
|
|
+ if processing_status is not None:
|
|
|
|
+ data_query = data_query.filter(TaskRegistration.processing_status == processing_status)
|
|
|
|
+
|
|
|
|
+ total_count = data_query.count()
|
|
|
|
+ offset = (page - 1) * page_size
|
|
|
|
+ data_query = data_query.order_by(TaskRegistration.creation_time.desc()).offset(offset).limit(page_size)
|
|
|
|
+
|
|
|
|
+ data = []
|
|
|
|
+ tasks = data_query.all()
|
|
|
|
+ for n in tasks:
|
|
|
|
+ task = get_model_dict(n)
|
|
|
|
+ task['creation_time'] = get_datetime_str(task['creation_time'])
|
|
|
|
+ task['event_name'] = db_event_management.get_event_title(db, n.event_code)
|
|
|
|
+ data.append(task)
|
|
|
|
+ return {
|
|
|
|
+ "code": 200,
|
|
|
|
+ "msg": "任务查询成功",
|
|
|
|
+ "data": data,
|
|
|
|
+ "total": total_count
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ traceback.print_exc()
|
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|