You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.7 KiB
58 lines
2.7 KiB
2 months ago
|
import json
|
||
|
import os
|
||
|
import shutil
|
||
|
from fastapi import APIRouter, Depends, Request, UploadFile, File, Form
|
||
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||
|
from config.get_db import get_db
|
||
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
||
|
from module_admin.entity.vo.approval_vo import ApplyModel, OperateModel, ApprovalQueryObject
|
||
|
from module_admin.service.login_service import LoginService
|
||
|
from module_admin.service.approval_service import ApprovalService
|
||
|
from utils.log_util import logger
|
||
|
from utils.response_util import ResponseUtil
|
||
|
|
||
|
approvalController = APIRouter(prefix='/approval', dependencies=[Depends(LoginService.get_current_user)])
|
||
|
|
||
|
|
||
|
@approvalController.post("/apply")
|
||
|
async def flow_apply(request: Request,
|
||
|
apply: ApplyModel,
|
||
|
query_db: AsyncSession = Depends(get_db)):
|
||
|
apply_result = await ApprovalService.apply_services(query_db, apply)
|
||
|
return ResponseUtil.success(msg=apply_result.message)
|
||
|
|
||
|
|
||
|
@approvalController.post("/operate")
|
||
|
async def flow_operate(request: Request,
|
||
|
operate: OperateModel,
|
||
|
query_db: AsyncSession = Depends(get_db),
|
||
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
||
|
operate_result = await ApprovalService.operate_services(query_db, operate, current_user)
|
||
|
return ResponseUtil.success(msg=operate_result.message)
|
||
|
|
||
|
|
||
|
@approvalController.get("/list")
|
||
|
async def flow_list(request: Request,
|
||
|
query_param: ApprovalQueryObject = Depends(ApprovalQueryObject.as_query),
|
||
|
query_db: AsyncSession = Depends(get_db),
|
||
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
||
|
meta_query_result = await ApprovalService.get_flow_list_services(query_db, query_param, current_user)
|
||
|
return ResponseUtil.success(data=meta_query_result)
|
||
|
|
||
|
|
||
|
@approvalController.get("/waitingTotal")
|
||
|
async def getWaitingTotal(request: Request,
|
||
|
query_db: AsyncSession = Depends(get_db),
|
||
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
||
|
meta_query_result = await ApprovalService.get_waiting_total_services(query_db, current_user)
|
||
|
return ResponseUtil.success(data=meta_query_result)
|
||
|
|
||
|
|
||
|
@approvalController.post("/cancelApply/{flow_id}")
|
||
|
async def cancel_apply(request: Request,
|
||
|
flow_id: str,
|
||
|
query_db: AsyncSession = Depends(get_db),
|
||
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
||
|
operate_result = await ApprovalService.cancel_apply_services(query_db, flow_id, current_user)
|
||
|
return ResponseUtil.success(msg=operate_result.message)
|