12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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
- ]
- if len(rows) == 0:
- return {
- "code": 500,
- "msg": "暂无该预案的应急预单位职责信息,请联系管理员配置。"
- }
- # 返回结果
- 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
- }
|