|  |  |  | 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) |