|
@@ -2,7 +2,7 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
from fastapi import APIRouter, Request, Depends, Query, HTTPException, status,WebSocket,WebSocketDisconnect
|
|
|
-from common.security import valid_access_token
|
|
|
+from common.security import valid_access_token,valid_websocket_token
|
|
|
from fastapi.responses import JSONResponse
|
|
|
from sqlalchemy.orm import Session
|
|
|
from sqlalchemy.sql import func
|
|
@@ -15,6 +15,7 @@ from typing import List
|
|
|
from models import *
|
|
|
from utils import *
|
|
|
from utils.spatial import *
|
|
|
+from utils.ry_system_util import *
|
|
|
import json
|
|
|
import traceback
|
|
|
|
|
@@ -132,13 +133,41 @@ async def delete_pattern(
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
-def pattern_id_get_tp_pattern_ws_info(pattern_id:str,db: Session):
|
|
|
+def user_id_and_pattern_id_get_tp_pattern_ws_info(user_id:str,pattern_id:str,db: Session):
|
|
|
query = db.query(TpPatternWSList)
|
|
|
query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
query = query.filter(TpPatternWSList.pattern_id == pattern_id)
|
|
|
+ query = query.filter(TpPatternWSList.create_by == user_id)
|
|
|
query.order_by(TpPatternWSList.create_time.desc())
|
|
|
return query.first()
|
|
|
|
|
|
+def pattern_id_get_tp_pattern_ws_users(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSList)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSList.pattern_id == pattern_id)
|
|
|
+ query = query.group_by(TpPatternWSList.create_by)
|
|
|
+ return query.all()
|
|
|
+
|
|
|
+def pattern_id_get_tp_pattern_ws_list(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSList)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSList.pattern_id == pattern_id)
|
|
|
+ # query = query.group_by(TpPatternWSList.create_id)
|
|
|
+ return query.all()
|
|
|
+
|
|
|
+def pattern_id_get_tp_pattern_ws_count(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSList)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSList.pattern_id == pattern_id)
|
|
|
+ return query.count()
|
|
|
+
|
|
|
+def pattern_id_get_tp_pattern_ws_max_time(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSList.update_time)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSList.pattern_id == pattern_id)
|
|
|
+ query.order_by(TpPatternWSUserList.update_time.desc())
|
|
|
+ return query.first()
|
|
|
+
|
|
|
def pattern_id_get_tp_pattern_ws_user_list(pattern_id:str,db: Session):
|
|
|
query = db.query(TpPatternWSUserList)
|
|
|
query = query.filter(TpPatternWSUserList.del_flag != '2')
|
|
@@ -146,6 +175,13 @@ def pattern_id_get_tp_pattern_ws_user_list(pattern_id:str,db: Session):
|
|
|
query.order_by(TpPatternWSUserList.create_time.desc())
|
|
|
return query.all()
|
|
|
|
|
|
+def pattern_id_get_tp_pattern_ws_group_def_info(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSGroupList)
|
|
|
+ query = query.filter(TpPatternWSGroupList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSGroupList.pattern_id == pattern_id)
|
|
|
+ query.order_by(TpPatternWSGroupList.create_time.desc())
|
|
|
+ return query.first()
|
|
|
+
|
|
|
def user_id_get_tp_pattern_ws_user_list(user_id:str,db: Session):
|
|
|
query = db.query(TpPatternWSUserList)
|
|
|
query = query.filter(TpPatternWSUserList.del_flag != '2')
|
|
@@ -160,6 +196,12 @@ def user_id_and_pattern_id_get_tp_pattern_ws_user_info(user_id:str,pattern_id:st
|
|
|
query = query.filter(TpPatternWSUserList.pattern_id == pattern_id)
|
|
|
query.order_by(TpPatternWSUserList.create_time.desc())
|
|
|
return query.all()
|
|
|
+def pattern_id_get_tp_pattern_ws_group_list(pattern_id:str,db: Session):
|
|
|
+ query = db.query(TpPatternWSGroupList)
|
|
|
+ query = query.filter(TpPatternWSGroupList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSGroupList.pattern_id == pattern_id)
|
|
|
+ query.order_by(TpPatternWSGroupList.create_time.desc())
|
|
|
+ return query.all()
|
|
|
|
|
|
class ConnectionManager:
|
|
|
def __init__(self):
|
|
@@ -168,26 +210,46 @@ class ConnectionManager:
|
|
|
async def connect(self, websocket: WebSocket,pattern_id:str,db: Session):
|
|
|
await websocket.accept()
|
|
|
if pattern_id not in self.active_connections:
|
|
|
- data = pattern_id_get_tp_pattern_ws_info(pattern_id,db)
|
|
|
- if data:
|
|
|
- await websocket.send_text(data.content)
|
|
|
+
|
|
|
self.active_connections[pattern_id] = [websocket]
|
|
|
else:
|
|
|
self.active_connections[pattern_id].append(websocket)
|
|
|
-
|
|
|
+ # data = pattern_id_get_tp_pattern_ws_list(pattern_id, db)
|
|
|
+ # message = []
|
|
|
+ # for info in data:
|
|
|
+ # user = user_id_get_user_info(db, info.create_by)
|
|
|
+ # dept = dept_id_get_dept_info(db, user.dept_id)
|
|
|
+ # message.append({"id": info.id,
|
|
|
+ # "name": info.name,
|
|
|
+ # "pattern_id": info.pattern_id,
|
|
|
+ # "content": info.content,
|
|
|
+ # "visible": info.visible,
|
|
|
+ # "user_id": info.create_by,
|
|
|
+ # "nick_name": user.nick_name,
|
|
|
+ # "dept_name": dept.dept_name})
|
|
|
+ # message = json.dumps(message)
|
|
|
+ # await websocket.send_text(message)
|
|
|
+ await websocket.send_text('连接成功')
|
|
|
def disconnect(self, websocket: WebSocket,pattern_id:str):
|
|
|
+ await websocket.send_text('已断开')
|
|
|
self.active_connections[pattern_id].remove(websocket)
|
|
|
if not self.active_connections[pattern_id]:
|
|
|
del self.active_connections[pattern_id]
|
|
|
- async def broadcast(self, message: str,pattern_id:str,user_id,db: Session):
|
|
|
- new_pattern = TpPatternWSList(
|
|
|
- id = new_guid(),
|
|
|
- pattern_id=pattern_id,
|
|
|
- content=pattern_id,
|
|
|
- create_dept = user_id
|
|
|
- )
|
|
|
- db.add(new_pattern)
|
|
|
- db.commit()
|
|
|
+ async def broadcast(self,pattern_id:str,db: Session):#, message: str
|
|
|
+ data = pattern_id_get_tp_pattern_ws_list(pattern_id,db)
|
|
|
+ message = []
|
|
|
+ for info in data:
|
|
|
+ user= user_id_get_user_info(db,info.create_by)
|
|
|
+ dept = dept_id_get_dept_info(db,user.dept_id)
|
|
|
+ message.append({"id":info.id,
|
|
|
+ "name":info.name,
|
|
|
+ "pattern_id":info.pattern_id,
|
|
|
+ "content":info.content,
|
|
|
+ "visible":info.visible,
|
|
|
+ "user_id":info.create_by,
|
|
|
+ "nick_name":user.nick_name,
|
|
|
+ "dept_name":dept.dept_name})
|
|
|
+ message = json.dumps(message)
|
|
|
for connection in self.active_connections[pattern_id]:
|
|
|
await connection.send_text(message)
|
|
|
|
|
@@ -204,66 +266,141 @@ async def websocket_endpoint(pattern_id:str ,websocket: WebSocket,user_id=Depend
|
|
|
})
|
|
|
await manager.connect(websocket,pattern_id,db)
|
|
|
try:
|
|
|
+ # await manager.broadcast(pattern_id, db) # 广播消息给所有连接
|
|
|
+ # now_max_time = pattern_id_get_tp_pattern_ws_max_time(pattern_id, db).update_time
|
|
|
while True:
|
|
|
- data = await websocket.receive_text()
|
|
|
-
|
|
|
- await manager.broadcast(data,pattern_id,user_id,db) # 广播消息给所有连接
|
|
|
+ # data = await websocket.receive_text()
|
|
|
+ # time.sleep(0.5)
|
|
|
+ # max_time = pattern_id_get_tp_pattern_ws_max_time(pattern_id, db).update_time
|
|
|
+ # if now_max_time<max_time:
|
|
|
+ await manager.broadcast(pattern_id,db) # 广播消息给所有连接
|
|
|
except WebSocketDisconnect:
|
|
|
manager.disconnect(websocket,pattern_id)
|
|
|
|
|
|
-@router.post("/ws/create")
|
|
|
+@router.post("/ws/bz_add")
|
|
|
async def create_pattern(
|
|
|
user_id=Depends(valid_access_token),
|
|
|
body = Depends(remove_xss_json),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
|
- user_id_list = body['user_id_list']
|
|
|
- if user_id not in user_id_list:
|
|
|
- user_id_list.append(user_id)
|
|
|
- for user in user_id_list:
|
|
|
- new_pattern_ws = TpPatternWSUserList(
|
|
|
- id=new_guid(),
|
|
|
- pattern_id=body['pattern_id'],
|
|
|
- user_id=user,
|
|
|
- create_dept=user_id
|
|
|
- )
|
|
|
- db.add(new_pattern_ws)
|
|
|
new_pattern_ws = TpPatternWSList(
|
|
|
id = new_guid(),
|
|
|
+ name=body['name'],
|
|
|
pattern_id=body['pattern_id'],
|
|
|
content=body['content'],
|
|
|
- create_dept = user_id
|
|
|
+ visible = body['visible'],
|
|
|
+ create_by = user_id
|
|
|
)
|
|
|
db.add(new_pattern_ws)
|
|
|
db.commit()
|
|
|
+ # await manager.broadcast(body['pattern_id'], db)
|
|
|
return {"code": 200, "msg": "创建成功", "data": None}
|
|
|
except Exception as e:
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
-@router.put("/ws/rollback")
|
|
|
-async def rollback_pattern(
|
|
|
+@router.put("/ws/bz_update")
|
|
|
+async def update_pattern(
|
|
|
user_id=Depends(valid_access_token),
|
|
|
body = Depends(remove_xss_json),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
|
- user_list = [i.user_id for i in pattern_id_get_tp_pattern_ws_user_list(body['pattern_id'],db)]
|
|
|
- if user_id not in user_list:
|
|
|
- return JSONResponse(status_code=404, content={
|
|
|
- 'code': 404,
|
|
|
- 'msg': '抱歉,您无权限,请联系系统管理员'
|
|
|
- })
|
|
|
- data = pattern_id_get_tp_pattern_ws_info(body['pattern_id'],db)
|
|
|
- data.del_flag='2'
|
|
|
- data.update_by = user_id
|
|
|
+ id = body['id']
|
|
|
+ query = db.query(TpPatternWSList)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag!='2')
|
|
|
+ query = query.filter(TpPatternWSList.id == id)
|
|
|
+ info = query.first()
|
|
|
+ if 'name' in body:
|
|
|
+ info.name=body['name']
|
|
|
+ info.update_by=user_id
|
|
|
+ if 'pattern_id' in body:
|
|
|
+ info.pattern_id=body['pattern_id']
|
|
|
+ info.update_by=user_id
|
|
|
+ if 'content' in body:
|
|
|
+ info.content=body['content']
|
|
|
+ info.update_by=user_id
|
|
|
+ if 'visible' in body:
|
|
|
+ info.visible=body['visible']
|
|
|
+ info.update_by=user_id
|
|
|
+ db.commit()
|
|
|
+ # await manager.broadcast(body['pattern_id'], db)
|
|
|
+ return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
+@router.post("/ws/create")
|
|
|
+async def create_pattern(
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ user_id_list = body['user_id_list']
|
|
|
+ if str(user_id) not in user_id_list:
|
|
|
+ user_id_list.append(str(user_id))
|
|
|
+ for user in user_id_list:
|
|
|
+ new_pattern_user_ws = TpPatternWSUserList(
|
|
|
+ id=new_guid(),
|
|
|
+ pattern_id=body['pattern_id'],
|
|
|
+ pattern_name=body['pattern_name'],
|
|
|
+ user_id=user,
|
|
|
+ create_by=user_id
|
|
|
+ )
|
|
|
+ db.add(new_pattern_user_ws)
|
|
|
+ new_pattern_ws = TpPatternWSList(
|
|
|
+ id = new_guid(),
|
|
|
+ name=body['name'],
|
|
|
+ pattern_id=body['pattern_id'],
|
|
|
+ content=body['content'],
|
|
|
+ visible = body['visible'],
|
|
|
+ create_by = user_id
|
|
|
+ )
|
|
|
+ db.add(new_pattern_ws)
|
|
|
+ new_pattern_group_ws = TpPatternWSGroupList(
|
|
|
+ group_id=body['pattern_id'],
|
|
|
+ group_name='默认分组',
|
|
|
+ pattern_id=body['pattern_id'],
|
|
|
+ pattern_name=body['pattern_name'],
|
|
|
+ create_by=user_id
|
|
|
+ )
|
|
|
+ db.add(new_pattern_group_ws)
|
|
|
db.commit()
|
|
|
- return {"code": 200, "msg": "回滚成功", "data": None}
|
|
|
+ return {"code": 200, "msg": "创建成功", "data": None}
|
|
|
except Exception as e:
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
+# @router.put("/ws/rollback")
|
|
|
+# async def rollback_pattern(
|
|
|
+# user_id=Depends(valid_access_token),
|
|
|
+# body = Depends(remove_xss_json),
|
|
|
+# db: Session = Depends(get_db)
|
|
|
+# ):
|
|
|
+# try:
|
|
|
+# user_list = [i.user_id for i in pattern_id_get_tp_pattern_ws_user_list(body['pattern_id'],db)]
|
|
|
+# if str(user_id) not in user_list:
|
|
|
+# return JSONResponse(status_code=404, content={
|
|
|
+# 'code': 404,
|
|
|
+# 'msg': '抱歉,您无权限,请联系系统管理员'
|
|
|
+# })
|
|
|
+# if pattern_id_get_tp_pattern_ws_count(body['pattern_id'],db)<=1:
|
|
|
+# return JSONResponse(status_code=404, content={
|
|
|
+# 'code': 404,
|
|
|
+# 'msg': '抱歉,已无法回滚'
|
|
|
+# })
|
|
|
+# data = user_id_and_pattern_id_get_tp_pattern_ws_info(user_id,body['pattern_id'],db)
|
|
|
+# data.del_flag='2'
|
|
|
+# data.update_by = user_id
|
|
|
+# db.commit()
|
|
|
+# return {"code": 200, "msg": "回滚成功", "data": None}
|
|
|
+# except Exception as e:
|
|
|
+# traceback.print_exc()
|
|
|
+# raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
|
|
|
@router.get("/ws/list")
|
|
|
async def get_pattern_list(
|
|
@@ -294,6 +431,40 @@ async def get_pattern_list(
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
+@router.get("/ws/user_list")
|
|
|
+async def get_pattern_list(
|
|
|
+ pattern_id: str = Query(None, description='预案名称'),
|
|
|
+ page: int = Query(1, gt=0, description='页码'),
|
|
|
+ pageSize: int = Query(5, gt=0, description='每页条目数量'),
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ query = db.query(TpPatternWSUserList)
|
|
|
+ query = query.filter(TpPatternWSUserList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSUserList.pattern_id==pattern_id)
|
|
|
+
|
|
|
+ total_items = query.count()
|
|
|
+ # 排序
|
|
|
+ query = query.order_by(TpPatternWSUserList.create_time.desc())
|
|
|
+ # 执行分页查询
|
|
|
+ patterns = query.offset((page - 1) * pageSize).limit(pageSize).all()
|
|
|
+ data = []
|
|
|
+ for p in patterns:
|
|
|
+ user = user_id_get_user_info(db, p.user_id)
|
|
|
+ dept = dept_id_get_dept_info(db, user.dept_id)
|
|
|
+ data.append({"id": p.id,"pattern_id":p.pattern_id, "pattern_name": p.pattern_name,"nick_name":user.nick_name,"dept_name":dept.dept_name})
|
|
|
+ return {"code": 200, "msg": "查询成功", "data": data,
|
|
|
+ "total": total_items,
|
|
|
+ "page": page,
|
|
|
+ "pageSize": pageSize,
|
|
|
+ "totalPages": (total_items + pageSize - 1) // pageSize
|
|
|
+ }
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+
|
|
|
@router.put("/ws/delete_user")
|
|
|
async def rollback_pattern(
|
|
|
user_id=Depends(valid_access_token),
|
|
@@ -301,7 +472,7 @@ async def rollback_pattern(
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
|
- pattern_info = pattern_id_get_tp_pattern_ws_info(body['pattern_id'],db)
|
|
|
+ pattern_info = pattern_id_get_tp_pattern_ws_group_def_info(body['pattern_id'],db)
|
|
|
if pattern_info.create_by!=user_id:
|
|
|
return JSONResponse(status_code=404, content={
|
|
|
'code': 404,
|
|
@@ -316,28 +487,149 @@ async def rollback_pattern(
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
-@router.put("/ws/delete_user")
|
|
|
+@router.post("/ws/add_user")
|
|
|
async def rollback_pattern(
|
|
|
user_id=Depends(valid_access_token),
|
|
|
body = Depends(remove_xss_json),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
|
- pattern_info = pattern_id_get_tp_pattern_ws_info(body['pattern_id'],db)
|
|
|
+ pattern_info = pattern_id_get_tp_pattern_ws_group_def_info(body['pattern_id'],db)
|
|
|
if pattern_info.create_by!=user_id:
|
|
|
return JSONResponse(status_code=404, content={
|
|
|
'code': 404,
|
|
|
'msg': '抱歉,您无权限,请联系系统管理员'
|
|
|
})
|
|
|
- new_pattern_ws = TpPatternWSUserList(
|
|
|
- id=new_guid(),
|
|
|
+ user_id_list = body['user_id_list']
|
|
|
+ if str(user_id) not in user_id_list:
|
|
|
+ user_id_list.append(str(user_id))
|
|
|
+ for user in user_id_list:
|
|
|
+ new_pattern_ws = TpPatternWSUserList(
|
|
|
+ id=new_guid(),
|
|
|
+ pattern_id=body['pattern_id'],
|
|
|
+ pattern_name=body['pattern_name'],
|
|
|
+ user_id=user,
|
|
|
+ create_by=user_id
|
|
|
+ )
|
|
|
+ db.add(new_pattern_ws)
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "开启协同成功", "data": None}
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.post("/ws/add_group")
|
|
|
+async def add_group_pattern(
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ pattern_info = pattern_id_get_tp_pattern_ws_group_def_info(body['pattern_id'],db)
|
|
|
+ if pattern_info.create_by!=user_id:
|
|
|
+ return JSONResponse(status_code=404, content={
|
|
|
+ 'code': 404,
|
|
|
+ 'msg': '抱歉,您无权限,请联系系统管理员'
|
|
|
+ })
|
|
|
+ new_pattern_ws_group = TpPatternWSGroupList(
|
|
|
+ group_id=new_guid(),
|
|
|
+ group_name = body['group_name'],
|
|
|
pattern_id=body['pattern_id'],
|
|
|
- user_id=body['user_id'],
|
|
|
- create_dept=user_id
|
|
|
+ pattern_name=body['pattern_name'],
|
|
|
+ create_by=user_id
|
|
|
)
|
|
|
- db.add(new_pattern_ws)
|
|
|
+ db.add(new_pattern_ws_group)
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "新增分组成功", "data": None}
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.put("/ws/update_group")
|
|
|
+async def add_group_pattern(
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ pattern_info = pattern_id_get_tp_pattern_ws_group_def_info(body['pattern_id'],db)
|
|
|
+ if pattern_info.create_by!=user_id:
|
|
|
+ return JSONResponse(status_code=404, content={
|
|
|
+ 'code': 404,
|
|
|
+ 'msg': '抱歉,您无权限,请联系系统管理员'
|
|
|
+ })
|
|
|
+ query = db.query(TpPatternWSGroupList)
|
|
|
+ query = query.filter(TpPatternWSGroupList.del_flag!='2')
|
|
|
+ query = query.filter(TpPatternWSGroupList.group_id==body['gruop_id'])
|
|
|
+ group = query.first()
|
|
|
+ if 'group_name' in body:
|
|
|
+ group.group_name = body['group_name']
|
|
|
+ group.update_by=user_id
|
|
|
+ db.commit()
|
|
|
+ return {"code": 200, "msg": "更新分组成功", "data": None}
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.get("/ws/bz_list")
|
|
|
+async def get_pattern_list(
|
|
|
+ pattern_id: str = Query(None, description='预案名称'),
|
|
|
+ # page: int = Query(1, gt=0, description='页码'),
|
|
|
+ # pageSize: int = Query(5, gt=0, description='每页条目数量'),
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ # data = pattern_id_get_tp_pattern_ws_list(pattern_id,db)
|
|
|
+ group_list = pattern_id_get_tp_pattern_ws_group_list(pattern_id,db)
|
|
|
+ message = []
|
|
|
+ for group in group_list:
|
|
|
+ query = db.query(TpPatternWSList.create_by)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag != '2')
|
|
|
+ query = query.filter(TpPatternWSList.pattern_id == group.group_id)
|
|
|
+ # total_items = query.count()
|
|
|
+ # 排序
|
|
|
+ query = query.order_by(TpPatternWSUserList.create_time.desc())
|
|
|
+ # 执行分页查询
|
|
|
+ patterns = query.all() # .offset((page - 1) * pageSize).limit(pageSize)
|
|
|
+ for info in patterns:
|
|
|
+ user= user_id_get_user_info(db,info.create_by)
|
|
|
+ dept = dept_id_get_dept_info(db,user.dept_id)
|
|
|
+ message.append({"id":info.id,
|
|
|
+ "name":info.name,
|
|
|
+ "group_id":info.pattern_id,
|
|
|
+ "content":info.content,
|
|
|
+ "visible":info.visible,
|
|
|
+ "user_id":info.create_by,
|
|
|
+ "nick_name":user.nick_name,
|
|
|
+ "dept_name":dept.dept_name,
|
|
|
+ "create_time":info.create_time.strftime('%Y-%m-%d %H:%M:%S')})
|
|
|
+ return {"code": 200, "msg": "查询成功", "data": message,
|
|
|
+ # "total": total_items,
|
|
|
+ # "page": page,
|
|
|
+ # "pageSize": pageSize,
|
|
|
+ # "totalPages": (total_items + pageSize - 1) // pageSize
|
|
|
+ }
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
+
|
|
|
+@router.put('/ws/bz_visible')
|
|
|
+async def update_bz_visible(
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ user_id=Depends(valid_access_token),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ try:
|
|
|
+ zb_id_list = body['zb_id_list']
|
|
|
+ for zb in zb_id_list:
|
|
|
+ query = db.query(TpPatternWSList)
|
|
|
+ query = query.filter(TpPatternWSList.del_flag!='2')
|
|
|
+ query = query.filter(TpPatternWSList.id==zb)
|
|
|
+ info = query.first()
|
|
|
+ info.visible=body['visible']
|
|
|
db.commit()
|
|
|
- return {"code": 200, "msg": "开启协同成功", "data": None}
|
|
|
except Exception as e:
|
|
|
traceback.print_exc()
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|