1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- from fastapi import APIRouter, Request, Depends, HTTPException, Query
- from sqlalchemy.exc import IntegrityError
- from fastapi.responses import HTMLResponse, FileResponse
- from fastapi.responses import JSONResponse
- from database import get_db
- from sqlalchemy import text, exists, and_, or_, not_
- from sqlalchemy.orm import Session
- from models import *
- import json
- 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.security import valid_access_token
- import traceback
- from utils import *
- from datetime import datetime, timedelta
- router = APIRouter()
- # 列出预案单位任务
- @router.post('/unit_task')
- async def unit_task(
- request: Request,
- db: Session = Depends(get_db),
- body = Depends(remove_xss_json),
- user_id = Depends(valid_access_token)
- ):
- plan_id = body['plan_id']
- row = db.query(EmergencyPlan).filter(EmergencyPlan.plan_number == plan_id).first()
- if row is None:
- return {
- "code": 500,
- "msg": "没有匹配的预案"
- }
-
- plan_info = get_model_dict(row)
- rows = db.query(EmergencyUnit).filter(EmergencyUnit.plan_id == plan_id).order_by(EmergencyUnit.dept_order.asc()).all()
- data = [
- {
- "id": row.id,
- "dept_id": row.dept_id,
- "dept_name": row.dept_name,
- "content": "{},您好!《{}》现已全面启动,特此通知您单位迅速响应,全力做好预案工作要点:{}".format(row.dept_name, plan_info['plan_name'], row.content)
- }
- for row in rows
- ]
- # 返回结果
- return {
- "code": 200,
- "msg": "查询成功",
- "data": data
- }
- # 列出可用预案
- @router.post('/avail_plan_list')
- async def unit_task(
- request: Request,
- db: Session = Depends(get_db),
- body = Depends(remove_xss_json),
- user_id = Depends(valid_access_token)
- ):
- rows = db.query(EmergencyPlan).filter(EmergencyPlan.del_flag == "0").order_by(EmergencyPlan.plan_number.asc()).all()
- data = [
- {
- "plan_id": row.plan_number,
- "plan_name": row.plan_name,
- "response_level": row.response_level
- }
- for row in rows
- ]
- # 返回结果
- return {
- "code": 200,
- "msg": "查询成功",
- "data": data
- }
|