libushang 8 miesięcy temu
rodzic
commit
72ac6c3e45

+ 8 - 0
common/db/db_event_management.py

@@ -87,3 +87,11 @@ def get_summary_file_list(db: Session, event_id: int):
 
 def get_emergency_notify_count(db: Session, event_id: str):
     return db.query(EventEmergencyNotify).filter(EventEmergencyNotify.event_id == event_id).count()
+
+
+def get_event_title(db: Session, event_code: str) -> str:
+    row = db.query(EventBase).filter(EventBase.event_code == event_code).first()
+    if row is not None:
+        return row.event_title
+    else:
+        return event_code

+ 1 - 0
models/taskRegistration_base.py

@@ -29,6 +29,7 @@ class TaskRegistration(Base):
     update_time = Column(DateTime, default=datetime.now,comment='创建时间')
     processing_status = Column(String(50), default='处理中',comment='任务状态')
     event_code = Column(String(50), nullable=False,comment='关联事件ID')
+    task_type = Column(String(1), default='0', server_default='0', comment='任务类型 0 事件处置 1 防范措施 2 险情处理 3 督办任务')
 
     # 你可以添加更多的字段和关系,例如与用户模型的外键关系
     # user_id = Column(Integer, ForeignKey('users.id'))

+ 48 - 1
routers/api/taskRegistration/__init__.py

@@ -11,6 +11,8 @@ from datetime import datetime, timedelta
 from fastapi import APIRouter, Depends, HTTPException, Response, Query
 from database import get_db
 from pydantic import BaseModel
+from utils import *
+from common.db import db_event_management
 
 router = APIRouter()
 
@@ -231,4 +233,49 @@ async def select_unit(
         raise e
     except Exception as e:
         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)}")

+ 2 - 2
routers/prod_api/zwrz.py

@@ -28,11 +28,11 @@ async def login(
     *,
     request: Request,
     code: str,
-    src: str = Query('yjdp'),
+    src: str = Query(None),
     redirect: str = Query(None),
     db: Session = Depends(get_db) 
 ):
-    logger.info("统一认证登录 code: {}, redirect: {}", code, redirect)
+    logger.info("统一认证登录 code: {}, redirect: {}", code, src, redirect)
 
     print(request.client.host)