libushang 5 kuukautta sitten
vanhempi
commit
47fd3a4ce3

+ 18 - 0
models/event_base.py

@@ -124,5 +124,23 @@ class EventBriefing(Base):
     briefing_content = Column(String, default="", comment='简报内容')
     del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
 
+    class Config:
+        orm_mode = True
+
+
+class EventLeaderUser(Base):
+    __tablename__ = 'event_leader_user'
+
+    id = Column(Integer, autoincrement=True, primary_key=True)
+    event_id = Column(String, default="", comment='事件编号')
+    unit_id = Column(String, default="", comment='部门ID')
+    unit_name = Column(Integer, default=0, comment='部门名称')
+    user_type = Column(String, default="", comment='人员类型')
+    recorded_by = Column(Integer, default=0, comment='记录用户ID')
+    create_time = Column(DateTime, default=datetime.now, comment='登记时间')
+    user_name = Column(String, default="", comment='人员姓名')
+    mobile = Column(String, default="", comment='联系方式')
+    del_flag = Column(String(1), default='0', comment='删除标志(0代表存在 2代表删除)')
+
     class Config:
         orm_mode = True

+ 14 - 1
routers/api/eventManagement/event.py

@@ -1025,7 +1025,9 @@ async def emergency_plan_task_list(
             "sent_status_text": get_sent_status_text(row.sent_status),
             "yzy_content": row.yzy_content,
             "nick_name": row.nick_name,
-            "comment": row.comment
+            "comment": row.comment,
+            "leaders": get_event_leaders(db, eventId, row.dept_id)
+
         }
         for row in rows
     ]
@@ -1037,6 +1039,17 @@ async def emergency_plan_task_list(
         "data": data
     }
 
+def get_event_leaders(db: Session, event_id: str, dept_id: int) -> dict:
+    rows = db.query(EventLeaderUser).filter(and_(EventLeaderUser.del_flag == '0', EventLeaderUser.event_id == event_id, EventLeaderUser.unit_id == dept_id)).order_by(EventLeaderUser.create_time.asc()).all()
+    return [
+        {
+            "user_type": row.user_type,
+            "user_name": row.user_name,
+            "mobile": row.mobile
+        }
+        for row in rows
+    ]
+
 def get_sent_status_text(sent_status) -> str:
     if sent_status == 0:
         return '暂未发送'

+ 42 - 1
routers/api/eventManagement/event_xp.py

@@ -11,7 +11,7 @@ import random
 from sqlalchemy import create_engine, select
 from typing import Optional
 from utils.StripTagsHTMLParser import *
-from common.db import db_event_management, db_user, db_area, db_emergency_plan
+from common.db import db_event_management, db_dept, db_user, db_area, db_emergency_plan
 from common.security import valid_access_token
 import traceback
 from utils import *
@@ -115,3 +115,44 @@ async def get_event_list(
         # 处理异常
         traceback.print_exc()
         raise HTTPException(status_code=500, detail=str(e))
+
+
+
+# 上报事件指挥人员
+@router.post("/create_leader_user")
+async def create_leader_user(
+    request: Request,  
+    body = Depends(remove_xss_json), 
+    db: Session = Depends(get_db),
+    user_id = Depends(valid_access_token)
+):
+    event_id = body['event_id']
+    if 'users' not in body:
+
+        return {
+            "code": 500,
+            "msg": "请上报事件指挥人员"
+        }
+    
+    for n in body['users']:
+        unit_id = n['unit_id']
+        unit_name = db_dept.get_dept_name_by_id(db, unit_id)
+
+        new_user = EventLeaderUser(
+            unit_id = unit_id,
+            unit_name = unit_name,
+            event_id = event_id,
+            user_type = n['user_type'],
+            user_name = n['user_name'],
+            mobile = n['mobile'],
+            create_time = datetime.now(),
+            recorded_by = user_id,
+            del_flag = '0'
+        )
+        db.add(new_user)
+        db.commit()
+
+    return {
+        "code": 200,
+        "msg": "上报事件指挥人员成功"
+    }