123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import sys,os
- current_path = os.getcwd()
- sys.path.append(current_path)
- from typing import Optional
- from pydantic import BaseModel
- from db.database import get_db
- from sqlalchemy.orm import Session
- from fastapi import APIRouter, Depends
- from agent.libs.sys import SysOrganBusiness
- from agent.models.web.response import StandardResponse,FAILED,SUCCESS
- class SysOrganRequest(BaseModel):
- id: Optional[int] = None
- name: str
- manager: Optional[str] = None
- phone: Optional[str] = None
- parent_id: Optional[int] = None
- router = APIRouter(prefix="/organ", tags=["机构&科室管理接口"])
- @router.get("/loadData", response_model=StandardResponse)
- def loadData(db: Session = Depends(get_db)):
- datas = SysOrganBusiness(db).get_all_data()
- sysOrgan_map = {p.id: {
- "id": p.id,
- "name": p.name,
- "manager": p.manager,
- "phone": p.phone,
- "parent_id": p.parent_id,
- "children": []
- } for p in datas}
- tree = []
- for p_id, p_data in sysOrgan_map.items():
- parent_id = p_data["parent_id"]
- if parent_id != 0 and parent_id in sysOrgan_map:
- sysOrgan_map[parent_id]["children"].append(p_data)
- else:
- tree.append(p_data)
- return StandardResponse(code=SUCCESS, message="机构&科室获取成功", records=tree)
- @router.get("/loadDataById/{id}", response_model=StandardResponse)
- def loadDataByParentId(id:int,db: Session = Depends(get_db)):
- datas = SysOrganBusiness(db).get_all_data()
- sysOrgan_map = {p.id: {
- "id": p.id,
- "name": p.name,
- "manager": p.manager,
- "phone": p.phone,
- "parent_id": p.parent_id,
- "children": []
- } for p in datas}
- tree = []
- for p_id, p_data in sysOrgan_map.items():
- parent_id1 = p_data["parent_id"]
- if parent_id1 != 0 and parent_id1 in sysOrgan_map:
- sysOrgan_map[parent_id1]["children"].append(p_data)
- else:
- tree.append(p_data)
- tree2 = []
- tree2.append(sysOrgan_map[id])
- return StandardResponse(code=SUCCESS, message="机构&科室获取成功", records=tree2)
- @router.post("/insert", response_model=StandardResponse)
- def insertData(request: SysOrganRequest, db: Session = Depends(get_db)):
- biz = SysOrganBusiness(db)
- request_name = request.name
- request_manager = request.manager
- request_phone = request.phone
- request_parentId = request.parent_id
- if request_name is None or request_name.strip() == '':
- return StandardResponse(code=FAILED, message="机构&科室名称不能为空")
- data = biz.get_data_by_nameAndParent(request_name,request_parentId)
- if data is not None:
- return StandardResponse(code=FAILED, message="机构&科室名称已经存在")
- user = biz.insert_data(request_name, request_manager,request_phone,request_parentId)
- if user is None:
- return StandardResponse(code=FAILED, message="创建机构&科室失败")
- return StandardResponse(code=SUCCESS, message="创建机构&科室成功")
- @router.post("/update", response_model=StandardResponse)
- def updateData(request: SysOrganRequest, db: Session = Depends(get_db)):
- biz = SysOrganBusiness(db)
- if request.name is None or request.name.strip() == '':
- return StandardResponse(code=FAILED, message="机构&科室名称不能为空")
- data = biz.get_data_by_nameAndParent(request.name,request.parent_id)
- if data is not None and data.id != request.id:
- return StandardResponse(code=FAILED, message="机构&科室名称已经存在")
- biz.update_data(request.id,request.name, request.manager,request.phone,request.parent_id)
- return StandardResponse(code=SUCCESS, message="更新机构&科室成功")
-
- @router.post("/delete/{id}", response_model=StandardResponse)
- def deleteData(id:int, db: Session = Depends(get_db)):
- biz = SysOrganBusiness(db)
- data = biz.get_all_data_by_parentId(id)
-
- if data is not None and len(data) > 0:
- return StandardResponse(code=FAILED, message="含有子机构&科室,请先删除后再操作")
- biz.delete_data(id)
- return StandardResponse(code=SUCCESS, message="删除机构&科室成功")
- sys_organ = router
|