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)