|
|
|
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, SaveConfModel
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
@approvalController.get("/conf/list")
|
|
|
|
async def get_conf_list(request: Request,
|
|
|
|
module: str,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
|
|
meta_query_result = await ApprovalService.get_conf_list_services(module, query_db, current_user)
|
|
|
|
return ResponseUtil.success(data=meta_query_result)
|
|
|
|
|
|
|
|
|
|
|
|
@approvalController.post("/conf/save")
|
|
|
|
async def save_flow_config(
|
|
|
|
saveConfModel: SaveConfModel,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
):
|
|
|
|
operate_result = await ApprovalService.save_flow_config_services(query_db, saveConfModel)
|
|
|
|
return ResponseUtil.success(msg=operate_result.message)
|