|
|
|
from fastapi import APIRouter, Depends, Request
|
|
|
|
from config.get_db import get_db
|
|
|
|
from module_admin.service.login_service import LoginService
|
|
|
|
from module_admin.service.metatask_service import MetataskService
|
|
|
|
from module_admin.entity.vo.metatask_vo import DeleteMetataskModel,MetataskPageObject,MetataskModel,OperaMetataskModel
|
|
|
|
from module_admin.entity.vo.dataSource_vo import ProcessDefinition,ParmScheduleVo,ProcessInstancePage
|
|
|
|
from utils.page_util import PageResponseModel
|
|
|
|
from utils.response_util import ResponseUtil
|
|
|
|
from utils.log_util import logger
|
|
|
|
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from config.enums import BusinessType
|
|
|
|
from datetime import datetime
|
|
|
|
from module_admin.entity.vo.user_vo import CurrentUserModel
|
|
|
|
from pydantic_validation_decorator import ValidateFields
|
|
|
|
from module_admin.annotation.log_annotation import Log
|
|
|
|
from module_admin.service.config_service import ConfigService
|
|
|
|
|
|
|
|
|
|
|
|
metataskController = APIRouter(prefix='/meta/metatask', dependencies=[Depends(LoginService.get_current_user)])
|
|
|
|
|
|
|
|
@metataskController.get(
|
|
|
|
'/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:list'))]
|
|
|
|
)
|
|
|
|
async def get_system_metatask_list(
|
|
|
|
request: Request,
|
|
|
|
metatask_page_query: MetataskPageObject = Depends(MetataskPageObject.as_query),
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
):
|
|
|
|
# 获取分页数据
|
|
|
|
config_page_query_result = await MetataskService.get_metatask_list_services(query_db, metatask_page_query, is_page=True)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(model_content=config_page_query_result)
|
|
|
|
# 获取工作流实例
|
|
|
|
@metataskController.get(
|
|
|
|
'/process_instances', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:log'))]
|
|
|
|
)
|
|
|
|
async def get_process_instances_list(
|
|
|
|
request: Request,
|
|
|
|
metatask_page_query: ProcessInstancePage = Depends(ProcessInstancePage),current_user: CurrentUserModel = Depends(LoginService.get_current_user)
|
|
|
|
):
|
|
|
|
# 获取分页数据
|
|
|
|
config_page_query_result = await MetataskService.get_process_instances_services(request, metatask_page_query,current_user)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(model_content=config_page_query_result)
|
|
|
|
# 获取工作流实例节点
|
|
|
|
@metataskController.get(
|
|
|
|
'/task_nodes/{id}', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:log'))]
|
|
|
|
)
|
|
|
|
async def get_task_nodes_list(
|
|
|
|
request: Request,
|
|
|
|
id:int,current_user: CurrentUserModel = Depends(LoginService.get_current_user)
|
|
|
|
):
|
|
|
|
|
|
|
|
config_page_query_result = await MetataskService.get_task_nodes_services(request, id,current_user)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(rows=config_page_query_result)
|
|
|
|
# 获取日志详情
|
|
|
|
@metataskController.get(
|
|
|
|
'/log_details/{id}', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:log'))]
|
|
|
|
)
|
|
|
|
async def get_log_details(
|
|
|
|
request: Request,
|
|
|
|
id:int,current_user: CurrentUserModel = Depends(LoginService.get_current_user)
|
|
|
|
):
|
|
|
|
# 获取分页数据
|
|
|
|
config_page_query_result = await MetataskService.get_log_details_services(request,id,current_user)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(data=config_page_query_result)
|
|
|
|
|
|
|
|
@metataskController.get(
|
|
|
|
'/tree', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:list'))]
|
|
|
|
)
|
|
|
|
async def get_data_source_tree( request: Request,current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
|
|
# 获取分页数据
|
|
|
|
|
|
|
|
data_tree_result = await MetataskService.get_data_source_tree( request,current_user)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(rows=data_tree_result)
|
|
|
|
@metataskController.get(
|
|
|
|
'/sourceall', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:list'))]
|
|
|
|
)
|
|
|
|
async def get_data_source_all( request: Request,current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
|
|
# 获取分页数据
|
|
|
|
|
|
|
|
data_source_result = await MetataskService.get_data_source_all( request,current_user)
|
|
|
|
logger.info('获取成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(data=data_source_result)
|
|
|
|
@metataskController.post('', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:add'))])
|
|
|
|
@ValidateFields(validate_model='add_metatask')
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.INSERT)
|
|
|
|
async def add_meta_metatask(
|
|
|
|
request: Request,
|
|
|
|
add_metatask: MetataskModel,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
|
|
|
|
):
|
|
|
|
add_metatask.create_by = current_user.user.user_name
|
|
|
|
add_metatask.create_time = datetime.now()
|
|
|
|
add_metatask.update_by = current_user.user.user_name
|
|
|
|
add_metatask.update_time = datetime.now()
|
|
|
|
add_metatask_result = await MetataskService.add_metatask_services(request, query_db, add_metatask,current_user)
|
|
|
|
logger.info(add_metatask_result.message)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=add_metatask_result.message)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@metataskController.put('', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:edit'))])
|
|
|
|
@ValidateFields(validate_model='edit_metatask')
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.UPDATE)
|
|
|
|
async def edit_meta_metatask(
|
|
|
|
request: Request,
|
|
|
|
edit_metatask: MetataskModel,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
|
|
|
|
):
|
|
|
|
edit_metatask.update_by = current_user.user.user_name
|
|
|
|
edit_metatask.update_time = datetime.now()
|
|
|
|
edit_config_result = await MetataskService.edit_metatask_services(request, query_db, edit_metatask,current_user)
|
|
|
|
logger.info(edit_config_result.message)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=edit_config_result.message)
|
|
|
|
# 元数据任务上下线
|
|
|
|
@metataskController.put('/upOrdown', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:up',"meta:metatask:down"))])
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.UPDATE)
|
|
|
|
async def up_or_down_meta_metatask(
|
|
|
|
request: Request,
|
|
|
|
DownOrUpdate: OperaMetataskModel,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
|
|
|
|
):
|
|
|
|
|
|
|
|
edit_config_result = await MetataskService.up_or_down_metatask_services(request, query_db,current_user, DownOrUpdate.id,DownOrUpdate.type)
|
|
|
|
logger.info(edit_config_result.message)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=edit_config_result.message)
|
|
|
|
# 元数据任务运行
|
|
|
|
@metataskController.put('/Run', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:run'))])
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.UPDATE)
|
|
|
|
async def run_meta_metatask(
|
|
|
|
request: Request,
|
|
|
|
process: ProcessDefinition,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
|
|
|
|
):
|
|
|
|
|
|
|
|
edit_config_result = await MetataskService.run_metatask_services(request, query_db, process,current_user)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=edit_config_result)
|
|
|
|
# 元数据任务调度
|
|
|
|
@metataskController.put('/DS', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:ds'))])
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.UPDATE)
|
|
|
|
async def DS_meta_metatask(
|
|
|
|
request: Request,
|
|
|
|
process: ParmScheduleVo,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
|
|
|
|
):
|
|
|
|
|
|
|
|
edit_config_result = await MetataskService.ds_metatask_services(request, query_db, process,current_user)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=edit_config_result)
|
|
|
|
|
|
|
|
# 元数据任务日志
|
|
|
|
@metataskController.get('/logs', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:up',"meta:metatask:down"))])
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.UPDATE)
|
|
|
|
async def get_metatask_logs(
|
|
|
|
request: Request,
|
|
|
|
id: str,
|
|
|
|
query_db: AsyncSession = Depends(get_db),
|
|
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
|
|
|
|
):
|
|
|
|
|
|
|
|
edit_config_result = await MetataskService.get_metatask_logs_services(request, query_db,current_user, id)
|
|
|
|
logger.info(edit_config_result.message)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=edit_config_result.message)
|
|
|
|
|
|
|
|
@metataskController.delete('/{metatask_ids}/{ds_ids}', dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:delete'))])
|
|
|
|
@Log(title='元数据任务', business_type=BusinessType.DELETE)
|
|
|
|
async def delete_system_config(request: Request, metatask_ids: str,ds_ids:str, query_db: AsyncSession = Depends(get_db),current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
|
|
delete_config = DeleteMetataskModel(metatask_ids=metatask_ids,ds_ids=ds_ids)
|
|
|
|
delete_config_result = await MetataskService.delete_metatask_services(request, query_db, delete_config,current_user)
|
|
|
|
logger.info(delete_config_result.message)
|
|
|
|
|
|
|
|
return ResponseUtil.success(msg=delete_config_result.message)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@metataskController.get(
|
|
|
|
'/{metatask_id}', response_model=MetataskModel, dependencies=[Depends(CheckUserInterfaceAuth('meta:metatask:query'))]
|
|
|
|
)
|
|
|
|
async def query_detail_system_config(request: Request, metatask_id: int, query_db: AsyncSession = Depends(get_db)):
|
|
|
|
metatask_detail_result = await MetataskService.metatask_detail_services(query_db, metatask_id)
|
|
|
|
logger.info(f'获取config_id为{metatask_id}的信息成功')
|
|
|
|
|
|
|
|
return ResponseUtil.success(data=metatask_detail_result)
|
|
|
|
|
|
|
|
|