diff --git a/backend/app/core/ap_scheduler.py b/backend/app/core/ap_scheduler.py index 965038a0..0c6f4d20 100644 --- a/backend/app/core/ap_scheduler.py +++ b/backend/app/core/ap_scheduler.py @@ -2,8 +2,6 @@ import json from datetime import datetime from typing import Any -from redis.asyncio import Redis - from apscheduler.events import ( EVENT_ALL, EVENT_JOB_ERROR, @@ -25,15 +23,13 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.triggers.cron import CronTrigger from apscheduler.triggers.date import DateTrigger from apscheduler.triggers.interval import IntervalTrigger +from redis.asyncio import Redis -from app.common.enums import RedisInitKeyConfig from app.config.setting import settings from app.core.database import engine from app.core.logger import log -from app.core.redis_crud import RedisCURD -from app.utils.cron_util import CronUtil from app.plugin.module_task.node.model import NodeModel - +from app.utils.cron_util import CronUtil scheduler = AsyncIOScheduler() scheduler.configure( diff --git a/backend/app/plugin/module_task/job/controller.py b/backend/app/plugin/module_task/job/controller.py index c6d3182a..ecc34c1f 100644 --- a/backend/app/plugin/module_task/job/controller.py +++ b/backend/app/plugin/module_task/job/controller.py @@ -6,11 +6,11 @@ from fastapi.responses import JSONResponse from app.api.v1.module_system.auth.schema import AuthSchema from app.common.request import PaginationService from app.common.response import ResponseSchema, SuccessResponse +from app.core.ap_scheduler import SchedulerUtil from app.core.base_params import PaginationQueryParam from app.core.dependencies import AuthPermission from app.core.logger import log from app.core.router_class import OperationLogRoute -from app.core.ap_scheduler import SchedulerUtil from .schema import JobOutSchema, JobQueryParam from .service import JobService diff --git a/backend/app/plugin/module_task/job/schema.py b/backend/app/plugin/module_task/job/schema.py index a9da4f00..0ae817f5 100644 --- a/backend/app/plugin/module_task/job/schema.py +++ b/backend/app/plugin/module_task/job/schema.py @@ -34,12 +34,11 @@ class JobUpdateSchema(BaseModel): class JobOutSchema(JobCreateSchema, BaseSchema): """执行日志响应模型""" - + model_config = ConfigDict(from_attributes=True) ... - class JobQueryParam: """执行日志查询参数""" diff --git a/backend/app/plugin/module_task/node/model.py b/backend/app/plugin/module_task/node/model.py index d54e18a5..33895864 100644 --- a/backend/app/plugin/module_task/node/model.py +++ b/backend/app/plugin/module_task/node/model.py @@ -1,6 +1,6 @@ import enum -from sqlalchemy import Boolean, Integer, String, Text, JSON +from sqlalchemy import Boolean, Integer, String, Text from sqlalchemy.orm import Mapped, mapped_column from app.core.base_model import ModelMixin, UserMixin @@ -27,7 +27,6 @@ class NodeModel(ModelMixin, UserMixin): name: Mapped[str] = mapped_column(String(64), nullable=False, comment="节点名称") code: Mapped[str] = mapped_column(String(32), nullable=False, unique=True, comment="节点编码") category: Mapped[str] = mapped_column(String(32), default=NodeCategoryEnum.ACTION.value, comment="节点分类") - config_schema: Mapped[dict] = mapped_column(JSON, nullable=False, default=dict, comment="配置表单Schema(JSON Schema)") jobstore: Mapped[str | None] = mapped_column(String(64), nullable=True, default="default", comment="存储器") executor: Mapped[str | None] = mapped_column(String(64), nullable=True, default="default", comment="执行器") trigger: Mapped[str | None] = mapped_column(String(64), nullable=True, comment="触发器") diff --git a/backend/app/plugin/module_task/node/schema.py b/backend/app/plugin/module_task/node/schema.py index 166ffc91..da6c3b64 100644 --- a/backend/app/plugin/module_task/node/schema.py +++ b/backend/app/plugin/module_task/node/schema.py @@ -29,7 +29,6 @@ class NodeCreateSchema(BaseModel): end_date: str | None = Field(default=None, description="结束时间") code: str | None = Field(default=None, description="节点编码") category: str | None = Field(default=None, description="节点分类") - config_schema: dict | None = Field(default=None, description="节点配置") @model_validator(mode="after") def _validate_func(self): diff --git a/backend/app/plugin/module_task/node/service.py b/backend/app/plugin/module_task/node/service.py index 79a084f5..dae62224 100644 --- a/backend/app/plugin/module_task/node/service.py +++ b/backend/app/plugin/module_task/node/service.py @@ -1,7 +1,7 @@ from app.api.v1.module_system.auth.schema import AuthSchema +from app.core.ap_scheduler import SchedulerUtil from app.core.exceptions import CustomException from app.utils.cron_util import CronUtil -from app.core.ap_scheduler import SchedulerUtil from .crud import NodeCRUD from .schema import ( @@ -41,7 +41,6 @@ class NodeService: "name": obj.name, "code": obj.code, "category": obj.category, - "config_schema": obj.config_schema if obj.config_schema else {"fields": []}, "func": obj.func, "args": obj.args, "kwargs": obj.kwargs, diff --git a/backend/app/plugin/module_task/workflow/controller.py b/backend/app/plugin/module_task/workflow/controller.py index dcec63dc..f8729f22 100644 --- a/backend/app/plugin/module_task/workflow/controller.py +++ b/backend/app/plugin/module_task/workflow/controller.py @@ -17,17 +17,9 @@ from .schema import ( WorkflowOutSchema, WorkflowPublishSchema, WorkflowQueryParam, - WorkflowRunCreateSchema, - WorkflowRunLogOutSchema, - WorkflowRunLogQueryParam, - WorkflowRunOutSchema, - WorkflowRunQueryParam, - WorkflowRunUpdateSchema, WorkflowUpdateSchema, - WorkflowValidateResultSchema, - WorkflowValidateSchema, ) -from .service import WorkflowRunLogService, WorkflowRunService, WorkflowService +from .service import WorkflowService WorkflowRouter = APIRouter(route_class=OperationLogRoute, prefix="/workflow", tags=["工作流模块"]) @@ -194,104 +186,6 @@ async def publish_obj_controller( return SuccessResponse(data=result_dict, msg="发布工作流成功") -@WorkflowRouter.post( - "/validate", - summary="验证工作流", - description="验证工作流", - response_model=ResponseSchema[WorkflowValidateResultSchema], -) -async def validate_obj_controller( - data: WorkflowValidateSchema, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:validate"]))], -) -> JSONResponse: - """ - 验证工作流 - - 参数: - - data (WorkflowValidateSchema): 验证模型 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含验证结果的JSON响应 - """ - result_dict = await WorkflowService.validate_service(auth=auth, data=data) - log.info("验证工作流成功") - return SuccessResponse(data=result_dict.model_dump(), msg="验证工作流成功") - - -@WorkflowRouter.get( - "/templates", - summary="获取模板列表", - description="获取模板列表", - response_model=ResponseSchema[list[WorkflowOutSchema]], -) -async def get_templates_controller( - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:query"]))], -) -> JSONResponse: - """ - 获取模板列表 - - 参数: - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含模板列表的JSON响应 - """ - result_dict = await WorkflowService.templates_service(auth=auth) - log.info("获取模板列表成功") - return SuccessResponse(data=result_dict, msg="获取模板列表成功") - - -@WorkflowRouter.get( - "/export/{id}", - summary="导出工作流", - description="导出工作流", - response_model=ResponseSchema[dict], -) -async def export_obj_controller( - id: Annotated[int, Path(description="工作流ID")], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:export"]))], -) -> JSONResponse: - """ - 导出工作流 - - 参数: - - id (int): 工作流ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含导出工作流数据的JSON响应 - """ - result_dict = await WorkflowService.export_service(auth=auth, id=id) - log.info(f"导出工作流成功: {id}") - return SuccessResponse(data=result_dict, msg="导出工作流成功") - - -@WorkflowRouter.post( - "/import", - summary="导入工作流", - description="导入工作流", - response_model=ResponseSchema[WorkflowOutSchema], -) -async def import_obj_controller( - data: dict, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:import"]))], -) -> JSONResponse: - """ - 导入工作流 - - 参数: - - data (dict): 工作流数据 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含导入工作流详情的JSON响应 - """ - result_dict = await WorkflowService.import_service(auth=auth, data=data) - log.info(f"导入工作流成功: {result_dict.get('name')}") - return SuccessResponse(data=result_dict, msg="导入工作流成功") - - @WorkflowRouter.post( "/execute", summary="执行工作流", @@ -315,384 +209,3 @@ async def execute_obj_controller( result_dict = await WorkflowService.execute_service(auth=auth, data=data) log.info(f"执行工作流成功: {result_dict.get('workflow_id')}") return SuccessResponse(data=result_dict, msg="执行工作流成功") - - -@WorkflowRouter.post( - "/pause/{id}", - summary="暂停工作流", - description="暂停工作流", - response_model=ResponseSchema[None], -) -async def pause_obj_controller( - id: Annotated[int, Path(description="工作流ID")], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:pause"]))], -) -> JSONResponse: - """ - 暂停工作流 - - 参数: - - id (int): 工作流ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含暂停结果的JSON响应 - """ - await WorkflowService.pause_service(auth=auth, id=id) - log.info(f"暂停工作流成功: {id}") - return SuccessResponse(msg="暂停工作流成功") - - -@WorkflowRouter.post( - "/resume/{id}", - summary="恢复工作流", - description="恢复工作流", - response_model=ResponseSchema[None], -) -async def resume_obj_controller( - id: Annotated[int, Path(description="工作流ID")], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:resume"]))], -) -> JSONResponse: - """ - 恢复工作流 - - 参数: - - id (int): 工作流ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含恢复结果的JSON响应 - """ - await WorkflowService.resume_service(auth=auth, id=id) - log.info(f"恢复工作流成功: {id}") - return SuccessResponse(msg="恢复工作流成功") - - -@WorkflowRouter.post( - "/terminate/{id}", - summary="终止工作流", - description="终止工作流", - response_model=ResponseSchema[None], -) -async def terminate_obj_controller( - id: Annotated[int, Path(description="工作流ID")], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:terminate"]))], -) -> JSONResponse: - """ - 终止工作流 - - 参数: - - id (int): 工作流ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含终止结果的JSON响应 - """ - await WorkflowService.terminate_service(auth=auth, id=id) - log.info(f"终止工作流成功: {id}") - return SuccessResponse(msg="终止工作流成功") - - -@WorkflowRouter.get( - "/run/list", - summary="查询工作流运行记录列表", - description="查询工作流运行记录列表", - response_model=ResponseSchema[list[WorkflowRunOutSchema]], -) -async def get_workflow_run_list_controller( - page: Annotated[PaginationQueryParam, Depends()], - search: Annotated[WorkflowRunQueryParam, Depends()], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:query"]))], -) -> JSONResponse: - """ - 查询工作流运行记录列表 - - 参数: - - page (PaginationQueryParam): 分页查询参数 - - search (WorkflowRunQueryParam): 查询参数 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含工作流运行记录列表的JSON响应 - """ - result_dict = await WorkflowRunService.page_service( - auth=auth, - page_no=page.page_no, - page_size=page.page_size, - search=search.__dict__ if search else None, - order_by=page.order_by, - ) - return SuccessResponse(data=result_dict, msg="查询工作流运行记录列表成功") - - -@WorkflowRouter.get( - "/run/detail/{id}", - summary="查询工作流运行记录详情", - description="查询工作流运行记录详情", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def get_workflow_run_detail_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:query"]))], -) -> JSONResponse: - """ - 查询工作流运行记录详情 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含工作流运行记录详情的JSON响应 - """ - result_dict = await WorkflowRunService.detail_service(auth=auth, id=id) - return SuccessResponse(data=result_dict, msg="查询工作流运行记录详情成功") - - -@WorkflowRouter.post( - "/run/create", - summary="创建工作流运行记录", - description="创建工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def create_workflow_run_controller( - data: WorkflowRunCreateSchema, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:create"]))], -) -> JSONResponse: - """ - 创建工作流运行记录 - - 参数: - - data (WorkflowRunCreateSchema): 创建模型 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含创建的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.create_service(auth=auth, data=data) - return SuccessResponse(data=result_dict, msg="创建工作流运行记录成功") - - -@WorkflowRouter.put( - "/run/update/{id}", - summary="更新工作流运行记录", - description="更新工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def update_workflow_run_controller( - id: int, - data: WorkflowRunUpdateSchema, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], -) -> JSONResponse: - """ - 更新工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - data (WorkflowRunUpdateSchema): 更新模型 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含更新的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.update_service(auth=auth, id=id, data=data) - return SuccessResponse(data=result_dict, msg="更新工作流运行记录成功") - - -@WorkflowRouter.delete( - "/run/delete", - summary="删除工作流运行记录", - description="删除工作流运行记录", - response_model=ResponseSchema[None], -) -async def delete_workflow_run_controller( - ids: list[int], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:delete"]))], -) -> JSONResponse: - """ - 删除工作流运行记录 - - 参数: - - ids (list[int]): 工作流运行记录ID列表 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含删除结果的JSON响应 - """ - await WorkflowRunService.delete_service(auth=auth, ids=ids) - return SuccessResponse(data=None, msg="删除工作流运行记录成功") - - -@WorkflowRouter.delete( - "/run/clear", - summary="清空工作流运行记录", - description="清空工作流运行记录", - response_model=ResponseSchema[None], -) -async def clear_workflow_run_controller( - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:delete"]))], -) -> JSONResponse: - """ - 清空工作流运行记录 - - 参数: - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含清空结果的JSON响应 - """ - await WorkflowRunService.clear_service(auth=auth) - return SuccessResponse(data=None, msg="清空工作流运行记录成功") - - -@WorkflowRouter.post( - "/run/cancel/{id}", - summary="取消工作流运行记录", - description="取消工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def cancel_workflow_run_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], -) -> JSONResponse: - """ - 取消工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含取消的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.cancel_service(auth=auth, id=id) - return SuccessResponse(data=result_dict, msg="取消工作流运行记录成功") - - -@WorkflowRouter.post( - "/run/retry/{id}", - summary="重试工作流运行记录", - description="重试工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def retry_workflow_run_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], - retry_count: int = 1, -) -> JSONResponse: - """ - 重试工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - retry_count (int): 重试次数 - - 返回: - - JSONResponse: 包含重试的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.retry_service(auth=auth, id=id, retry_count=retry_count) - return SuccessResponse(data=result_dict, msg="重试工作流运行记录成功") - - -@WorkflowRouter.post( - "/run/pause/{id}", - summary="暂停工作流运行记录", - description="暂停工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def pause_workflow_run_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], -) -> JSONResponse: - """ - 暂停工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含暂停的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.pause_service(auth=auth, id=id) - return SuccessResponse(data=result_dict, msg="暂停工作流运行记录成功") - - -@WorkflowRouter.post( - "/run/resume/{id}", - summary="恢复工作流运行记录", - description="恢复工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def resume_workflow_run_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], -) -> JSONResponse: - """ - 恢复工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含恢复的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.resume_service(auth=auth, id=id) - return SuccessResponse(data=result_dict, msg="恢复工作流运行记录成功") - - -@WorkflowRouter.post( - "/run/terminate/{id}", - summary="终止工作流运行记录", - description="终止工作流运行记录", - response_model=ResponseSchema[WorkflowRunOutSchema], -) -async def terminate_workflow_run_controller( - id: int, - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:update"]))], -) -> JSONResponse: - """ - 终止工作流运行记录 - - 参数: - - id (int): 工作流运行记录ID - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含终止的工作流运行记录的JSON响应 - """ - result_dict = await WorkflowRunService.terminate_service(auth=auth, id=id) - return SuccessResponse(data=result_dict, msg="终止工作流运行记录成功") - - -@WorkflowRouter.get( - "/run/log/list", - summary="查询工作流运行日志列表", - description="查询工作流运行日志列表", - response_model=ResponseSchema[list[WorkflowRunLogOutSchema]], -) -async def get_workflow_run_log_list_controller( - page: Annotated[PaginationQueryParam, Depends()], - search: Annotated[WorkflowRunLogQueryParam, Depends()], - auth: Annotated[AuthSchema, Depends(AuthPermission(["module_task:workflow:run:query"]))], -) -> JSONResponse: - """ - 查询工作流运行日志列表 - - 参数: - - page (PaginationQueryParam): 分页查询参数 - - search (WorkflowRunLogQueryParam): 查询参数 - - auth (AuthSchema): 认证信息模型 - - 返回: - - JSONResponse: 包含工作流运行日志列表的JSON响应 - """ - result_dict = await WorkflowRunLogService.page_service( - auth=auth, - page_no=page.page_no, - page_size=page.page_size, - search=search.__dict__ if search else None, - order_by=page.order_by, - ) - return SuccessResponse(data=result_dict, msg="查询工作流运行日志列表成功") diff --git a/backend/app/plugin/module_task/workflow/crud.py b/backend/app/plugin/module_task/workflow/crud.py index 8d061bf9..b38e9921 100644 --- a/backend/app/plugin/module_task/workflow/crud.py +++ b/backend/app/plugin/module_task/workflow/crud.py @@ -1,18 +1,12 @@ from collections.abc import Sequence -from typing import Any from app.api.v1.module_system.auth.schema import AuthSchema from app.core.base_crud import CRUDBase -from .model import WorkflowModel, WorkflowRunLogModel, WorkflowRunModel +from .model import WorkflowModel from .schema import ( WorkflowCreateSchema, WorkflowOutSchema, - WorkflowRunCreateSchema, - WorkflowRunLogCreateSchema, - WorkflowRunLogOutSchema, - WorkflowRunOutSchema, - WorkflowRunUpdateSchema, WorkflowUpdateSchema, ) @@ -156,124 +150,3 @@ class WorkflowCRUD(CRUDBase[WorkflowModel, WorkflowCreateSchema, WorkflowUpdateS out_schema=WorkflowOutSchema, preload=preload, ) - - async def list_templates_crud( - self, - search: dict | None = None, - order_by: list[dict] | None = None, - preload: list[str] | None = None, - ) -> Sequence[WorkflowModel]: - """ - 获取模板列表 - - 参数: - - search (dict | None): 查询参数 - - order_by (list[dict] | None): 排序参数 - - preload (list[str] | None): 预加载关系 - - 返回: - - Sequence[WorkflowModel]: 工作流模型实例序列 - """ - search_dict = search or {} - search_dict["is_template"] = (None, True) - return await self.list(search=search_dict, order_by=order_by, preload=preload) - - -class WorkflowRunCRUD(CRUDBase[WorkflowRunModel, WorkflowRunCreateSchema, WorkflowRunUpdateSchema]): - """工作流运行记录CRUD""" - - def __init__(self, auth: AuthSchema) -> None: - """初始化CRUD数据层""" - super().__init__(model=WorkflowRunModel, auth=auth) - - async def list_crud( - self, - search: dict | None = None, - order_by: list[dict] | None = None, - preload: list[str | Any] | None = None, - ) -> Sequence[WorkflowRunModel]: - """获取工作流运行记录列表""" - return await self.list(search=search, order_by=order_by, preload=preload) - - async def create_crud(self, data: WorkflowRunCreateSchema) -> WorkflowRunModel | None: - """创建工作流运行记录""" - return await self.create(data=data) - - async def get_by_id_crud(self, id: int) -> WorkflowRunModel | None: - """根据ID获取工作流运行记录""" - return await self.get(id=id) - - async def update_crud(self, id: int, data: WorkflowRunUpdateSchema) -> WorkflowRunModel | None: - """更新工作流运行记录""" - return await self.update(id=id, data=data) - - async def delete_crud(self, ids: list[int]) -> None: - """删除工作流运行记录""" - return await self.delete(ids=ids) - - async def clear_crud(self) -> None: - """清除所有工作流运行记录""" - return await self.clear() - - async def page_crud( - self, - offset: int, - limit: int, - order_by: list[dict] | None = None, - search: dict | None = None, - preload: list | None = None, - ) -> dict: - """分页查询工作流运行记录""" - order_by_list = order_by or [{"id": "desc"}] - search_dict = search or {} - - return await self.page( - offset=offset, - limit=limit, - order_by=order_by_list, - search=search_dict, - out_schema=WorkflowRunOutSchema, - preload=preload, - ) - - -class WorkflowRunLogCRUD(CRUDBase[WorkflowRunLogModel, WorkflowRunLogCreateSchema, WorkflowRunLogCreateSchema]): - """工作流运行日志CRUD""" - - def __init__(self, auth: AuthSchema) -> None: - """初始化CRUD数据层""" - super().__init__(model=WorkflowRunLogModel, auth=auth) - - async def list_crud( - self, - search: dict | None = None, - order_by: list[dict] | None = None, - preload: list[str | Any] | None = None, - ) -> Sequence[WorkflowRunLogModel]: - """获取工作流运行日志列表""" - return await self.list(search=search, order_by=order_by, preload=preload) - - async def create_crud(self, data: WorkflowRunLogCreateSchema) -> WorkflowRunLogModel | None: - """创建工作流运行日志""" - return await self.create(data=data) - - async def page_crud( - self, - offset: int, - limit: int, - order_by: list[dict] | None = None, - search: dict | None = None, - preload: list | None = None, - ) -> dict: - """分页查询工作流运行日志""" - order_by_list = order_by or [{"id": "desc"}] - search_dict = search or {} - - return await self.page( - offset=offset, - limit=limit, - order_by=order_by_list, - search=search_dict, - out_schema=WorkflowRunLogOutSchema, - preload=preload, - ) diff --git a/backend/app/plugin/module_task/workflow/engine.py b/backend/app/plugin/module_task/workflow/engine.py new file mode 100644 index 00000000..29fb663a --- /dev/null +++ b/backend/app/plugin/module_task/workflow/engine.py @@ -0,0 +1,397 @@ +import asyncio +import json +from collections import defaultdict +from collections.abc import Callable +from datetime import datetime +from typing import Any + +from sqlalchemy import select + +from app.core.database import async_db_session +from app.core.logger import log +from app.plugin.module_task.node.model import NodeModel +from app.plugin.module_task.workflow.model import WorkflowModel + + +class WorkflowRunLogModel: + pass + + +class NodeExecutionContext: + def __init__( + self, + node_id: str, + node_type: str, + args: str | None = None, + kwargs: str | None = None, + variables: dict | None = None, + input_data: Any = None, + ): + self.node_id = node_id + self.node_type = node_type + self.args = args + self.kwargs = kwargs + self.variables = variables or {} + self.input_data = input_data + self.output_data: Any = None + self.status: str = "pending" + self.error: str | None = None + self.start_time: datetime | None = None + self.end_time: datetime | None = None + + +class WorkflowExecutionContext: + def __init__( + self, + workflow_id: int, + workflow_name: str, + variables: dict | None = None, + business_key: str | None = None, + ): + self.workflow_id = workflow_id + self.workflow_name = workflow_name + self.variables = variables or {} + self.business_key = business_key + self.node_contexts: dict[str, NodeExecutionContext] = {} + self.status: str = "pending" + self.start_time: datetime | None = None + self.end_time: datetime | None = None + self.current_node: str | None = None + + +class WorkflowEngine: + """ + 工作流执行引擎 + + 功能: + 1. 解析工作流节点和边,构建执行图 + 2. 按拓扑顺序执行节点 + 3. 支持条件分支和并行执行 + 4. 记录执行日志 + """ + + _node_handlers: dict[str, Callable] = {} + + @classmethod + def register_handler(cls, node_type: str, handler: Callable) -> None: + """ + 注册节点处理器 + + 参数: + - node_type: 节点类型编码 + - handler: 处理函数,签名为 async (context: NodeExecutionContext) -> Any + """ + cls._node_handlers[node_type] = handler + + @classmethod + async def execute(cls, workflow: WorkflowModel, variables: dict | None = None, business_key: str | None = None) -> WorkflowExecutionContext: + """ + 执行工作流 + + 参数: + - workflow: 工作流模型实例 + - variables: 流程变量 + - business_key: 业务键 + + 返回: + - WorkflowExecutionContext: 执行上下文 + """ + context = WorkflowExecutionContext( + workflow_id=workflow.id, + workflow_name=workflow.name, + variables=variables or {}, + business_key=business_key, + ) + + context.start_time = datetime.now() + context.status = "running" + + try: + nodes = workflow.nodes if isinstance(workflow.nodes, list) else [] + edges = workflow.edges if isinstance(workflow.edges, list) else [] + + if not nodes: + context.status = "completed" + context.end_time = datetime.now() + return context + + node_map = {n.get("id"): n for n in nodes} + execution_order = cls._build_execution_order(nodes, edges) + + node_type_map = await cls._load_node_types([n.get("type") for n in nodes if n.get("type")]) + + for node_id in execution_order: + node_data = node_map.get(node_id) + if not node_data: + continue + + node_type_code = node_data.get("type") + node_args = node_data.get("data", {}).get("args", "") + node_kwargs = node_data.get("data", {}).get("kwargs", "{}") + + input_data = cls._collect_input_data(node_id, edges, context) + + node_context = NodeExecutionContext( + node_id=node_id, + node_type=node_type_code, + args=node_args, + kwargs=node_kwargs, + variables=context.variables, + input_data=input_data, + ) + context.node_contexts[node_id] = node_context + context.current_node = node_id + + node_type_info = node_type_map.get(node_type_code) + await cls._execute_node(node_context, node_type_info) + + if node_context.status == "failed": + context.status = "failed" + context.end_time = datetime.now() + return context + + if node_context.output_data: + context.variables[node_id] = node_context.output_data + + context.status = "completed" + except Exception as e: + log.error(f"工作流 {workflow.id} 执行失败: {e!s}") + context.status = "failed" + finally: + context.end_time = datetime.now() + context.current_node = None + + return context + + @classmethod + def _build_execution_order(cls, nodes: list, edges: list) -> list[str]: + """ + 构建节点执行顺序(拓扑排序) + + 参数: + - nodes: 节点列表 + - edges: 边列表 + + 返回: + - list[str]: 节点ID执行顺序 + """ + in_degree = defaultdict(int) + adjacency = defaultdict(list) + node_ids = {n.get("id") for n in nodes} + + for edge in edges: + source = edge.get("source") + target = edge.get("target") + if source in node_ids and target in node_ids: + adjacency[source].append(target) + in_degree[target] += 1 + + queue = [nid for nid in node_ids if in_degree[nid] == 0] + result = [] + + while queue: + node_id = queue.pop(0) + result.append(node_id) + + for neighbor in adjacency[node_id]: + in_degree[neighbor] -= 1 + if in_degree[neighbor] == 0: + queue.append(neighbor) + + for nid in node_ids: + if nid not in result: + result.append(nid) + + return result + + @classmethod + async def _load_node_types(cls, type_codes: list[str]) -> dict[str, NodeModel]: + """ + 加载节点类型定义 + + 参数: + - type_codes: 节点类型编码列表 + + 返回: + - dict[str, NodeModel]: 节点类型映射 + """ + if not type_codes: + return {} + + async with async_db_session() as session: + result = await session.execute(select(NodeModel).where(NodeModel.code.in_(type_codes))) + node_types = result.scalars().all() + return {nt.code: nt for nt in node_types} + + @classmethod + def _collect_input_data(cls, node_id: str, edges: list, context: WorkflowExecutionContext) -> dict: + """ + 收集节点输入数据(从上游节点的输出) + + 参数: + - node_id: 当前节点ID + - edges: 边列表 + - context: 执行上下文 + + 返回: + - dict: 输入数据 + """ + input_data = {} + for edge in edges: + if edge.get("target") == node_id: + source_id = edge.get("source") + source_context = context.node_contexts.get(source_id) + if source_context and source_context.output_data: + edge_label = edge.get("label", "default") + input_data[edge_label] = source_context.output_data + return input_data + + @classmethod + async def _execute_node(cls, context: NodeExecutionContext, node_type_info: NodeModel | None) -> None: + """ + 执行单个节点 + + 参数: + - context: 节点执行上下文 + - node_type_info: 节点类型定义 + """ + context.start_time = datetime.now() + context.status = "running" + + try: + handler = cls._node_handlers.get(context.node_type) + + if handler: + context.output_data = await handler(context) + elif node_type_info and node_type_info.func: + context.output_data = await cls._execute_code_block( + node_type_info.func, + node_type_info.args, + node_type_info.kwargs, + context, + ) + else: + log.warning(f"节点 {context.node_id} 没有注册处理器或代码块,跳过执行") + context.output_data = None + + context.status = "completed" + except Exception as e: + log.error(f"节点 {context.node_id} 执行失败: {e!s}") + context.status = "failed" + context.error = str(e) + finally: + context.end_time = datetime.now() + + @classmethod + async def _execute_code_block( + cls, + code_block: str, + args: str | None, + kwargs: str | None, + context: NodeExecutionContext, + ) -> Any: + """ + 执行代码块 + + 参数: + - code_block: 代码块 + - args: 位置参数 + - kwargs: 关键字参数 + - context: 节点执行上下文 + + 返回: + - Any: 执行结果 + """ + if not code_block or not code_block.strip(): + return None + + local_vars = { + "context": context, + "variables": context.variables, + "input_data": context.input_data, + } + + exec(code_block, {"__builtins__": __builtins__}, local_vars) + + handler = local_vars.get("handler") + if handler and callable(handler): + job_args = [] + if args: + args_str = str(args).strip() + if args_str: + job_args = [arg.strip() for arg in args_str.split(",") if arg.strip()] + + job_kwargs = {} + if kwargs: + kwargs_str = str(kwargs).strip() + if kwargs_str: + try: + job_kwargs = json.loads(kwargs_str) + except json.JSONDecodeError: + pass + + result = handler(*job_args, **job_kwargs) + if asyncio.iscoroutine(result): + return await result + return result + + return local_vars.get("result") + + +def register_builtin_handlers(): + """ + 注册内置节点处理器 + """ + + async def input_handler(context: NodeExecutionContext) -> Any: + return context.variables + + async def output_handler(context: NodeExecutionContext) -> Any: + return context.input_data + + async def condition_handler(context: NodeExecutionContext) -> Any: + try: + kwargs_str = str(context.kwargs or "{}").strip() + kwargs_data = json.loads(kwargs_str) if kwargs_str else {} + condition_expr = kwargs_data.get("condition", "True") + result = eval(condition_expr, {"__builtins__": __builtins__}, context.variables) + return {"condition_result": bool(result)} + except Exception as e: + log.error(f"条件表达式执行失败: {e!s}") + return {"condition_result": False} + + async def http_request_handler(context: NodeExecutionContext) -> Any: + import httpx + + kwargs_str = str(context.kwargs or "{}").strip() + kwargs_data = json.loads(kwargs_str) if kwargs_str else {} + + url = kwargs_data.get("url") + method = kwargs_data.get("method", "GET").upper() + headers = kwargs_data.get("headers", {}) + body = kwargs_data.get("body") + + if not url: + raise ValueError("HTTP请求节点缺少URL配置") + + async with httpx.AsyncClient() as client: + response = await client.request( + method=method, + url=url, + headers=headers, + json=body if body else None, + timeout=30.0, + ) + return { + "status_code": response.status_code, + "body": response.text, + "headers": dict(response.headers), + } + + WorkflowEngine.register_handler("input", input_handler) + WorkflowEngine.register_handler("output", output_handler) + WorkflowEngine.register_handler("condition", condition_handler) + WorkflowEngine.register_handler("http_request", http_request_handler) + + +register_builtin_handlers() diff --git a/backend/app/plugin/module_task/workflow/model.py b/backend/app/plugin/module_task/workflow/model.py index d938e7cf..3604be95 100644 --- a/backend/app/plugin/module_task/workflow/model.py +++ b/backend/app/plugin/module_task/workflow/model.py @@ -1,26 +1,11 @@ import enum -from datetime import datetime -from sqlalchemy import ( - JSON, - Boolean, - DateTime, - Integer, - String, - Text, -) +from sqlalchemy import JSON, String from sqlalchemy.orm import Mapped, mapped_column from app.core.base_model import ModelMixin, UserMixin -class StatusEnum(enum.Enum): - """状态枚举""" - - ACTIVE = "active" - INACTIVE = "inactive" - - class WorkflowStatusEnum(enum.Enum): """流程状态枚举""" @@ -29,18 +14,6 @@ class WorkflowStatusEnum(enum.Enum): ARCHIVED = "archived" -class RunStatusEnum(enum.Enum): - """运行状态枚举""" - - PENDING = "pending" - RUNNING = "running" - PAUSED = "paused" - COMPLETED = "completed" - FAILED = "failed" - CANCELLED = "cancelled" - TERMINATED = "terminated" - - class WorkflowModel(ModelMixin, UserMixin): """ 工作流模型 - 通用流程编排引擎 @@ -53,57 +26,5 @@ class WorkflowModel(ModelMixin, UserMixin): name: Mapped[str] = mapped_column(String(128), nullable=False, index=True, comment="流程名称") code: Mapped[str] = mapped_column(String(64), nullable=False, unique=True, index=True, comment="流程编码") status: Mapped[str] = mapped_column(String(32), default=WorkflowStatusEnum.DRAFT.value, nullable=False, index=True, comment="流程状态") - nodes: Mapped[dict] = mapped_column(JSON, nullable=False, default=dict, comment="节点数据(JSON格式)") - edges: Mapped[dict] = mapped_column(JSON, nullable=False, default=dict, comment="连线数据(JSON格式)") - version: Mapped[str] = mapped_column(String(32), default="1.0.0", comment="版本号") - category: Mapped[str | None] = mapped_column(String(64), nullable=True, index=True, comment="流程分类") - tags: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="标签(JSON数组)") - is_template: Mapped[bool] = mapped_column(Boolean, default=False, index=True, comment="是否为模板") - template_id: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="模板ID") - published_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, index=True, comment="发布时间") - published_by: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="发布人ID") - meta_data: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="元数据(JSON格式)") - - canvas_state: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="画布状态(缩放、平移等)") - thumbnail: Mapped[str | None] = mapped_column(Text, nullable=True, comment="流程缩略图(Base64)") - statistics: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="流程统计信息") - - execution_config: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="执行配置(超时、重试等)") - variables: Mapped[dict | None] = mapped_column(JSON, nullable=True, comment="全局变量") - timeout: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="流程执行超时时间(秒)") - - -class WorkflowRunModel(ModelMixin, UserMixin): - """工作流运行记录模型""" - __tablename__: str = "task_workflow_run" - __table_args__: dict[str, str] = {"comment": "工作流运行记录表"} - - workflow_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, comment="工作流ID") - workflow_name: Mapped[str] = mapped_column(String(128), nullable=False, comment="工作流名称") - workflow_version: Mapped[str] = mapped_column(String(32), default="1.0.0", comment="工作流版本") - business_key: Mapped[str | None] = mapped_column(String(128), nullable=True, comment="业务键") - initiator: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="发起人ID") - initiator_name: Mapped[str | None] = mapped_column(String(64), nullable=True, comment="发起人姓名") - variables: Mapped[dict] = mapped_column(JSON, default={}, comment="流程变量(JSON格式)") - status: Mapped[str] = mapped_column(String(32), default=RunStatusEnum.PENDING.value, nullable=False, index=True, comment="运行状态") - error_message: Mapped[str | None] = mapped_column(Text, nullable=True, comment="错误信息") - start_time: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, comment="开始时间") - end_time: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, comment="结束时间") - duration: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="执行时长(秒)") - retry_count: Mapped[int] = mapped_column(Integer, default=0, comment="重试次数") - max_retry: Mapped[int] = mapped_column(Integer, default=3, comment="最大重试次数") - job_id: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="关联的定时任务ID") - meta_data: Mapped[dict] = mapped_column(JSON, default={}, comment="元数据(JSON格式)") - - -class WorkflowRunLogModel(ModelMixin, UserMixin): - """工作流运行日志模型""" - __tablename__: str = "task_workflow_run_log" - __table_args__: dict[str, str] = {"comment": "工作流运行日志表"} - - task_run_id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, comment="工作流运行记录ID") - level: Mapped[str] = mapped_column(String(16), default="info", comment="日志级别") - node_id: Mapped[str | None] = mapped_column(String(64), nullable=True, comment="节点ID") - node_name: Mapped[str | None] = mapped_column(String(128), nullable=True, comment="节点名称") - message: Mapped[str] = mapped_column(Text, nullable=False, comment="日志消息") - data: Mapped[dict] = mapped_column(JSON, default={}, comment="日志数据(JSON格式)") + nodes: Mapped[list] = mapped_column(JSON, nullable=False, default=list, comment="节点数据(JSON格式)") + edges: Mapped[list] = mapped_column(JSON, nullable=False, default=list, comment="连线数据(JSON格式)") diff --git a/backend/app/plugin/module_task/workflow/schema.py b/backend/app/plugin/module_task/workflow/schema.py index d81bd655..2c04eedd 100644 --- a/backend/app/plugin/module_task/workflow/schema.py +++ b/backend/app/plugin/module_task/workflow/schema.py @@ -1,12 +1,10 @@ from dataclasses import dataclass -from datetime import datetime from fastapi import Query from pydantic import ( BaseModel, ConfigDict, Field, - field_serializer, field_validator, model_validator, ) @@ -25,15 +23,6 @@ class WorkflowCreateSchema(BaseModel): description: str | None = Field(default=None, description="流程描述") nodes: list = Field(default_factory=list, description="节点数据(JSON格式)") edges: list = Field(default_factory=list, description="连线数据(JSON格式)") - version: str = Field(default="1.0.0", description="版本号") - category: str | None = Field(default=None, description="流程分类") - tags: list[str] | None = Field(default=None, description="标签列表") - is_template: bool = Field(default=False, description="是否为模板") - template_id: int | None = Field(default=None, description="模板ID") - meta_data: dict | None = Field(default=None, description="元数据(JSON格式)") - canvas_state: dict | None = Field(default=None, description="画布状态(缩放、平移等)") - thumbnail: str | None = Field(default=None, description="流程缩略图(Base64)") - statistics: dict | None = Field(default=None, description="流程统计信息") @field_validator("code") @classmethod @@ -58,8 +47,6 @@ class WorkflowCreateSchema(BaseModel): @model_validator(mode="after") def _after_validation(self): """核心业务规则校验""" - if self.is_template and self.template_id: - raise ValueError("模板不能引用其他模板") if self.description and len(self.description) > 1000: raise ValueError("流程描述长度不能超过1000个字符") return self @@ -74,17 +61,6 @@ class WorkflowUpdateSchema(BaseModel): description: str | None = Field(default=None, description="流程描述") nodes: list | None = Field(default=None, description="节点数据(JSON格式)") edges: list | None = Field(default=None, description="连线数据(JSON格式)") - version: str | None = Field(default=None, description="版本号") - category: str | None = Field(default=None, description="流程分类") - tags: list[str] | None = Field(default=None, description="标签列表") - is_template: bool | None = Field(default=None, description="是否为模板") - template_id: int | None = Field(default=None, description="模板ID") - published_at: str | None = Field(default=None, description="发布时间") - published_by: int | None = Field(default=None, description="发布人ID") - meta_data: dict | None = Field(default=None, description="元数据(JSON格式)") - canvas_state: dict | None = Field(default=None, description="画布状态(缩放、平移等)") - thumbnail: str | None = Field(default=None, description="流程缩略图(Base64)") - statistics: dict | None = Field(default=None, description="流程统计信息") @field_validator("status") @classmethod @@ -99,8 +75,6 @@ class WorkflowUpdateSchema(BaseModel): @model_validator(mode="after") def _after_validation(self): """核心业务规则校验""" - if self.is_template and self.template_id: - raise ValueError("模板不能引用其他模板") if self.description and len(self.description) > 1000: raise ValueError("流程描述长度不能超过1000个字符") return self @@ -115,23 +89,7 @@ class WorkflowOutSchema(WorkflowUpdateSchema, BaseSchema, UserBySchema): class WorkflowPublishSchema(BaseModel): """发布工作流模型""" - version: str | None = Field(default=None, description="版本号") - - -class WorkflowValidateSchema(BaseModel): - """验证工作流模型""" - - nodes: list = Field(..., description="节点数据(JSON格式)") - edges: list = Field(..., description="连线数据(JSON格式)") - - -class WorkflowValidateResultSchema(BaseModel): - """工作流验证结果模型""" - - is_valid: bool = Field(..., description="是否有效") - errors: list[str] = Field(default_factory=list, description="错误列表") - warnings: list[str] = Field(default_factory=list, description="警告列表") - stats: dict = Field(default_factory=dict, description="统计信息") + pass @dataclass @@ -143,8 +101,6 @@ class WorkflowQueryParam: name: str | None = Query(None, description="流程名称"), code: str | None = Query(None, description="流程编码"), status: str | None = Query(None, description="流程状态"), - category: str | None = Query(None, description="流程分类"), - is_template: bool | None = Query(None, description="是否为模板"), created_time: list[DateTimeStr] | None = Query( None, description="创建时间范围", @@ -164,10 +120,6 @@ class WorkflowQueryParam: self.code = (QueueEnum.like.value, code) if status: self.status = (QueueEnum.eq.value, status) - if category: - self.category = (QueueEnum.eq.value, category) - if is_template is not None: - self.is_template = (QueueEnum.eq.value, is_template) if created_time and len(created_time) == 2: self.created_time = (QueueEnum.between.value, (created_time[0], created_time[1])) if updated_time and len(updated_time) == 2: @@ -190,124 +142,10 @@ class WorkflowExecuteSchema(BaseModel): class WorkflowExecuteResultSchema(BaseModel): """工作流执行结果模型""" - task_run_id: int = Field(..., description="任务运行记录ID") workflow_id: int = Field(..., description="工作流ID") workflow_name: str = Field(..., description="工作流名称") status: str = Field(..., description="执行状态") - message: str = Field(..., description="执行消息") - - -class WorkflowRunCreateSchema(BaseModel): - """创建工作流运行记录模型""" - workflow_id: int = Field(..., description="工作流ID") - workflow_name: str = Field(..., description="工作流名称") - workflow_version: str = Field(default="1.0.0", description="工作流版本") - business_key: str | None = Field(default=None, description="业务键") - initiator: int | None = Field(default=None, description="发起人ID") - initiator_name: str | None = Field(default=None, description="发起人姓名") - variables: dict = Field(default_factory=dict, description="流程变量(JSON格式)") - job_id: int | None = Field(default=None, description="关联的定时任务ID") - - -class WorkflowRunUpdateSchema(BaseModel): - """更新工作流运行记录模型""" - status: str | None = Field(default=None, description="运行状态") - error_message: str | None = Field(default=None, description="错误信息") - start_time: datetime | None = Field(default=None, description="开始时间") - end_time: datetime | None = Field(default=None, description="结束时间") - duration: int | None = Field(default=None, description="执行时长(秒)") - retry_count: int | None = Field(default=None, description="重试次数") - max_retry: int | None = Field(default=None, description="最大重试次数") - meta_data: dict | None = Field(default=None, description="元数据(JSON格式)") - - -class WorkflowRunOutSchema(WorkflowRunCreateSchema, WorkflowRunUpdateSchema, BaseSchema, UserBySchema): - """工作流运行记录响应模型""" - - model_config = ConfigDict(from_attributes=True) - - @field_serializer('start_time', 'end_time') - def serialize_datetime(self, value: datetime | None) -> str | None: - if value is None: - return None - return value.strftime("%Y-%m-%d %H:%M:%S") - - -class WorkflowRunLogCreateSchema(BaseModel): - """创建工作流运行日志模型""" - task_run_id: int = Field(..., description="工作流运行记录ID") - level: str = Field(default="info", description="日志级别") - node_id: str | None = Field(default=None, description="节点ID") - node_name: str | None = Field(default=None, description="节点名称") - message: str = Field(..., description="日志消息") - data: dict | None = Field(default=None, description="日志数据(JSON格式)") - - -class WorkflowRunLogOutSchema(BaseModel): - """工作流运行日志响应模型""" - id: int - task_run_id: int - level: str - node_id: str | None - node_name: str | None - message: str - data: dict | None - created_time: str - created_by: dict | None - - model_config = ConfigDict(from_attributes=True) - - -@dataclass -class WorkflowRunQueryParam: - """工作流运行记录查询参数""" - def __init__( - self, - workflow_id: int | None = Query(None, description="工作流ID"), - workflow_name: str | None = Query(None, description="工作流名称"), - status: str | None = Query(None, description="运行状态"), - business_key: str | None = Query(None, description="业务键"), - initiator: int | None = Query(None, description="发起人"), - job_id: int | None = Query(None, description="定时任务ID"), - created_time: list[str] | None = Query(None, description="创建时间范围"), - updated_time: list[str] | None = Query(None, description="更新时间范围"), - ) -> None: - if workflow_id: - self.workflow_id = (QueueEnum.eq.value, workflow_id) - if workflow_name: - self.workflow_name = (QueueEnum.like.value, workflow_name) - if status: - self.status = (QueueEnum.eq.value, status) - if business_key: - self.business_key = (QueueEnum.like.value, business_key) - if initiator: - self.initiator = (QueueEnum.eq.value, initiator) - if job_id: - self.job_id = (QueueEnum.eq.value, job_id) - if created_time and len(created_time) == 2: - self.created_time = (QueueEnum.between.value, (created_time[0], created_time[1])) - if updated_time and len(updated_time) == 2: - self.updated_time = (QueueEnum.between.value, (updated_time[0], updated_time[1])) - - -@dataclass -class WorkflowRunLogQueryParam: - """工作流运行日志查询参数""" - def __init__( - self, - task_run_id: int | None = Query(None, description="工作流运行记录ID"), - level: str | None = Query(None, description="日志级别"), - node_id: str | None = Query(None, description="节点ID"), - node_name: str | None = Query(None, description="节点名称"), - created_time: list[str] | None = Query(None, description="创建时间范围"), - ) -> None: - if task_run_id: - self.task_run_id = (QueueEnum.eq.value, task_run_id) - if level: - self.level = (QueueEnum.eq.value, level) - if node_id: - self.node_id = (QueueEnum.like.value, node_id) - if node_name: - self.node_name = (QueueEnum.like.value, node_name) - if created_time and len(created_time) == 2: - self.created_time = (QueueEnum.between.value, (created_time[0], created_time[1])) + start_time: str | None = Field(default=None, description="开始时间") + end_time: str | None = Field(default=None, description="结束时间") + variables: dict = Field(default_factory=dict, description="流程变量") + node_results: dict = Field(default_factory=dict, description="节点执行结果") diff --git a/backend/app/plugin/module_task/workflow/service.py b/backend/app/plugin/module_task/workflow/service.py index 8797bd3b..f2c706bb 100644 --- a/backend/app/plugin/module_task/workflow/service.py +++ b/backend/app/plugin/module_task/workflow/service.py @@ -1,24 +1,16 @@ -from datetime import datetime -from typing import Any from app.api.v1.module_system.auth.schema import AuthSchema from app.core.exceptions import CustomException -from .crud import WorkflowCRUD, WorkflowRunCRUD, WorkflowRunLogCRUD +from .crud import WorkflowCRUD +from .engine import WorkflowEngine from .schema import ( WorkflowCreateSchema, WorkflowExecuteSchema, WorkflowOutSchema, WorkflowPublishSchema, WorkflowQueryParam, - WorkflowRunCreateSchema, - WorkflowRunLogCreateSchema, - WorkflowRunLogOutSchema, - WorkflowRunOutSchema, - WorkflowRunUpdateSchema, WorkflowUpdateSchema, - WorkflowValidateResultSchema, - WorkflowValidateSchema, ) @@ -44,28 +36,6 @@ class WorkflowService: raise CustomException(msg="该工作流不存在") return WorkflowOutSchema.model_validate(obj).model_dump() - @classmethod - async def list_service( - cls, - auth: AuthSchema, - search: WorkflowQueryParam | None = None, - order_by: list[dict[str, str]] | None = None, - ) -> list[dict]: - """ - 列表查询 - - 参数: - - auth (AuthSchema): 认证信息模型 - - search (WorkflowQueryParam | None): 查询参数 - - order_by (list[dict[str, str]] | None): 排序参数 - - 返回: - - list[dict]: 工作流模型实例字典列表 - """ - search_dict = search.__dict__ if search else None - obj_list = await WorkflowCRUD(auth).list_crud(search=search_dict, order_by=order_by) - return [WorkflowOutSchema.model_validate(obj).model_dump() for obj in obj_list] - @classmethod async def page_service( cls, @@ -116,11 +86,6 @@ class WorkflowService: if obj: raise CustomException(msg="创建失败,流程编码已存在") - if data.template_id: - template = await WorkflowCRUD(auth).get_by_id_crud(id=data.template_id) - if not template or not template.is_template: - raise CustomException(msg="创建失败,模板不存在或不是模板") - obj = await WorkflowCRUD(auth).create_crud(data=data) return WorkflowOutSchema.model_validate(obj).model_dump() @@ -141,19 +106,11 @@ class WorkflowService: if not obj: raise CustomException(msg="更新失败,该工作流不存在") - if obj.status == "published": - raise CustomException(msg="更新失败,已发布的工作流不能直接修改,请先归档") - if data.code: exist_obj = await WorkflowCRUD(auth).get_by_code_crud(code=data.code) if exist_obj and exist_obj.id != id: raise CustomException(msg="更新失败,流程编码重复") - if data.template_id: - template = await WorkflowCRUD(auth).get_by_id_crud(id=data.template_id) - if not template or not template.is_template: - raise CustomException(msg="更新失败,模板不存在或不是模板") - obj = await WorkflowCRUD(auth).update_crud(id=id, data=data) return WorkflowOutSchema.model_validate(obj).model_dump() @@ -174,10 +131,6 @@ class WorkflowService: obj_list = await WorkflowCRUD(auth).list_crud(search={"id": (None, ids)}) - for obj in obj_list: - if obj.status == "published": - raise CustomException(msg=f"删除失败,ID为{obj.id}的工作流已发布,无法删除") - if len(obj_list) != len(ids): existing_ids = {obj.id for obj in obj_list} missing_ids = set(ids) - existing_ids @@ -207,137 +160,11 @@ class WorkflowService: update_data = WorkflowUpdateSchema( status="published", - version=data.version or obj.version, - published_at=datetime.now().isoformat(), - published_by=auth.user.id if auth.user else None, ) obj = await WorkflowCRUD(auth).update_crud(id=id, data=update_data) return WorkflowOutSchema.model_validate(obj).model_dump() - @classmethod - async def validate_service(cls, auth: AuthSchema, data: WorkflowValidateSchema) -> WorkflowValidateResultSchema: - """ - 验证工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - data (WorkflowValidateSchema): 验证模型 - - 返回: - - WorkflowValidateResultSchema: 验证结果 - """ - errors = [] - warnings = [] - stats = {} - - nodes = data.nodes if isinstance(data.nodes, list) else [] - edges = data.edges if isinstance(data.edges, list) else [] - - stats["totalNodes"] = len(nodes) - stats["totalEdges"] = len(edges) - stats["nodeTypes"] = {} - - for node in nodes: - node_type = node.get("type", "unknown") - stats["nodeTypes"][node_type] = stats["nodeTypes"].get(node_type, 0) + 1 - - if len(nodes) == 0: - errors.append("流程中没有节点") - - node_ids = {n.get("id") for n in nodes} - for edge in edges: - source = edge.get("source") - target = edge.get("target") - if source not in node_ids: - errors.append(f"连线 {edge.get('label') or edge.get('id')} 的源节点不存在") - if target not in node_ids: - errors.append(f"连线 {edge.get('label') or edge.get('id')} 的目标节点不存在") - - is_valid = len(errors) == 0 - - return WorkflowValidateResultSchema( - is_valid=is_valid, - errors=errors, - warnings=warnings, - stats=stats, - ) - - @classmethod - async def templates_service(cls, auth: AuthSchema) -> list[dict]: - """ - 获取模板列表 - - 参数: - - auth (AuthSchema): 认证信息模型 - - 返回: - - list[dict]: 模板列表 - """ - obj_list = await WorkflowCRUD(auth).list_templates_crud(order_by=[{"id": "asc"}]) - return [WorkflowOutSchema.model_validate(obj).model_dump() for obj in obj_list] - - @classmethod - async def export_service(cls, auth: AuthSchema, id: int) -> dict: - """ - 导出工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - id (int): 工作流ID - - 返回: - - dict: 工作流数据 - """ - obj = await WorkflowCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="导出失败,该工作流不存在") - - return { - "id": obj.id, - "name": obj.name, - "code": obj.code, - "description": obj.description, - "nodes": obj.nodes, - "edges": obj.edges, - "version": obj.version, - "category": obj.category, - "metadata": obj.meta_data, - "exportedAt": datetime.now().isoformat(), - } - - @classmethod - async def import_service(cls, auth: AuthSchema, data: dict) -> dict: - """ - 导入工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - data (dict): 工作流数据 - - 返回: - - dict: 工作流模型实例字典 - """ - code = data.get("code") - if code: - exist_obj = await WorkflowCRUD(auth).get_by_code_crud(code=code) - if exist_obj: - raise CustomException(msg="导入失败,流程编码已存在") - - create_data = WorkflowCreateSchema( - name=data.get("name", "导入的工作流"), - code=data.get("code", f"imported_{datetime.now().timestamp()}"), - description=data.get("description"), - nodes=data.get("nodes", []), - edges=data.get("edges", []), - version=data.get("version", "1.0.0"), - category=data.get("category"), - meta_data=data.get("metadata"), - ) - - obj = await WorkflowCRUD(auth).create_crud(data=create_data) - return WorkflowOutSchema.model_validate(obj).model_dump() - @classmethod async def execute_service(cls, auth: AuthSchema, data: WorkflowExecuteSchema) -> dict: """ @@ -350,713 +177,32 @@ class WorkflowService: 返回: - dict: 执行结果 """ - task_run_id = await WorkflowRunService.execute_workflow( - auth=auth, - workflow_id=data.workflow_id, - variables=data.variables, - business_key=data.business_key, - initiator=auth.user.id if auth.user else None, - initiator_name=auth.user.username if auth.user else None, - job_id=data.job_id, - ) - - return { - "task_run_id": task_run_id, - "workflow_id": data.workflow_id, - "status": "running", - "message": "任务执行已启动", - } - - @classmethod - async def pause_service(cls, auth: AuthSchema, id: int) -> None: - """ - 暂停工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - id (int): 工作流ID - - 返回: - - None - """ - obj = await WorkflowCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="工作流不存在") - - await WorkflowRunService.pause_service(auth=auth, id=id) - - @classmethod - async def resume_service(cls, auth: AuthSchema, id: int) -> None: - """ - 恢复工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - id (int): 工作流ID - - 返回: - - None - """ - obj = await WorkflowCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="工作流不存在") - - await WorkflowRunService.resume_service(auth=auth, id=id) - - @classmethod - async def terminate_service(cls, auth: AuthSchema, id: int) -> None: - """ - 终止工作流 - - 参数: - - auth (AuthSchema): 认证信息模型 - - id (int): 工作流ID - - 返回: - - None - """ - obj = await WorkflowCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="工作流不存在") - - await WorkflowRunService.terminate_service(auth=auth, id=id) - - -class WorkflowRunService: - """工作流运行记录管理模块服务层""" - - @classmethod - async def list_service(cls, auth: AuthSchema, search: dict | None = None, order_by: list[dict] | None = None) -> list[dict]: - """获取工作流运行记录列表""" - search_dict = search.__dict__ if search else {} - order_by_list = order_by or [{"id": "desc"}] - - obj_list = await WorkflowRunCRUD(auth).list_crud(search=search_dict, order_by=order_by_list) - return [WorkflowRunOutSchema.model_validate(obj).model_dump() for obj in obj_list] - - @classmethod - async def page_service( - cls, - auth: AuthSchema, - page_no: int, - page_size: int, - search: dict | None = None, - order_by: list[dict] | None = None, - ) -> dict: - """分页查询工作流运行记录""" - search_dict = search.__dict__ if search else {} - order_by_list = order_by or [{"id": "desc"}] - offset = (page_no - 1) * page_size - - result = await WorkflowRunCRUD(auth).page_crud( - offset=offset, - limit=page_size, - order_by=order_by_list, - search=search_dict, - ) - return result - - @classmethod - async def detail_service(cls, auth: AuthSchema, id: int) -> dict: - """获取工作流运行记录详情""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="查询失败,该工作流运行记录不存在") - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def create_service(cls, auth: AuthSchema, data: WorkflowRunCreateSchema) -> dict: - """创建工作流运行记录""" - obj = await WorkflowRunCRUD(auth).create_crud(data=data) - if not obj: - raise CustomException(msg="创建失败,工作流运行记录创建失败") - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def update_service(cls, auth: AuthSchema, id: int, data: WorkflowRunUpdateSchema) -> dict: - """更新工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="更新失败,该工作流运行记录不存在") - - obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=data) - if not obj: - raise CustomException(msg="更新失败,工作流运行记录更新失败") - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def delete_service(cls, auth: AuthSchema, ids: list[int]) -> None: - """删除工作流运行记录""" - if len(ids) < 1: - raise CustomException(msg="删除失败,删除对象不能为空") - - obj_list = await WorkflowRunCRUD(auth).list_crud(search={"id": (None, ids)}) - if not obj_list or len(obj_list) != len(ids): - raise CustomException(msg="删除失败,部分工作流运行记录不存在") - - await WorkflowRunCRUD(auth).delete_crud(ids=ids) - - @classmethod - async def clear_service(cls, auth: AuthSchema) -> None: - """清除所有工作流运行记录""" - await WorkflowRunCRUD(auth).clear_crud() - - @classmethod - async def cancel_service(cls, auth: AuthSchema, id: int) -> dict: - """取消工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="取消失败,该工作流运行记录不存在") - - if obj.status in ["completed", "failed", "cancelled"]: - raise CustomException(msg="取消失败,该工作流运行记录已完成或已取消") - - update_data = WorkflowRunUpdateSchema( - status="cancelled", - end_time=datetime.now(), - ) - obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=update_data) - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def pause_service(cls, auth: AuthSchema, id: int) -> dict: - """暂停工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="暂停失败,该工作流运行记录不存在") - - if obj.status not in ["running", "pending"]: - raise CustomException(msg="暂停失败,只能暂停运行中或待执行的工作流运行记录") - - update_data = WorkflowRunUpdateSchema( - status="paused", - ) - obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=update_data) - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def resume_service(cls, auth: AuthSchema, id: int) -> dict: - """恢复工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="恢复失败,该工作流运行记录不存在") - - if obj.status != "paused": - raise CustomException(msg="恢复失败,只能恢复已暂停的工作流运行记录") - - update_data = WorkflowRunUpdateSchema( - status="running", - ) - obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=update_data) - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def terminate_service(cls, auth: AuthSchema, id: int) -> dict: - """终止工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="终止失败,该工作流运行记录不存在") - - if obj.status in ["completed", "failed", "cancelled", "terminated"]: - raise CustomException(msg="终止失败,该工作流运行记录已完成或已终止") - - update_data = WorkflowRunUpdateSchema( - status="terminated", - end_time=datetime.now(), - ) - obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=update_data) - return WorkflowRunOutSchema.model_validate(obj).model_dump() - - @classmethod - async def retry_service(cls, auth: AuthSchema, id: int, retry_count: int = 1) -> dict: - """重试工作流运行记录""" - obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not obj: - raise CustomException(msg="重试失败,该工作流运行记录不存在") - - if obj.status not in ["failed", "cancelled"]: - raise CustomException(msg="重试失败,只能重试失败或已取消的工作流运行记录") - - if obj.retry_count >= obj.max_retry: - raise CustomException(msg=f"重试失败,已达到最大重试次数{obj.max_retry}") - - update_data = WorkflowRunUpdateSchema( - status="pending", - retry_count=obj.retry_count + retry_count, - error_message=None, - start_time=None, - end_time=None, - duration=None, - ) - updated_obj = await WorkflowRunCRUD(auth).update_crud(id=id, data=update_data) - - if not updated_obj: - raise CustomException(msg="重试失败,更新工作流运行记录失败") - - try: - await cls.execute_workflow( - auth=auth, - workflow_id=obj.workflow_id, - variables=obj.variables, - business_key=obj.business_key, - initiator=obj.initiator, - initiator_name=obj.initiator_name, - job_id=obj.job_id, - task_run_id=id, - ) - except Exception: - pass - - final_obj = await WorkflowRunCRUD(auth).get_by_id_crud(id=id) - if not final_obj: - raise CustomException(msg="重试失败,获取工作流运行记录失败") - - return WorkflowRunOutSchema.model_validate(final_obj).model_dump() - - @classmethod - async def execute_workflow( - cls, - auth: AuthSchema, - workflow_id: int, - variables: dict, - business_key: str | None, - initiator: int | None, - initiator_name: str | None, - job_id: int | None, - task_run_id: int | None = None, - ) -> int: - """执行工作流""" - workflow = await WorkflowCRUD(auth).get_by_id_crud(id=workflow_id) + workflow = await WorkflowCRUD(auth).get_by_id_crud(id=data.workflow_id) if not workflow: raise CustomException(msg="工作流不存在") - nodes = workflow.nodes if isinstance(workflow.nodes, list) else [] - edges = workflow.edges if isinstance(workflow.edges, list) else [] + if workflow.status != "published": + raise CustomException(msg="工作流未发布,无法执行") - if not nodes: - raise CustomException(msg="工作流没有节点") - - start_time = datetime.now() - - if not task_run_id: - create_data = WorkflowRunCreateSchema( - workflow_id=workflow_id, - workflow_name=workflow.name, - workflow_version=workflow.version, - business_key=business_key, - initiator=initiator, - initiator_name=initiator_name, - variables=variables, - job_id=job_id, - ) - task_run = await WorkflowRunCRUD(auth).create_crud(data=create_data) - if not task_run: - raise CustomException(msg="创建工作流运行记录失败") - task_run_id = task_run.id - - if task_run_id is None: - raise CustomException(msg="工作流运行记录ID不能为空") - - update_data = WorkflowRunUpdateSchema( - status="running", - start_time=start_time, - ) - await WorkflowRunCRUD(auth).update_crud(id=task_run_id, data=update_data) - - try: - await cls._execute_nodes( - auth=auth, - task_run_id=task_run_id, - nodes=nodes, - edges=edges, - variables=variables, - ) - - end_time = datetime.now() - duration = int((end_time - start_time).total_seconds()) - - update_data = WorkflowRunUpdateSchema( - status="completed", - end_time=end_time, - duration=duration, - ) - await WorkflowRunCRUD(auth).update_crud(id=task_run_id, data=update_data) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - message=f"工作流执行完成,总耗时: {duration}秒", - ) - - except Exception as e: - end_time = datetime.now() - duration = int((end_time - start_time).total_seconds()) - - update_data = WorkflowRunUpdateSchema( - status="failed", - end_time=end_time, - duration=duration, - error_message=str(e), - ) - await WorkflowRunCRUD(auth).update_crud(id=task_run_id, data=update_data) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="error", - message=f"工作流执行失败: {e!s}", - ) - - raise - - return task_run_id - - @classmethod - async def _execute_nodes( - cls, - auth: AuthSchema, - task_run_id: int, - nodes: list[dict[str, Any]], - edges: list[dict[str, Any]], - variables: dict, - ) -> None: - """执行节点""" - node_map = {node.get("id"): node for node in nodes} - edge_map = {} - target_nodes = set() - for edge in edges: - source = edge.get("source") - target = edge.get("target") - if source not in edge_map: - edge_map[source] = [] - edge_map[source].append(edge) - target_nodes.add(target) - - start_nodes = [node for node in nodes if node.get("id") not in target_nodes] - if not start_nodes: - start_nodes = [node for node in nodes if node.get("type") == "trigger"] - if not start_nodes: - raise CustomException(msg="工作流缺少起始节点") - - executed_nodes = set() - queue = start_nodes.copy() - - while queue: - current_node = queue.pop(0) - node_id = current_node.get("id") - - if node_id in executed_nodes: - continue - - executed_nodes.add(node_id) - - await cls._execute_node( - auth=auth, - task_run_id=task_run_id, - node=current_node, - variables=variables, - ) - - if node_id in edge_map: - for edge in edge_map[node_id]: - target_id = edge.get("target") - target_node = node_map.get(target_id) - if target_node and target_id not in executed_nodes: - target_node_type = target_node.get("type") - - if target_node_type == "condition": - condition = target_node.get("data", {}).get("condition", "True") - try: - result = bool(eval(condition, {}, variables)) - except Exception: - result = False - - for next_edge in edge_map.get(target_id, []): - next_target_id = next_edge.get("target") - next_target_node = node_map.get(next_target_id) - edge_label = next_edge.get("label", "") - - if next_target_node and next_target_id not in executed_nodes: - if edge_label == "true" and result: - queue.append(next_target_node) - elif edge_label == "false" and not result: - queue.append(next_target_node) - else: - queue.append(target_node) - - @classmethod - async def _execute_node( - cls, - auth: AuthSchema, - task_run_id: int, - node: dict[str, Any], - variables: dict, - ) -> None: - """执行单个节点""" - node_id = str(node.get("id", "")) - node_type = node.get("type", "") - node_name = node.get("data", {}).get("label", "未知节点") - node_config = node.get("data", {}) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"开始执行节点: {node_name}", + context = await WorkflowEngine.execute( + workflow=workflow, + variables=data.variables, + business_key=data.business_key, ) - try: - if node_type == "task": - await cls._execute_task_node(auth, task_run_id, node_id, node_name, node_config, variables) - elif node_type == "approval": - await cls._execute_approval_node(auth, task_run_id, node_id, node_name, node_config, variables) - elif node_type == "condition": - await cls._execute_condition_node(auth, task_run_id, node_id, node_name, node_config, variables) - elif node_type == "notification": - await cls._execute_notification_node(auth, task_run_id, node_id, node_name, node_config, variables) - elif node_type == "timer": - await cls._execute_timer_node(auth, task_run_id, node_id, node_name, node_config, variables) - elif node_type == "parallel": - await cls._execute_parallel_node(auth, task_run_id, node_id, node_name, node_config, variables) - else: - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="warning", - node_id=node_id, - node_name=node_name, - message=f"未知节点类型: {node_type}", - ) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"节点执行完成: {node_name}", - ) - - except Exception as e: - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="error", - node_id=node_id, - node_name=node_name, - message=f"节点执行失败: {node_name}, 错误: {e!s}", - ) - raise - - @classmethod - async def _execute_task_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行任务节点""" - task_type = node_config.get("task_type", "default") - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"执行任务类型: {task_type}", - ) - - variables[f"{node_id}_result"] = {"status": "success", "output": "任务执行成功"} - - @classmethod - async def _execute_approval_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行审批节点""" - approvers = node_config.get("approvers", []) - approval_type = node_config.get("approval_type", "or") - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"审批类型: {approval_type}, 审批人: {approvers}", - ) - - variables[f"{node_id}_result"] = {"status": "approved", "output": "审批通过"} - - @classmethod - async def _execute_condition_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行条件节点""" - condition = node_config.get("condition", "True") - - try: - result = bool(eval(condition, {}, variables)) - except Exception as e: - result = False - raise CustomException(msg=f"条件表达式执行失败: {e!s}") - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"条件表达式: {condition}, 结果: {result}", - ) - - variables[f"{node_id}_result"] = {"status": "success", "result": result} - - @classmethod - async def _execute_notification_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行通知节点""" - notification_type = node_config.get("notification_type", "email") - recipients = node_config.get("recipients", []) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"发送通知: {notification_type}, 收件人: {recipients}", - ) - - variables[f"{node_id}_result"] = {"status": "sent", "output": "通知发送成功"} - - @classmethod - async def _execute_timer_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行定时节点""" - timer_type = node_config.get("timer_type", "delay") - timer_value = node_config.get("timer_value", 0) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"定时器类型: {timer_type}, 值: {timer_value}", - ) - - variables[f"{node_id}_result"] = {"status": "completed", "output": "定时器执行完成"} - - @classmethod - async def _execute_parallel_node( - cls, - auth: AuthSchema, - task_run_id: int, - node_id: str, - node_name: str, - node_config: dict, - variables: dict, - ) -> None: - """执行并行节点""" - parallel_count = node_config.get("parallel_count", 1) - - await cls._add_log( - auth=auth, - task_run_id=task_run_id, - level="info", - node_id=node_id, - node_name=node_name, - message=f"并行执行数量: {parallel_count}", - ) - - variables[f"{node_id}_result"] = {"status": "completed", "output": "并行执行完成"} - - @classmethod - async def _add_log( - cls, - auth: AuthSchema, - task_run_id: int, - level: str, - message: str, - node_id: str | None = None, - node_name: str | None = None, - data: dict | None = None, - ) -> None: - """添加日志""" - log_data = WorkflowRunLogCreateSchema( - task_run_id=task_run_id, - level=level, - node_id=node_id, - node_name=node_name, - message=message, - data=data or {}, - ) - await WorkflowRunLogCRUD(auth).create_crud(data=log_data) - - -class WorkflowRunLogService: - """工作流运行日志管理模块服务层""" - - @classmethod - async def list_service(cls, auth: AuthSchema, search: dict | None = None, order_by: list[dict] | None = None) -> list[dict]: - """获取工作流运行日志列表""" - search_dict = search.__dict__ if search else {} - order_by_list = order_by or [{"id": "desc"}] - - obj_list = await WorkflowRunLogCRUD(auth).list_crud(search=search_dict, order_by=order_by_list) - return [WorkflowRunLogOutSchema.model_validate(obj).model_dump() for obj in obj_list] - - @classmethod - async def page_service( - cls, - auth: AuthSchema, - page_no: int, - page_size: int, - search: dict | None = None, - order_by: list[dict] | None = None, - ) -> dict: - """分页查询工作流运行日志""" - search_dict = search.__dict__ if search else {} - order_by_list = order_by or [{"id": "desc"}] - offset = (page_no - 1) * page_size - - result = await WorkflowRunLogCRUD(auth).page_crud( - offset=offset, - limit=page_size, - order_by=order_by_list, - search=search_dict, - ) - return result + return { + "workflow_id": data.workflow_id, + "workflow_name": workflow.name, + "status": context.status, + "start_time": context.start_time.isoformat() if context.start_time else None, + "end_time": context.end_time.isoformat() if context.end_time else None, + "variables": context.variables, + "node_results": { + node_id: { + "status": ctx.status, + "output": ctx.output_data, + "error": ctx.error, + } + for node_id, ctx in context.node_contexts.items() + }, + } diff --git a/backend/app/scripts/data/sys_menu.json b/backend/app/scripts/data/sys_menu.json index 5e9f621f..08f16d6a 100644 --- a/backend/app/scripts/data/sys_menu.json +++ b/backend/app/scripts/data/sys_menu.json @@ -154,7 +154,7 @@ "description": "初始化数据" }, { - "name": "详情改菜", + "name": "详情菜单", "type": 3, "icon": null, "order": 5, @@ -166,7 +166,7 @@ "keep_alive": true, "hidden": false, "always_show": false, - "title": "详情改菜", + "title": "详情菜单", "params": null, "affix": false, "redirect": null, @@ -2901,68 +2901,11 @@ "redirect": null, "description": "发布工作流" }, - { - "name": "验证工作流", - "type": 3, - "icon": null, - "order": 5, - "permission": "module_task:workflow:validate", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "验证工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "验证工作流" - }, - { - "name": "导出工作流", - "type": 3, - "icon": null, - "order": 6, - "permission": "module_task:workflow:export", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "导出工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "导出工作流" - }, - { - "name": "导入工作流", - "type": 3, - "icon": null, - "order": 7, - "permission": "module_task:workflow:import", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "导入工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "导入工作流" - }, { "name": "执行工作流", "type": 3, "icon": null, - "order": 8, + "order": 5, "permission": "module_task:workflow:execute", "route_name": null, "route_path": null, @@ -2981,7 +2924,7 @@ "name": "详情工作流", "type": 3, "icon": null, - "order": 9, + "order": 6, "permission": "module_task:workflow:detail", "route_name": null, "route_path": null, @@ -3000,7 +2943,7 @@ "name": "查询工作流", "type": 3, "icon": null, - "order": 10, + "order": 7, "permission": "module_task:workflow:query", "route_name": null, "route_path": null, @@ -3014,215 +2957,6 @@ "affix": false, "redirect": null, "description": "查询工作流" - }, - { - "name": "创建运行记录", - "type": 3, - "icon": null, - "order": 11, - "permission": "module_task:workflow:run:create", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "创建运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "创建运行记录" - }, - { - "name": "更新运行记录", - "type": 3, - "icon": null, - "order": 12, - "permission": "module_task:workflow:run:update", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "更新运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "更新运行记录" - }, - { - "name": "删除运行记录", - "type": 3, - "icon": null, - "order": 13, - "permission": "module_task:workflow:run:delete", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "删除运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "删除运行记录" - }, - { - "name": "清空运行记录", - "type": 3, - "icon": null, - "order": 14, - "permission": "module_task:workflow:run:delete", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "清空运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "清空运行记录" - }, - { - "name": "取消运行记录", - "type": 3, - "icon": null, - "order": 15, - "permission": "module_task:workflow:run:update", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "取消运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "取消运行记录" - }, - { - "name": "重试运行记录", - "type": 3, - "icon": null, - "order": 16, - "permission": "module_task:workflow:run:update", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "重试运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "重试运行记录" - }, - { - "name": "详情运行记录", - "type": 3, - "icon": null, - "order": 17, - "permission": "module_task:workflow:run:query", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "详情运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "详情运行记录" - }, - { - "name": "查询运行记录", - "type": 3, - "icon": null, - "order": 18, - "permission": "module_task:workflow:run:query", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "查询运行记录", - "params": null, - "affix": false, - "redirect": null, - "description": "查询运行记录" - }, - { - "name": "暂停工作流", - "type": 3, - "icon": null, - "order": 19, - "permission": "module_task:workflow:pause", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "暂停工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "暂停工作流" - }, - { - "name": "恢复工作流", - "type": 3, - "icon": null, - "order": 20, - "permission": "module_task:workflow:resume", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "恢复工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "恢复工作流" - }, - { - "name": "终止工作流", - "type": 3, - "icon": null, - "order": 21, - "permission": "module_task:workflow:terminate", - "route_name": null, - "route_path": null, - "component_path": null, - "status": "0", - "keep_alive": true, - "hidden": false, - "always_show": false, - "title": "终止工作流", - "params": null, - "affix": false, - "redirect": null, - "description": "终止工作流" } ] } @@ -3441,4 +3175,4 @@ } ] } -] +] \ No newline at end of file diff --git a/backend/app/utils/upload_util.py b/backend/app/utils/upload_util.py index cb8523c5..da48ad3a 100644 --- a/backend/app/utils/upload_util.py +++ b/backend/app/utils/upload_util.py @@ -1,6 +1,3 @@ -import hashlib -import imghdr -import mimetypes import os import random import re @@ -15,7 +12,6 @@ from app.config.setting import settings from app.core.exceptions import CustomException from app.core.logger import log - DANGEROUS_EXTENSIONS = { ".py", ".pyc", diff --git a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/data_level0.bin b/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/data_level0.bin deleted file mode 100644 index dd3082eb..00000000 Binary files a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/data_level0.bin and /dev/null differ diff --git a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/header.bin b/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/header.bin deleted file mode 100644 index 2349a18e..00000000 Binary files a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/header.bin and /dev/null differ diff --git a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/length.bin b/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/length.bin deleted file mode 100644 index cb3e1628..00000000 Binary files a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/length.bin and /dev/null differ diff --git a/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/link_lists.bin b/backend/data/chroma/ae7aebe3-8927-48ba-b976-965a1a427127/link_lists.bin deleted file mode 100644 index e69de29b..00000000 diff --git a/backend/data/chroma/chroma.sqlite3 b/backend/data/chroma/chroma.sqlite3 deleted file mode 100644 index ae2b87b1..00000000 Binary files a/backend/data/chroma/chroma.sqlite3 and /dev/null differ diff --git a/backend/sql/mysql/fastapiadmin_2026-01-03_201546.sql b/backend/sql/mysql/fastapiadmin_2026-01-03_201546.sql deleted file mode 100644 index 3aea24b2..00000000 --- a/backend/sql/mysql/fastapiadmin_2026-01-03_201546.sql +++ /dev/null @@ -1,894 +0,0 @@ --- MySQL dump 10.13 Distrib 8.4.3, for macos14.5 (arm64) --- --- Host: 127.0.0.1 Database: fastapiadmin --- ------------------------------------------------------ --- Server version 8.4.3 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!50503 SET NAMES utf8mb4 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `app_ai_mcp` --- - -DROP TABLE IF EXISTS `app_ai_mcp`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `app_ai_mcp` ( - `name` varchar(50) NOT NULL COMMENT 'MCP 名称', - `type` int NOT NULL COMMENT 'MCP 类型(0:stdio 1:sse)', - `url` varchar(255) DEFAULT NULL COMMENT '远程 SSE 地址', - `command` varchar(255) DEFAULT NULL COMMENT 'MCP 命令', - `args` varchar(255) DEFAULT NULL COMMENT 'MCP 命令参数', - `env` json DEFAULT NULL COMMENT 'MCP 环境变量', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_app_ai_mcp_uuid` (`uuid`), - KEY `ix_app_ai_mcp_created_time` (`created_time`), - KEY `ix_app_ai_mcp_id` (`id`), - KEY `ix_app_ai_mcp_updated_time` (`updated_time`), - KEY `ix_app_ai_mcp_created_id` (`created_id`), - KEY `ix_app_ai_mcp_status` (`status`), - KEY `ix_app_ai_mcp_updated_id` (`updated_id`), - CONSTRAINT `app_ai_mcp_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `app_ai_mcp_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MCP 服务器表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `app_ai_mcp` --- - -/*!40000 ALTER TABLE `app_ai_mcp` DISABLE KEYS */; -/*!40000 ALTER TABLE `app_ai_mcp` ENABLE KEYS */; - --- --- Table structure for table `app_job` --- - -DROP TABLE IF EXISTS `app_job`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `app_job` ( - `name` varchar(64) DEFAULT NULL COMMENT '任务名称', - `jobstore` varchar(64) DEFAULT NULL COMMENT '存储器', - `executor` varchar(64) DEFAULT NULL COMMENT '执行器:将运行此作业的执行程序的名称', - `trigger` varchar(64) NOT NULL COMMENT '触发器:控制此作业计划的 trigger 对象', - `trigger_args` text COMMENT '触发器参数', - `func` text NOT NULL COMMENT '任务函数', - `args` text COMMENT '位置参数', - `kwargs` text COMMENT '关键字参数', - `coalesce` tinyint(1) DEFAULT NULL COMMENT '是否合并运行:是否在多个运行时间到期时仅运行作业一次', - `max_instances` int DEFAULT NULL COMMENT '最大实例数:允许的最大并发执行实例数', - `start_date` varchar(64) DEFAULT NULL COMMENT '开始时间', - `end_date` varchar(64) DEFAULT NULL COMMENT '结束时间', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_app_job_uuid` (`uuid`), - KEY `ix_app_job_status` (`status`), - KEY `ix_app_job_created_id` (`created_id`), - KEY `ix_app_job_updated_time` (`updated_time`), - KEY `ix_app_job_id` (`id`), - KEY `ix_app_job_created_time` (`created_time`), - KEY `ix_app_job_updated_id` (`updated_id`), - CONSTRAINT `app_job_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `app_job_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `app_job` --- - -/*!40000 ALTER TABLE `app_job` DISABLE KEYS */; -/*!40000 ALTER TABLE `app_job` ENABLE KEYS */; - --- --- Table structure for table `app_job_log` --- - -DROP TABLE IF EXISTS `app_job_log`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `app_job_log` ( - `job_name` varchar(64) NOT NULL COMMENT '任务名称', - `job_group` varchar(64) NOT NULL COMMENT '任务组名', - `job_executor` varchar(64) NOT NULL COMMENT '任务执行器', - `invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串', - `job_args` varchar(255) DEFAULT NULL COMMENT '位置参数', - `job_kwargs` varchar(255) DEFAULT NULL COMMENT '关键字参数', - `job_trigger` varchar(255) DEFAULT NULL COMMENT '任务触发器', - `job_message` varchar(500) DEFAULT NULL COMMENT '日志信息', - `exception_info` varchar(2000) DEFAULT NULL COMMENT '异常信息', - `job_id` int DEFAULT NULL COMMENT '任务ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_app_job_log_uuid` (`uuid`), - KEY `ix_app_job_log_created_time` (`created_time`), - KEY `ix_app_job_log_updated_time` (`updated_time`), - KEY `ix_app_job_log_id` (`id`), - KEY `ix_app_job_log_status` (`status`), - KEY `ix_app_job_log_job_id` (`job_id`), - CONSTRAINT `app_job_log_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `app_job` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务调度日志表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `app_job_log` --- - -/*!40000 ALTER TABLE `app_job_log` DISABLE KEYS */; -/*!40000 ALTER TABLE `app_job_log` ENABLE KEYS */; - --- --- Table structure for table `app_myapp` --- - -DROP TABLE IF EXISTS `app_myapp`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `app_myapp` ( - `name` varchar(64) NOT NULL COMMENT '应用名称', - `access_url` varchar(500) NOT NULL COMMENT '访问地址', - `icon_url` varchar(300) DEFAULT NULL COMMENT '应用图标URL', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_app_myapp_uuid` (`uuid`), - KEY `ix_app_myapp_updated_time` (`updated_time`), - KEY `ix_app_myapp_created_id` (`created_id`), - KEY `ix_app_myapp_status` (`status`), - KEY `ix_app_myapp_updated_id` (`updated_id`), - KEY `ix_app_myapp_created_time` (`created_time`), - KEY `ix_app_myapp_id` (`id`), - CONSTRAINT `app_myapp_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `app_myapp_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='应用系统表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `app_myapp` --- - -/*!40000 ALTER TABLE `app_myapp` DISABLE KEYS */; -/*!40000 ALTER TABLE `app_myapp` ENABLE KEYS */; - --- --- Table structure for table `apscheduler_jobs` --- - -DROP TABLE IF EXISTS `apscheduler_jobs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `apscheduler_jobs` ( - `id` varchar(191) NOT NULL, - `next_run_time` double DEFAULT NULL, - `job_state` blob NOT NULL, - PRIMARY KEY (`id`), - KEY `ix_apscheduler_jobs_next_run_time` (`next_run_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `apscheduler_jobs` --- - -/*!40000 ALTER TABLE `apscheduler_jobs` DISABLE KEYS */; -/*!40000 ALTER TABLE `apscheduler_jobs` ENABLE KEYS */; - --- --- Table structure for table `gen_demo` --- - -DROP TABLE IF EXISTS `gen_demo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `gen_demo` ( - `name` varchar(64) NOT NULL COMMENT '名称', - `a` int DEFAULT NULL COMMENT '整数', - `b` bigint DEFAULT NULL COMMENT '大整数', - `c` float DEFAULT NULL COMMENT '浮点数', - `d` tinyint(1) NOT NULL COMMENT '布尔型', - `e` date DEFAULT NULL COMMENT '日期', - `f` time DEFAULT NULL COMMENT '时间', - `g` datetime DEFAULT NULL COMMENT '日期时间', - `h` text COMMENT '长文本', - `i` json DEFAULT NULL COMMENT '元数据(JSON格式)', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_gen_demo_uuid` (`uuid`), - KEY `ix_gen_demo_updated_time` (`updated_time`), - KEY `ix_gen_demo_created_id` (`created_id`), - KEY `ix_gen_demo_id` (`id`), - KEY `ix_gen_demo_status` (`status`), - KEY `ix_gen_demo_updated_id` (`updated_id`), - KEY `ix_gen_demo_created_time` (`created_time`), - CONSTRAINT `gen_demo_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `gen_demo_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='示例表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `gen_demo` --- - -/*!40000 ALTER TABLE `gen_demo` DISABLE KEYS */; -/*!40000 ALTER TABLE `gen_demo` ENABLE KEYS */; - --- --- Table structure for table `gen_table` --- - -DROP TABLE IF EXISTS `gen_table`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `gen_table` ( - `table_name` varchar(200) NOT NULL COMMENT '表名称', - `table_comment` varchar(500) DEFAULT NULL COMMENT '表描述', - `class_name` varchar(100) NOT NULL COMMENT '实体类名称', - `package_name` varchar(100) DEFAULT NULL COMMENT '生成包路径', - `module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名', - `business_name` varchar(30) DEFAULT NULL COMMENT '生成业务名', - `function_name` varchar(100) DEFAULT NULL COMMENT '生成功能名', - `sub_table_name` varchar(64) DEFAULT NULL COMMENT '关联子表的表名', - `sub_table_fk_name` varchar(64) DEFAULT NULL COMMENT '子表关联的外键名', - `parent_menu_id` int DEFAULT NULL COMMENT '父菜单ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_gen_table_uuid` (`uuid`), - KEY `ix_gen_table_created_id` (`created_id`), - KEY `ix_gen_table_created_time` (`created_time`), - KEY `ix_gen_table_updated_id` (`updated_id`), - KEY `ix_gen_table_id` (`id`), - KEY `ix_gen_table_status` (`status`), - KEY `ix_gen_table_updated_time` (`updated_time`), - CONSTRAINT `gen_table_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `gen_table_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='代码生成表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `gen_table` --- - -/*!40000 ALTER TABLE `gen_table` DISABLE KEYS */; -/*!40000 ALTER TABLE `gen_table` ENABLE KEYS */; - --- --- Table structure for table `gen_table_column` --- - -DROP TABLE IF EXISTS `gen_table_column`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `gen_table_column` ( - `column_name` varchar(200) NOT NULL COMMENT '列名称', - `column_comment` varchar(500) DEFAULT NULL COMMENT '列描述', - `column_type` varchar(100) NOT NULL COMMENT '列类型', - `column_length` varchar(50) DEFAULT NULL COMMENT '列长度', - `column_default` varchar(200) DEFAULT NULL COMMENT '列默认值', - `is_pk` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否主键', - `is_increment` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否自增', - `is_nullable` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否允许为空', - `is_unique` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否唯一', - `python_type` varchar(100) DEFAULT NULL COMMENT 'Python类型', - `python_field` varchar(200) DEFAULT NULL COMMENT 'Python字段名', - `is_insert` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否为新增字段', - `is_edit` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否编辑字段', - `is_list` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否列表字段', - `is_query` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否查询字段', - `query_type` varchar(50) DEFAULT NULL COMMENT '查询方式', - `html_type` varchar(100) DEFAULT NULL COMMENT '显示类型', - `dict_type` varchar(200) DEFAULT NULL COMMENT '字典类型', - `sort` int NOT NULL COMMENT '排序', - `table_id` int NOT NULL COMMENT '归属表编号', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_gen_table_column_uuid` (`uuid`), - KEY `ix_gen_table_column_status` (`status`), - KEY `ix_gen_table_column_id` (`id`), - KEY `ix_gen_table_column_created_time` (`created_time`), - KEY `ix_gen_table_column_created_id` (`created_id`), - KEY `ix_gen_table_column_table_id` (`table_id`), - KEY `ix_gen_table_column_updated_id` (`updated_id`), - KEY `ix_gen_table_column_updated_time` (`updated_time`), - CONSTRAINT `gen_table_column_ibfk_1` FOREIGN KEY (`table_id`) REFERENCES `gen_table` (`id`) ON DELETE CASCADE, - CONSTRAINT `gen_table_column_ibfk_2` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `gen_table_column_ibfk_3` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='代码生成表字段'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `gen_table_column` --- - -/*!40000 ALTER TABLE `gen_table_column` DISABLE KEYS */; -/*!40000 ALTER TABLE `gen_table_column` ENABLE KEYS */; - --- --- Table structure for table `sys_dept` --- - -DROP TABLE IF EXISTS `sys_dept`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_dept` ( - `name` varchar(64) NOT NULL COMMENT '部门名称', - `order` int NOT NULL COMMENT '显示排序', - `code` varchar(16) DEFAULT NULL COMMENT '部门编码', - `leader` varchar(32) DEFAULT NULL COMMENT '部门负责人', - `phone` varchar(11) DEFAULT NULL COMMENT '手机', - `email` varchar(64) DEFAULT NULL COMMENT '邮箱', - `parent_id` int DEFAULT NULL COMMENT '父级部门ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_dept_uuid` (`uuid`), - KEY `ix_sys_dept_created_id` (`created_id`), - KEY `ix_sys_dept_status` (`status`), - KEY `ix_sys_dept_updated_id` (`updated_id`), - KEY `ix_sys_dept_created_time` (`created_time`), - KEY `ix_sys_dept_id` (`id`), - KEY `ix_sys_dept_code` (`code`), - KEY `ix_sys_dept_updated_time` (`updated_time`), - KEY `ix_sys_dept_parent_id` (`parent_id`), - CONSTRAINT `sys_dept_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_dept_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_dept_ibfk_3` FOREIGN KEY (`parent_id`) REFERENCES `sys_dept` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_dept` --- - -/*!40000 ALTER TABLE `sys_dept` DISABLE KEYS */; -INSERT INTO `sys_dept` VALUES ('集团总公司',1,'GROUP','部门负责人','1582112620','deptadmin@example.com',NULL,1,'5100f8a1-c846-4e9f-bc48-03ddf7b8cfa8','0','集团总公司','2026-01-03 20:15:40','2026-01-03 20:15:40',NULL,NULL); -/*!40000 ALTER TABLE `sys_dept` ENABLE KEYS */; - --- --- Table structure for table `sys_dict_data` --- - -DROP TABLE IF EXISTS `sys_dict_data`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_dict_data` ( - `dict_sort` int NOT NULL COMMENT '字典排序', - `dict_label` varchar(255) NOT NULL COMMENT '字典标签', - `dict_value` varchar(255) NOT NULL COMMENT '字典键值', - `css_class` varchar(255) DEFAULT NULL COMMENT '样式属性(其他样式扩展)', - `list_class` varchar(255) DEFAULT NULL COMMENT '表格回显样式', - `is_default` tinyint(1) NOT NULL COMMENT '是否默认(True是 False否)', - `dict_type` varchar(255) NOT NULL COMMENT '字典类型', - `dict_type_id` int NOT NULL COMMENT '字典类型ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_dict_data_uuid` (`uuid`), - KEY `dict_type_id` (`dict_type_id`), - KEY `ix_sys_dict_data_created_time` (`created_time`), - KEY `ix_sys_dict_data_status` (`status`), - KEY `ix_sys_dict_data_updated_time` (`updated_time`), - KEY `ix_sys_dict_data_id` (`id`), - CONSTRAINT `sys_dict_data_ibfk_1` FOREIGN KEY (`dict_type_id`) REFERENCES `sys_dict_type` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典数据表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_dict_data` --- - -/*!40000 ALTER TABLE `sys_dict_data` DISABLE KEYS */; -INSERT INTO `sys_dict_data` VALUES (1,'男','0','blue',NULL,1,'sys_user_sex',1,1,'b71c0f3e-983b-4e21-a9df-b1544bda8c1e','0','性别男','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'女','1','pink',NULL,0,'sys_user_sex',1,2,'5253857a-dbb7-47a5-abbf-a7b60591473d','0','性别女','2026-01-03 20:15:40','2026-01-03 20:15:40'),(3,'未知','2','red',NULL,0,'sys_user_sex',1,3,'982fcce9-05f2-403b-8108-5ce406834f1d','0','性别未知','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'是','1','','primary',1,'sys_yes_no',2,4,'dc8ac98b-0800-4047-ab14-3c6dc1e6ac2d','0','是','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'否','0','','danger',0,'sys_yes_no',2,5,'78b59b15-f2e7-42d7-ad8a-040c41c12657','0','否','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'启用','1','','primary',0,'sys_common_status',3,6,'fe1a3c63-dd4b-4e5a-9552-5087e8fecbca','0','启用状态','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'停用','0','','danger',0,'sys_common_status',3,7,'1281843e-7511-42b6-9c15-1051a413c852','0','停用状态','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'通知','1','blue','warning',1,'sys_notice_type',4,8,'0165557b-0ec4-4119-bba0-60b859ffbecd','0','通知','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'公告','2','orange','success',0,'sys_notice_type',4,9,'0ca9b44f-81a3-4206-9259-0bc21a20a061','0','公告','2026-01-03 20:15:40','2026-01-03 20:15:40'),(99,'其他','0','','info',0,'sys_oper_type',5,10,'38d79ba8-4bf7-4ba0-83a9-c9213cb99e36','0','其他操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'新增','1','','info',0,'sys_oper_type',5,11,'abe2f3c3-1c78-4343-9573-2a6d3352a66a','0','新增操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'修改','2','','info',0,'sys_oper_type',5,12,'961ba743-3aa9-4d99-a32b-8aa91034adad','0','修改操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(3,'删除','3','','danger',0,'sys_oper_type',5,13,'9effb5cb-3ce7-479a-ab62-5c48febcb16c','0','删除操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(4,'分配权限','4','','primary',0,'sys_oper_type',5,14,'29cc5cb9-0cc0-4159-9af5-54835abec41b','0','授权操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(5,'导出','5','','warning',0,'sys_oper_type',5,15,'214093c5-4b65-4f0b-b5fd-1bddf1a6b3d4','0','导出操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(6,'导入','6','','warning',0,'sys_oper_type',5,16,'67c70659-e716-4c1f-ac3a-f3f4938b1203','0','导入操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(7,'强退','7','','danger',0,'sys_oper_type',5,17,'39ecb30b-edc3-422d-b089-6d93235f5d26','0','强退操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(8,'生成代码','8','','warning',0,'sys_oper_type',5,18,'debd57ce-1342-4e5d-a85f-f4535352905a','0','生成操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(9,'清空数据','9','','danger',0,'sys_oper_type',5,19,'ab56b2c7-973b-4dd9-860b-0164bc5ba019','0','清空操作','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'默认(Memory)','default','',NULL,1,'sys_job_store',6,20,'5618beeb-3a05-4ef9-a740-efd90b59552d','0','默认分组','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'数据库(Sqlalchemy)','sqlalchemy','',NULL,0,'sys_job_store',6,21,'d7bc5d31-50e9-4db7-9a92-a6547ec4a97c','0','数据库分组','2026-01-03 20:15:40','2026-01-03 20:15:40'),(3,'数据库(Redis)','redis','',NULL,0,'sys_job_store',6,22,'6a952248-23ed-420d-9bc8-db0698e638e4','0','reids分组','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'线程池','default','',NULL,0,'sys_job_executor',7,23,'c8a000a4-883a-4ca9-b66b-a1df8d7f3f1d','0','线程池','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'进程池','processpool','',NULL,0,'sys_job_executor',7,24,'b7da32b7-3bd6-4d4f-b879-d6ee4f02aeab','0','进程池','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'演示函数','scheduler_test.job','',NULL,1,'sys_job_function',8,25,'a4fe97af-29ff-4a79-9eb3-9fe970ec81de','0','演示函数','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'指定日期(date)','date','',NULL,1,'sys_job_trigger',9,26,'e4327cb8-7530-427f-825a-e10587ab4c1e','0','指定日期任务触发器','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'间隔触发器(interval)','interval','',NULL,0,'sys_job_trigger',9,27,'b7c28ff0-1d77-43c1-8338-b80e7cbebaba','0','间隔触发器任务触发器','2026-01-03 20:15:40','2026-01-03 20:15:40'),(3,'cron表达式','cron','',NULL,0,'sys_job_trigger',9,28,'dee0c67b-67b9-4e40-8667-aa904a6a9b23','0','间隔触发器任务触发器','2026-01-03 20:15:40','2026-01-03 20:15:40'),(1,'默认(default)','default','',NULL,1,'sys_list_class',10,29,'b74feec7-4854-4df2-96a3-b239019d1d95','0','默认表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'),(2,'主要(primary)','primary','',NULL,0,'sys_list_class',10,30,'c2add402-5bb8-4578-b3bd-1ed5812c53e1','0','主要表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'),(3,'成功(success)','success','',NULL,0,'sys_list_class',10,31,'a2ff7ac9-d2ff-4e91-ad61-f131b02ee7fa','0','成功表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'),(4,'信息(info)','info','',NULL,0,'sys_list_class',10,32,'b7ee3f0f-c602-4c9f-b825-3e66a043235c','0','信息表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'),(5,'警告(warning)','warning','',NULL,0,'sys_list_class',10,33,'b97564d3-dff5-4604-95ad-a2ab0a965abd','0','警告表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'),(6,'危险(danger)','danger','',NULL,0,'sys_list_class',10,34,'66e34673-4da4-4e23-8aeb-b5c0072283a4','0','危险表格回显样式','2026-01-03 20:15:40','2026-01-03 20:15:40'); -/*!40000 ALTER TABLE `sys_dict_data` ENABLE KEYS */; - --- --- Table structure for table `sys_dict_type` --- - -DROP TABLE IF EXISTS `sys_dict_type`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_dict_type` ( - `dict_name` varchar(64) NOT NULL COMMENT '字典名称', - `dict_type` varchar(255) NOT NULL COMMENT '字典类型', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `dict_type` (`dict_type`), - UNIQUE KEY `ix_sys_dict_type_uuid` (`uuid`), - KEY `ix_sys_dict_type_id` (`id`), - KEY `ix_sys_dict_type_updated_time` (`updated_time`), - KEY `ix_sys_dict_type_status` (`status`), - KEY `ix_sys_dict_type_created_time` (`created_time`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典类型表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_dict_type` --- - -/*!40000 ALTER TABLE `sys_dict_type` DISABLE KEYS */; -INSERT INTO `sys_dict_type` VALUES ('用户性别','sys_user_sex',1,'27b1bb0b-8a00-4ea8-929d-c3f0547449ec','0','用户性别列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('系统是否','sys_yes_no',2,'c4ff4678-78cd-47e5-b77b-de1b137d2eee','0','系统是否列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('系统状态','sys_common_status',3,'19fd6bf7-aa2f-4edb-946b-27dc7d44ad3e','0','系统状态','2026-01-03 20:15:40','2026-01-03 20:15:40'),('通知类型','sys_notice_type',4,'197af39f-67df-4d2c-8ebf-ce3f02974c42','0','通知类型列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('操作类型','sys_oper_type',5,'e80add1a-7f9f-427d-9739-bf3376cf3c22','0','操作类型列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('任务存储器','sys_job_store',6,'269c2b74-16d1-4fc1-a08f-d091d69c72ba','0','任务分组列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('任务执行器','sys_job_executor',7,'d44dedf6-e444-4e33-b767-a392276fe508','0','任务执行器列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('任务函数','sys_job_function',8,'b00b874d-19aa-4084-a0b7-b974f28889b3','0','任务函数列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('任务触发器','sys_job_trigger',9,'f69c3d51-02db-4dca-bd8c-08a2d4aa025e','0','任务触发器列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('表格回显样式','sys_list_class',10,'022c2430-953c-4e3f-ae2d-c7b0c5bd65dc','0','表格回显样式列表','2026-01-03 20:15:40','2026-01-03 20:15:40'); -/*!40000 ALTER TABLE `sys_dict_type` ENABLE KEYS */; - --- --- Table structure for table `sys_log` --- - -DROP TABLE IF EXISTS `sys_log`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_log` ( - `type` int NOT NULL COMMENT '日志类型(1登录日志 2操作日志)', - `request_path` varchar(255) NOT NULL COMMENT '请求路径', - `request_method` varchar(10) NOT NULL COMMENT '请求方式', - `request_payload` text COMMENT '请求体', - `request_ip` varchar(50) DEFAULT NULL COMMENT '请求IP地址', - `login_location` varchar(255) DEFAULT NULL COMMENT '登录位置', - `request_os` varchar(64) DEFAULT NULL COMMENT '操作系统', - `request_browser` varchar(64) DEFAULT NULL COMMENT '浏览器', - `response_code` int NOT NULL COMMENT '响应状态码', - `response_json` text COMMENT '响应体', - `process_time` varchar(20) DEFAULT NULL COMMENT '处理时间', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_log_uuid` (`uuid`), - KEY `ix_sys_log_created_id` (`created_id`), - KEY `ix_sys_log_updated_time` (`updated_time`), - KEY `ix_sys_log_updated_id` (`updated_id`), - KEY `ix_sys_log_id` (`id`), - KEY `ix_sys_log_created_time` (`created_time`), - KEY `ix_sys_log_status` (`status`), - CONSTRAINT `sys_log_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_log_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统日志表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_log` --- - -/*!40000 ALTER TABLE `sys_log` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_log` ENABLE KEYS */; - --- --- Table structure for table `sys_menu` --- - -DROP TABLE IF EXISTS `sys_menu`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_menu` ( - `name` varchar(50) NOT NULL COMMENT '菜单名称', - `type` int NOT NULL COMMENT '菜单类型(1:目录 2:菜单 3:按钮/权限 4:链接)', - `order` int NOT NULL COMMENT '显示排序', - `permission` varchar(100) DEFAULT NULL COMMENT '权限标识(如:module_system:user:query)', - `icon` varchar(50) DEFAULT NULL COMMENT '菜单图标', - `route_name` varchar(100) DEFAULT NULL COMMENT '路由名称', - `route_path` varchar(200) DEFAULT NULL COMMENT '路由路径', - `component_path` varchar(200) DEFAULT NULL COMMENT '组件路径', - `redirect` varchar(200) DEFAULT NULL COMMENT '重定向地址', - `hidden` tinyint(1) NOT NULL COMMENT '是否隐藏(True:隐藏 False:显示)', - `keep_alive` tinyint(1) NOT NULL COMMENT '是否缓存(True:是 False:否)', - `always_show` tinyint(1) NOT NULL COMMENT '是否始终显示(True:是 False:否)', - `title` varchar(50) DEFAULT NULL COMMENT '菜单标题', - `params` json DEFAULT NULL COMMENT '路由参数(JSON对象)', - `affix` tinyint(1) NOT NULL COMMENT '是否固定标签页(True:是 False:否)', - `parent_id` int DEFAULT NULL COMMENT '父菜单ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_menu_uuid` (`uuid`), - KEY `ix_sys_menu_updated_time` (`updated_time`), - KEY `ix_sys_menu_status` (`status`), - KEY `ix_sys_menu_created_time` (`created_time`), - KEY `ix_sys_menu_id` (`id`), - KEY `ix_sys_menu_parent_id` (`parent_id`), - CONSTRAINT `sys_menu_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `sys_menu` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=138 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_menu` --- - -/*!40000 ALTER TABLE `sys_menu` DISABLE KEYS */; -INSERT INTO `sys_menu` VALUES ('仪表盘',1,1,'','client','Dashboard','/dashboard',NULL,'/dashboard/workplace',0,1,1,'仪表盘','null',0,NULL,1,'6ab03272-a823-4d2b-8bcc-00ef363f96fd','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('系统管理',1,2,NULL,'system','System','/system',NULL,'/system/menu',0,1,0,'系统管理','null',0,NULL,2,'87609dc2-9d90-48df-ab17-568f67665e4a','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('应用管理',1,3,NULL,'el-icon-ShoppingBag','Application','/application',NULL,'/application/myapp',0,1,0,'应用管理','null',0,NULL,3,'f4200bfa-839e-483b-85e1-01b8f4620aaa','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('监控管理',1,4,NULL,'monitor','Monitor','/monitor',NULL,'/monitor/online',0,1,0,'监控管理','null',0,NULL,4,'fbe6a232-649b-48c9-853f-e34aeb21dc04','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('代码管理',1,5,NULL,'code','Generator','/generator',NULL,'/generator/gencode',0,1,0,'代码管理','null',0,NULL,5,'8c1085c1-8b43-4442-a319-bd1b50272a42','0','代码管理','2026-01-03 20:15:40','2026-01-03 20:15:40'),('接口管理',1,6,NULL,'document','Common','/common',NULL,'/common/docs',0,1,0,'接口管理','null',0,NULL,6,'6994bc7e-eacc-4ccd-908b-83c67616aac3','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('案例管理',1,7,NULL,'menu','Example','/example',NULL,'/example/demo',0,1,0,'案例管理','null',0,NULL,7,'5da39814-6873-48ec-8b36-da6042d06e3f','0','案例管理','2026-01-03 20:15:40','2026-01-03 20:15:40'),('工作台',2,1,'dashboard:workplace:query','el-icon-PieChart','Workplace','/dashboard/workplace','dashboard/workplace',NULL,0,1,0,'工作台','null',0,1,8,'ca9b78d3-05f8-4fe7-ada8-6b00b7c935c4','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('菜单管理',2,1,'module_system:menu:query','menu','Menu','/system/menu','module_system/menu/index',NULL,0,1,0,'菜单管理','null',0,2,9,'18f7afa0-cbb1-4952-8dab-025d9aac0a97','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('部门管理',2,2,'module_system:dept:query','tree','Dept','/system/dept','module_system/dept/index',NULL,0,1,0,'部门管理','null',0,2,10,'31c8381e-6195-4844-8c15-4f2898d0b981','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('岗位管理',2,3,'module_system:position:query','el-icon-Coordinate','Position','/system/position','module_system/position/index',NULL,0,1,0,'岗位管理','null',0,2,11,'387ae485-b8cd-4a73-83b8-1aa431a706eb','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('角色管理',2,4,'module_system:role:query','role','Role','/system/role','module_system/role/index',NULL,0,1,0,'角色管理','null',0,2,12,'02f3f896-5dee-4039-86e4-d40872b0774b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('用户管理',2,5,'module_system:user:query','el-icon-User','User','/system/user','module_system/user/index',NULL,0,1,0,'用户管理','null',0,2,13,'5d7fffee-5972-478b-8d64-5c4fa5ec5cd9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('日志管理',2,6,'module_system:log:query','el-icon-Aim','Log','/system/log','module_system/log/index',NULL,0,1,0,'日志管理','null',0,2,14,'b9545a78-7165-464b-bcd0-23c1f8464e5d','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告管理',2,7,'module_system:notice:query','bell','Notice','/system/notice','module_system/notice/index',NULL,0,1,0,'公告管理','null',0,2,15,'9e1a1629-5b45-4f50-8ccc-afe8db61d015','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('参数管理',2,8,'module_system:param:query','setting','Params','/system/param','module_system/param/index',NULL,0,1,0,'参数管理','null',0,2,16,'f37e7718-6b98-43d7-af8f-c863c4749a20','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('字典管理',2,9,'module_system:dict_type:query','dict','Dict','/system/dict','module_system/dict/index',NULL,0,1,0,'字典管理','null',0,2,17,'4379b2b9-c070-45cf-b4b2-0864324e6161','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('我的应用',2,1,'module_application:myapp:query','el-icon-ShoppingCartFull','MYAPP','/application/myapp','module_application/myapp/index',NULL,0,1,0,'我的应用','null',0,3,18,'1e4a5308-6e0d-4cb6-b099-100572b203a7','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('任务管理',2,2,'module_application:job:query','el-icon-DataLine','Job','/application/job','module_application/job/index',NULL,0,1,0,'任务管理','null',0,3,19,'fb8f7fc5-6fbf-4c03-91ff-20017d0757a4','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('AI智能助手',2,3,'module_application:ai:chat','el-icon-ToiletPaper','AI','/application/ai','module_application/ai/index',NULL,0,1,0,'AI智能助手','null',0,3,20,'800d1611-bc2b-46df-9878-7a8454c67d51','0','AI智能助手','2026-01-03 20:15:40','2026-01-03 20:15:40'),('流程管理',2,4,'module_application:workflow:query','el-icon-ShoppingBag','Workflow','/application/workflow','module_application/workflow/index',NULL,0,1,0,'我的流程','null',0,3,21,'85887c52-f2b1-40eb-96c8-4b50fdc4ac38','0','我的流程','2026-01-03 20:15:40','2026-01-03 20:15:40'),('在线用户',2,1,'module_monitor:online:query','el-icon-Headset','MonitorOnline','/monitor/online','module_monitor/online/index',NULL,0,1,0,'在线用户','null',0,4,22,'f0d77cc8-4b29-4b8a-83a0-c07f50104596','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('服务器监控',2,2,'module_monitor:server:query','el-icon-Odometer','MonitorServer','/monitor/server','module_monitor/server/index',NULL,0,1,0,'服务器监控','null',0,4,23,'d819eb52-36c8-4b87-bcc0-23a70cd00f78','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('缓存监控',2,3,'module_monitor:cache:query','el-icon-Stopwatch','MonitorCache','/monitor/cache','module_monitor/cache/index',NULL,0,1,0,'缓存监控','null',0,4,24,'dad0cf0b-33ef-42bc-8f79-cdc467b6845d','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件管理',2,4,'module_monitor:resource:query','el-icon-Files','Resource','/monitor/resource','module_monitor/resource/index',NULL,0,1,0,'文件管理','null',0,4,25,'89979d3f-5d2f-4b0a-81b0-bb2b1c74b50c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('代码生成',2,1,'module_generator:gencode:query','code','GenCode','/generator/gencode','module_generator/gencode/index',NULL,0,1,0,'代码生成','null',0,5,26,'15b626e5-151d-443d-bdc5-dc6b4dff4da6','0','代码生成','2026-01-03 20:15:40','2026-01-03 20:15:40'),('Swagger文档',4,1,'module_common:docs:query','api','Docs','/common/docs','module_common/docs/index',NULL,0,1,0,'Swagger文档','null',0,6,27,'6a12698f-7fba-4b4e-850f-4b19db12ad74','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('Redoc文档',4,2,'module_common:redoc:query','el-icon-Document','Redoc','/common/redoc','module_common/redoc/index',NULL,0,1,0,'Redoc文档','null',0,6,28,'79750178-0a65-48fd-b775-8da287ccfee5','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('示例管理',2,1,'module_example:demo:query','menu','Demo','/example/demo','module_example/demo/index',NULL,0,1,0,'示例管理','null',0,7,29,'6628cf01-5efc-42bd-b5fd-6a7505bfc76a','0','示例管理','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建菜单',3,1,'module_system:menu:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建菜单','null',0,9,30,'47862c59-6fef-4e9e-84b7-c6e90243e486','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改菜单',3,2,'module_system:menu:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改菜单','null',0,9,31,'53a8a559-72bd-451d-98c1-8fa3dbec99fe','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除菜单',3,3,'module_system:menu:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除菜单','null',0,9,32,'aa59878c-68ac-44f8-9854-b1a3c8ba8295','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改菜单状态',3,4,'module_system:menu:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改菜单状态','null',0,9,33,'314f09ee-c734-416e-98c0-e11672388419','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情改菜',3,5,'module_system:menu:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情改菜','null',0,9,34,'94624520-2148-437b-8353-a791650beee7','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询菜单',3,6,'module_system:menu:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询菜单','null',0,9,35,'ae0f36d1-09b0-4142-a65f-14aeef82cbba','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建部门',3,1,'module_system:dept:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建部门','null',0,10,36,'e6082d5e-eea1-450b-a181-321896040785','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改部门',3,2,'module_system:dept:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改部门','null',0,10,37,'ae60f687-ba81-4859-944a-be0388e47dc0','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除部门',3,3,'module_system:dept:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除部门','null',0,10,38,'6e396a56-735d-43c6-b259-8505dc102210','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改部门状态',3,4,'module_system:dept:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改部门状态','null',0,10,39,'48dce68d-0d1e-4eb4-96e2-6691df9dfd87','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情部门',3,5,'module_system:dept:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情部门','null',0,10,40,'0cf88465-a6cc-4015-8a3d-a7cfd2337d74','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询部门',3,6,'module_system:dept:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询部门','null',0,10,41,'3d7ab65a-150b-49b9-9eaa-9b093ee1fe9b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建岗位',3,1,'module_system:position:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建岗位','null',0,11,42,'9dafe232-089d-4b32-a419-dfb5faef3f0e','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改岗位',3,2,'module_system:position:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改岗位','null',0,11,43,'7aa63e69-6b07-4880-80aa-bfba5999e06a','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除岗位',3,3,'module_system:position:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改岗位','null',0,11,44,'e413a979-81f6-4619-960c-5abfb70d0e2c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改岗位状态',3,4,'module_system:position:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改岗位状态','null',0,11,45,'97212313-5f3c-48b1-8c52-d78452880521','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('岗位导出',3,5,'module_system:position:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'岗位导出','null',0,11,46,'b5b51722-448b-4a88-8165-2caaa5ac527b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情岗位',3,6,'module_system:position:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情岗位','null',0,11,47,'1134acaf-0b12-4f96-ad0a-ef8f238d722a','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询岗位',3,7,'module_system:position:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询岗位','null',0,11,48,'7cf2acae-a154-4aa9-80bf-6ee681006423','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建角色',3,1,'module_system:role:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建角色','null',0,12,49,'2f8063bb-dd5d-4439-9bd9-016cbcbdfd17','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改角色',3,2,'module_system:role:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改角色','null',0,12,50,'0c1afd4d-7ad6-4df8-bcc1-db4ab5b03ff9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除角色',3,3,'module_system:role:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除角色','null',0,12,51,'4bea1760-b42c-451d-8c23-4d2b99a11f63','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改角色状态',3,4,'module_system:role:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改角色状态','null',0,12,52,'add80b1b-6a00-40ea-9088-ac8f77ac7cae','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('角色导出',3,5,'module_system:role:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'角色导出','null',0,12,53,'0ad7f1a3-9068-45dc-9d1a-95fcc43751b6','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情角色',3,6,'module_system:role:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情角色','null',0,12,54,'d0f92ba2-8482-4f48-b008-b29f6b4efc4e','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询角色',3,7,'module_system:role:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询角色','null',0,12,55,'37e16cb6-12a9-4f81-ae23-e035eb905cd4','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建用户',3,1,'module_system:user:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建用户','null',0,13,56,'316a2b7f-5570-4d27-b15a-0e898faa4c65','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改用户',3,2,'module_system:user:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改用户','null',0,13,57,'38ed04bf-e0d3-49a3-b989-3b901d0306ca','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除用户',3,3,'module_system:user:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除用户','null',0,13,58,'7a81183f-efa6-40cf-80ea-e35c5897b544','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改用户状态',3,4,'module_system:user:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改用户状态','null',0,13,59,'0374c345-551f-4d54-a8d1-dc933a0df6ab','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出用户',3,5,'module_system:user:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出用户','null',0,13,60,'370e1517-567e-4720-ab20-2ea9698ba967','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导入用户',3,6,'module_system:user:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入用户','null',0,13,61,'2eb7f372-91a7-498b-9d63-83f50cdcae5b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('下载用户导入模板',3,7,'module_system:user:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'下载用户导入模板','null',0,13,62,'28b4fb56-4c00-427c-be4f-bfe91baac3d4','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情用户',3,8,'module_system:user:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情用户','null',0,13,63,'d4c70e6f-9843-4cbb-bc1e-27125e45ba47','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询用户',3,9,'module_system:user:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询用户','null',0,13,64,'7fa25727-ac0f-456a-9e35-571fa816adce','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('日志删除',3,1,'module_system:log:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志删除','null',0,14,65,'f16ddf24-2f57-4927-a10e-bab6211e3383','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('日志导出',3,2,'module_system:log:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志导出','null',0,14,66,'696fade5-15a7-4d76-80c3-b5a4e48cb9b0','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('日志详情',3,3,'module_system:log:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志详情','null',0,14,67,'4e23594b-589f-44d1-8db7-fb301c28e0f7','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询日志',3,4,'module_system:log:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询日志','null',0,14,68,'769ec72d-8668-419d-9707-5566c1103454','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告创建',3,1,'module_system:notice:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告创建','null',0,15,69,'783afff0-8fd8-476d-85e4-0baff953d153','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告修改',3,2,'module_system:notice:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改用户','null',0,15,70,'509fbedd-db66-4bea-bb15-142b13a1a0cc','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告删除',3,3,'module_system:notice:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告删除','null',0,15,71,'3fd48660-a6be-41df-8d4a-d6df2deedb97','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告导出',3,4,'module_system:notice:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告导出','null',0,15,72,'cb7d6846-7f38-426d-b902-f860a97cf244','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告批量修改状态',3,5,'module_system:notice:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告批量修改状态','null',0,15,73,'9509cccc-9833-47c5-b53c-0727233a52fa','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('公告详情',3,6,'module_system:notice:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告详情','null',0,15,74,'14047ac2-d576-484a-9cae-674ac4fca0fa','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询公告',3,5,'module_system:notice:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询公告','null',0,15,75,'18101b02-45c3-4b20-bab6-9ce85efc52dc','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建参数',3,1,'module_system:param:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建参数','null',0,16,76,'c01a78e9-2ee6-4359-9d2d-e912655ee5c2','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改参数',3,2,'module_system:param:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改参数','null',0,16,77,'a73c8245-0c7c-4ea2-ab7c-c7c31fff52da','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除参数',3,3,'module_system:param:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除参数','null',0,16,78,'7b066411-073f-4e4f-a754-3ad8e0da6489','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出参数',3,4,'module_system:param:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出参数','null',0,16,79,'72c49289-b82b-4f91-97f5-7451022dc5ad','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('参数上传',3,5,'module_system:param:upload',NULL,NULL,NULL,NULL,NULL,0,1,0,'参数上传','null',0,16,80,'75bcfd6d-b99c-47fd-a85e-4fbec852e2b2','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('参数详情',3,6,'module_system:param:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'参数详情','null',0,16,81,'48f507e3-3439-425c-9a21-1b9b057e19d8','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询参数',3,7,'module_system:param:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询参数','null',0,16,82,'75528178-c64a-48fa-80e5-0c329371a978','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建字典类型',3,1,'module_system:dict_type:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建字典类型','null',0,17,83,'30a58b57-8fa0-4913-845b-bd8fc05ae132','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改字典类型',3,2,'module_system:dict_type:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改字典类型','null',0,17,84,'f01e1fb3-ab3c-47fe-aca3-da3b4189d02b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除字典类型',3,3,'module_system:dict_type:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除字典类型','null',0,17,85,'c72c207c-19ca-477e-9ac6-28b7252d14bc','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出字典类型',3,4,'module_system:dict_type:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典类型','null',0,17,86,'5ddcd280-6b45-496b-b358-538b58126b74','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改字典状态',3,5,'module_system:dict_type:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典类型','null',0,17,87,'42d69567-3a63-4ed7-99a1-592c2c328045','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('字典数据查询',3,6,'module_system:dict_data:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'字典数据查询','null',0,17,88,'a017e99e-ead8-41c0-8eaa-232c100d36d1','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建字典数据',3,7,'module_system:dict_data:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建字典数据','null',0,17,89,'8969e135-4787-41a3-8cae-4fd49cfc49b9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改字典数据',3,8,'module_system:dict_data:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改字典数据','null',0,17,90,'b9b7242e-bc87-45fb-8f43-60c93d632a47','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除字典数据',3,9,'module_system:dict_data:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除字典数据','null',0,17,91,'18052459-cd11-4a6c-8af1-76e4efae8225','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出字典数据',3,10,'module_system:dict_data:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典数据','null',0,17,92,'581d5104-a50f-498e-a7e6-f6801c97c965','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改字典数据状态',3,11,'module_system:dict_data:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改字典数据状态','null',0,17,93,'30f42b10-10b3-4c4a-aeb6-fd84eacba90b','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情字典类型',3,12,'module_system:dict_type:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情字典类型','null',0,17,94,'13326374-adca-4fcf-b725-08013e8644f9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询字典类型',3,13,'module_system:dict_type:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询字典类型','null',0,17,95,'752593ea-d769-4c71-88fe-bef629acba9c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情字典数据',3,14,'module_system:dict_data:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情字典数据','null',0,17,96,'b6e8f504-11c1-4ba7-8c64-f4446f958e26','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建应用',3,1,'module_application:myapp:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建应用','null',0,18,97,'91cb1744-65ca-415c-b85a-b176f77473be','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改应用',3,2,'module_application:myapp:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改应用','null',0,18,98,'e7b80cc7-9f9d-4580-be2b-cda26642c300','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除应用',3,3,'module_application:myapp:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除应用','null',0,18,99,'2b955ecc-80af-4a4a-9554-b33d01da8788','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改应用状态',3,4,'module_application:myapp:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改应用状态','null',0,18,100,'897e06b4-cf07-4432-9770-da926272a518','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情应用',3,5,'module_application:myapp:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情应用','null',0,18,101,'37983db4-d172-4621-ab01-5ab18e3a5794','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询应用',3,6,'module_application:myapp:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询应用','null',0,18,102,'3fced896-d9fc-4cd4-9875-1861c784a239','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建任务',3,1,'module_application:job:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建任务','null',0,19,103,'589bf53a-4b80-4446-9f92-f27d72cddef9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('修改和操作任务',3,2,'module_application:job:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改和操作任务','null',0,19,104,'71f748e4-8f6e-4e5b-94cb-41984e09d1f5','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除和清除任务',3,3,'module_application:job:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除和清除任务','null',0,19,105,'7c323e09-76f6-4bd8-a6c0-644d35b94693','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出定时任务',3,4,'module_application:job:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出定时任务','null',0,19,106,'dad17cfc-19ca-472e-9b58-25d0e06f4057','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情定时任务',3,5,'module_application:job:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情任务','null',0,19,107,'680439b9-2190-4dda-8b87-4fe0bece8919','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询定时任务',3,6,'module_application:job:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询定时任务','null',0,19,108,'bd3736e5-8c25-4858-891b-0fa9e8ee6bcb','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('智能对话',3,1,'module_application:ai:chat',NULL,NULL,NULL,NULL,NULL,0,1,0,'智能对话','null',0,20,109,'40841301-1361-4c5f-af5b-9fafc92d498a','0','智能对话','2026-01-03 20:15:40','2026-01-03 20:15:40'),('在线用户强制下线',3,1,'module_monitor:online:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'在线用户强制下线','null',0,22,110,'b86c973c-6554-44fe-a8f9-3547b4e4c51d','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('清除缓存',3,1,'module_monitor:cache:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'清除缓存','null',0,24,111,'a035a875-d730-422e-80de-37aec6c1a49c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件上传',3,1,'module_monitor:resource:upload',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件上传','null',0,25,112,'db1d5cb3-b839-4d4b-b8ea-7cd76514ef8c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件下载',3,2,'module_monitor:resource:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件下载','null',0,25,113,'076370a2-2ff2-4a46-b01f-8f1aac0d4b71','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件删除',3,3,'module_monitor:resource:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件删除','null',0,25,114,'1de098f5-a21c-43fa-b825-8f8abf48ae92','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件移动',3,4,'module_monitor:resource:move',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件移动','null',0,25,115,'1f7ee57a-b1ea-4513-8cec-0deef018a787','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件复制',3,5,'module_monitor:resource:copy',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件复制','null',0,25,116,'53547c60-b049-413b-909b-02f340b78066','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('文件重命名',3,6,'module_monitor:resource:rename',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件重命名','null',0,25,117,'9ae32f22-be06-4753-a878-19321751fe27','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建目录',3,7,'module_monitor:resource:create_dir',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建目录','null',0,25,118,'92d91df4-1d57-4e84-9e51-a4eafad23bbd','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出文件列表',3,9,'module_monitor:resource:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出文件列表','null',0,25,119,'f6a748db-ba49-41da-afe9-18720604e037','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询代码生成业务表列表',3,1,'module_generator:gencode:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询代码生成业务表列表','null',0,26,120,'7c169e8a-dd9c-4955-9722-c3ca05d5c908','0','查询代码生成业务表列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建表结构',3,2,'module_generator:gencode:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建表结构','null',0,26,121,'ddf13f80-8178-4133-926e-51d148f9300d','0','创建表结构','2026-01-03 20:15:40','2026-01-03 20:15:40'),('编辑业务表信息',3,3,'module_generator:gencode:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'编辑业务表信息','null',0,26,122,'2bc87149-640c-40a4-85bc-2c9486b5f5bd','0','编辑业务表信息','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除业务表信息',3,4,'module_generator:gencode:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除业务表信息','null',0,26,123,'9590e6a5-83fb-47fe-ad10-5d71f67ee56d','0','删除业务表信息','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导入表结构',3,5,'module_generator:gencode:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入表结构','null',0,26,124,'10d28c8d-f0c9-4e4f-85f2-ea9a0aa36127','0','导入表结构','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量生成代码',3,6,'module_generator:gencode:operate',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量生成代码','null',0,26,125,'1e42140f-53ce-4d27-aefe-352c5cbb3140','0','批量生成代码','2026-01-03 20:15:40','2026-01-03 20:15:40'),('生成代码到指定路径',3,7,'module_generator:gencode:code',NULL,NULL,NULL,NULL,NULL,0,1,0,'生成代码到指定路径','null',0,26,126,'b57a92e7-1715-4541-85b0-8514c04103b1','0','生成代码到指定路径','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询数据库表列表',3,8,'module_generator:dblist:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询数据库表列表','null',0,26,127,'5686315b-843f-4bdd-b85f-ee48b68d5c06','0','查询数据库表列表','2026-01-03 20:15:40','2026-01-03 20:15:40'),('同步数据库',3,9,'module_generator:db:sync',NULL,NULL,NULL,NULL,NULL,0,1,0,'同步数据库','null',0,26,128,'09c5ab99-cce1-4086-ab11-5c8677ac05d5','0','同步数据库','2026-01-03 20:15:40','2026-01-03 20:15:40'),('创建示例',3,1,'module_example:demo:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建示例','null',0,29,129,'240b81f0-cea2-4991-a20c-9b8660bcc062','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('更新示例',3,2,'module_example:demo:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'更新示例','null',0,29,130,'ed418b6a-d70f-429f-8aa1-482f82996557','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('删除示例',3,3,'module_example:demo:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除示例','null',0,29,131,'02ff30ca-80d2-48e7-b150-bc44e449e761','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('批量修改示例状态',3,4,'module_example:demo:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改示例状态','null',0,29,132,'444ed212-729e-4651-9751-30fa4b9fdb94','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导出示例',3,5,'module_example:demo:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出示例','null',0,29,133,'a61b99e3-d0f9-435a-a1a4-9a0a86991f72','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('导入示例',3,6,'module_example:demo:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入示例','null',0,29,134,'b4693ca0-d8a6-46b1-a6d3-b0c2e3aa82cd','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('下载导入示例模版',3,7,'module_example:demo:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'下载导入示例模版','null',0,29,135,'4f57c2dc-d4a6-48c9-984a-45805713c138','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('详情示例',3,8,'module_example:demo:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情示例','null',0,29,136,'46bdd3ae-ddac-4685-9264-5c039dd5958f','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('查询示例',3,9,'module_example:demo:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询示例','null',0,29,137,'52ef488f-6a6a-4d84-abd7-ff13da9f5e84','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'); -/*!40000 ALTER TABLE `sys_menu` ENABLE KEYS */; - --- --- Table structure for table `sys_notice` --- - -DROP TABLE IF EXISTS `sys_notice`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_notice` ( - `notice_title` varchar(64) NOT NULL COMMENT '公告标题', - `notice_type` varchar(1) NOT NULL COMMENT '公告类型(1通知 2公告)', - `notice_content` text COMMENT '公告内容', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_notice_uuid` (`uuid`), - KEY `ix_sys_notice_created_time` (`created_time`), - KEY `ix_sys_notice_updated_time` (`updated_time`), - KEY `ix_sys_notice_created_id` (`created_id`), - KEY `ix_sys_notice_id` (`id`), - KEY `ix_sys_notice_status` (`status`), - KEY `ix_sys_notice_updated_id` (`updated_id`), - CONSTRAINT `sys_notice_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_notice_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通知公告表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_notice` --- - -/*!40000 ALTER TABLE `sys_notice` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_notice` ENABLE KEYS */; - --- --- Table structure for table `sys_param` --- - -DROP TABLE IF EXISTS `sys_param`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_param` ( - `config_name` varchar(64) NOT NULL COMMENT '参数名称', - `config_key` varchar(500) NOT NULL COMMENT '参数键名', - `config_value` varchar(500) DEFAULT NULL COMMENT '参数键值', - `config_type` tinyint(1) DEFAULT NULL COMMENT '系统内置(True:是 False:否)', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_param_uuid` (`uuid`), - KEY `ix_sys_param_id` (`id`), - KEY `ix_sys_param_created_time` (`created_time`), - KEY `ix_sys_param_updated_time` (`updated_time`), - KEY `ix_sys_param_status` (`status`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统参数表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_param` --- - -/*!40000 ALTER TABLE `sys_param` DISABLE KEYS */; -INSERT INTO `sys_param` VALUES ('网站名称','sys_web_title','FastApiAdmin',1,1,'f8821461-4cf7-4a82-adf7-b770d08845ac','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('网站描述','sys_web_description','FastApiAdmin 是完全开源的权限管理系统',1,2,'ff33eab0-fdfa-48e5-9c74-fc58d222d8f5','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('网页图标','sys_web_favicon','https://service.fastapiadmin.com/api/v1/static/image/favicon.png',1,3,'9457e932-11f7-4934-a0dd-afde24442bc4','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('网站Logo','sys_web_logo','https://service.fastapiadmin.com/api/v1/static/image/logo.png',1,4,'a44f8d04-cf77-4116-8d85-421467f4c4c9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('登录背景','sys_login_background','https://service.fastapiadmin.com/api/v1/static/image/background.svg',1,5,'4516b274-d45a-4d84-a9c7-07aaff32af1c','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('版权信息','sys_web_copyright','Copyright © 2025-2026 service.fastapiadmin.com 版权所有',1,6,'e6d2ecaf-0aef-46bd-a780-454212c4310e','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('备案信息','sys_keep_record','陕ICP备2025069493号-1',1,7,'5a7f0bdc-6c7d-4e22-8885-b69ad1c18a8a','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('帮助文档','sys_help_doc','https://service.fastapiadmin.com',1,8,'7a4ab36e-2b0b-426f-a973-7a0f54e987f9','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('隐私政策','sys_web_privacy','https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE',1,9,'c4d0d089-7e7a-40d5-828d-e7d0798fbff6','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('用户协议','sys_web_clause','https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE',1,10,'0f9891e2-c044-4195-8414-dd2520595a92','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('源码代码','sys_git_code','https://github.com/fastapiadmin/FastapiAdmin.git',1,11,'16a0c6cf-3e54-414c-ba7d-761d074ffb99','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('项目版本','sys_web_version','2.0.0',1,12,'ed3e3c09-927a-4298-9594-7369ab348bfa','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('演示模式启用','demo_enable','false',1,13,'e0305279-8e92-48c8-849d-28df2956ae56','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('演示访问IP白名单','ip_white_list','[\"127.0.0.1\"]',1,14,'5ee61c8b-6e96-4414-9792-98ad92898798','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('接口白名单','white_api_list_path','[\"/api/v1/system/auth/login\", \"/api/v1/system/auth/token/refresh\", \"/api/v1/system/auth/captcha/get\", \"/api/v1/system/auth/logout\", \"/api/v1/system/config/info\", \"/api/v1/system/user/current/info\", \"/api/v1/system/notice/available\"]',1,15,'f51f0052-3629-432d-87a8-bb821f443894','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'),('访问IP黑名单','ip_black_list','[]',1,16,'c7cfa114-6a19-4be0-8c44-f75522069349','0','初始化数据','2026-01-03 20:15:40','2026-01-03 20:15:40'); -/*!40000 ALTER TABLE `sys_param` ENABLE KEYS */; - --- --- Table structure for table `sys_position` --- - -DROP TABLE IF EXISTS `sys_position`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_position` ( - `name` varchar(64) NOT NULL COMMENT '岗位名称', - `order` int NOT NULL COMMENT '显示排序', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_position_uuid` (`uuid`), - KEY `ix_sys_position_updated_time` (`updated_time`), - KEY `ix_sys_position_created_id` (`created_id`), - KEY `ix_sys_position_id` (`id`), - KEY `ix_sys_position_status` (`status`), - KEY `ix_sys_position_updated_id` (`updated_id`), - KEY `ix_sys_position_created_time` (`created_time`), - CONSTRAINT `sys_position_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_position_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='岗位表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_position` --- - -/*!40000 ALTER TABLE `sys_position` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_position` ENABLE KEYS */; - --- --- Table structure for table `sys_role` --- - -DROP TABLE IF EXISTS `sys_role`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_role` ( - `name` varchar(64) NOT NULL COMMENT '角色名称', - `code` varchar(16) DEFAULT NULL COMMENT '角色编码', - `order` int NOT NULL COMMENT '显示排序', - `data_scope` int NOT NULL COMMENT '数据权限范围(1:仅本人 2:本部门 3:本部门及以下 4:全部 5:自定义)', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_sys_role_uuid` (`uuid`), - KEY `ix_sys_role_id` (`id`), - KEY `ix_sys_role_status` (`status`), - KEY `ix_sys_role_updated_time` (`updated_time`), - KEY `ix_sys_role_code` (`code`), - KEY `ix_sys_role_created_time` (`created_time`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_role` --- - -/*!40000 ALTER TABLE `sys_role` DISABLE KEYS */; -INSERT INTO `sys_role` VALUES ('管理员角色','ADMIN',1,4,1,'b5153b2b-7eb4-4332-bcc6-8a93a1de0a53','0','初始化角色','2026-01-03 20:15:40','2026-01-03 20:15:40'); -/*!40000 ALTER TABLE `sys_role` ENABLE KEYS */; - --- --- Table structure for table `sys_role_depts` --- - -DROP TABLE IF EXISTS `sys_role_depts`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_role_depts` ( - `role_id` int NOT NULL COMMENT '角色ID', - `dept_id` int NOT NULL COMMENT '部门ID', - PRIMARY KEY (`role_id`,`dept_id`), - KEY `dept_id` (`dept_id`), - CONSTRAINT `sys_role_depts_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `sys_role_depts_ibfk_2` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色部门关联表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_role_depts` --- - -/*!40000 ALTER TABLE `sys_role_depts` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_role_depts` ENABLE KEYS */; - --- --- Table structure for table `sys_role_menus` --- - -DROP TABLE IF EXISTS `sys_role_menus`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_role_menus` ( - `role_id` int NOT NULL COMMENT '角色ID', - `menu_id` int NOT NULL COMMENT '菜单ID', - PRIMARY KEY (`role_id`,`menu_id`), - KEY `menu_id` (`menu_id`), - CONSTRAINT `sys_role_menus_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `sys_role_menus_ibfk_2` FOREIGN KEY (`menu_id`) REFERENCES `sys_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色菜单关联表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_role_menus` --- - -/*!40000 ALTER TABLE `sys_role_menus` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_role_menus` ENABLE KEYS */; - --- --- Table structure for table `sys_user` --- - -DROP TABLE IF EXISTS `sys_user`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_user` ( - `username` varchar(64) NOT NULL COMMENT '用户名/登录账号', - `password` varchar(255) NOT NULL COMMENT '密码哈希', - `name` varchar(32) NOT NULL COMMENT '昵称', - `mobile` varchar(11) DEFAULT NULL COMMENT '手机号', - `email` varchar(64) DEFAULT NULL COMMENT '邮箱', - `gender` varchar(1) DEFAULT NULL COMMENT '性别(0:男 1:女 2:未知)', - `avatar` varchar(255) DEFAULT NULL COMMENT '头像URL地址', - `is_superuser` tinyint(1) NOT NULL COMMENT '是否超管', - `last_login` datetime DEFAULT NULL COMMENT '最后登录时间', - `gitee_login` varchar(32) DEFAULT NULL COMMENT 'Gitee登录', - `github_login` varchar(32) DEFAULT NULL COMMENT 'Github登录', - `wx_login` varchar(32) DEFAULT NULL COMMENT '微信登录', - `qq_login` varchar(32) DEFAULT NULL COMMENT 'QQ登录', - `dept_id` int DEFAULT NULL COMMENT '部门ID', - `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', - `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', - `description` text COMMENT '备注/描述', - `created_time` datetime NOT NULL COMMENT '创建时间', - `updated_time` datetime NOT NULL COMMENT '更新时间', - `created_id` int DEFAULT NULL COMMENT '创建人ID', - `updated_id` int DEFAULT NULL COMMENT '更新人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `username` (`username`), - UNIQUE KEY `ix_sys_user_uuid` (`uuid`), - UNIQUE KEY `mobile` (`mobile`), - UNIQUE KEY `email` (`email`), - KEY `ix_sys_user_dept_id` (`dept_id`), - KEY `ix_sys_user_id` (`id`), - KEY `ix_sys_user_status` (`status`), - KEY `ix_sys_user_created_id` (`created_id`), - KEY `ix_sys_user_created_time` (`created_time`), - KEY `ix_sys_user_updated_id` (`updated_id`), - KEY `ix_sys_user_updated_time` (`updated_time`), - CONSTRAINT `sys_user_ibfk_1` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_user_ibfk_2` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `sys_user_ibfk_3` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_user` --- - -/*!40000 ALTER TABLE `sys_user` DISABLE KEYS */; -INSERT INTO `sys_user` VALUES ('admin','$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa','超级管理员',NULL,NULL,'0','https://service.fastapiadmin.com/api/v1/static/image/avatar.png',1,NULL,NULL,NULL,NULL,NULL,1,1,'e5d8aae9-8f73-4d99-8e4e-19ef8c1df901','0','超级管理员','2026-01-03 20:15:40','2026-01-03 20:15:40',NULL,NULL); -/*!40000 ALTER TABLE `sys_user` ENABLE KEYS */; - --- --- Table structure for table `sys_user_positions` --- - -DROP TABLE IF EXISTS `sys_user_positions`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_user_positions` ( - `user_id` int NOT NULL COMMENT '用户ID', - `position_id` int NOT NULL COMMENT '岗位ID', - PRIMARY KEY (`user_id`,`position_id`), - KEY `position_id` (`position_id`), - CONSTRAINT `sys_user_positions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `sys_user_positions_ibfk_2` FOREIGN KEY (`position_id`) REFERENCES `sys_position` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户岗位关联表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_user_positions` --- - -/*!40000 ALTER TABLE `sys_user_positions` DISABLE KEYS */; -/*!40000 ALTER TABLE `sys_user_positions` ENABLE KEYS */; - --- --- Table structure for table `sys_user_roles` --- - -DROP TABLE IF EXISTS `sys_user_roles`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `sys_user_roles` ( - `user_id` int NOT NULL COMMENT '用户ID', - `role_id` int NOT NULL COMMENT '角色ID', - PRIMARY KEY (`user_id`,`role_id`), - KEY `role_id` (`role_id`), - CONSTRAINT `sys_user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `sys_user_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户角色关联表'; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `sys_user_roles` --- - -/*!40000 ALTER TABLE `sys_user_roles` DISABLE KEYS */; -INSERT INTO `sys_user_roles` VALUES (1,1); -/*!40000 ALTER TABLE `sys_user_roles` ENABLE KEYS */; - --- --- Dumping routines for database 'fastapiadmin' --- -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2026-01-03 20:15:51 diff --git a/backend/sql/mysql/fastapiadmin_2026-02-23_063912.sql b/backend/sql/mysql/fastapiadmin_2026-02-23_063912.sql new file mode 100644 index 00000000..f123ea14 --- /dev/null +++ b/backend/sql/mysql/fastapiadmin_2026-02-23_063912.sql @@ -0,0 +1,963 @@ +-- MySQL dump 10.13 Distrib 9.6.0, for macos26.2 (arm64) +-- +-- Host: 127.0.0.1 Database: fastapiadmin +-- ------------------------------------------------------ +-- Server version 8.4.3 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `ai_chat_message` +-- + +DROP TABLE IF EXISTS `ai_chat_message`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ai_chat_message` ( + `session_id` int NOT NULL COMMENT '会话ID', + `type` varchar(20) NOT NULL COMMENT '消息类型: user/assistant', + `content` text NOT NULL COMMENT '消息内容', + `timestamp` int NOT NULL COMMENT '时间戳', + `files` json DEFAULT NULL COMMENT '关联的文件信息', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_ai_chat_message_uuid` (`uuid`), + KEY `ix_ai_chat_message_session_id` (`session_id`), + KEY `ix_ai_chat_message_updated_time` (`updated_time`), + KEY `ix_ai_chat_message_status` (`status`), + KEY `ix_ai_chat_message_created_time` (`created_time`), + KEY `ix_ai_chat_message_id` (`id`), + CONSTRAINT `ai_chat_message_ibfk_1` FOREIGN KEY (`session_id`) REFERENCES `ai_chat_session` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天消息表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ai_chat_message` +-- + +/*!40000 ALTER TABLE `ai_chat_message` DISABLE KEYS */; +/*!40000 ALTER TABLE `ai_chat_message` ENABLE KEYS */; + +-- +-- Table structure for table `ai_chat_session` +-- + +DROP TABLE IF EXISTS `ai_chat_session`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `ai_chat_session` ( + `title` varchar(200) NOT NULL COMMENT '会话标题', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_ai_chat_session_uuid` (`uuid`), + KEY `ix_ai_chat_session_id` (`id`), + KEY `ix_ai_chat_session_updated_time` (`updated_time`), + KEY `ix_ai_chat_session_status` (`status`), + KEY `ix_ai_chat_session_created_id` (`created_id`), + KEY `ix_ai_chat_session_updated_id` (`updated_id`), + KEY `ix_ai_chat_session_created_time` (`created_time`), + CONSTRAINT `ai_chat_session_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `ai_chat_session_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='聊天会话表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ai_chat_session` +-- + +/*!40000 ALTER TABLE `ai_chat_session` DISABLE KEYS */; +/*!40000 ALTER TABLE `ai_chat_session` ENABLE KEYS */; + +-- +-- Table structure for table `app_myapp` +-- + +DROP TABLE IF EXISTS `app_myapp`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `app_myapp` ( + `name` varchar(64) NOT NULL COMMENT '应用名称', + `access_url` varchar(500) NOT NULL COMMENT '访问地址', + `icon_url` varchar(300) DEFAULT NULL COMMENT '应用图标URL', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_app_myapp_uuid` (`uuid`), + KEY `ix_app_myapp_updated_time` (`updated_time`), + KEY `ix_app_myapp_created_id` (`created_id`), + KEY `ix_app_myapp_status` (`status`), + KEY `ix_app_myapp_id` (`id`), + KEY `ix_app_myapp_updated_id` (`updated_id`), + KEY `ix_app_myapp_created_time` (`created_time`), + CONSTRAINT `app_myapp_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `app_myapp_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='应用系统表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `app_myapp` +-- + +/*!40000 ALTER TABLE `app_myapp` DISABLE KEYS */; +/*!40000 ALTER TABLE `app_myapp` ENABLE KEYS */; + +-- +-- Table structure for table `apscheduler_jobs` +-- + +DROP TABLE IF EXISTS `apscheduler_jobs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `apscheduler_jobs` ( + `id` varchar(191) NOT NULL, + `next_run_time` double DEFAULT NULL, + `job_state` blob NOT NULL, + PRIMARY KEY (`id`), + KEY `ix_apscheduler_jobs_next_run_time` (`next_run_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `apscheduler_jobs` +-- + +/*!40000 ALTER TABLE `apscheduler_jobs` DISABLE KEYS */; +/*!40000 ALTER TABLE `apscheduler_jobs` ENABLE KEYS */; + +-- +-- Table structure for table `gen_demo` +-- + +DROP TABLE IF EXISTS `gen_demo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `gen_demo` ( + `name` varchar(64) NOT NULL COMMENT '名称', + `a` int DEFAULT NULL COMMENT '整数', + `b` bigint DEFAULT NULL COMMENT '大整数', + `c` float DEFAULT NULL COMMENT '浮点数', + `d` tinyint(1) NOT NULL COMMENT '布尔型', + `e` date DEFAULT NULL COMMENT '日期', + `f` time DEFAULT NULL COMMENT '时间', + `g` datetime DEFAULT NULL COMMENT '日期时间', + `h` text COMMENT '长文本', + `i` json DEFAULT NULL COMMENT '元数据(JSON格式)', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_gen_demo_uuid` (`uuid`), + KEY `ix_gen_demo_updated_time` (`updated_time`), + KEY `ix_gen_demo_created_id` (`created_id`), + KEY `ix_gen_demo_id` (`id`), + KEY `ix_gen_demo_status` (`status`), + KEY `ix_gen_demo_updated_id` (`updated_id`), + KEY `ix_gen_demo_created_time` (`created_time`), + CONSTRAINT `gen_demo_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `gen_demo_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='示例表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `gen_demo` +-- + +/*!40000 ALTER TABLE `gen_demo` DISABLE KEYS */; +/*!40000 ALTER TABLE `gen_demo` ENABLE KEYS */; + +-- +-- Table structure for table `gen_table` +-- + +DROP TABLE IF EXISTS `gen_table`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `gen_table` ( + `table_name` varchar(200) NOT NULL COMMENT '表名称', + `table_comment` varchar(500) DEFAULT NULL COMMENT '表描述', + `class_name` varchar(100) NOT NULL COMMENT '实体类名称', + `package_name` varchar(100) DEFAULT NULL COMMENT '生成包路径', + `module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名', + `business_name` varchar(30) DEFAULT NULL COMMENT '生成业务名', + `function_name` varchar(100) DEFAULT NULL COMMENT '生成功能名', + `sub_table_name` varchar(64) DEFAULT NULL COMMENT '关联子表的表名', + `sub_table_fk_name` varchar(64) DEFAULT NULL COMMENT '子表关联的外键名', + `parent_menu_id` int DEFAULT NULL COMMENT '父菜单ID', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_gen_table_uuid` (`uuid`), + KEY `ix_gen_table_updated_time` (`updated_time`), + KEY `ix_gen_table_created_id` (`created_id`), + KEY `ix_gen_table_id` (`id`), + KEY `ix_gen_table_status` (`status`), + KEY `ix_gen_table_updated_id` (`updated_id`), + KEY `ix_gen_table_created_time` (`created_time`), + CONSTRAINT `gen_table_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `gen_table_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='代码生成表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `gen_table` +-- + +/*!40000 ALTER TABLE `gen_table` DISABLE KEYS */; +/*!40000 ALTER TABLE `gen_table` ENABLE KEYS */; + +-- +-- Table structure for table `gen_table_column` +-- + +DROP TABLE IF EXISTS `gen_table_column`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `gen_table_column` ( + `column_name` varchar(200) NOT NULL COMMENT '列名称', + `column_comment` varchar(500) DEFAULT NULL COMMENT '列描述', + `column_type` varchar(100) NOT NULL COMMENT '列类型', + `column_length` varchar(50) DEFAULT NULL COMMENT '列长度', + `column_default` varchar(200) DEFAULT NULL COMMENT '列默认值', + `is_pk` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否主键', + `is_increment` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否自增', + `is_nullable` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否允许为空', + `is_unique` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否唯一', + `python_type` varchar(100) DEFAULT NULL COMMENT 'Python类型', + `python_field` varchar(200) DEFAULT NULL COMMENT 'Python字段名', + `is_insert` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否为新增字段', + `is_edit` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否编辑字段', + `is_list` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否列表字段', + `is_query` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否查询字段', + `query_type` varchar(50) DEFAULT NULL COMMENT '查询方式', + `html_type` varchar(100) DEFAULT NULL COMMENT '显示类型', + `dict_type` varchar(200) DEFAULT NULL COMMENT '字典类型', + `sort` int NOT NULL COMMENT '排序', + `table_id` int NOT NULL COMMENT '归属表编号', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_gen_table_column_uuid` (`uuid`), + KEY `ix_gen_table_column_created_id` (`created_id`), + KEY `ix_gen_table_column_status` (`status`), + KEY `ix_gen_table_column_created_time` (`created_time`), + KEY `ix_gen_table_column_updated_id` (`updated_id`), + KEY `ix_gen_table_column_id` (`id`), + KEY `ix_gen_table_column_updated_time` (`updated_time`), + KEY `ix_gen_table_column_table_id` (`table_id`), + CONSTRAINT `gen_table_column_ibfk_1` FOREIGN KEY (`table_id`) REFERENCES `gen_table` (`id`) ON DELETE CASCADE, + CONSTRAINT `gen_table_column_ibfk_2` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `gen_table_column_ibfk_3` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='代码生成表字段'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `gen_table_column` +-- + +/*!40000 ALTER TABLE `gen_table_column` DISABLE KEYS */; +/*!40000 ALTER TABLE `gen_table_column` ENABLE KEYS */; + +-- +-- Table structure for table `sys_dept` +-- + +DROP TABLE IF EXISTS `sys_dept`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_dept` ( + `name` varchar(64) NOT NULL COMMENT '部门名称', + `order` int NOT NULL COMMENT '显示排序', + `code` varchar(16) DEFAULT NULL COMMENT '部门编码', + `leader` varchar(32) DEFAULT NULL COMMENT '部门负责人', + `phone` varchar(11) DEFAULT NULL COMMENT '手机', + `email` varchar(64) DEFAULT NULL COMMENT '邮箱', + `parent_id` int DEFAULT NULL COMMENT '父级部门ID', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_dept_uuid` (`uuid`), + KEY `ix_sys_dept_status` (`status`), + KEY `ix_sys_dept_code` (`code`), + KEY `ix_sys_dept_created_time` (`created_time`), + KEY `ix_sys_dept_id` (`id`), + KEY `ix_sys_dept_parent_id` (`parent_id`), + KEY `ix_sys_dept_updated_time` (`updated_time`), + CONSTRAINT `sys_dept_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `sys_dept` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='部门表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_dept` +-- + +/*!40000 ALTER TABLE `sys_dept` DISABLE KEYS */; +INSERT INTO `sys_dept` VALUES ('集团总公司',1,'GROUP','部门负责人','1582112620','deptadmin@example.com',NULL,1,'06ebf9ad-c8f2-4324-b193-b3494eaf8d2a','0','集团总公司','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_dept` ENABLE KEYS */; + +-- +-- Table structure for table `sys_dict_data` +-- + +DROP TABLE IF EXISTS `sys_dict_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_dict_data` ( + `dict_sort` int NOT NULL COMMENT '字典排序', + `dict_label` varchar(255) NOT NULL COMMENT '字典标签', + `dict_value` varchar(255) NOT NULL COMMENT '字典键值', + `css_class` varchar(255) DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `list_class` varchar(255) DEFAULT NULL COMMENT '表格回显样式', + `is_default` tinyint(1) NOT NULL COMMENT '是否默认(True是 False否)', + `dict_type` varchar(255) NOT NULL COMMENT '字典类型', + `dict_type_id` int NOT NULL COMMENT '字典类型ID', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_dict_data_uuid` (`uuid`), + KEY `dict_type_id` (`dict_type_id`), + KEY `ix_sys_dict_data_status` (`status`), + KEY `ix_sys_dict_data_created_time` (`created_time`), + KEY `ix_sys_dict_data_updated_time` (`updated_time`), + KEY `ix_sys_dict_data_id` (`id`), + CONSTRAINT `sys_dict_data_ibfk_1` FOREIGN KEY (`dict_type_id`) REFERENCES `sys_dict_type` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典数据表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_dict_data` +-- + +/*!40000 ALTER TABLE `sys_dict_data` DISABLE KEYS */; +INSERT INTO `sys_dict_data` VALUES (1,'男','0','blue',NULL,1,'sys_user_sex',1,1,'cbd9da5c-119a-4301-8252-042a5fa1667b','0','性别男','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'女','1','pink',NULL,0,'sys_user_sex',1,2,'d4989958-d48e-4226-a486-80709ad9fcf8','0','性别女','2026-02-23 06:37:47','2026-02-23 06:37:47'),(3,'未知','2','red',NULL,0,'sys_user_sex',1,3,'dfc5ec61-7b43-4dd1-8d0a-abebef3b0845','0','性别未知','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'是','1','','primary',1,'sys_yes_no',2,4,'161a3978-5e6b-4901-ae65-3cd7797a01b3','0','是','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'否','0','','danger',0,'sys_yes_no',2,5,'4c3c90b9-90d0-4c54-b5a1-935ad3957e3b','0','否','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'启用','1','','primary',0,'sys_common_status',3,6,'dbba1922-73f2-4c62-8956-f738a241ddfa','0','启用状态','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'停用','0','','danger',0,'sys_common_status',3,7,'0e807cd0-129d-4d2f-bb3b-133e810331f0','0','停用状态','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'通知','1','blue','warning',1,'sys_notice_type',4,8,'5de9080f-17c2-469a-893d-3db49dc3ae2b','0','通知','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'公告','2','orange','success',0,'sys_notice_type',4,9,'bd9e529f-d61c-427c-a422-010881c13f2c','0','公告','2026-02-23 06:37:47','2026-02-23 06:37:47'),(99,'其他','0','','info',0,'sys_oper_type',5,10,'8fa07aae-abe9-4c13-8220-acc934b06e60','0','其他操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'新增','1','','info',0,'sys_oper_type',5,11,'6dfe98cc-9cfa-48dd-9649-e9eac98f690f','0','新增操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'修改','2','','info',0,'sys_oper_type',5,12,'6c6f9f1f-1349-4a42-bab2-9535a87a2200','0','修改操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(3,'删除','3','','danger',0,'sys_oper_type',5,13,'ccaf6367-070c-4517-a20f-1712accd86a8','0','删除操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(4,'分配权限','4','','primary',0,'sys_oper_type',5,14,'8a12b3af-ff40-449c-a822-b72647876316','0','授权操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(5,'导出','5','','warning',0,'sys_oper_type',5,15,'8f80ebac-4001-4e19-9b4f-b50d1ac497f3','0','导出操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(6,'导入','6','','warning',0,'sys_oper_type',5,16,'66851fa0-1e29-45aa-8be5-60d44d7f8fe9','0','导入操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(7,'强退','7','','danger',0,'sys_oper_type',5,17,'88687393-dd1b-4068-a430-9b9eeb6330cd','0','强退操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(8,'生成代码','8','','warning',0,'sys_oper_type',5,18,'3c6caba6-2852-4685-8eb1-105dfb4e2dd4','0','生成操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(9,'清空数据','9','','danger',0,'sys_oper_type',5,19,'6877f34c-ffa1-49b9-a7c1-70a84f98a796','0','清空操作','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'默认(Memory)','default','',NULL,1,'sys_job_store',6,20,'bd4f6e97-7452-47af-89f1-9979b7313fc5','0','默认分组','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'数据库(Sqlalchemy)','sqlalchemy','',NULL,0,'sys_job_store',6,21,'d1658d41-fac5-42ee-be86-3ed48c9d02d1','0','数据库分组','2026-02-23 06:37:47','2026-02-23 06:37:47'),(3,'数据库(Redis)','redis','',NULL,0,'sys_job_store',6,22,'3f424b9c-592d-40f2-bf5b-134485fab698','0','reids分组','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'线程池','default','',NULL,0,'sys_job_executor',7,23,'0ca70e7b-593a-4a7b-b2ad-72a35529c3e7','0','线程池','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'进程池','processpool','',NULL,0,'sys_job_executor',7,24,'ad45f92e-e601-4eea-bd54-b7a370bdf285','0','进程池','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'演示函数','scheduler_test.job','',NULL,1,'sys_job_function',8,25,'5bd6822f-c6d2-420a-b012-8d2526e70f8a','0','演示函数','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'指定日期(date)','date','',NULL,1,'sys_job_trigger',9,26,'fa96f3b7-5554-4c15-b68f-a051da9edc3b','0','指定日期任务触发器','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'间隔触发器(interval)','interval','',NULL,0,'sys_job_trigger',9,27,'5b4841ed-ab12-42a5-8d3f-65e522ee4264','0','间隔触发器任务触发器','2026-02-23 06:37:47','2026-02-23 06:37:47'),(3,'cron表达式','cron','',NULL,0,'sys_job_trigger',9,28,'ce692d9e-1fab-49bd-936c-5c17281b42ee','0','间隔触发器任务触发器','2026-02-23 06:37:47','2026-02-23 06:37:47'),(1,'默认(default)','default','',NULL,1,'sys_list_class',10,29,'59dad1ee-84f1-4eed-8269-1d58d91c37f7','0','默认表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'),(2,'主要(primary)','primary','',NULL,0,'sys_list_class',10,30,'d440565e-2b61-4c54-9a96-282956f6ef08','0','主要表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'),(3,'成功(success)','success','',NULL,0,'sys_list_class',10,31,'f32ee2db-bcc7-4e5f-bf16-9ce027607f7a','0','成功表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'),(4,'信息(info)','info','',NULL,0,'sys_list_class',10,32,'1697b851-746f-455c-bf89-991aa61afbdc','0','信息表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'),(5,'警告(warning)','warning','',NULL,0,'sys_list_class',10,33,'cf162283-e470-4c95-a53b-58cc8e35857d','0','警告表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'),(6,'危险(danger)','danger','',NULL,0,'sys_list_class',10,34,'22a03f95-5566-4263-834b-ec70ff15c65f','0','危险表格回显样式','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_dict_data` ENABLE KEYS */; + +-- +-- Table structure for table `sys_dict_type` +-- + +DROP TABLE IF EXISTS `sys_dict_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_dict_type` ( + `dict_name` varchar(64) NOT NULL COMMENT '字典名称', + `dict_type` varchar(255) NOT NULL COMMENT '字典类型', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `dict_type` (`dict_type`), + UNIQUE KEY `ix_sys_dict_type_uuid` (`uuid`), + KEY `ix_sys_dict_type_status` (`status`), + KEY `ix_sys_dict_type_created_time` (`created_time`), + KEY `ix_sys_dict_type_updated_time` (`updated_time`), + KEY `ix_sys_dict_type_id` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典类型表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_dict_type` +-- + +/*!40000 ALTER TABLE `sys_dict_type` DISABLE KEYS */; +INSERT INTO `sys_dict_type` VALUES ('用户性别','sys_user_sex',1,'aba91cdf-65cc-452f-8118-3749e2e9449e','0','用户性别列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('系统是否','sys_yes_no',2,'bd4f1098-a113-4a53-9e9f-a41a805e642e','0','系统是否列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('系统状态','sys_common_status',3,'30693578-d012-458e-954e-0b8d3c4f8fd3','0','系统状态','2026-02-23 06:37:47','2026-02-23 06:37:47'),('通知类型','sys_notice_type',4,'766f1ff4-bf89-41e2-a8f9-27283ea0af14','0','通知类型列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('操作类型','sys_oper_type',5,'341c27ee-212f-4da9-aab3-351adc2814d7','0','操作类型列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('任务存储器','sys_job_store',6,'749b1046-0471-4fe4-91b0-b0227b64ad28','0','任务分组列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('任务执行器','sys_job_executor',7,'486ac67d-8ba3-49cb-927c-5a32ccc6c7a6','0','任务执行器列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('任务函数','sys_job_function',8,'f89aafdc-01a3-48f6-962c-1497f439834c','0','任务函数列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('任务触发器','sys_job_trigger',9,'4990e305-2a80-4ef6-b3a9-74512eb8d855','0','任务触发器列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('表格回显样式','sys_list_class',10,'4ef5f509-4335-4f37-845c-79bc78bddc90','0','表格回显样式列表','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_dict_type` ENABLE KEYS */; + +-- +-- Table structure for table `sys_log` +-- + +DROP TABLE IF EXISTS `sys_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_log` ( + `type` int NOT NULL COMMENT '日志类型(1登录日志 2操作日志)', + `request_path` varchar(255) NOT NULL COMMENT '请求路径', + `request_method` varchar(10) NOT NULL COMMENT '请求方式', + `request_payload` text COMMENT '请求体', + `request_ip` varchar(50) DEFAULT NULL COMMENT '请求IP地址', + `login_location` varchar(255) DEFAULT NULL COMMENT '登录位置', + `request_os` varchar(64) DEFAULT NULL COMMENT '操作系统', + `request_browser` varchar(64) DEFAULT NULL COMMENT '浏览器', + `response_code` int NOT NULL COMMENT '响应状态码', + `response_json` text COMMENT '响应体', + `process_time` varchar(20) DEFAULT NULL COMMENT '处理时间', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_log_uuid` (`uuid`), + KEY `ix_sys_log_created_time` (`created_time`), + KEY `ix_sys_log_status` (`status`), + KEY `ix_sys_log_created_id` (`created_id`), + KEY `ix_sys_log_updated_time` (`updated_time`), + KEY `ix_sys_log_updated_id` (`updated_id`), + KEY `ix_sys_log_id` (`id`), + CONSTRAINT `sys_log_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sys_log_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统日志表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_log` +-- + +/*!40000 ALTER TABLE `sys_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_log` ENABLE KEYS */; + +-- +-- Table structure for table `sys_menu` +-- + +DROP TABLE IF EXISTS `sys_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_menu` ( + `name` varchar(50) NOT NULL COMMENT '菜单名称', + `type` int NOT NULL COMMENT '菜单类型(1:目录 2:菜单 3:按钮/权限 4:链接)', + `order` int NOT NULL COMMENT '显示排序', + `permission` varchar(100) DEFAULT NULL COMMENT '权限标识(如:module_system:user:query)', + `icon` varchar(50) DEFAULT NULL COMMENT '菜单图标', + `route_name` varchar(100) DEFAULT NULL COMMENT '路由名称', + `route_path` varchar(200) DEFAULT NULL COMMENT '路由路径', + `component_path` varchar(200) DEFAULT NULL COMMENT '组件路径', + `redirect` varchar(200) DEFAULT NULL COMMENT '重定向地址', + `hidden` tinyint(1) NOT NULL COMMENT '是否隐藏(True:隐藏 False:显示)', + `keep_alive` tinyint(1) NOT NULL COMMENT '是否缓存(True:是 False:否)', + `always_show` tinyint(1) NOT NULL COMMENT '是否始终显示(True:是 False:否)', + `title` varchar(50) DEFAULT NULL COMMENT '菜单标题', + `params` json DEFAULT NULL COMMENT '路由参数(JSON对象)', + `affix` tinyint(1) NOT NULL COMMENT '是否固定标签页(True:是 False:否)', + `parent_id` int DEFAULT NULL COMMENT '父菜单ID', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_menu_uuid` (`uuid`), + KEY `ix_sys_menu_parent_id` (`parent_id`), + KEY `ix_sys_menu_updated_time` (`updated_time`), + KEY `ix_sys_menu_status` (`status`), + KEY `ix_sys_menu_created_time` (`created_time`), + KEY `ix_sys_menu_id` (`id`), + CONSTRAINT `sys_menu_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `sys_menu` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_menu` +-- + +/*!40000 ALTER TABLE `sys_menu` DISABLE KEYS */; +INSERT INTO `sys_menu` VALUES ('仪表盘',1,1,'','client','Dashboard','/dashboard',NULL,'/dashboard/workplace',0,1,1,'仪表盘','null',0,NULL,1,'e76bc788-e998-4c06-a8db-0b34c141fa62','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('系统管理',1,2,NULL,'system','System','/system',NULL,'/system/menu',0,1,0,'系统管理','null',0,NULL,2,'a5367e1a-d278-4514-9c72-506c8fd54caf','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('监控管理',1,3,NULL,'monitor','Monitor','/monitor',NULL,'/monitor/online',0,1,0,'监控管理','null',0,NULL,3,'42184eb0-7dc6-414e-9a0e-319114ade81d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('接口管理',1,4,NULL,'document','Common','/common',NULL,'/common/docs',0,1,0,'接口管理','null',0,NULL,4,'d251719e-cc5f-449c-8121-30b8813ebfa3','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('代码管理',1,5,NULL,'code','Generator','/generator',NULL,'/generator/gencode',0,1,0,'代码管理','null',0,NULL,5,'2ec040d5-95b1-4413-a508-287498bcd76a','0','代码管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('应用管理',1,6,NULL,'el-icon-ShoppingBag','Application','/application',NULL,'/application/myapp',0,1,0,'应用管理','null',0,NULL,6,'47b5ff81-c757-4a07-afce-bcbbf01b8d63','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('AI管理',1,7,NULL,'el-icon-ChatLineSquare','AI','/ai',NULL,'/ai/chat',0,1,0,'AI管理','null',0,NULL,7,'692a865e-aa22-49d5-bd6e-f02751ec144d','0','AI管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('任务管理',1,8,NULL,'el-icon-SetUp','Task','/task',NULL,'/task/job',0,1,0,'任务管理','null',0,NULL,8,'cfc1876b-ff27-4eb0-94db-c27390139e3b','0','任务管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('案例管理',1,9,NULL,'menu','Example','/example',NULL,'/example/demo',0,1,0,'案例管理','null',0,NULL,9,'c3ce6141-34e6-4aeb-affb-9881e5d295fd','0','案例管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('工作台',2,1,'dashboard:workplace:query','el-icon-PieChart','Workplace','/dashboard/workplace','dashboard/workplace',NULL,0,1,0,'工作台','null',0,1,10,'b78d2ff2-b070-428e-841c-0a8535a09eb4','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('菜单管理',2,1,'module_system:menu:query','menu','Menu','/system/menu','module_system/menu/index',NULL,0,1,0,'菜单管理','null',0,2,11,'47374c30-1cdf-4eba-b36e-30112b6bc231','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('部门管理',2,2,'module_system:dept:query','tree','Dept','/system/dept','module_system/dept/index',NULL,0,1,0,'部门管理','null',0,2,12,'712aa1d0-0698-45ba-b61d-c27498cf293c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('岗位管理',2,3,'module_system:position:query','el-icon-Coordinate','Position','/system/position','module_system/position/index',NULL,0,1,0,'岗位管理','null',0,2,13,'58729fa8-4ff2-40da-82e2-34f04b083d24','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('角色管理',2,4,'module_system:role:query','role','Role','/system/role','module_system/role/index',NULL,0,1,0,'角色管理','null',0,2,14,'df06b17f-6512-47f7-add7-efe369a3db95','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('用户管理',2,5,'module_system:user:query','el-icon-User','User','/system/user','module_system/user/index',NULL,0,1,0,'用户管理','null',0,2,15,'b894a31c-9495-45ae-a1c4-7406fa17c550','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('日志管理',2,6,'module_system:log:query','el-icon-Aim','Log','/system/log','module_system/log/index',NULL,0,1,0,'日志管理','null',0,2,16,'0d1ced23-bea6-4cc5-ab32-9e4627ccefb7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告管理',2,7,'module_system:notice:query','bell','Notice','/system/notice','module_system/notice/index',NULL,0,1,0,'公告管理','null',0,2,17,'8e789baf-3066-46f0-9751-103d720005d6','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('参数管理',2,8,'module_system:param:query','setting','Params','/system/param','module_system/param/index',NULL,0,1,0,'参数管理','null',0,2,18,'d3c85d5c-dc10-4039-9217-c8b65a091b51','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('字典管理',2,9,'module_system:dict_type:query','dict','Dict','/system/dict','module_system/dict/index',NULL,0,1,0,'字典管理','null',0,2,19,'b5c0acad-98eb-41a0-91b7-e6c7468b2e5d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('在线用户',2,1,'module_monitor:online:query','el-icon-Headset','MonitorOnline','/monitor/online','module_monitor/online/index',NULL,0,1,0,'在线用户','null',0,3,20,'96a3f677-2f66-410b-b2f0-dcf04fb08a5b','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('服务器监控',2,2,'module_monitor:server:query','el-icon-Odometer','MonitorServer','/monitor/server','module_monitor/server/index',NULL,0,1,0,'服务器监控','null',0,3,21,'e01504cb-e1c9-44bf-b949-ae6510841315','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('缓存监控',2,3,'module_monitor:cache:query','el-icon-Stopwatch','MonitorCache','/monitor/cache','module_monitor/cache/index',NULL,0,1,0,'缓存监控','null',0,3,22,'ae1857f7-1ce2-49c4-9e45-d300435eb7d4','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件管理',2,4,'module_monitor:resource:query','el-icon-Files','Resource','/monitor/resource','module_monitor/resource/index',NULL,0,1,0,'文件管理','null',0,3,23,'acffb4bc-45f7-4d24-a8e2-7d684fad937c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('Swagger文档',4,1,'module_common:docs:query','api','Docs','/common/docs','module_common/docs/index',NULL,0,1,0,'Swagger文档','null',0,4,24,'216f1d01-df0a-479a-8b59-2fa7d1560634','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('Redoc文档',4,2,'module_common:redoc:query','el-icon-Document','Redoc','/common/redoc','module_common/redoc/index',NULL,0,1,0,'Redoc文档','null',0,4,25,'acf33c58-3b5b-4864-bd87-7245b9bb7247','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('LangJin文档',4,3,'module_common:ljdoc:query','el-icon-Document','Ljdoc','/common/ljdoc','module_common/ljdoc/index',NULL,0,1,0,'LangJin文档','null',0,4,26,'f15612a6-6744-4f71-b359-d2e7b554d92e','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('代码生成',2,1,'module_generator:gencode:query','code','GenCode','/generator/gencode','module_generator/gencode/index',NULL,0,1,0,'代码生成','null',0,5,27,'ed7dacac-03b3-4b15-9cd5-acc7549e3414','0','代码生成','2026-02-23 06:37:47','2026-02-23 06:37:47'),('我的应用',2,1,'module_application:myapp:query','el-icon-ShoppingCartFull','MYAPP','/application/myapp','module_application/myapp/index',NULL,0,1,0,'我的应用','null',0,6,28,'65773272-0c32-4ccc-a5b3-331655964c21','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('会话标题',2,1,'module_ai:chat_session:query','el-icon-ChatLineRound','ChatSession','/ai/chat_session','module_ai/chat_session/index',NULL,0,1,0,'会话标题','null',0,7,29,'3ca0a010-106b-453b-96eb-a9230a1cb170','0','会话标题','2026-02-23 06:37:47','2026-02-23 06:37:47'),('会话内容',2,2,'module_ai:chat_message:query','el-icon-ChatSquare','ChatMessage','/ai/chat_message','module_ai/chat_message/index',NULL,0,1,0,'会话内容','null',0,7,30,'07cc7bf9-1efd-4420-8d65-55be1ea96c96','0','会话内容','2026-02-23 06:37:47','2026-02-23 06:37:47'),('AI智能助手',2,3,'module_ai:chat:ws','el-icon-ChatDotRound','Chat','/application/ai','module_ai/chat/index',NULL,0,1,0,'AI智能助手','null',0,7,31,'32833de1-2a2a-402d-a277-636923766e66','0','AI智能助手','2026-02-23 06:37:47','2026-02-23 06:37:47'),('调度器监控',2,1,'module_task:job:query','el-icon-DataLine','Job','/task/job','module_task/job/index',NULL,0,1,0,'调度器监控','null',0,8,32,'ddb90de2-2f50-445b-832f-2ed655e9e3e5','0','调度器监控','2026-02-23 06:37:47','2026-02-23 06:37:47'),('节点管理',2,2,'module_task:node:query','el-icon-Postcard','Node','/task/node','module_task/node/index',NULL,0,1,0,'节点管理','null',0,8,33,'8e30977b-5459-46ee-8c40-b3032f4517da','0','节点管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('流程编排',2,3,'module_task:workflow:query','el-icon-Share','Workflow','/task/workflow','module_task/workflow/index',NULL,0,1,0,'流程编排','null',0,8,34,'02101754-b207-4656-94ba-e1b3fc72aaaa','0','流程编排','2026-02-23 06:37:47','2026-02-23 06:37:47'),('示例管理',2,1,'module_example:demo:query','menu','Demo','/example/demo','module_example/demo/index',NULL,0,1,0,'示例管理','null',0,9,35,'e9d1d1a3-e553-4018-bc19-3a25f12f29ee','0','示例管理','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建菜单',3,1,'module_system:menu:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建菜单','null',0,11,36,'e7ecd892-c1ef-4064-9ff5-6c04fd51f847','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改菜单',3,2,'module_system:menu:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改菜单','null',0,11,37,'25b565bc-4852-4824-b1d3-b7973fc52fe7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除菜单',3,3,'module_system:menu:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除菜单','null',0,11,38,'a85de786-2611-4615-9fea-231bd57c21d9','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改菜单状态',3,4,'module_system:menu:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改菜单状态','null',0,11,39,'440f15b7-23b3-420a-99f2-cb61d7db4aad','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情菜单',3,5,'module_system:menu:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情菜单','null',0,11,40,'41ebb7d8-d12f-45fd-8a25-16231d216c6c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询菜单',3,6,'module_system:menu:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询菜单','null',0,11,41,'0fa4fd6f-6bde-4eba-a3a6-a9f08c04f376','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建部门',3,1,'module_system:dept:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建部门','null',0,12,42,'f52bf650-e8bf-4e3a-a62d-a11e53c19e96','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改部门',3,2,'module_system:dept:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改部门','null',0,12,43,'f982f7d6-badc-4785-a996-fb326c787e76','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除部门',3,3,'module_system:dept:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除部门','null',0,12,44,'75823dc0-0169-4443-b059-148a05231864','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改部门状态',3,4,'module_system:dept:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改部门状态','null',0,12,45,'8f9aa8b4-c1c8-4df7-ad4f-712d56bd9d08','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情部门',3,5,'module_system:dept:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情部门','null',0,12,46,'d6dd1bdb-cbdd-4e56-8bbd-e1f53abbf580','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询部门',3,6,'module_system:dept:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询部门','null',0,12,47,'c6b8f628-eb5e-4e96-8703-dec9d7c29904','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建岗位',3,1,'module_system:position:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建岗位','null',0,13,48,'12ed1518-4d43-4c53-b7b9-32e6b8c3dfa7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改岗位',3,2,'module_system:position:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改岗位','null',0,13,49,'524ce9fa-a9fa-46c1-ac91-dc25101bc99a','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除岗位',3,3,'module_system:position:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改岗位','null',0,13,50,'d27e6111-dcfc-40ea-bbc3-b24bdd27c629','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改岗位状态',3,4,'module_system:position:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改岗位状态','null',0,13,51,'5d365e29-0d18-49f1-b981-c8dc135c76eb','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('岗位导出',3,5,'module_system:position:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'岗位导出','null',0,13,52,'8306cb4a-77e7-4949-a53e-296054469f5c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情岗位',3,6,'module_system:position:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情岗位','null',0,13,53,'60741738-d0e3-40fc-90ba-702912c31c77','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询岗位',3,7,'module_system:position:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询岗位','null',0,13,54,'94a1acfc-a3b8-4f88-a82e-9862942bf7a4','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建角色',3,1,'module_system:role:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建角色','null',0,14,55,'0a082177-2dd2-4554-9ed8-2b076a3cc244','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改角色',3,2,'module_system:role:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改角色','null',0,14,56,'1527879e-1650-47b4-9a25-6ae92c40e881','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除角色',3,3,'module_system:role:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除角色','null',0,14,57,'8bf23c9b-a799-472f-bc9d-5709d13fd7ce','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改角色状态',3,4,'module_system:role:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改角色状态','null',0,14,58,'1a186a57-31e5-4a12-9ab4-9124e694fe65','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('角色导出',3,5,'module_system:role:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'角色导出','null',0,14,59,'16d389d4-a74c-4e8e-9ddf-b68b28e2fb85','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情角色',3,6,'module_system:role:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情角色','null',0,14,60,'8cd129a0-2449-40fc-a161-16c34ec96f3c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询角色',3,7,'module_system:role:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询角色','null',0,14,61,'4b04dbdf-ff51-4f33-aa50-a5b8c174ac3b','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('分配权限',3,8,'module_system:role:permission',NULL,NULL,NULL,NULL,NULL,0,1,0,'分配权限','null',0,14,62,'74fd7e11-82f9-41e9-b0ec-37e71da11a6d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建用户',3,1,'module_system:user:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建用户','null',0,15,63,'420f20e2-d818-462b-a175-b162864d77b5','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改用户',3,2,'module_system:user:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改用户','null',0,15,64,'b9632524-1c45-49b6-8bc5-bd8d1f5f1caa','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除用户',3,3,'module_system:user:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除用户','null',0,15,65,'479c1c48-8fff-4d2c-a732-89a63ac49980','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改用户状态',3,4,'module_system:user:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改用户状态','null',0,15,66,'134707ee-7886-41f7-9b51-44e4e9bc677c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出用户',3,5,'module_system:user:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出用户','null',0,15,67,'a05ca863-4953-4e35-9de8-d6ac9adda09d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导入用户',3,6,'module_system:user:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入用户','null',0,15,68,'7f21f05c-c645-485a-90d1-748f5570742e','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('下载用户导入模板',3,7,'module_system:user:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'下载用户导入模板','null',0,15,69,'ae982df8-cca4-45dc-89bb-55dfc050a040','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情用户',3,8,'module_system:user:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情用户','null',0,15,70,'c89086cd-5888-4f51-aeb6-e211691c266c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询用户',3,9,'module_system:user:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询用户','null',0,15,71,'cbb6fbe5-06a2-45cb-83a4-e04a9d3a496b','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('日志删除',3,1,'module_system:log:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志删除','null',0,16,72,'a3ee640c-1392-4a1a-b55d-bbb192f26df1','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('日志导出',3,2,'module_system:log:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志导出','null',0,16,73,'a07d7ff3-e9dc-4e2d-9d75-79964f2c8d32','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('日志详情',3,3,'module_system:log:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'日志详情','null',0,16,74,'a68c1f65-caaf-44fe-928b-5b333da3264d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询日志',3,4,'module_system:log:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询日志','null',0,16,75,'ab91005b-d317-40b5-a1b2-127542c6037b','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告创建',3,1,'module_system:notice:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告创建','null',0,17,76,'c1e457dc-1ea3-471d-bea7-e93c46060673','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告修改',3,2,'module_system:notice:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改用户','null',0,17,77,'a6f99032-363c-4e66-8e5a-614a3126ac87','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告删除',3,3,'module_system:notice:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告删除','null',0,17,78,'77b20c6c-1d47-4ac9-bbf6-b642c9b443ee','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告导出',3,4,'module_system:notice:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告导出','null',0,17,79,'bd4534dc-4880-47d5-bd11-26294ef53261','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告批量修改状态',3,5,'module_system:notice:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告批量修改状态','null',0,17,80,'c1ea9929-0f4a-4a4f-a6bb-0e3e3abb3ab7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('公告详情',3,6,'module_system:notice:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'公告详情','null',0,17,81,'6b6daa48-53c7-4e67-b6d7-db86957242d7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询公告',3,5,'module_system:notice:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询公告','null',0,17,82,'eb1cc421-cb1c-4782-baf1-fd138af0facd','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建参数',3,1,'module_system:param:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建参数','null',0,18,83,'6f3428a9-ceaf-411d-b10e-f2dafadb25dd','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改参数',3,2,'module_system:param:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改参数','null',0,18,84,'be3659db-33f1-4ad6-90ae-c54e46a1033d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除参数',3,3,'module_system:param:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除参数','null',0,18,85,'5a8bc0c1-b2de-4254-8fc5-c6f15f7771de','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出参数',3,4,'module_system:param:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出参数','null',0,18,86,'a2e3415d-ca7c-4feb-af55-5daf7f2d3e99','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('参数上传',3,5,'module_system:param:upload',NULL,NULL,NULL,NULL,NULL,0,1,0,'参数上传','null',0,18,87,'9183313d-11e5-41f0-869f-feac5f9f7f41','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('参数详情',3,6,'module_system:param:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'参数详情','null',0,18,88,'0cf269e9-f15f-4ec2-abd2-8a46cd183431','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询参数',3,7,'module_system:param:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询参数','null',0,18,89,'74fdfaf1-244a-401c-93a3-64d29a696371','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建字典类型',3,1,'module_system:dict_type:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建字典类型','null',0,19,90,'b7427550-555f-46a0-b2e8-defab1e012ec','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改字典类型',3,2,'module_system:dict_type:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改字典类型','null',0,19,91,'f1b4dc0d-0900-4ce6-ab3a-843e5ae04510','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除字典类型',3,3,'module_system:dict_type:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除字典类型','null',0,19,92,'aabafe02-8a18-4741-95ab-bf43440b72bf','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出字典类型',3,4,'module_system:dict_type:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典类型','null',0,19,93,'6ec85932-e698-4fdb-a37a-f5166059978b','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改字典状态',3,5,'module_system:dict_type:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典类型','null',0,19,94,'3885ccc3-173e-45ac-88fa-d7c0ea23c935','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('字典数据查询',3,6,'module_system:dict_data:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'字典数据查询','null',0,19,95,'db980fbd-adcc-4245-818d-e4c5fa38adbb','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建字典数据',3,7,'module_system:dict_data:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建字典数据','null',0,19,96,'a62595bd-c030-4fd3-8c82-629a5fe992fd','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改字典数据',3,8,'module_system:dict_data:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改字典数据','null',0,19,97,'baaa1280-4398-4e48-8122-896c0821a8dd','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除字典数据',3,9,'module_system:dict_data:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除字典数据','null',0,19,98,'8708a21b-d8f1-4a40-8b63-ae7db6cb8413','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出字典数据',3,10,'module_system:dict_data:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出字典数据','null',0,19,99,'963375aa-1d83-4d5c-a600-f7e1585141c6','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改字典数据状态',3,11,'module_system:dict_data:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改字典数据状态','null',0,19,100,'575ca2ed-dfa0-4bc2-9a8e-3b299e47943d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情字典类型',3,12,'module_system:dict_type:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情字典类型','null',0,19,101,'cef57c67-8cfb-46cc-9a0e-61bc5691f9d6','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询字典类型',3,13,'module_system:dict_type:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询字典类型','null',0,19,102,'54c16105-71e3-40d5-9f35-d1a2279c0a4d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情字典数据',3,14,'module_system:dict_data:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情字典数据','null',0,19,103,'7bc387cf-585b-4c99-a211-aa7f72e7ae1f','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('在线用户强制下线',3,1,'module_monitor:online:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'在线用户强制下线','null',0,20,104,'933e52b9-73df-4685-8e43-d539435cc3a6','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('清除缓存',3,1,'module_monitor:cache:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'清除缓存','null',0,22,105,'36980bb9-7749-468d-a6ac-62f7eca17911','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件上传',3,1,'module_monitor:resource:upload',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件上传','null',0,23,106,'8bbd147e-d43b-4643-9e21-6c3160fcd8d8','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件下载',3,2,'module_monitor:resource:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件下载','null',0,23,107,'9c3d8df6-9905-4334-afa9-c19976e4eec8','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件删除',3,3,'module_monitor:resource:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件删除','null',0,23,108,'67cb3d6f-1c17-44fe-86b6-b4273e98a59c','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件移动',3,4,'module_monitor:resource:move',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件移动','null',0,23,109,'a103c90e-15dd-4917-a7b5-5b60ee8adbd7','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件复制',3,5,'module_monitor:resource:copy',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件复制','null',0,23,110,'88bb04ab-687d-4359-a9a1-061a250b761d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('文件重命名',3,6,'module_monitor:resource:rename',NULL,NULL,NULL,NULL,NULL,0,1,0,'文件重命名','null',0,23,111,'325a183d-4147-4f5d-8dc2-0ae48e6e1e51','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建目录',3,7,'module_monitor:resource:create_dir',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建目录','null',0,23,112,'37f470c1-b257-445f-a57d-58636f9b7c8f','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出文件列表',3,9,'module_monitor:resource:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出文件列表','null',0,23,113,'7b4a4734-6b30-49ed-8dab-1cbc022486a5','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询代码生成业务表列表',3,1,'module_generator:gencode:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询代码生成业务表列表','null',0,27,114,'19da9b9a-69f0-498d-8edc-833984c63dd3','0','查询代码生成业务表列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建表结构',3,2,'module_generator:gencode:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建表结构','null',0,27,115,'cad0f8b7-4b14-496e-a96f-597c6c4d1cf2','0','创建表结构','2026-02-23 06:37:47','2026-02-23 06:37:47'),('编辑业务表信息',3,3,'module_generator:gencode:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'编辑业务表信息','null',0,27,116,'af355b46-11ef-488b-8256-71dc00cac825','0','编辑业务表信息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除业务表信息',3,4,'module_generator:gencode:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除业务表信息','null',0,27,117,'056d9872-bd13-4f7e-b37e-32ca04bf66c0','0','删除业务表信息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导入表结构',3,5,'module_generator:gencode:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入表结构','null',0,27,118,'b3677b2f-5daf-4562-9970-3c52e129c75e','0','导入表结构','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量生成代码',3,6,'module_generator:gencode:operate',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量生成代码','null',0,27,119,'373e33c5-8201-4ef0-975d-a69b4e43e67e','0','批量生成代码','2026-02-23 06:37:47','2026-02-23 06:37:47'),('生成代码到指定路径',3,7,'module_generator:gencode:code',NULL,NULL,NULL,NULL,NULL,0,1,0,'生成代码到指定路径','null',0,27,120,'e00f73a1-6672-4927-892e-8379ffa1d68a','0','生成代码到指定路径','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询数据库表列表',3,8,'module_generator:dblist:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询数据库表列表','null',0,27,121,'79ec1de1-fe93-482d-a827-049fc492b46b','0','查询数据库表列表','2026-02-23 06:37:47','2026-02-23 06:37:47'),('同步数据库',3,9,'module_generator:db:sync',NULL,NULL,NULL,NULL,NULL,0,1,0,'同步数据库','null',0,27,122,'af2d2b68-719f-4f73-99c0-173d315c07a0','0','同步数据库','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建应用',3,1,'module_application:myapp:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建应用','null',0,28,123,'42f374ae-5fb4-4f9b-9477-8237e92db861','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改应用',3,2,'module_application:myapp:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改应用','null',0,28,124,'f6b89ee0-1d61-499b-82d4-190bcb5d5099','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除应用',3,3,'module_application:myapp:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除应用','null',0,28,125,'7f698f76-e174-4827-90aa-8b0fa10ce2de','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改应用状态',3,4,'module_application:myapp:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改应用状态','null',0,28,126,'08a6590b-477f-4539-a4eb-dba7a8e25808','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情应用',3,5,'module_application:myapp:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情应用','null',0,28,127,'c27cd911-10e5-47f6-9a4d-fb09c0e91845','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询应用',3,6,'module_application:myapp:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询应用','null',0,28,128,'53812bc0-c64d-434c-b749-ed58d6da5833','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('会话标题详情',3,1,'module_ai:chat_session:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'会话标题详情','null',0,29,129,'9651008a-11c5-4044-9a4e-e9a008022456','0','会话标题详情','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建会话标题',3,2,'module_ai:chat_session:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建会话标题','null',0,29,130,'500834e3-50e5-46d9-927f-b46200d9d107','0','创建会话标题','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改会话标题',3,3,'module_ai:chat_session:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改会话标题','null',0,29,131,'cfbf4d14-8fc7-4ffb-bb34-fbf00ce02961','0','修改会话标题','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除会话标题',3,4,'module_ai:chat_session:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除会话标题','null',0,29,132,'7a548357-e222-4f04-ac77-70e5dfcf8af0','0','删除会话标题','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询会话标题',3,5,'module_ai:chat_session:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询会话标题','null',0,29,133,'b373a804-1aad-4b8b-bcdd-55f735ee6f2f','0','查询会话标题','2026-02-23 06:37:47','2026-02-23 06:37:47'),('会话消息详情',3,6,'module_ai:chat_message:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'会话消息详情','null',0,30,134,'fe41dfd3-fd42-4070-abbf-101b869710b4','0','会话消息详情','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建会话消息',3,7,'module_ai:chat_message:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建会话消息','null',0,30,135,'dc81882b-47d1-421f-8645-225ca0b7e3ea','0','创建会话消息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改会话消息',3,8,'module_ai:chat_message:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改会话消息','null',0,30,136,'c1b039ff-8008-4072-b331-26a88ea5fdb8','0','修改会话消息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除会话消息',3,9,'module_ai:chat_message:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除会话消息','null',0,30,137,'6b1fea13-aaec-439e-9839-1325f1984907','0','删除会话消息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询会话消息',3,10,'module_ai:chat_message:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询会话消息','null',0,30,138,'2cc217fa-8f71-4443-9b75-fec46740ec0e','0','查询会话消息','2026-02-23 06:37:47','2026-02-23 06:37:47'),('AI对话',3,1,'module_ai:chat:ws',NULL,NULL,NULL,NULL,NULL,0,1,0,'AI对话','null',0,31,139,'c6faed96-cd3e-4510-b703-207c72fab7ed','0','AI对话','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询调度器',3,1,'module_task:job:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询调度器','null',0,32,140,'a7784d83-72e4-48b1-a12e-91c53be3b4ef','0','查询调度器','2026-02-23 06:37:47','2026-02-23 06:37:47'),('操作调度器',3,2,'module_task:job:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'操作调度器','null',0,32,141,'28499476-fd9a-40fe-ac1f-7b05b4e0e7c8','0','操作调度器','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除执行日志',3,3,'module_task:job:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除执行日志','null',0,32,142,'8d1a7d83-0643-4026-9c03-2736058be970','0','删除执行日志','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情执行日志',3,4,'module_task:job:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情执行日志','null',0,32,143,'d85beb15-1493-4810-ae7d-fc5c8bf3f76d','0','详情执行日志','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建节点',3,1,'module_task:node:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建节点','null',0,33,144,'061c4ea7-d3da-4bee-b0a6-c7d962ce23f6','0','创建节点','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改节点',3,2,'module_task:node:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改节点','null',0,33,145,'ded2d38f-bfbb-4c34-8143-88701268fec0','0','修改节点','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除节点',3,3,'module_task:node:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除节点','null',0,33,146,'88f0661d-34c5-4bd5-af8d-7d8948eeee7a','0','删除节点','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情节点',3,4,'module_task:node:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情节点','null',0,33,147,'347467c9-931a-445c-8e58-c9bc6e363bb3','0','详情节点','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询节点',3,5,'module_task:node:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询节点','null',0,33,148,'01eda97e-6b53-4af0-8882-583ea05712e7','0','查询节点','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建工作流',3,1,'module_task:workflow:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建工作流','null',0,34,149,'adc5c3fa-9079-4e29-a39a-94082fddc45b','0','创建工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('修改工作流',3,2,'module_task:workflow:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'修改工作流','null',0,34,150,'48433a15-4566-482f-b6a5-32b48d56519b','0','修改工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除工作流',3,3,'module_task:workflow:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除工作流','null',0,34,151,'7d0251a5-9696-41d6-a644-8fa2445b9ca8','0','删除工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('发布工作流',3,4,'module_task:workflow:publish',NULL,NULL,NULL,NULL,NULL,0,1,0,'发布工作流','null',0,34,152,'72b4ade2-fb52-4a0a-8d76-2bb3eb0ace89','0','发布工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('执行工作流',3,5,'module_task:workflow:execute',NULL,NULL,NULL,NULL,NULL,0,1,0,'执行工作流','null',0,34,153,'bf0bd880-3509-41d4-adf6-11a74278eb57','0','执行工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情工作流',3,6,'module_task:workflow:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情工作流','null',0,34,154,'610510e0-f5ef-48d6-9aba-3d4b77a8b40e','0','详情工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询工作流',3,7,'module_task:workflow:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询工作流','null',0,34,155,'47e50da9-7ec7-498b-b272-6cbc10841ef5','0','查询工作流','2026-02-23 06:37:47','2026-02-23 06:37:47'),('创建示例',3,1,'module_example:demo:create',NULL,NULL,NULL,NULL,NULL,0,1,0,'创建示例','null',0,35,156,'2ab5cc94-9526-42f8-a801-7b48e61d8021','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('更新示例',3,2,'module_example:demo:update',NULL,NULL,NULL,NULL,NULL,0,1,0,'更新示例','null',0,35,157,'1cb87f98-d5fe-4fb7-81b0-6d791718bca2','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('删除示例',3,3,'module_example:demo:delete',NULL,NULL,NULL,NULL,NULL,0,1,0,'删除示例','null',0,35,158,'6df6694a-ace3-429b-a163-00666f370ba2','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('批量修改示例状态',3,4,'module_example:demo:patch',NULL,NULL,NULL,NULL,NULL,0,1,0,'批量修改示例状态','null',0,35,159,'5e35887b-078d-48f1-ae89-920c0d3b04a4','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导出示例',3,5,'module_example:demo:export',NULL,NULL,NULL,NULL,NULL,0,1,0,'导出示例','null',0,35,160,'998f9e90-0e5c-43a0-8805-684d9183a867','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('导入示例',3,6,'module_example:demo:import',NULL,NULL,NULL,NULL,NULL,0,1,0,'导入示例','null',0,35,161,'dcbea2dc-9678-4bd1-9ae5-6e5360364a84','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('下载导入示例模版',3,7,'module_example:demo:download',NULL,NULL,NULL,NULL,NULL,0,1,0,'下载导入示例模版','null',0,35,162,'1ddf53ca-58a5-4a9a-8bd4-6c80ff76b375','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('详情示例',3,8,'module_example:demo:detail',NULL,NULL,NULL,NULL,NULL,0,1,0,'详情示例','null',0,35,163,'f0d15c7b-df95-491d-b872-bec5e4229609','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('查询示例',3,9,'module_example:demo:query',NULL,NULL,NULL,NULL,NULL,0,1,0,'查询示例','null',0,35,164,'f5e1078a-f1c3-429b-a6a4-16c66b20873f','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_menu` ENABLE KEYS */; + +-- +-- Table structure for table `sys_notice` +-- + +DROP TABLE IF EXISTS `sys_notice`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_notice` ( + `notice_title` varchar(64) NOT NULL COMMENT '公告标题', + `notice_type` varchar(1) NOT NULL COMMENT '公告类型(1通知 2公告)', + `notice_content` text COMMENT '公告内容', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_notice_uuid` (`uuid`), + KEY `ix_sys_notice_created_id` (`created_id`), + KEY `ix_sys_notice_status` (`status`), + KEY `ix_sys_notice_updated_id` (`updated_id`), + KEY `ix_sys_notice_created_time` (`created_time`), + KEY `ix_sys_notice_id` (`id`), + KEY `ix_sys_notice_updated_time` (`updated_time`), + CONSTRAINT `sys_notice_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sys_notice_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通知公告表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_notice` +-- + +/*!40000 ALTER TABLE `sys_notice` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_notice` ENABLE KEYS */; + +-- +-- Table structure for table `sys_param` +-- + +DROP TABLE IF EXISTS `sys_param`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_param` ( + `config_name` varchar(64) NOT NULL COMMENT '参数名称', + `config_key` varchar(500) NOT NULL COMMENT '参数键名', + `config_value` varchar(500) DEFAULT NULL COMMENT '参数键值', + `config_type` tinyint(1) DEFAULT NULL COMMENT '系统内置(True:是 False:否)', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_param_uuid` (`uuid`), + KEY `ix_sys_param_updated_time` (`updated_time`), + KEY `ix_sys_param_status` (`status`), + KEY `ix_sys_param_id` (`id`), + KEY `ix_sys_param_created_time` (`created_time`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='系统参数表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_param` +-- + +/*!40000 ALTER TABLE `sys_param` DISABLE KEYS */; +INSERT INTO `sys_param` VALUES ('网站名称','sys_web_title','FastApiAdmin',1,1,'40073f9b-ddbc-49ee-98e3-3a3501b4a351','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('网站描述','sys_web_description','FastApiAdmin 是完全开源的权限管理系统',1,2,'bdf8285f-f44f-46fc-ad1f-6e18cec30d1f','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('网页图标','sys_web_favicon','https://service.fastapiadmin.com/api/v1/static/image/favicon.png',1,3,'26d3bd9e-ef8a-4be6-911a-1d32151f82c9','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('网站Logo','sys_web_logo','https://service.fastapiadmin.com/api/v1/static/image/logo.png',1,4,'c48eacf8-b02a-4231-a948-bd0e34ea0aef','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('登录背景','sys_login_background','https://service.fastapiadmin.com/api/v1/static/image/background.svg',1,5,'766347dc-e618-4887-92b6-fd3e7787e095','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('版权信息','sys_web_copyright','Copyright © 2025-2026 service.fastapiadmin.com 版权所有',1,6,'e63d32bc-0bfd-4e9c-8a5c-21cf53c29e13','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('备案信息','sys_keep_record','陕ICP备2025069493号-1',1,7,'d436d1fc-d922-46d1-915b-e4537faddc43','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('帮助文档','sys_help_doc','https://service.fastapiadmin.com',1,8,'83ad1792-6321-45f5-8100-3f1aee119669','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('隐私政策','sys_web_privacy','https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE',1,9,'3b7c4395-c055-475b-ad24-66cc66c83af3','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('用户协议','sys_web_clause','https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE',1,10,'a0574120-d2b4-4a8a-ae16-5c0c463738d6','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('源码代码','sys_git_code','https://github.com/fastapiadmin/FastapiAdmin.git',1,11,'340064a7-2812-41a1-8fc4-9dc449529203','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('项目版本','sys_web_version','2.0.0',1,12,'8ee26591-acca-41ef-828a-01abd0a60cba','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('演示模式启用','demo_enable','false',1,13,'6d93ee29-1b00-46a1-af70-c31fa1595890','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('演示访问IP白名单','ip_white_list','[\"127.0.0.1\"]',1,14,'4b27bbc5-aec0-4bbc-9d22-be4600b69b1d','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('接口白名单','white_api_list_path','[\"/api/v1/system/auth/login\", \"/api/v1/system/auth/token/refresh\", \"/api/v1/system/auth/captcha/get\", \"/api/v1/system/auth/logout\", \"/api/v1/system/config/info\", \"/api/v1/system/user/current/info\", \"/api/v1/system/notice/available\"]',1,15,'588150ad-6019-4653-8532-d5eeb6e96b53','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'),('访问IP黑名单','ip_black_list','[]',1,16,'280a7f06-b9f8-4d70-896b-facaf45066ad','0','初始化数据','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_param` ENABLE KEYS */; + +-- +-- Table structure for table `sys_position` +-- + +DROP TABLE IF EXISTS `sys_position`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_position` ( + `name` varchar(64) NOT NULL COMMENT '岗位名称', + `order` int NOT NULL COMMENT '显示排序', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_position_uuid` (`uuid`), + KEY `ix_sys_position_updated_time` (`updated_time`), + KEY `ix_sys_position_created_time` (`created_time`), + KEY `ix_sys_position_status` (`status`), + KEY `ix_sys_position_created_id` (`created_id`), + KEY `ix_sys_position_updated_id` (`updated_id`), + KEY `ix_sys_position_id` (`id`), + CONSTRAINT `sys_position_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sys_position_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='岗位表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_position` +-- + +/*!40000 ALTER TABLE `sys_position` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_position` ENABLE KEYS */; + +-- +-- Table structure for table `sys_role` +-- + +DROP TABLE IF EXISTS `sys_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_role` ( + `name` varchar(64) NOT NULL COMMENT '角色名称', + `code` varchar(16) DEFAULT NULL COMMENT '角色编码', + `order` int NOT NULL COMMENT '显示排序', + `data_scope` int NOT NULL COMMENT '数据权限范围(1:仅本人 2:本部门 3:本部门及以下 4:全部 5:自定义)', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_sys_role_uuid` (`uuid`), + KEY `ix_sys_role_id` (`id`), + KEY `ix_sys_role_created_time` (`created_time`), + KEY `ix_sys_role_status` (`status`), + KEY `ix_sys_role_code` (`code`), + KEY `ix_sys_role_updated_time` (`updated_time`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_role` +-- + +/*!40000 ALTER TABLE `sys_role` DISABLE KEYS */; +INSERT INTO `sys_role` VALUES ('管理员角色','ADMIN',1,4,1,'6d6fda01-60b3-49c2-bca3-fe4bde36810f','0','初始化角色','2026-02-23 06:37:47','2026-02-23 06:37:47'); +/*!40000 ALTER TABLE `sys_role` ENABLE KEYS */; + +-- +-- Table structure for table `sys_role_depts` +-- + +DROP TABLE IF EXISTS `sys_role_depts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_role_depts` ( + `role_id` int NOT NULL COMMENT '角色ID', + `dept_id` int NOT NULL COMMENT '部门ID', + PRIMARY KEY (`role_id`,`dept_id`), + KEY `dept_id` (`dept_id`), + CONSTRAINT `sys_role_depts_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `sys_role_depts_ibfk_2` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色部门关联表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_role_depts` +-- + +/*!40000 ALTER TABLE `sys_role_depts` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_role_depts` ENABLE KEYS */; + +-- +-- Table structure for table `sys_role_menus` +-- + +DROP TABLE IF EXISTS `sys_role_menus`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_role_menus` ( + `role_id` int NOT NULL COMMENT '角色ID', + `menu_id` int NOT NULL COMMENT '菜单ID', + PRIMARY KEY (`role_id`,`menu_id`), + KEY `menu_id` (`menu_id`), + CONSTRAINT `sys_role_menus_ibfk_1` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `sys_role_menus_ibfk_2` FOREIGN KEY (`menu_id`) REFERENCES `sys_menu` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色菜单关联表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_role_menus` +-- + +/*!40000 ALTER TABLE `sys_role_menus` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_role_menus` ENABLE KEYS */; + +-- +-- Table structure for table `sys_user` +-- + +DROP TABLE IF EXISTS `sys_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_user` ( + `username` varchar(64) NOT NULL COMMENT '用户名/登录账号', + `password` varchar(255) NOT NULL COMMENT '密码哈希', + `name` varchar(32) NOT NULL COMMENT '昵称', + `mobile` varchar(11) DEFAULT NULL COMMENT '手机号', + `email` varchar(64) DEFAULT NULL COMMENT '邮箱', + `gender` varchar(1) DEFAULT NULL COMMENT '性别(0:男 1:女 2:未知)', + `avatar` varchar(255) DEFAULT NULL COMMENT '头像URL地址', + `is_superuser` tinyint(1) NOT NULL COMMENT '是否超管', + `last_login` datetime DEFAULT NULL COMMENT '最后登录时间', + `gitee_login` varchar(32) DEFAULT NULL COMMENT 'Gitee登录', + `github_login` varchar(32) DEFAULT NULL COMMENT 'Github登录', + `wx_login` varchar(32) DEFAULT NULL COMMENT '微信登录', + `qq_login` varchar(32) DEFAULT NULL COMMENT 'QQ登录', + `dept_id` int DEFAULT NULL COMMENT '部门ID', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `ix_sys_user_uuid` (`uuid`), + UNIQUE KEY `mobile` (`mobile`), + UNIQUE KEY `email` (`email`), + KEY `ix_sys_user_id` (`id`), + KEY `ix_sys_user_created_time` (`created_time`), + KEY `ix_sys_user_dept_id` (`dept_id`), + KEY `ix_sys_user_created_id` (`created_id`), + KEY `ix_sys_user_status` (`status`), + KEY `ix_sys_user_updated_id` (`updated_id`), + KEY `ix_sys_user_updated_time` (`updated_time`), + CONSTRAINT `sys_user_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sys_user_ibfk_2` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `sys_user_ibfk_3` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_user` +-- + +/*!40000 ALTER TABLE `sys_user` DISABLE KEYS */; +INSERT INTO `sys_user` VALUES ('admin','$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa','超级管理员',NULL,NULL,'0','https://service.fastapiadmin.com/api/v1/static/image/avatar.png',1,NULL,NULL,NULL,NULL,NULL,1,1,'02341816-110e-4ef4-a5a5-89aa6ff33b7f','0','超级管理员','2026-02-23 06:37:47','2026-02-23 06:37:47',NULL,NULL); +/*!40000 ALTER TABLE `sys_user` ENABLE KEYS */; + +-- +-- Table structure for table `sys_user_positions` +-- + +DROP TABLE IF EXISTS `sys_user_positions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_user_positions` ( + `user_id` int NOT NULL COMMENT '用户ID', + `position_id` int NOT NULL COMMENT '岗位ID', + PRIMARY KEY (`user_id`,`position_id`), + KEY `position_id` (`position_id`), + CONSTRAINT `sys_user_positions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `sys_user_positions_ibfk_2` FOREIGN KEY (`position_id`) REFERENCES `sys_position` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户岗位关联表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_user_positions` +-- + +/*!40000 ALTER TABLE `sys_user_positions` DISABLE KEYS */; +/*!40000 ALTER TABLE `sys_user_positions` ENABLE KEYS */; + +-- +-- Table structure for table `sys_user_roles` +-- + +DROP TABLE IF EXISTS `sys_user_roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `sys_user_roles` ( + `user_id` int NOT NULL COMMENT '用户ID', + `role_id` int NOT NULL COMMENT '角色ID', + PRIMARY KEY (`user_id`,`role_id`), + KEY `role_id` (`role_id`), + CONSTRAINT `sys_user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `sys_user_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户角色关联表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sys_user_roles` +-- + +/*!40000 ALTER TABLE `sys_user_roles` DISABLE KEYS */; +INSERT INTO `sys_user_roles` VALUES (1,1); +/*!40000 ALTER TABLE `sys_user_roles` ENABLE KEYS */; + +-- +-- Table structure for table `task_job` +-- + +DROP TABLE IF EXISTS `task_job`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `task_job` ( + `job_id` varchar(64) NOT NULL COMMENT '任务ID', + `job_name` varchar(128) DEFAULT NULL COMMENT '任务名称', + `trigger_type` varchar(32) DEFAULT NULL COMMENT '触发方式: cron/interval/date/manual', + `status` varchar(16) NOT NULL COMMENT '执行状态', + `next_run_time` varchar(64) DEFAULT NULL COMMENT '下次执行时间', + `job_state` text COMMENT '任务状态信息', + `result` text COMMENT '执行结果', + `error` text COMMENT '错误信息', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_task_job_uuid` (`uuid`), + KEY `ix_task_job_id` (`id`), + KEY `ix_task_job_updated_time` (`updated_time`), + KEY `ix_task_job_job_id` (`job_id`), + KEY `ix_task_job_created_time` (`created_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='任务执行日志表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `task_job` +-- + +/*!40000 ALTER TABLE `task_job` DISABLE KEYS */; +/*!40000 ALTER TABLE `task_job` ENABLE KEYS */; + +-- +-- Table structure for table `task_node` +-- + +DROP TABLE IF EXISTS `task_node`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `task_node` ( + `name` varchar(64) NOT NULL COMMENT '节点名称', + `code` varchar(32) NOT NULL COMMENT '节点编码', + `category` varchar(32) NOT NULL COMMENT '节点分类', + `jobstore` varchar(64) DEFAULT NULL COMMENT '存储器', + `executor` varchar(64) DEFAULT NULL COMMENT '执行器', + `trigger` varchar(64) DEFAULT NULL COMMENT '触发器', + `trigger_args` text COMMENT '触发器参数', + `func` text COMMENT '代码块', + `args` text COMMENT '位置参数', + `kwargs` text COMMENT '关键字参数', + `coalesce` tinyint(1) DEFAULT NULL COMMENT '是否合并运行', + `max_instances` int DEFAULT NULL COMMENT '最大实例数', + `start_date` varchar(64) DEFAULT NULL COMMENT '开始时间', + `end_date` varchar(64) DEFAULT NULL COMMENT '结束时间', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `status` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + UNIQUE KEY `ix_task_node_uuid` (`uuid`), + KEY `ix_task_node_created_id` (`created_id`), + KEY `ix_task_node_updated_time` (`updated_time`), + KEY `ix_task_node_status` (`status`), + KEY `ix_task_node_id` (`id`), + KEY `ix_task_node_created_time` (`created_time`), + KEY `ix_task_node_updated_id` (`updated_id`), + CONSTRAINT `task_node_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `task_node_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='节点类型表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `task_node` +-- + +/*!40000 ALTER TABLE `task_node` DISABLE KEYS */; +/*!40000 ALTER TABLE `task_node` ENABLE KEYS */; + +-- +-- Table structure for table `task_workflow` +-- + +DROP TABLE IF EXISTS `task_workflow`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `task_workflow` ( + `name` varchar(128) NOT NULL COMMENT '流程名称', + `code` varchar(64) NOT NULL COMMENT '流程编码', + `status` varchar(32) NOT NULL COMMENT '流程状态', + `nodes` json NOT NULL COMMENT '节点数据(JSON格式)', + `edges` json NOT NULL COMMENT '连线数据(JSON格式)', + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `uuid` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识', + `description` text COMMENT '备注/描述', + `created_time` datetime NOT NULL COMMENT '创建时间', + `updated_time` datetime NOT NULL COMMENT '更新时间', + `created_id` int DEFAULT NULL COMMENT '创建人ID', + `updated_id` int DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`), + UNIQUE KEY `ix_task_workflow_uuid` (`uuid`), + UNIQUE KEY `ix_task_workflow_code` (`code`), + KEY `ix_task_workflow_updated_time` (`updated_time`), + KEY `ix_task_workflow_status` (`status`), + KEY `ix_task_workflow_id` (`id`), + KEY `ix_task_workflow_created_id` (`created_id`), + KEY `ix_task_workflow_updated_id` (`updated_id`), + KEY `ix_task_workflow_created_time` (`created_time`), + KEY `ix_task_workflow_name` (`name`), + CONSTRAINT `task_workflow_ibfk_1` FOREIGN KEY (`created_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `task_workflow_ibfk_2` FOREIGN KEY (`updated_id`) REFERENCES `sys_user` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工作流表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `task_workflow` +-- + +/*!40000 ALTER TABLE `task_workflow` DISABLE KEYS */; +/*!40000 ALTER TABLE `task_workflow` ENABLE KEYS */; + +-- +-- Dumping routines for database 'fastapiadmin' +-- +-- +-- WARNING: can't read the INFORMATION_SCHEMA.libraries table. It's most probably an old server 8.4.3. +-- +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-02-23 6:39:20 diff --git a/backend/sql/postgres/fastapiadmin_2026-01-03_213232.sql b/backend/sql/postgres/fastapiadmin_2026-02-23_064207.sql similarity index 63% rename from backend/sql/postgres/fastapiadmin_2026-01-03_213232.sql rename to backend/sql/postgres/fastapiadmin_2026-02-23_064207.sql index 42152564..2dba9272 100644 --- a/backend/sql/postgres/fastapiadmin_2026-01-03_213232.sql +++ b/backend/sql/postgres/fastapiadmin_2026-02-23_064207.sql @@ -2,8 +2,10 @@ -- PostgreSQL database dump -- +\restrict ulNIgdx7CtT5MrgK5O5igyKTPSLK56cbbdePKwjuQbUm20ekyjOAhWcXtSxiDc6 + -- Dumped from database version 17.5 (ServBay) --- Dumped by pg_dump version 17.5 (ServBay) +-- Dumped by pg_dump version 18.2 SET statement_timeout = 0; SET lock_timeout = 0; @@ -22,370 +24,15 @@ SET default_tablespace = ''; SET default_table_access_method = heap; -- --- Name: app_ai_mcp; Type: TABLE; Schema: public; Owner: tao +-- Name: ai_chat_message; Type: TABLE; Schema: public; Owner: tao -- -CREATE TABLE public.app_ai_mcp ( - name character varying(50) NOT NULL, - type integer NOT NULL, - url character varying(255), - command character varying(255), - args character varying(255), - env json, - id integer NOT NULL, - uuid character varying(64) NOT NULL, - status character varying(10) NOT NULL, - description text, - created_time timestamp without time zone NOT NULL, - updated_time timestamp without time zone NOT NULL, - created_id integer, - updated_id integer -); - - -ALTER TABLE public.app_ai_mcp OWNER TO tao; - --- --- Name: TABLE app_ai_mcp; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON TABLE public.app_ai_mcp IS 'MCP 服务器表'; - - --- --- Name: COLUMN app_ai_mcp.name; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.name IS 'MCP 名称'; - - --- --- Name: COLUMN app_ai_mcp.type; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.type IS 'MCP 类型(0:stdio 1:sse)'; - - --- --- Name: COLUMN app_ai_mcp.url; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.url IS '远程 SSE 地址'; - - --- --- Name: COLUMN app_ai_mcp.command; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.command IS 'MCP 命令'; - - --- --- Name: COLUMN app_ai_mcp.args; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.args IS 'MCP 命令参数'; - - --- --- Name: COLUMN app_ai_mcp.env; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.env IS 'MCP 环境变量'; - - --- --- Name: COLUMN app_ai_mcp.id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.id IS '主键ID'; - - --- --- Name: COLUMN app_ai_mcp.uuid; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.uuid IS 'UUID全局唯一标识'; - - --- --- Name: COLUMN app_ai_mcp.status; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.status IS '是否启用(0:启用 1:禁用)'; - - --- --- Name: COLUMN app_ai_mcp.description; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.description IS '备注/描述'; - - --- --- Name: COLUMN app_ai_mcp.created_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.created_time IS '创建时间'; - - --- --- Name: COLUMN app_ai_mcp.updated_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.updated_time IS '更新时间'; - - --- --- Name: COLUMN app_ai_mcp.created_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.created_id IS '创建人ID'; - - --- --- Name: COLUMN app_ai_mcp.updated_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_ai_mcp.updated_id IS '更新人ID'; - - --- --- Name: app_ai_mcp_id_seq; Type: SEQUENCE; Schema: public; Owner: tao --- - -CREATE SEQUENCE public.app_ai_mcp_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.app_ai_mcp_id_seq OWNER TO tao; - --- --- Name: app_ai_mcp_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao --- - -ALTER SEQUENCE public.app_ai_mcp_id_seq OWNED BY public.app_ai_mcp.id; - - --- --- Name: app_job; Type: TABLE; Schema: public; Owner: tao --- - -CREATE TABLE public.app_job ( - name character varying(64), - jobstore character varying(64), - executor character varying(64), - trigger character varying(64) NOT NULL, - trigger_args text, - func text NOT NULL, - args text, - kwargs text, - "coalesce" boolean, - max_instances integer, - start_date character varying(64), - end_date character varying(64), - id integer NOT NULL, - uuid character varying(64) NOT NULL, - status character varying(10) NOT NULL, - description text, - created_time timestamp without time zone NOT NULL, - updated_time timestamp without time zone NOT NULL, - created_id integer, - updated_id integer -); - - -ALTER TABLE public.app_job OWNER TO tao; - --- --- Name: TABLE app_job; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON TABLE public.app_job IS '定时任务调度表'; - - --- --- Name: COLUMN app_job.name; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.name IS '任务名称'; - - --- --- Name: COLUMN app_job.jobstore; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.jobstore IS '存储器'; - - --- --- Name: COLUMN app_job.executor; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.executor IS '执行器:将运行此作业的执行程序的名称'; - - --- --- Name: COLUMN app_job.trigger; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.trigger IS '触发器:控制此作业计划的 trigger 对象'; - - --- --- Name: COLUMN app_job.trigger_args; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.trigger_args IS '触发器参数'; - - --- --- Name: COLUMN app_job.func; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.func IS '任务函数'; - - --- --- Name: COLUMN app_job.args; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.args IS '位置参数'; - - --- --- Name: COLUMN app_job.kwargs; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.kwargs IS '关键字参数'; - - --- --- Name: COLUMN app_job."coalesce"; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job."coalesce" IS '是否合并运行:是否在多个运行时间到期时仅运行作业一次'; - - --- --- Name: COLUMN app_job.max_instances; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.max_instances IS '最大实例数:允许的最大并发执行实例数'; - - --- --- Name: COLUMN app_job.start_date; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.start_date IS '开始时间'; - - --- --- Name: COLUMN app_job.end_date; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.end_date IS '结束时间'; - - --- --- Name: COLUMN app_job.id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.id IS '主键ID'; - - --- --- Name: COLUMN app_job.uuid; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.uuid IS 'UUID全局唯一标识'; - - --- --- Name: COLUMN app_job.status; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.status IS '是否启用(0:启用 1:禁用)'; - - --- --- Name: COLUMN app_job.description; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.description IS '备注/描述'; - - --- --- Name: COLUMN app_job.created_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.created_time IS '创建时间'; - - --- --- Name: COLUMN app_job.updated_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.updated_time IS '更新时间'; - - --- --- Name: COLUMN app_job.created_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.created_id IS '创建人ID'; - - --- --- Name: COLUMN app_job.updated_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job.updated_id IS '更新人ID'; - - --- --- Name: app_job_id_seq; Type: SEQUENCE; Schema: public; Owner: tao --- - -CREATE SEQUENCE public.app_job_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.app_job_id_seq OWNER TO tao; - --- --- Name: app_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao --- - -ALTER SEQUENCE public.app_job_id_seq OWNED BY public.app_job.id; - - --- --- Name: app_job_log; Type: TABLE; Schema: public; Owner: tao --- - -CREATE TABLE public.app_job_log ( - job_name character varying(64) NOT NULL, - job_group character varying(64) NOT NULL, - job_executor character varying(64) NOT NULL, - invoke_target character varying(500) NOT NULL, - job_args character varying(255), - job_kwargs character varying(255), - job_trigger character varying(255), - job_message character varying(500), - exception_info character varying(2000), - job_id integer, +CREATE TABLE public.ai_chat_message ( + session_id integer NOT NULL, + type character varying(20) NOT NULL, + content text NOT NULL, + "timestamp" integer NOT NULL, + files json, id integer NOT NULL, uuid character varying(64) NOT NULL, status character varying(10) NOT NULL, @@ -395,132 +42,97 @@ CREATE TABLE public.app_job_log ( ); -ALTER TABLE public.app_job_log OWNER TO tao; +ALTER TABLE public.ai_chat_message OWNER TO tao; -- --- Name: TABLE app_job_log; Type: COMMENT; Schema: public; Owner: tao +-- Name: TABLE ai_chat_message; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON TABLE public.app_job_log IS '定时任务调度日志表'; +COMMENT ON TABLE public.ai_chat_message IS '聊天消息表'; -- --- Name: COLUMN app_job_log.job_name; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.session_id; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_name IS '任务名称'; +COMMENT ON COLUMN public.ai_chat_message.session_id IS '会话ID'; -- --- Name: COLUMN app_job_log.job_group; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.type; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_group IS '任务组名'; +COMMENT ON COLUMN public.ai_chat_message.type IS '消息类型: user/assistant'; -- --- Name: COLUMN app_job_log.job_executor; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.content; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_executor IS '任务执行器'; +COMMENT ON COLUMN public.ai_chat_message.content IS '消息内容'; -- --- Name: COLUMN app_job_log.invoke_target; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message."timestamp"; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.invoke_target IS '调用目标字符串'; +COMMENT ON COLUMN public.ai_chat_message."timestamp" IS '时间戳'; -- --- Name: COLUMN app_job_log.job_args; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.files; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_args IS '位置参数'; +COMMENT ON COLUMN public.ai_chat_message.files IS '关联的文件信息'; -- --- Name: COLUMN app_job_log.job_kwargs; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.id; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_kwargs IS '关键字参数'; +COMMENT ON COLUMN public.ai_chat_message.id IS '主键ID'; -- --- Name: COLUMN app_job_log.job_trigger; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.uuid; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_trigger IS '任务触发器'; +COMMENT ON COLUMN public.ai_chat_message.uuid IS 'UUID全局唯一标识'; -- --- Name: COLUMN app_job_log.job_message; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.status; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_message IS '日志信息'; +COMMENT ON COLUMN public.ai_chat_message.status IS '是否启用(0:启用 1:禁用)'; -- --- Name: COLUMN app_job_log.exception_info; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.description; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.exception_info IS '异常信息'; +COMMENT ON COLUMN public.ai_chat_message.description IS '备注/描述'; -- --- Name: COLUMN app_job_log.job_id; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.created_time; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.job_id IS '任务ID'; +COMMENT ON COLUMN public.ai_chat_message.created_time IS '创建时间'; -- --- Name: COLUMN app_job_log.id; Type: COMMENT; Schema: public; Owner: tao +-- Name: COLUMN ai_chat_message.updated_time; Type: COMMENT; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.id IS '主键ID'; +COMMENT ON COLUMN public.ai_chat_message.updated_time IS '更新时间'; -- --- Name: COLUMN app_job_log.uuid; Type: COMMENT; Schema: public; Owner: tao +-- Name: ai_chat_message_id_seq; Type: SEQUENCE; Schema: public; Owner: tao -- -COMMENT ON COLUMN public.app_job_log.uuid IS 'UUID全局唯一标识'; - - --- --- Name: COLUMN app_job_log.status; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job_log.status IS '是否启用(0:启用 1:禁用)'; - - --- --- Name: COLUMN app_job_log.description; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job_log.description IS '备注/描述'; - - --- --- Name: COLUMN app_job_log.created_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job_log.created_time IS '创建时间'; - - --- --- Name: COLUMN app_job_log.updated_time; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.app_job_log.updated_time IS '更新时间'; - - --- --- Name: app_job_log_id_seq; Type: SEQUENCE; Schema: public; Owner: tao --- - -CREATE SEQUENCE public.app_job_log_id_seq +CREATE SEQUENCE public.ai_chat_message_id_seq AS integer START WITH 1 INCREMENT BY 1 @@ -529,13 +141,124 @@ CREATE SEQUENCE public.app_job_log_id_seq CACHE 1; -ALTER SEQUENCE public.app_job_log_id_seq OWNER TO tao; +ALTER SEQUENCE public.ai_chat_message_id_seq OWNER TO tao; -- --- Name: app_job_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao +-- Name: ai_chat_message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao -- -ALTER SEQUENCE public.app_job_log_id_seq OWNED BY public.app_job_log.id; +ALTER SEQUENCE public.ai_chat_message_id_seq OWNED BY public.ai_chat_message.id; + + +-- +-- Name: ai_chat_session; Type: TABLE; Schema: public; Owner: tao +-- + +CREATE TABLE public.ai_chat_session ( + title character varying(200) NOT NULL, + id integer NOT NULL, + uuid character varying(64) NOT NULL, + status character varying(10) NOT NULL, + description text, + created_time timestamp without time zone NOT NULL, + updated_time timestamp without time zone NOT NULL, + created_id integer, + updated_id integer +); + + +ALTER TABLE public.ai_chat_session OWNER TO tao; + +-- +-- Name: TABLE ai_chat_session; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON TABLE public.ai_chat_session IS '聊天会话表'; + + +-- +-- Name: COLUMN ai_chat_session.title; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.title IS '会话标题'; + + +-- +-- Name: COLUMN ai_chat_session.id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.id IS '主键ID'; + + +-- +-- Name: COLUMN ai_chat_session.uuid; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.uuid IS 'UUID全局唯一标识'; + + +-- +-- Name: COLUMN ai_chat_session.status; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.status IS '是否启用(0:启用 1:禁用)'; + + +-- +-- Name: COLUMN ai_chat_session.description; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.description IS '备注/描述'; + + +-- +-- Name: COLUMN ai_chat_session.created_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.created_time IS '创建时间'; + + +-- +-- Name: COLUMN ai_chat_session.updated_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.updated_time IS '更新时间'; + + +-- +-- Name: COLUMN ai_chat_session.created_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.created_id IS '创建人ID'; + + +-- +-- Name: COLUMN ai_chat_session.updated_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.ai_chat_session.updated_id IS '更新人ID'; + + +-- +-- Name: ai_chat_session_id_seq; Type: SEQUENCE; Schema: public; Owner: tao +-- + +CREATE SEQUENCE public.ai_chat_session_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.ai_chat_session_id_seq OWNER TO tao; + +-- +-- Name: ai_chat_session_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao +-- + +ALTER SEQUENCE public.ai_chat_session_id_seq OWNED BY public.ai_chat_session.id; -- @@ -1324,9 +1047,7 @@ CREATE TABLE public.sys_dept ( status character varying(10) NOT NULL, description text, created_time timestamp without time zone NOT NULL, - updated_time timestamp without time zone NOT NULL, - created_id integer, - updated_id integer + updated_time timestamp without time zone NOT NULL ); @@ -1430,20 +1151,6 @@ COMMENT ON COLUMN public.sys_dept.created_time IS '创建时间'; COMMENT ON COLUMN public.sys_dept.updated_time IS '更新时间'; --- --- Name: COLUMN sys_dept.created_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.sys_dept.created_id IS '创建人ID'; - - --- --- Name: COLUMN sys_dept.updated_id; Type: COMMENT; Schema: public; Owner: tao --- - -COMMENT ON COLUMN public.sys_dept.updated_id IS '更新人ID'; - - -- -- Name: sys_dept_id_seq; Type: SEQUENCE; Schema: public; Owner: tao -- @@ -2958,24 +2665,510 @@ COMMENT ON COLUMN public.sys_user_roles.role_id IS '角色ID'; -- --- Name: app_ai_mcp id; Type: DEFAULT; Schema: public; Owner: tao +-- Name: task_job; Type: TABLE; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_ai_mcp ALTER COLUMN id SET DEFAULT nextval('public.app_ai_mcp_id_seq'::regclass); +CREATE TABLE public.task_job ( + job_id character varying(64) NOT NULL, + job_name character varying(128), + trigger_type character varying(32), + status character varying(16) NOT NULL, + next_run_time character varying(64), + job_state text, + result text, + error text, + id integer NOT NULL, + uuid character varying(64) NOT NULL, + description text, + created_time timestamp without time zone NOT NULL, + updated_time timestamp without time zone NOT NULL +); + + +ALTER TABLE public.task_job OWNER TO tao; + +-- +-- Name: TABLE task_job; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON TABLE public.task_job IS '任务执行日志表'; -- --- Name: app_job id; Type: DEFAULT; Schema: public; Owner: tao +-- Name: COLUMN task_job.job_id; Type: COMMENT; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job ALTER COLUMN id SET DEFAULT nextval('public.app_job_id_seq'::regclass); +COMMENT ON COLUMN public.task_job.job_id IS '任务ID'; -- --- Name: app_job_log id; Type: DEFAULT; Schema: public; Owner: tao +-- Name: COLUMN task_job.job_name; Type: COMMENT; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job_log ALTER COLUMN id SET DEFAULT nextval('public.app_job_log_id_seq'::regclass); +COMMENT ON COLUMN public.task_job.job_name IS '任务名称'; + + +-- +-- Name: COLUMN task_job.trigger_type; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.trigger_type IS '触发方式: cron/interval/date/manual'; + + +-- +-- Name: COLUMN task_job.status; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.status IS '执行状态'; + + +-- +-- Name: COLUMN task_job.next_run_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.next_run_time IS '下次执行时间'; + + +-- +-- Name: COLUMN task_job.job_state; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.job_state IS '任务状态信息'; + + +-- +-- Name: COLUMN task_job.result; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.result IS '执行结果'; + + +-- +-- Name: COLUMN task_job.error; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.error IS '错误信息'; + + +-- +-- Name: COLUMN task_job.id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.id IS '主键ID'; + + +-- +-- Name: COLUMN task_job.uuid; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.uuid IS 'UUID全局唯一标识'; + + +-- +-- Name: COLUMN task_job.description; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.description IS '备注/描述'; + + +-- +-- Name: COLUMN task_job.created_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.created_time IS '创建时间'; + + +-- +-- Name: COLUMN task_job.updated_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_job.updated_time IS '更新时间'; + + +-- +-- Name: task_job_id_seq; Type: SEQUENCE; Schema: public; Owner: tao +-- + +CREATE SEQUENCE public.task_job_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.task_job_id_seq OWNER TO tao; + +-- +-- Name: task_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao +-- + +ALTER SEQUENCE public.task_job_id_seq OWNED BY public.task_job.id; + + +-- +-- Name: task_node; Type: TABLE; Schema: public; Owner: tao +-- + +CREATE TABLE public.task_node ( + name character varying(64) NOT NULL, + code character varying(32) NOT NULL, + category character varying(32) NOT NULL, + jobstore character varying(64), + executor character varying(64), + trigger character varying(64), + trigger_args text, + func text, + args text, + kwargs text, + "coalesce" boolean, + max_instances integer, + start_date character varying(64), + end_date character varying(64), + id integer NOT NULL, + uuid character varying(64) NOT NULL, + status character varying(10) NOT NULL, + description text, + created_time timestamp without time zone NOT NULL, + updated_time timestamp without time zone NOT NULL, + created_id integer, + updated_id integer +); + + +ALTER TABLE public.task_node OWNER TO tao; + +-- +-- Name: TABLE task_node; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON TABLE public.task_node IS '节点类型表'; + + +-- +-- Name: COLUMN task_node.name; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.name IS '节点名称'; + + +-- +-- Name: COLUMN task_node.code; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.code IS '节点编码'; + + +-- +-- Name: COLUMN task_node.category; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.category IS '节点分类'; + + +-- +-- Name: COLUMN task_node.jobstore; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.jobstore IS '存储器'; + + +-- +-- Name: COLUMN task_node.executor; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.executor IS '执行器'; + + +-- +-- Name: COLUMN task_node.trigger; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.trigger IS '触发器'; + + +-- +-- Name: COLUMN task_node.trigger_args; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.trigger_args IS '触发器参数'; + + +-- +-- Name: COLUMN task_node.func; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.func IS '代码块'; + + +-- +-- Name: COLUMN task_node.args; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.args IS '位置参数'; + + +-- +-- Name: COLUMN task_node.kwargs; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.kwargs IS '关键字参数'; + + +-- +-- Name: COLUMN task_node."coalesce"; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node."coalesce" IS '是否合并运行'; + + +-- +-- Name: COLUMN task_node.max_instances; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.max_instances IS '最大实例数'; + + +-- +-- Name: COLUMN task_node.start_date; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.start_date IS '开始时间'; + + +-- +-- Name: COLUMN task_node.end_date; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.end_date IS '结束时间'; + + +-- +-- Name: COLUMN task_node.id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.id IS '主键ID'; + + +-- +-- Name: COLUMN task_node.uuid; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.uuid IS 'UUID全局唯一标识'; + + +-- +-- Name: COLUMN task_node.status; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.status IS '是否启用(0:启用 1:禁用)'; + + +-- +-- Name: COLUMN task_node.description; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.description IS '备注/描述'; + + +-- +-- Name: COLUMN task_node.created_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.created_time IS '创建时间'; + + +-- +-- Name: COLUMN task_node.updated_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.updated_time IS '更新时间'; + + +-- +-- Name: COLUMN task_node.created_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.created_id IS '创建人ID'; + + +-- +-- Name: COLUMN task_node.updated_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_node.updated_id IS '更新人ID'; + + +-- +-- Name: task_node_id_seq; Type: SEQUENCE; Schema: public; Owner: tao +-- + +CREATE SEQUENCE public.task_node_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.task_node_id_seq OWNER TO tao; + +-- +-- Name: task_node_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao +-- + +ALTER SEQUENCE public.task_node_id_seq OWNED BY public.task_node.id; + + +-- +-- Name: task_workflow; Type: TABLE; Schema: public; Owner: tao +-- + +CREATE TABLE public.task_workflow ( + name character varying(128) NOT NULL, + code character varying(64) NOT NULL, + status character varying(32) NOT NULL, + nodes json NOT NULL, + edges json NOT NULL, + id integer NOT NULL, + uuid character varying(64) NOT NULL, + description text, + created_time timestamp without time zone NOT NULL, + updated_time timestamp without time zone NOT NULL, + created_id integer, + updated_id integer +); + + +ALTER TABLE public.task_workflow OWNER TO tao; + +-- +-- Name: TABLE task_workflow; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON TABLE public.task_workflow IS '工作流表'; + + +-- +-- Name: COLUMN task_workflow.name; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.name IS '流程名称'; + + +-- +-- Name: COLUMN task_workflow.code; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.code IS '流程编码'; + + +-- +-- Name: COLUMN task_workflow.status; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.status IS '流程状态'; + + +-- +-- Name: COLUMN task_workflow.nodes; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.nodes IS '节点数据(JSON格式)'; + + +-- +-- Name: COLUMN task_workflow.edges; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.edges IS '连线数据(JSON格式)'; + + +-- +-- Name: COLUMN task_workflow.id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.id IS '主键ID'; + + +-- +-- Name: COLUMN task_workflow.uuid; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.uuid IS 'UUID全局唯一标识'; + + +-- +-- Name: COLUMN task_workflow.description; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.description IS '备注/描述'; + + +-- +-- Name: COLUMN task_workflow.created_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.created_time IS '创建时间'; + + +-- +-- Name: COLUMN task_workflow.updated_time; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.updated_time IS '更新时间'; + + +-- +-- Name: COLUMN task_workflow.created_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.created_id IS '创建人ID'; + + +-- +-- Name: COLUMN task_workflow.updated_id; Type: COMMENT; Schema: public; Owner: tao +-- + +COMMENT ON COLUMN public.task_workflow.updated_id IS '更新人ID'; + + +-- +-- Name: task_workflow_id_seq; Type: SEQUENCE; Schema: public; Owner: tao +-- + +CREATE SEQUENCE public.task_workflow_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.task_workflow_id_seq OWNER TO tao; + +-- +-- Name: task_workflow_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: tao +-- + +ALTER SEQUENCE public.task_workflow_id_seq OWNED BY public.task_workflow.id; + + +-- +-- Name: ai_chat_message id; Type: DEFAULT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_message ALTER COLUMN id SET DEFAULT nextval('public.ai_chat_message_id_seq'::regclass); + + +-- +-- Name: ai_chat_session id; Type: DEFAULT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_session ALTER COLUMN id SET DEFAULT nextval('public.ai_chat_session_id_seq'::regclass); -- @@ -3077,26 +3270,39 @@ ALTER TABLE ONLY public.sys_user ALTER COLUMN id SET DEFAULT nextval('public.sys -- --- Data for Name: app_ai_mcp; Type: TABLE DATA; Schema: public; Owner: tao +-- Name: task_job id; Type: DEFAULT; Schema: public; Owner: tao -- -COPY public.app_ai_mcp (name, type, url, command, args, env, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; +ALTER TABLE ONLY public.task_job ALTER COLUMN id SET DEFAULT nextval('public.task_job_id_seq'::regclass); + + +-- +-- Name: task_node id; Type: DEFAULT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_node ALTER COLUMN id SET DEFAULT nextval('public.task_node_id_seq'::regclass); + + +-- +-- Name: task_workflow id; Type: DEFAULT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_workflow ALTER COLUMN id SET DEFAULT nextval('public.task_workflow_id_seq'::regclass); + + +-- +-- Data for Name: ai_chat_message; Type: TABLE DATA; Schema: public; Owner: tao +-- + +COPY public.ai_chat_message (session_id, type, content, "timestamp", files, id, uuid, status, description, created_time, updated_time) FROM stdin; \. -- --- Data for Name: app_job; Type: TABLE DATA; Schema: public; Owner: tao +-- Data for Name: ai_chat_session; Type: TABLE DATA; Schema: public; Owner: tao -- -COPY public.app_job (name, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; -\. - - --- --- Data for Name: app_job_log; Type: TABLE DATA; Schema: public; Owner: tao --- - -COPY public.app_job_log (job_name, job_group, job_executor, invoke_target, job_args, job_kwargs, job_trigger, job_message, exception_info, job_id, id, uuid, status, description, created_time, updated_time) FROM stdin; +COPY public.ai_chat_session (title, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; \. @@ -3144,8 +3350,8 @@ COPY public.gen_table_column (column_name, column_comment, column_type, column_l -- Data for Name: sys_dept; Type: TABLE DATA; Schema: public; Owner: tao -- -COPY public.sys_dept (name, "order", code, leader, phone, email, parent_id, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; -集团总公司 1 GROUP 部门负责人 1582112620 deptadmin@example.com \N 1 8d654e65-99ff-4387-a37c-84d62a88a028 0 集团总公司 2026-01-03 21:32:18.926144 2026-01-03 21:32:18.926145 \N \N +COPY public.sys_dept (name, "order", code, leader, phone, email, parent_id, id, uuid, status, description, created_time, updated_time) FROM stdin; +集团总公司 1 GROUP 部门负责人 1582112620 deptadmin@example.com \N 1 0d48a02f-a479-42a2-9184-fcb60de31cf4 0 集团总公司 2026-02-23 06:41:21.185814 2026-02-23 06:41:21.185816 \. @@ -3154,40 +3360,40 @@ COPY public.sys_dept (name, "order", code, leader, phone, email, parent_id, id, -- COPY public.sys_dict_data (dict_sort, dict_label, dict_value, css_class, list_class, is_default, dict_type, dict_type_id, id, uuid, status, description, created_time, updated_time) FROM stdin; -1 男 0 blue \N t sys_user_sex 1 1 bd6a2210-c201-41e8-a88e-9d70f21af893 0 性别男 2026-01-03 21:32:18.934083 2026-01-03 21:32:18.934084 -2 女 1 pink \N f sys_user_sex 1 2 41a3ebab-d0d4-47b5-9b46-4d090c3328fb 0 性别女 2026-01-03 21:32:18.934087 2026-01-03 21:32:18.934088 -3 未知 2 red \N f sys_user_sex 1 3 9b16809d-943e-4bca-ae8e-e9d97a05f3fa 0 性别未知 2026-01-03 21:32:18.934091 2026-01-03 21:32:18.934091 -1 是 1 primary t sys_yes_no 2 4 cca9a62e-ddeb-4aca-bb45-7de890e39c09 0 是 2026-01-03 21:32:18.934094 2026-01-03 21:32:18.934094 -2 否 0 danger f sys_yes_no 2 5 c316ecf0-d687-4189-8e06-97c9193d7f7b 0 否 2026-01-03 21:32:18.934097 2026-01-03 21:32:18.934097 -1 启用 1 primary f sys_common_status 3 6 93b2ed52-6cc0-40a1-af69-c63fb6a45ffc 0 启用状态 2026-01-03 21:32:18.9341 2026-01-03 21:32:18.934101 -2 停用 0 danger f sys_common_status 3 7 52af9571-5ef4-4139-9884-1e992b84f495 0 停用状态 2026-01-03 21:32:18.934105 2026-01-03 21:32:18.934105 -1 通知 1 blue warning t sys_notice_type 4 8 561c4aa2-5c1d-453c-8a40-2174bdde1d7c 0 通知 2026-01-03 21:32:18.934109 2026-01-03 21:32:18.934109 -2 公告 2 orange success f sys_notice_type 4 9 1c9747bc-cf5d-4dfd-ba33-b4807c6e58da 0 公告 2026-01-03 21:32:18.934113 2026-01-03 21:32:18.934113 -99 其他 0 info f sys_oper_type 5 10 409b6db6-191c-418c-9959-7bde1364d07c 0 其他操作 2026-01-03 21:32:18.934117 2026-01-03 21:32:18.934117 -1 新增 1 info f sys_oper_type 5 11 d9a58448-fe91-4bf4-9e19-b64f66951a2c 0 新增操作 2026-01-03 21:32:18.934121 2026-01-03 21:32:18.934121 -2 修改 2 info f sys_oper_type 5 12 f587833d-ae30-4280-beea-a531a42fd60f 0 修改操作 2026-01-03 21:32:18.934124 2026-01-03 21:32:18.934124 -3 删除 3 danger f sys_oper_type 5 13 128f44ac-dbac-4370-96d3-ecca27bde3f5 0 删除操作 2026-01-03 21:32:18.934127 2026-01-03 21:32:18.934127 -4 分配权限 4 primary f sys_oper_type 5 14 0acbce3f-60ac-4002-8e51-df3e384e8437 0 授权操作 2026-01-03 21:32:18.93413 2026-01-03 21:32:18.934131 -5 导出 5 warning f sys_oper_type 5 15 783e208b-e6b6-45db-8a42-da13383340dd 0 导出操作 2026-01-03 21:32:18.934133 2026-01-03 21:32:18.934134 -6 导入 6 warning f sys_oper_type 5 16 30bf7414-46da-454f-96d2-aead5a349e39 0 导入操作 2026-01-03 21:32:18.934137 2026-01-03 21:32:18.934137 -7 强退 7 danger f sys_oper_type 5 17 4f69e213-23eb-4003-a68f-ae1d19b1c0be 0 强退操作 2026-01-03 21:32:18.93414 2026-01-03 21:32:18.93414 -8 生成代码 8 warning f sys_oper_type 5 18 45aa655b-a610-43da-a26f-89591d289286 0 生成操作 2026-01-03 21:32:18.934143 2026-01-03 21:32:18.934143 -9 清空数据 9 danger f sys_oper_type 5 19 d9e62139-5093-4434-a7ae-2f228bb06ee2 0 清空操作 2026-01-03 21:32:18.934146 2026-01-03 21:32:18.934146 -1 默认(Memory) default \N t sys_job_store 6 20 b05a55b9-819e-420c-b195-919642f8cecd 0 默认分组 2026-01-03 21:32:18.934149 2026-01-03 21:32:18.934149 -2 数据库(Sqlalchemy) sqlalchemy \N f sys_job_store 6 21 839b814f-e46f-446d-bbc4-3e383398a4f6 0 数据库分组 2026-01-03 21:32:18.934152 2026-01-03 21:32:18.934152 -3 数据库(Redis) redis \N f sys_job_store 6 22 3e96b9aa-1d44-4d8d-a0d8-8a8e122992c3 0 reids分组 2026-01-03 21:32:18.934155 2026-01-03 21:32:18.934155 -1 线程池 default \N f sys_job_executor 7 23 6ba38fd3-a029-4062-9020-7a641b58b931 0 线程池 2026-01-03 21:32:18.934158 2026-01-03 21:32:18.934158 -2 进程池 processpool \N f sys_job_executor 7 24 3268717a-2355-4a6d-8d41-37520c6fd3bc 0 进程池 2026-01-03 21:32:18.934161 2026-01-03 21:32:18.934161 -1 演示函数 scheduler_test.job \N t sys_job_function 8 25 e23a88c8-9893-4b5e-b7c6-5ca0f4503166 0 演示函数 2026-01-03 21:32:18.934164 2026-01-03 21:32:18.934165 -1 指定日期(date) date \N t sys_job_trigger 9 26 9eae1ac4-ecba-45f6-a647-be55d28ee6fe 0 指定日期任务触发器 2026-01-03 21:32:18.934168 2026-01-03 21:32:18.934169 -2 间隔触发器(interval) interval \N f sys_job_trigger 9 27 5cdefb4c-37f1-449a-8943-817e43584928 0 间隔触发器任务触发器 2026-01-03 21:32:18.934171 2026-01-03 21:32:18.934172 -3 cron表达式 cron \N f sys_job_trigger 9 28 9ef32420-9fad-4afd-8551-c65f96452906 0 间隔触发器任务触发器 2026-01-03 21:32:18.934175 2026-01-03 21:32:18.934175 -1 默认(default) default \N t sys_list_class 10 29 9b5beaef-1c70-4efe-a5cc-0ad4bb690ab7 0 默认表格回显样式 2026-01-03 21:32:18.934178 2026-01-03 21:32:18.934178 -2 主要(primary) primary \N f sys_list_class 10 30 bf59ec99-cb51-4223-b6d0-3f05158110d8 0 主要表格回显样式 2026-01-03 21:32:18.934181 2026-01-03 21:32:18.934181 -3 成功(success) success \N f sys_list_class 10 31 63104263-1c40-4a42-be52-038296e66a7a 0 成功表格回显样式 2026-01-03 21:32:18.934184 2026-01-03 21:32:18.934184 -4 信息(info) info \N f sys_list_class 10 32 cdfb253e-293d-45c7-845d-6ec9b33a165d 0 信息表格回显样式 2026-01-03 21:32:18.934187 2026-01-03 21:32:18.934187 -5 警告(warning) warning \N f sys_list_class 10 33 fc9a9e08-bba1-41ce-9284-0237bcd07835 0 警告表格回显样式 2026-01-03 21:32:18.93419 2026-01-03 21:32:18.93419 -6 危险(danger) danger \N f sys_list_class 10 34 d9410025-6b47-4cc8-b162-738d7ccedd93 0 危险表格回显样式 2026-01-03 21:32:18.934193 2026-01-03 21:32:18.934193 +1 男 0 blue \N t sys_user_sex 1 1 ae2e4474-b930-46b9-99f1-23a58ebcd8ca 0 性别男 2026-02-23 06:41:21.194454 2026-02-23 06:41:21.194455 +2 女 1 pink \N f sys_user_sex 1 2 ccde0db1-9d74-4021-82cb-ca5c327a1677 0 性别女 2026-02-23 06:41:21.194458 2026-02-23 06:41:21.194459 +3 未知 2 red \N f sys_user_sex 1 3 33ad5961-668f-46ea-a0b2-892d8eb0977e 0 性别未知 2026-02-23 06:41:21.194462 2026-02-23 06:41:21.194462 +1 是 1 primary t sys_yes_no 2 4 28358675-2070-4195-9f1c-6cd40102fea1 0 是 2026-02-23 06:41:21.194465 2026-02-23 06:41:21.194465 +2 否 0 danger f sys_yes_no 2 5 648a9740-696b-4839-89c2-d0cc85a2d1d2 0 否 2026-02-23 06:41:21.194468 2026-02-23 06:41:21.194469 +1 启用 1 primary f sys_common_status 3 6 148d4531-b794-485d-908e-babdd6a9cc7b 0 启用状态 2026-02-23 06:41:21.194471 2026-02-23 06:41:21.194472 +2 停用 0 danger f sys_common_status 3 7 31deab15-f8e6-48d2-9d82-537ea032e109 0 停用状态 2026-02-23 06:41:21.194474 2026-02-23 06:41:21.194475 +1 通知 1 blue warning t sys_notice_type 4 8 320a2c92-782d-4881-833f-52b3db6d21ce 0 通知 2026-02-23 06:41:21.194478 2026-02-23 06:41:21.194478 +2 公告 2 orange success f sys_notice_type 4 9 91d174c5-070a-4760-908a-563836a7a1aa 0 公告 2026-02-23 06:41:21.194481 2026-02-23 06:41:21.194481 +99 其他 0 info f sys_oper_type 5 10 d32c5ee2-428c-4bc5-9821-c7170540d3c3 0 其他操作 2026-02-23 06:41:21.194484 2026-02-23 06:41:21.194484 +1 新增 1 info f sys_oper_type 5 11 d1b3fdd0-2d30-4dcf-ae91-9c2dcebaaadd 0 新增操作 2026-02-23 06:41:21.194487 2026-02-23 06:41:21.194487 +2 修改 2 info f sys_oper_type 5 12 114145b9-d557-4907-bf72-0b1540eb18f0 0 修改操作 2026-02-23 06:41:21.19449 2026-02-23 06:41:21.19449 +3 删除 3 danger f sys_oper_type 5 13 f84502e2-c63a-4f1f-89b9-1e518e84c44d 0 删除操作 2026-02-23 06:41:21.194493 2026-02-23 06:41:21.194493 +4 分配权限 4 primary f sys_oper_type 5 14 2e5edbec-ef03-4781-9d86-9db517147564 0 授权操作 2026-02-23 06:41:21.194496 2026-02-23 06:41:21.194496 +5 导出 5 warning f sys_oper_type 5 15 b2d0e4d7-0b26-409b-9051-491dbfc248fe 0 导出操作 2026-02-23 06:41:21.194499 2026-02-23 06:41:21.194499 +6 导入 6 warning f sys_oper_type 5 16 83c65505-1821-48bd-827f-ac13804a6def 0 导入操作 2026-02-23 06:41:21.194502 2026-02-23 06:41:21.194502 +7 强退 7 danger f sys_oper_type 5 17 5415c09e-9a7f-4ca3-9ef6-90ca890994aa 0 强退操作 2026-02-23 06:41:21.194505 2026-02-23 06:41:21.194505 +8 生成代码 8 warning f sys_oper_type 5 18 b7f08bdb-213e-4941-b024-4613aafe03e8 0 生成操作 2026-02-23 06:41:21.194508 2026-02-23 06:41:21.194508 +9 清空数据 9 danger f sys_oper_type 5 19 8857d02d-84d8-4400-a23b-27188d06eebe 0 清空操作 2026-02-23 06:41:21.194511 2026-02-23 06:41:21.194511 +1 默认(Memory) default \N t sys_job_store 6 20 7ac87b85-7671-4f69-89b2-558a6a1827d2 0 默认分组 2026-02-23 06:41:21.194514 2026-02-23 06:41:21.194514 +2 数据库(Sqlalchemy) sqlalchemy \N f sys_job_store 6 21 962791aa-f749-4c62-a5a4-d6c5a743dd75 0 数据库分组 2026-02-23 06:41:21.194517 2026-02-23 06:41:21.194517 +3 数据库(Redis) redis \N f sys_job_store 6 22 50b89677-0b69-4ab9-aa54-738402e50d3d 0 reids分组 2026-02-23 06:41:21.19452 2026-02-23 06:41:21.19452 +1 线程池 default \N f sys_job_executor 7 23 4dac62b0-cbd8-4b84-8cd1-da6e9022db86 0 线程池 2026-02-23 06:41:21.194523 2026-02-23 06:41:21.194523 +2 进程池 processpool \N f sys_job_executor 7 24 640ba58c-926a-4428-9181-eef1a296b061 0 进程池 2026-02-23 06:41:21.194526 2026-02-23 06:41:21.194526 +1 演示函数 scheduler_test.job \N t sys_job_function 8 25 ed29e0f4-c5e8-433d-ad19-3e6ea3b983ae 0 演示函数 2026-02-23 06:41:21.194529 2026-02-23 06:41:21.194529 +1 指定日期(date) date \N t sys_job_trigger 9 26 4d89a37b-52b4-4436-9649-7ef21a2f520d 0 指定日期任务触发器 2026-02-23 06:41:21.194532 2026-02-23 06:41:21.194533 +2 间隔触发器(interval) interval \N f sys_job_trigger 9 27 25c0a69e-a84d-4f73-a7dd-c03745164cbf 0 间隔触发器任务触发器 2026-02-23 06:41:21.194535 2026-02-23 06:41:21.194536 +3 cron表达式 cron \N f sys_job_trigger 9 28 7aab6858-fed8-40bf-bbfe-810118cac5d8 0 间隔触发器任务触发器 2026-02-23 06:41:21.194538 2026-02-23 06:41:21.194539 +1 默认(default) default \N t sys_list_class 10 29 9255f2db-d624-47cf-ba5a-9f29f42e3416 0 默认表格回显样式 2026-02-23 06:41:21.194541 2026-02-23 06:41:21.194542 +2 主要(primary) primary \N f sys_list_class 10 30 ebb427b1-7234-430e-a092-c26aa8e8bb82 0 主要表格回显样式 2026-02-23 06:41:21.194544 2026-02-23 06:41:21.194545 +3 成功(success) success \N f sys_list_class 10 31 919d9a6d-b853-4f51-afa8-6ca61ecf505c 0 成功表格回显样式 2026-02-23 06:41:21.194547 2026-02-23 06:41:21.194548 +4 信息(info) info \N f sys_list_class 10 32 15c10cff-733c-47fa-9f5d-de2f5b9f1225 0 信息表格回显样式 2026-02-23 06:41:21.19455 2026-02-23 06:41:21.194551 +5 警告(warning) warning \N f sys_list_class 10 33 0ec5c7c0-f7eb-4f34-badc-8d234f35ea60 0 警告表格回显样式 2026-02-23 06:41:21.194554 2026-02-23 06:41:21.194554 +6 危险(danger) danger \N f sys_list_class 10 34 3265d095-ea57-451b-8b8b-56132ace3097 0 危险表格回显样式 2026-02-23 06:41:21.194557 2026-02-23 06:41:21.194557 \. @@ -3196,16 +3402,16 @@ COPY public.sys_dict_data (dict_sort, dict_label, dict_value, css_class, list_cl -- COPY public.sys_dict_type (dict_name, dict_type, id, uuid, status, description, created_time, updated_time) FROM stdin; -用户性别 sys_user_sex 1 cee3722a-32e8-4ae0-a5a4-bcd6721656a6 0 用户性别列表 2026-01-03 21:32:18.930619 2026-01-03 21:32:18.93062 -系统是否 sys_yes_no 2 f6f1923a-8662-434d-9494-6a9bdeae03da 0 系统是否列表 2026-01-03 21:32:18.930624 2026-01-03 21:32:18.930625 -系统状态 sys_common_status 3 21ad6e7f-69b9-451e-b03e-8e24c04bdd0b 0 系统状态 2026-01-03 21:32:18.930628 2026-01-03 21:32:18.930628 -通知类型 sys_notice_type 4 33c7a8d3-c61a-4607-971d-ae2b2e984068 0 通知类型列表 2026-01-03 21:32:18.930631 2026-01-03 21:32:18.930631 -操作类型 sys_oper_type 5 a690ee39-010c-421e-b884-6e7b5b309263 0 操作类型列表 2026-01-03 21:32:18.930634 2026-01-03 21:32:18.930634 -任务存储器 sys_job_store 6 1308fc02-bedd-4c86-876b-bcaa27c25256 0 任务分组列表 2026-01-03 21:32:18.930637 2026-01-03 21:32:18.930637 -任务执行器 sys_job_executor 7 963bd467-271b-4def-984c-a6c5c3b1e6c2 0 任务执行器列表 2026-01-03 21:32:18.93064 2026-01-03 21:32:18.930641 -任务函数 sys_job_function 8 77c1b8d9-4938-4959-b927-14f8df85a536 0 任务函数列表 2026-01-03 21:32:18.930644 2026-01-03 21:32:18.930644 -任务触发器 sys_job_trigger 9 63d803cc-bab8-466e-bd18-4297f15ebe68 0 任务触发器列表 2026-01-03 21:32:18.930647 2026-01-03 21:32:18.930647 -表格回显样式 sys_list_class 10 4604846e-a556-4d3a-9c2f-c72cfb29fdf0 0 表格回显样式列表 2026-01-03 21:32:18.93065 2026-01-03 21:32:18.93065 +用户性别 sys_user_sex 1 748a68f0-7e38-4ef4-a78c-c220696b1c2a 0 用户性别列表 2026-02-23 06:41:21.190098 2026-02-23 06:41:21.1901 +系统是否 sys_yes_no 2 542ab2d7-b8dd-4661-803d-af142730b412 0 系统是否列表 2026-02-23 06:41:21.190104 2026-02-23 06:41:21.190104 +系统状态 sys_common_status 3 9e24a697-22ee-4aa4-a440-af515be316fe 0 系统状态 2026-02-23 06:41:21.190107 2026-02-23 06:41:21.190108 +通知类型 sys_notice_type 4 11c8616c-c4b2-455d-9753-a6087557d3fc 0 通知类型列表 2026-02-23 06:41:21.190128 2026-02-23 06:41:21.190128 +操作类型 sys_oper_type 5 26eb0b49-6928-4dc8-839e-d6ead9420033 0 操作类型列表 2026-02-23 06:41:21.190139 2026-02-23 06:41:21.190139 +任务存储器 sys_job_store 6 d8e24792-3d76-44e3-9e34-5b01fc394ae1 0 任务分组列表 2026-02-23 06:41:21.190142 2026-02-23 06:41:21.190142 +任务执行器 sys_job_executor 7 f03ceb19-3cb5-43af-b920-fcae9745c16e 0 任务执行器列表 2026-02-23 06:41:21.190145 2026-02-23 06:41:21.190146 +任务函数 sys_job_function 8 52e613c5-6221-4fa5-a8c3-3e73f9e25126 0 任务函数列表 2026-02-23 06:41:21.190149 2026-02-23 06:41:21.190149 +任务触发器 sys_job_trigger 9 4561eabf-04ed-4bc2-bcad-87816467da0f 0 任务触发器列表 2026-02-23 06:41:21.190152 2026-02-23 06:41:21.190152 +表格回显样式 sys_list_class 10 5da610f7-b0fc-4687-8818-59c2d5438a46 0 表格回显样式列表 2026-02-23 06:41:21.190155 2026-02-23 06:41:21.190156 \. @@ -3222,143 +3428,170 @@ COPY public.sys_log (type, request_path, request_method, request_payload, reques -- COPY public.sys_menu (name, type, "order", permission, icon, route_name, route_path, component_path, redirect, hidden, keep_alive, always_show, title, params, affix, parent_id, id, uuid, status, description, created_time, updated_time) FROM stdin; -仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 cb8697f1-d99f-486f-a35d-ca588d00ecee 0 初始化数据 2026-01-03 21:32:18.905383 2026-01-03 21:32:18.905387 -系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 2 8686a005-e6f2-4f27-a592-dd1e33c1c5e7 0 初始化数据 2026-01-03 21:32:18.905392 2026-01-03 21:32:18.905392 -应用管理 1 3 \N el-icon-ShoppingBag Application /application \N /application/myapp f t f 应用管理 null f \N 3 aed230c6-6a2f-47a2-ae17-19a36111987f 0 初始化数据 2026-01-03 21:32:18.905395 2026-01-03 21:32:18.905395 -监控管理 1 4 \N monitor Monitor /monitor \N /monitor/online f t f 监控管理 null f \N 4 f94f6492-288a-4df3-b6a2-37eaec7f7b6f 0 初始化数据 2026-01-03 21:32:18.905398 2026-01-03 21:32:18.905399 -代码管理 1 5 \N code Generator /generator \N /generator/gencode f t f 代码管理 null f \N 5 9a68972f-7c40-4104-97b1-372213d500c1 0 代码管理 2026-01-03 21:32:18.905401 2026-01-03 21:32:18.905402 -接口管理 1 6 \N document Common /common \N /common/docs f t f 接口管理 null f \N 6 75341f65-6da9-4bd6-a9c1-eab807edd5fb 0 初始化数据 2026-01-03 21:32:18.905405 2026-01-03 21:32:18.905405 -案例管理 1 7 \N menu Example /example \N /example/demo f t f 案例管理 null f \N 7 5145f454-4bd1-48c9-a780-c809cfcf669e 0 案例管理 2026-01-03 21:32:18.905408 2026-01-03 21:32:18.905408 -工作台 2 1 dashboard:workplace:query el-icon-PieChart Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null f 1 8 15605dd7-2ab4-4ad4-b2e6-3a32976d4c1a 0 初始化数据 2026-01-03 21:32:18.907989 2026-01-03 21:32:18.907991 -菜单管理 2 1 module_system:menu:query menu Menu /system/menu module_system/menu/index \N f t f 菜单管理 null f 2 9 7ba1cbc7-4822-472a-a239-647ef5807fb8 0 初始化数据 2026-01-03 21:32:18.907995 2026-01-03 21:32:18.907996 -部门管理 2 2 module_system:dept:query tree Dept /system/dept module_system/dept/index \N f t f 部门管理 null f 2 10 4d852241-ce79-45b2-aac2-cb683b4fe502 0 初始化数据 2026-01-03 21:32:18.907999 2026-01-03 21:32:18.907999 -岗位管理 2 3 module_system:position:query el-icon-Coordinate Position /system/position module_system/position/index \N f t f 岗位管理 null f 2 11 0515619f-cc9c-4a94-a11b-4c56c14a7ad7 0 初始化数据 2026-01-03 21:32:18.908002 2026-01-03 21:32:18.908003 -角色管理 2 4 module_system:role:query role Role /system/role module_system/role/index \N f t f 角色管理 null f 2 12 680024f6-08da-4141-a993-452a0bbbc008 0 初始化数据 2026-01-03 21:32:18.908005 2026-01-03 21:32:18.908006 -用户管理 2 5 module_system:user:query el-icon-User User /system/user module_system/user/index \N f t f 用户管理 null f 2 13 9900d01f-556f-4580-a09a-aecd51a99c86 0 初始化数据 2026-01-03 21:32:18.908009 2026-01-03 21:32:18.908009 -日志管理 2 6 module_system:log:query el-icon-Aim Log /system/log module_system/log/index \N f t f 日志管理 null f 2 14 4cf02289-e5d6-4fd4-8a35-2415dec384fa 0 初始化数据 2026-01-03 21:32:18.908012 2026-01-03 21:32:18.908012 -公告管理 2 7 module_system:notice:query bell Notice /system/notice module_system/notice/index \N f t f 公告管理 null f 2 15 c4cac9c7-d750-4b27-9731-039149f2897d 0 初始化数据 2026-01-03 21:32:18.908015 2026-01-03 21:32:18.908015 -参数管理 2 8 module_system:param:query setting Params /system/param module_system/param/index \N f t f 参数管理 null f 2 16 2385358e-b01c-4a48-93e0-d3b85f18438b 0 初始化数据 2026-01-03 21:32:18.908018 2026-01-03 21:32:18.908018 -字典管理 2 9 module_system:dict_type:query dict Dict /system/dict module_system/dict/index \N f t f 字典管理 null f 2 17 b9da7600-bbc3-48b9-86bd-c87d99e782e8 0 初始化数据 2026-01-03 21:32:18.908021 2026-01-03 21:32:18.908021 -我的应用 2 1 module_application:myapp:query el-icon-ShoppingCartFull MYAPP /application/myapp module_application/myapp/index \N f t f 我的应用 null f 3 18 4b89ed0b-c1c2-4a08-95a9-c0aff320fbbf 0 初始化数据 2026-01-03 21:32:18.908024 2026-01-03 21:32:18.908024 -任务管理 2 2 module_application:job:query el-icon-DataLine Job /application/job module_application/job/index \N f t f 任务管理 null f 3 19 586828bb-10f6-4eff-82b9-1ac747bafef2 0 初始化数据 2026-01-03 21:32:18.908027 2026-01-03 21:32:18.908027 -AI智能助手 2 3 module_application:ai:chat el-icon-ToiletPaper AI /application/ai module_application/ai/index \N f t f AI智能助手 null f 3 20 be03f057-ed7d-4c9e-9cb3-a17eabc58920 0 AI智能助手 2026-01-03 21:32:18.90803 2026-01-03 21:32:18.90803 -流程管理 2 4 module_application:workflow:query el-icon-ShoppingBag Workflow /application/workflow module_application/workflow/index \N f t f 我的流程 null f 3 21 b3e1ec0a-4411-4909-9b91-b11fa7cb56ae 0 我的流程 2026-01-03 21:32:18.908033 2026-01-03 21:32:18.908034 -在线用户 2 1 module_monitor:online:query el-icon-Headset MonitorOnline /monitor/online module_monitor/online/index \N f t f 在线用户 null f 4 22 bd3696da-f6cd-4d37-b2d3-458c0653c86b 0 初始化数据 2026-01-03 21:32:18.908036 2026-01-03 21:32:18.908037 -服务器监控 2 2 module_monitor:server:query el-icon-Odometer MonitorServer /monitor/server module_monitor/server/index \N f t f 服务器监控 null f 4 23 da8f2dd6-a3c8-4d0e-b4b8-995baafa47a4 0 初始化数据 2026-01-03 21:32:18.908039 2026-01-03 21:32:18.90804 -缓存监控 2 3 module_monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache module_monitor/cache/index \N f t f 缓存监控 null f 4 24 4a738c1e-2d6a-4c43-abf7-0ead777544df 0 初始化数据 2026-01-03 21:32:18.908042 2026-01-03 21:32:18.908043 -文件管理 2 4 module_monitor:resource:query el-icon-Files Resource /monitor/resource module_monitor/resource/index \N f t f 文件管理 null f 4 25 b57d3b59-82a1-4430-8b8a-7545c296f86a 0 初始化数据 2026-01-03 21:32:18.908045 2026-01-03 21:32:18.908046 -代码生成 2 1 module_generator:gencode:query code GenCode /generator/gencode module_generator/gencode/index \N f t f 代码生成 null f 5 26 d7bba83a-d934-4692-976c-56a43e69665a 0 代码生成 2026-01-03 21:32:18.908048 2026-01-03 21:32:18.908049 -Swagger文档 4 1 module_common:docs:query api Docs /common/docs module_common/docs/index \N f t f Swagger文档 null f 6 27 f8d27069-6348-474d-9338-f063cdeab56e 0 初始化数据 2026-01-03 21:32:18.908052 2026-01-03 21:32:18.908052 -Redoc文档 4 2 module_common:redoc:query el-icon-Document Redoc /common/redoc module_common/redoc/index \N f t f Redoc文档 null f 6 28 572fd0dc-26c6-480a-a142-223da6de2697 0 初始化数据 2026-01-03 21:32:18.908054 2026-01-03 21:32:18.908055 -示例管理 2 1 module_example:demo:query menu Demo /example/demo module_example/demo/index \N f t f 示例管理 null f 7 29 8bdeda95-8219-48ef-abe4-cba88a251e88 0 示例管理 2026-01-03 21:32:18.908057 2026-01-03 21:32:18.908058 -创建菜单 3 1 module_system:menu:create \N \N \N \N \N f t f 创建菜单 null f 9 30 d7e7d1da-e452-422f-a05b-3220b5534abc 0 初始化数据 2026-01-03 21:32:18.911445 2026-01-03 21:32:18.911447 -修改菜单 3 2 module_system:menu:update \N \N \N \N \N f t f 修改菜单 null f 9 31 82b62e27-b2d0-44b1-9319-9f8b2160be2a 0 初始化数据 2026-01-03 21:32:18.91145 2026-01-03 21:32:18.91145 -删除菜单 3 3 module_system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 9 32 d796f75f-ea78-41fa-a6f6-d8b3cc9698db 0 初始化数据 2026-01-03 21:32:18.911453 2026-01-03 21:32:18.911453 -批量修改菜单状态 3 4 module_system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 9 33 5e130db5-b6f1-40ae-bba6-f8f08bc433be 0 初始化数据 2026-01-03 21:32:18.911456 2026-01-03 21:32:18.911456 -详情改菜 3 5 module_system:menu:detail \N \N \N \N \N f t f 详情改菜 null f 9 34 5f31aeb8-beda-46fc-8715-5bc807787c38 0 初始化数据 2026-01-03 21:32:18.911459 2026-01-03 21:32:18.911459 -查询菜单 3 6 module_system:menu:query \N \N \N \N \N f t f 查询菜单 null f 9 35 a0f600b3-b948-4197-a162-b0f0019e0029 0 初始化数据 2026-01-03 21:32:18.911462 2026-01-03 21:32:18.911462 -创建部门 3 1 module_system:dept:create \N \N \N \N \N f t f 创建部门 null f 10 36 d699fba9-3c38-4f6d-aaad-e0fe1c6e4ef9 0 初始化数据 2026-01-03 21:32:18.911465 2026-01-03 21:32:18.911465 -修改部门 3 2 module_system:dept:update \N \N \N \N \N f t f 修改部门 null f 10 37 7fbc26de-231f-47e5-a776-549bc1d6e8da 0 初始化数据 2026-01-03 21:32:18.911468 2026-01-03 21:32:18.911468 -删除部门 3 3 module_system:dept:delete \N \N \N \N \N f t f 删除部门 null f 10 38 e2adf21d-20b9-4a66-b3e9-22dd97067f47 0 初始化数据 2026-01-03 21:32:18.911471 2026-01-03 21:32:18.911471 -批量修改部门状态 3 4 module_system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 10 39 174fc5cc-f3d0-48e5-a2f2-4d5d3768601f 0 初始化数据 2026-01-03 21:32:18.911474 2026-01-03 21:32:18.911474 -详情部门 3 5 module_system:dept:detail \N \N \N \N \N f t f 详情部门 null f 10 40 0cd163e8-e13d-4e54-af81-4d3b51fb8421 0 初始化数据 2026-01-03 21:32:18.911477 2026-01-03 21:32:18.911477 -查询部门 3 6 module_system:dept:query \N \N \N \N \N f t f 查询部门 null f 10 41 39776689-4fb6-47a6-acbc-cd0f63a88113 0 初始化数据 2026-01-03 21:32:18.91148 2026-01-03 21:32:18.91148 -创建岗位 3 1 module_system:position:create \N \N \N \N \N f t f 创建岗位 null f 11 42 6087b1ed-b52a-4a71-bbfe-74cd6d16752d 0 初始化数据 2026-01-03 21:32:18.911483 2026-01-03 21:32:18.911483 -修改岗位 3 2 module_system:position:update \N \N \N \N \N f t f 修改岗位 null f 11 43 c81de02c-8781-47b3-804d-e8b572f2b1d1 0 初始化数据 2026-01-03 21:32:18.911485 2026-01-03 21:32:18.911486 -删除岗位 3 3 module_system:position:delete \N \N \N \N \N f t f 修改岗位 null f 11 44 9ada8ac9-50c3-4251-88a6-1cea182b6e23 0 初始化数据 2026-01-03 21:32:18.911488 2026-01-03 21:32:18.911489 -批量修改岗位状态 3 4 module_system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 11 45 bfcd71e3-b90e-4dfd-bb99-1e58ec411745 0 初始化数据 2026-01-03 21:32:18.911491 2026-01-03 21:32:18.911491 -岗位导出 3 5 module_system:position:export \N \N \N \N \N f t f 岗位导出 null f 11 46 e4f86a4d-b64c-484c-833f-5fcf7f55273c 0 初始化数据 2026-01-03 21:32:18.911494 2026-01-03 21:32:18.911494 -详情岗位 3 6 module_system:position:detail \N \N \N \N \N f t f 详情岗位 null f 11 47 5cbfc463-d1b2-4268-af93-2bd80012a80c 0 初始化数据 2026-01-03 21:32:18.911497 2026-01-03 21:32:18.911497 -查询岗位 3 7 module_system:position:query \N \N \N \N \N f t f 查询岗位 null f 11 48 20aaaf6d-f02e-422e-8800-48e1c0ae9dd7 0 初始化数据 2026-01-03 21:32:18.911499 2026-01-03 21:32:18.9115 -创建角色 3 1 module_system:role:create \N \N \N \N \N f t f 创建角色 null f 12 49 f7f2a522-4d2f-4ae2-b081-fc455b5fd869 0 初始化数据 2026-01-03 21:32:18.911502 2026-01-03 21:32:18.911503 -修改角色 3 2 module_system:role:update \N \N \N \N \N f t f 修改角色 null f 12 50 0c7738be-cf93-42cd-a77b-473262ba35b8 0 初始化数据 2026-01-03 21:32:18.911505 2026-01-03 21:32:18.911506 -删除角色 3 3 module_system:role:delete \N \N \N \N \N f t f 删除角色 null f 12 51 d74eb083-c965-4002-9cab-d28c944941e8 0 初始化数据 2026-01-03 21:32:18.911508 2026-01-03 21:32:18.911509 -批量修改角色状态 3 4 module_system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 12 52 8f3181f4-3797-4c8d-9727-73b65e83dc13 0 初始化数据 2026-01-03 21:32:18.911511 2026-01-03 21:32:18.911512 -角色导出 3 5 module_system:role:export \N \N \N \N \N f t f 角色导出 null f 12 53 0409184f-4e47-4e5b-ab46-06977ac912ee 0 初始化数据 2026-01-03 21:32:18.911514 2026-01-03 21:32:18.911515 -详情角色 3 6 module_system:role:detail \N \N \N \N \N f t f 详情角色 null f 12 54 1a1a37ae-f6f6-471d-a296-382edebfedb8 0 初始化数据 2026-01-03 21:32:18.911517 2026-01-03 21:32:18.911518 -查询角色 3 7 module_system:role:query \N \N \N \N \N f t f 查询角色 null f 12 55 81bd5583-a5e7-403e-9388-fd7b5be62d50 0 初始化数据 2026-01-03 21:32:18.91152 2026-01-03 21:32:18.91152 -创建用户 3 1 module_system:user:create \N \N \N \N \N f t f 创建用户 null f 13 56 1b409e37-c8e1-4b32-9842-96d4d5870769 0 初始化数据 2026-01-03 21:32:18.911523 2026-01-03 21:32:18.911523 -修改用户 3 2 module_system:user:update \N \N \N \N \N f t f 修改用户 null f 13 57 89d8146a-0a01-42f0-8249-538c65fcb20a 0 初始化数据 2026-01-03 21:32:18.911526 2026-01-03 21:32:18.911526 -删除用户 3 3 module_system:user:delete \N \N \N \N \N f t f 删除用户 null f 13 58 58fee4f1-cf15-4b41-ac10-d07246b4ee59 0 初始化数据 2026-01-03 21:32:18.911529 2026-01-03 21:32:18.911529 -批量修改用户状态 3 4 module_system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 13 59 c7df3326-7d54-4a34-85f6-0ba84c2f00bf 0 初始化数据 2026-01-03 21:32:18.911532 2026-01-03 21:32:18.911532 -导出用户 3 5 module_system:user:export \N \N \N \N \N f t f 导出用户 null f 13 60 e7a89f3c-7add-4580-a6f6-fd4c27893973 0 初始化数据 2026-01-03 21:32:18.911534 2026-01-03 21:32:18.911535 -导入用户 3 6 module_system:user:import \N \N \N \N \N f t f 导入用户 null f 13 61 79e9601e-1ded-4883-8ef4-f0602d5c1767 0 初始化数据 2026-01-03 21:32:18.911537 2026-01-03 21:32:18.911538 -下载用户导入模板 3 7 module_system:user:download \N \N \N \N \N f t f 下载用户导入模板 null f 13 62 9af6e9b9-71ce-4dfc-8df3-a97a6556d115 0 初始化数据 2026-01-03 21:32:18.91154 2026-01-03 21:32:18.91154 -详情用户 3 8 module_system:user:detail \N \N \N \N \N f t f 详情用户 null f 13 63 5ae4fded-90d9-4d28-b93b-1d78a71a3ad6 0 初始化数据 2026-01-03 21:32:18.911543 2026-01-03 21:32:18.911543 -查询用户 3 9 module_system:user:query \N \N \N \N \N f t f 查询用户 null f 13 64 a26b1bd7-d863-4c6c-80f5-da4e6fa9d34b 0 初始化数据 2026-01-03 21:32:18.911546 2026-01-03 21:32:18.911546 -日志删除 3 1 module_system:log:delete \N \N \N \N \N f t f 日志删除 null f 14 65 7ed74443-10e7-40e9-b7d2-99b814597417 0 初始化数据 2026-01-03 21:32:18.911548 2026-01-03 21:32:18.911549 -日志导出 3 2 module_system:log:export \N \N \N \N \N f t f 日志导出 null f 14 66 cab97ed3-a0fe-4a37-8a86-9d394e7de088 0 初始化数据 2026-01-03 21:32:18.911551 2026-01-03 21:32:18.911551 -日志详情 3 3 module_system:log:detail \N \N \N \N \N f t f 日志详情 null f 14 67 d4964258-ec78-4e05-98f1-0174bb914cc4 0 初始化数据 2026-01-03 21:32:18.911554 2026-01-03 21:32:18.911554 -查询日志 3 4 module_system:log:query \N \N \N \N \N f t f 查询日志 null f 14 68 b4e13038-5e5e-4a1b-8b32-b0132b5271c5 0 初始化数据 2026-01-03 21:32:18.911557 2026-01-03 21:32:18.911557 -公告创建 3 1 module_system:notice:create \N \N \N \N \N f t f 公告创建 null f 15 69 dd2c2504-743e-48e3-a758-f9aa2bcdcd83 0 初始化数据 2026-01-03 21:32:18.911559 2026-01-03 21:32:18.91156 -公告修改 3 2 module_system:notice:update \N \N \N \N \N f t f 修改用户 null f 15 70 3daceab3-ec00-4fc8-bd3a-dac224b727e0 0 初始化数据 2026-01-03 21:32:18.911562 2026-01-03 21:32:18.911564 -公告删除 3 3 module_system:notice:delete \N \N \N \N \N f t f 公告删除 null f 15 71 4966506d-bc03-4df9-b0e5-9a1a78946357 0 初始化数据 2026-01-03 21:32:18.911567 2026-01-03 21:32:18.911567 -公告导出 3 4 module_system:notice:export \N \N \N \N \N f t f 公告导出 null f 15 72 fc4a35a3-8795-4d58-859d-31be25af894f 0 初始化数据 2026-01-03 21:32:18.911571 2026-01-03 21:32:18.911571 -公告批量修改状态 3 5 module_system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 15 73 f41bfd30-e52c-4ac8-a008-27f5d4fde5de 0 初始化数据 2026-01-03 21:32:18.911575 2026-01-03 21:32:18.911575 -公告详情 3 6 module_system:notice:detail \N \N \N \N \N f t f 公告详情 null f 15 74 8a129bcf-53fb-4c73-872b-8e281d09bb1d 0 初始化数据 2026-01-03 21:32:18.911579 2026-01-03 21:32:18.911579 -查询公告 3 5 module_system:notice:query \N \N \N \N \N f t f 查询公告 null f 15 75 3f24b0f2-5d84-4e98-9097-d90f6276678c 0 初始化数据 2026-01-03 21:32:18.911582 2026-01-03 21:32:18.911583 -创建参数 3 1 module_system:param:create \N \N \N \N \N f t f 创建参数 null f 16 76 8513bd00-0f00-4cd6-a76a-1e83e194a4e4 0 初始化数据 2026-01-03 21:32:18.911586 2026-01-03 21:32:18.911587 -修改参数 3 2 module_system:param:update \N \N \N \N \N f t f 修改参数 null f 16 77 36a7d50e-34a1-462b-b388-b9d6d8539ad2 0 初始化数据 2026-01-03 21:32:18.91159 2026-01-03 21:32:18.911591 -删除参数 3 3 module_system:param:delete \N \N \N \N \N f t f 删除参数 null f 16 78 505028b6-0362-4792-9b86-4edd40f81ffd 0 初始化数据 2026-01-03 21:32:18.911594 2026-01-03 21:32:18.911594 -导出参数 3 4 module_system:param:export \N \N \N \N \N f t f 导出参数 null f 16 79 2c5d2b14-366f-4632-930b-0396b6ac4bd3 0 初始化数据 2026-01-03 21:32:18.911598 2026-01-03 21:32:18.911598 -参数上传 3 5 module_system:param:upload \N \N \N \N \N f t f 参数上传 null f 16 80 60aee432-dd9b-448c-b527-18b49c7d137a 0 初始化数据 2026-01-03 21:32:18.911602 2026-01-03 21:32:18.911602 -参数详情 3 6 module_system:param:detail \N \N \N \N \N f t f 参数详情 null f 16 81 c87eb5ed-62a1-4cd4-8851-0e00cb69b2cc 0 初始化数据 2026-01-03 21:32:18.911605 2026-01-03 21:32:18.911605 -查询参数 3 7 module_system:param:query \N \N \N \N \N f t f 查询参数 null f 16 82 d44dccb9-3b72-4e56-bff4-842ccab4cf6a 0 初始化数据 2026-01-03 21:32:18.911608 2026-01-03 21:32:18.911608 -创建字典类型 3 1 module_system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 17 83 9550ae0d-72c5-4594-b478-a5fae5b27fc9 0 初始化数据 2026-01-03 21:32:18.911611 2026-01-03 21:32:18.911611 -修改字典类型 3 2 module_system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 17 84 6c9762a7-0846-40df-82ba-4472ca2b5881 0 初始化数据 2026-01-03 21:32:18.911614 2026-01-03 21:32:18.911614 -删除字典类型 3 3 module_system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 17 85 7f8d933f-dee6-4dde-b72f-707a7f1b7e49 0 初始化数据 2026-01-03 21:32:18.911617 2026-01-03 21:32:18.911617 -导出字典类型 3 4 module_system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 17 86 5d14d903-230c-413a-8bba-b70e6b91d33c 0 初始化数据 2026-01-03 21:32:18.911619 2026-01-03 21:32:18.91162 -批量修改字典状态 3 5 module_system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 17 87 d1712e01-35ac-443b-aece-06c62c0ab088 0 初始化数据 2026-01-03 21:32:18.911622 2026-01-03 21:32:18.911623 -字典数据查询 3 6 module_system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 17 88 1565475c-f3a9-4bbb-b93b-5e220467cc81 0 初始化数据 2026-01-03 21:32:18.911625 2026-01-03 21:32:18.911625 -创建字典数据 3 7 module_system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 17 89 578edd73-25f7-43bb-9f8b-1502e6a028d3 0 初始化数据 2026-01-03 21:32:18.911628 2026-01-03 21:32:18.911628 -修改字典数据 3 8 module_system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 17 90 71a3bab7-d934-484c-aa9a-e7a7266cddc5 0 初始化数据 2026-01-03 21:32:18.911631 2026-01-03 21:32:18.911631 -删除字典数据 3 9 module_system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 17 91 e336aadd-a4fa-41f7-8649-7269ec57f691 0 初始化数据 2026-01-03 21:32:18.911634 2026-01-03 21:32:18.911634 -导出字典数据 3 10 module_system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 17 92 3595a298-ff90-400a-bbb7-b22b5991b53d 0 初始化数据 2026-01-03 21:32:18.911636 2026-01-03 21:32:18.911637 -批量修改字典数据状态 3 11 module_system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 17 93 f19ece16-4c9e-4e36-9d40-e95119439dba 0 初始化数据 2026-01-03 21:32:18.911639 2026-01-03 21:32:18.911639 -详情字典类型 3 12 module_system:dict_type:detail \N \N \N \N \N f t f 详情字典类型 null f 17 94 8c8a3c93-4b81-4f2a-9f19-69d55289bed0 0 初始化数据 2026-01-03 21:32:18.911642 2026-01-03 21:32:18.911642 -查询字典类型 3 13 module_system:dict_type:query \N \N \N \N \N f t f 查询字典类型 null f 17 95 3c086e98-80be-43a9-bf92-9e549ce52001 0 初始化数据 2026-01-03 21:32:18.911645 2026-01-03 21:32:18.911645 -详情字典数据 3 14 module_system:dict_data:detail \N \N \N \N \N f t f 详情字典数据 null f 17 96 7747b9b0-4876-4379-838c-71746abf40d3 0 初始化数据 2026-01-03 21:32:18.911647 2026-01-03 21:32:18.911648 -创建应用 3 1 module_application:myapp:create \N \N \N \N \N f t f 创建应用 null f 18 97 6597310c-0997-4adf-ab77-a3abf3c06fdb 0 初始化数据 2026-01-03 21:32:18.91165 2026-01-03 21:32:18.91165 -修改应用 3 2 module_application:myapp:update \N \N \N \N \N f t f 修改应用 null f 18 98 bf921c89-86aa-429c-b00d-92b9b4267451 0 初始化数据 2026-01-03 21:32:18.911653 2026-01-03 21:32:18.911653 -删除应用 3 3 module_application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 18 99 dcd2b033-e1ff-4361-abb9-499358d7533b 0 初始化数据 2026-01-03 21:32:18.911656 2026-01-03 21:32:18.911656 -批量修改应用状态 3 4 module_application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 18 100 abde1610-99f2-4366-9cbf-dbc0991a9aa3 0 初始化数据 2026-01-03 21:32:18.911658 2026-01-03 21:32:18.911659 -详情应用 3 5 module_application:myapp:detail \N \N \N \N \N f t f 详情应用 null f 18 101 e4ec94d0-7514-4423-80aa-c3e6f6a9e840 0 初始化数据 2026-01-03 21:32:18.911661 2026-01-03 21:32:18.911662 -查询应用 3 6 module_application:myapp:query \N \N \N \N \N f t f 查询应用 null f 18 102 3f4ad15e-a846-43ba-81b7-c07998fae40e 0 初始化数据 2026-01-03 21:32:18.911664 2026-01-03 21:32:18.911665 -创建任务 3 1 module_application:job:create \N \N \N \N \N f t f 创建任务 null f 19 103 f3bd89ed-6be3-4b1b-9c8d-5f1473074c6a 0 初始化数据 2026-01-03 21:32:18.911667 2026-01-03 21:32:18.911667 -修改和操作任务 3 2 module_application:job:update \N \N \N \N \N f t f 修改和操作任务 null f 19 104 af780bd5-d542-422f-8714-17a67628b705 0 初始化数据 2026-01-03 21:32:18.91167 2026-01-03 21:32:18.91167 -删除和清除任务 3 3 module_application:job:delete \N \N \N \N \N f t f 删除和清除任务 null f 19 105 1b6d0689-87fe-4092-9407-7da413b99786 0 初始化数据 2026-01-03 21:32:18.911672 2026-01-03 21:32:18.911673 -导出定时任务 3 4 module_application:job:export \N \N \N \N \N f t f 导出定时任务 null f 19 106 5e1b35b0-c349-41a6-8873-e80787e5a00b 0 初始化数据 2026-01-03 21:32:18.911675 2026-01-03 21:32:18.911676 -详情定时任务 3 5 module_application:job:detail \N \N \N \N \N f t f 详情任务 null f 19 107 7e9c0d83-f381-42c9-a0a0-448680e8c36c 0 初始化数据 2026-01-03 21:32:18.91168 2026-01-03 21:32:18.911681 -查询定时任务 3 6 module_application:job:query \N \N \N \N \N f t f 查询定时任务 null f 19 108 9020114f-35f2-4383-9659-b72f2ff9d72a 0 初始化数据 2026-01-03 21:32:18.911684 2026-01-03 21:32:18.911684 -智能对话 3 1 module_application:ai:chat \N \N \N \N \N f t f 智能对话 null f 20 109 353ee35e-c3c1-4ee1-8a64-324bdc7f1d96 0 智能对话 2026-01-03 21:32:18.911686 2026-01-03 21:32:18.911687 -在线用户强制下线 3 1 module_monitor:online:delete \N \N \N \N \N f t f 在线用户强制下线 null f 22 110 0edf0de3-ae8d-4a47-9e43-74ac1ff9a8a9 0 初始化数据 2026-01-03 21:32:18.911689 2026-01-03 21:32:18.91169 -清除缓存 3 1 module_monitor:cache:delete \N \N \N \N \N f t f 清除缓存 null f 24 111 8ba7c514-fcfe-4bf7-a3fb-3683e2a2927c 0 初始化数据 2026-01-03 21:32:18.911692 2026-01-03 21:32:18.911693 -文件上传 3 1 module_monitor:resource:upload \N \N \N \N \N f t f 文件上传 null f 25 112 2e1be8fb-fa3e-422b-baeb-491ca1b39a25 0 初始化数据 2026-01-03 21:32:18.911695 2026-01-03 21:32:18.911695 -文件下载 3 2 module_monitor:resource:download \N \N \N \N \N f t f 文件下载 null f 25 113 5876d559-7e73-4f02-bb76-447a5d20a452 0 初始化数据 2026-01-03 21:32:18.911698 2026-01-03 21:32:18.911698 -文件删除 3 3 module_monitor:resource:delete \N \N \N \N \N f t f 文件删除 null f 25 114 a37dfbdc-dd4a-43f0-82f5-ff2ad50481ec 0 初始化数据 2026-01-03 21:32:18.911701 2026-01-03 21:32:18.911701 -文件移动 3 4 module_monitor:resource:move \N \N \N \N \N f t f 文件移动 null f 25 115 99cf44db-1661-4fd6-8d7d-1d9fd0e963d2 0 初始化数据 2026-01-03 21:32:18.911704 2026-01-03 21:32:18.911704 -文件复制 3 5 module_monitor:resource:copy \N \N \N \N \N f t f 文件复制 null f 25 116 43eeccb8-f09e-4a35-9df7-04009fd7ffd4 0 初始化数据 2026-01-03 21:32:18.911706 2026-01-03 21:32:18.911707 -文件重命名 3 6 module_monitor:resource:rename \N \N \N \N \N f t f 文件重命名 null f 25 117 c8fd4446-9147-4dd0-9dbb-b7ad7531edb2 0 初始化数据 2026-01-03 21:32:18.911709 2026-01-03 21:32:18.911709 -创建目录 3 7 module_monitor:resource:create_dir \N \N \N \N \N f t f 创建目录 null f 25 118 d2c29d13-d63c-41e0-9798-db94fdd06e38 0 初始化数据 2026-01-03 21:32:18.911712 2026-01-03 21:32:18.911712 -导出文件列表 3 9 module_monitor:resource:export \N \N \N \N \N f t f 导出文件列表 null f 25 119 5bb86efe-3d16-41d9-a3e6-e1e22cc8683c 0 初始化数据 2026-01-03 21:32:18.911715 2026-01-03 21:32:18.911715 -查询代码生成业务表列表 3 1 module_generator:gencode:query \N \N \N \N \N f t f 查询代码生成业务表列表 null f 26 120 2a292a26-2ca3-42ab-ab6c-f8225d916df8 0 查询代码生成业务表列表 2026-01-03 21:32:18.911717 2026-01-03 21:32:18.911718 -创建表结构 3 2 module_generator:gencode:create \N \N \N \N \N f t f 创建表结构 null f 26 121 ec7640e8-1790-4563-a54f-d6b487bc3501 0 创建表结构 2026-01-03 21:32:18.91172 2026-01-03 21:32:18.911721 -编辑业务表信息 3 3 module_generator:gencode:update \N \N \N \N \N f t f 编辑业务表信息 null f 26 122 c38e5ba5-ffc4-47e3-910e-c24978781830 0 编辑业务表信息 2026-01-03 21:32:18.911723 2026-01-03 21:32:18.911724 -删除业务表信息 3 4 module_generator:gencode:delete \N \N \N \N \N f t f 删除业务表信息 null f 26 123 9f534ac6-8ccd-4ea6-a30b-e9aa41177146 0 删除业务表信息 2026-01-03 21:32:18.911726 2026-01-03 21:32:18.911726 -导入表结构 3 5 module_generator:gencode:import \N \N \N \N \N f t f 导入表结构 null f 26 124 8fbc97e8-583a-4f51-a87b-819c1158568e 0 导入表结构 2026-01-03 21:32:18.911729 2026-01-03 21:32:18.911729 -批量生成代码 3 6 module_generator:gencode:operate \N \N \N \N \N f t f 批量生成代码 null f 26 125 8c98d051-8277-4382-887e-8f11a27fa839 0 批量生成代码 2026-01-03 21:32:18.911732 2026-01-03 21:32:18.911732 -生成代码到指定路径 3 7 module_generator:gencode:code \N \N \N \N \N f t f 生成代码到指定路径 null f 26 126 b516e17a-68c7-447b-b67e-e706bec688c6 0 生成代码到指定路径 2026-01-03 21:32:18.911735 2026-01-03 21:32:18.911735 -查询数据库表列表 3 8 module_generator:dblist:query \N \N \N \N \N f t f 查询数据库表列表 null f 26 127 c489c527-1397-4763-afb5-39c6bce33c34 0 查询数据库表列表 2026-01-03 21:32:18.911737 2026-01-03 21:32:18.911738 -同步数据库 3 9 module_generator:db:sync \N \N \N \N \N f t f 同步数据库 null f 26 128 e98d0079-e340-45bc-b09f-9476f71b2aa3 0 同步数据库 2026-01-03 21:32:18.91174 2026-01-03 21:32:18.911741 -创建示例 3 1 module_example:demo:create \N \N \N \N \N f t f 创建示例 null f 29 129 065ff5d5-e279-4df3-91d1-4c81eb589794 0 初始化数据 2026-01-03 21:32:18.911743 2026-01-03 21:32:18.911743 -更新示例 3 2 module_example:demo:update \N \N \N \N \N f t f 更新示例 null f 29 130 a7778542-d3cd-4964-839a-6aa631b8955c 0 初始化数据 2026-01-03 21:32:18.911746 2026-01-03 21:32:18.911746 -删除示例 3 3 module_example:demo:delete \N \N \N \N \N f t f 删除示例 null f 29 131 e72c989e-69b1-4bad-8c9f-192312c671ba 0 初始化数据 2026-01-03 21:32:18.911749 2026-01-03 21:32:18.911749 -批量修改示例状态 3 4 module_example:demo:patch \N \N \N \N \N f t f 批量修改示例状态 null f 29 132 7ef6f0b7-cc65-4283-b1aa-02c29a4a68fc 0 初始化数据 2026-01-03 21:32:18.911751 2026-01-03 21:32:18.911752 -导出示例 3 5 module_example:demo:export \N \N \N \N \N f t f 导出示例 null f 29 133 e3e0a107-d9c7-4e2a-85d8-442201477bda 0 初始化数据 2026-01-03 21:32:18.911754 2026-01-03 21:32:18.911754 -导入示例 3 6 module_example:demo:import \N \N \N \N \N f t f 导入示例 null f 29 134 82a3f388-66ac-4804-87d5-6c1553a9fb73 0 初始化数据 2026-01-03 21:32:18.911757 2026-01-03 21:32:18.911757 -下载导入示例模版 3 7 module_example:demo:download \N \N \N \N \N f t f 下载导入示例模版 null f 29 135 37044da4-53aa-45ca-b0b4-c482a6267738 0 初始化数据 2026-01-03 21:32:18.91176 2026-01-03 21:32:18.91176 -详情示例 3 8 module_example:demo:detail \N \N \N \N \N f t f 详情示例 null f 29 136 bcb8c7c2-8336-445b-bd5a-e520df635780 0 初始化数据 2026-01-03 21:32:18.911763 2026-01-03 21:32:18.911763 -查询示例 3 9 module_example:demo:query \N \N \N \N \N f t f 查询示例 null f 29 137 b9c1eeb0-426a-42ba-9cec-a6dca30bdb9d 0 初始化数据 2026-01-03 21:32:18.911766 2026-01-03 21:32:18.911766 +仪表盘 1 1 client Dashboard /dashboard \N /dashboard/workplace f t t 仪表盘 null f \N 1 8b0bfbcb-2902-45f6-aa27-4b90ac993e2f 0 初始化数据 2026-02-23 06:41:21.165304 2026-02-23 06:41:21.16531 +系统管理 1 2 \N system System /system \N /system/menu f t f 系统管理 null f \N 2 899c36e3-2596-4b12-b409-5b601cf32816 0 初始化数据 2026-02-23 06:41:21.165315 2026-02-23 06:41:21.165315 +监控管理 1 3 \N monitor Monitor /monitor \N /monitor/online f t f 监控管理 null f \N 3 1a987da0-c978-4252-a510-bba4e61f27d5 0 初始化数据 2026-02-23 06:41:21.165318 2026-02-23 06:41:21.165319 +接口管理 1 4 \N document Common /common \N /common/docs f t f 接口管理 null f \N 4 20468f06-88d0-4d98-8f66-ad1c6172d985 0 初始化数据 2026-02-23 06:41:21.165322 2026-02-23 06:41:21.165322 +代码管理 1 5 \N code Generator /generator \N /generator/gencode f t f 代码管理 null f \N 5 165f272d-c707-4798-9a8c-de3c28ceca38 0 代码管理 2026-02-23 06:41:21.165325 2026-02-23 06:41:21.165325 +应用管理 1 6 \N el-icon-ShoppingBag Application /application \N /application/myapp f t f 应用管理 null f \N 6 35727681-24ec-4fdd-9a26-53b45cb02d96 0 初始化数据 2026-02-23 06:41:21.165328 2026-02-23 06:41:21.165328 +AI管理 1 7 \N el-icon-ChatLineSquare AI /ai \N /ai/chat f t f AI管理 null f \N 7 7fd1aff6-cd92-493e-8c30-1224576b3085 0 AI管理 2026-02-23 06:41:21.165331 2026-02-23 06:41:21.165331 +任务管理 1 8 \N el-icon-SetUp Task /task \N /task/job f t f 任务管理 null f \N 8 937380d7-bb38-49a1-bc5e-76733aff9cae 0 任务管理 2026-02-23 06:41:21.165334 2026-02-23 06:41:21.165335 +案例管理 1 9 \N menu Example /example \N /example/demo f t f 案例管理 null f \N 9 213d1531-f70d-4fb0-b88b-4572891b33d6 0 案例管理 2026-02-23 06:41:21.165337 2026-02-23 06:41:21.165338 +工作台 2 1 dashboard:workplace:query el-icon-PieChart Workplace /dashboard/workplace dashboard/workplace \N f t f 工作台 null f 1 10 1f123ae5-573f-448e-bed8-9f38f3685ac1 0 初始化数据 2026-02-23 06:41:21.168756 2026-02-23 06:41:21.168758 +菜单管理 2 1 module_system:menu:query menu Menu /system/menu module_system/menu/index \N f t f 菜单管理 null f 2 11 6fa49e7e-764b-46bd-bc4e-45886f49e0cd 0 初始化数据 2026-02-23 06:41:21.168761 2026-02-23 06:41:21.168762 +部门管理 2 2 module_system:dept:query tree Dept /system/dept module_system/dept/index \N f t f 部门管理 null f 2 12 5eb9be79-b802-4b31-8998-5c9fa0d7231f 0 初始化数据 2026-02-23 06:41:21.168765 2026-02-23 06:41:21.168765 +岗位管理 2 3 module_system:position:query el-icon-Coordinate Position /system/position module_system/position/index \N f t f 岗位管理 null f 2 13 2be648d0-0b31-4262-859b-f15cff2a905a 0 初始化数据 2026-02-23 06:41:21.168768 2026-02-23 06:41:21.168768 +角色管理 2 4 module_system:role:query role Role /system/role module_system/role/index \N f t f 角色管理 null f 2 14 171f132f-7802-4d83-b562-68ccd527b7b4 0 初始化数据 2026-02-23 06:41:21.168771 2026-02-23 06:41:21.168771 +用户管理 2 5 module_system:user:query el-icon-User User /system/user module_system/user/index \N f t f 用户管理 null f 2 15 1cb66ff5-a3ad-496c-9044-23aeef9c073b 0 初始化数据 2026-02-23 06:41:21.168774 2026-02-23 06:41:21.168775 +日志管理 2 6 module_system:log:query el-icon-Aim Log /system/log module_system/log/index \N f t f 日志管理 null f 2 16 93c592c8-2897-4bcf-bd16-89dc3b36de0e 0 初始化数据 2026-02-23 06:41:21.168777 2026-02-23 06:41:21.168778 +公告管理 2 7 module_system:notice:query bell Notice /system/notice module_system/notice/index \N f t f 公告管理 null f 2 17 04c03041-af2f-42a6-b54e-04508077f83e 0 初始化数据 2026-02-23 06:41:21.168781 2026-02-23 06:41:21.168782 +参数管理 2 8 module_system:param:query setting Params /system/param module_system/param/index \N f t f 参数管理 null f 2 18 df748b11-7bf7-494b-98bc-d14cdf5982bb 0 初始化数据 2026-02-23 06:41:21.168784 2026-02-23 06:41:21.168785 +字典管理 2 9 module_system:dict_type:query dict Dict /system/dict module_system/dict/index \N f t f 字典管理 null f 2 19 e59c0c18-d70e-45a4-b536-94787f58e57f 0 初始化数据 2026-02-23 06:41:21.168787 2026-02-23 06:41:21.168788 +在线用户 2 1 module_monitor:online:query el-icon-Headset MonitorOnline /monitor/online module_monitor/online/index \N f t f 在线用户 null f 3 20 6dd1fd9f-f80e-4cf2-86f5-f37d8d4fb104 0 初始化数据 2026-02-23 06:41:21.16879 2026-02-23 06:41:21.168791 +服务器监控 2 2 module_monitor:server:query el-icon-Odometer MonitorServer /monitor/server module_monitor/server/index \N f t f 服务器监控 null f 3 21 b7b199bf-fd67-435c-9141-541fdd529d2c 0 初始化数据 2026-02-23 06:41:21.168793 2026-02-23 06:41:21.168794 +缓存监控 2 3 module_monitor:cache:query el-icon-Stopwatch MonitorCache /monitor/cache module_monitor/cache/index \N f t f 缓存监控 null f 3 22 bac2cdd6-8ac5-438b-b81e-b9dc91b970b7 0 初始化数据 2026-02-23 06:41:21.168796 2026-02-23 06:41:21.168796 +文件管理 2 4 module_monitor:resource:query el-icon-Files Resource /monitor/resource module_monitor/resource/index \N f t f 文件管理 null f 3 23 81e2f28b-6c70-4a8c-a67f-c7f14769470d 0 初始化数据 2026-02-23 06:41:21.168799 2026-02-23 06:41:21.168799 +Swagger文档 4 1 module_common:docs:query api Docs /common/docs module_common/docs/index \N f t f Swagger文档 null f 4 24 6f975231-c1dd-43ac-9b5a-29b170cb67fa 0 初始化数据 2026-02-23 06:41:21.168802 2026-02-23 06:41:21.168802 +Redoc文档 4 2 module_common:redoc:query el-icon-Document Redoc /common/redoc module_common/redoc/index \N f t f Redoc文档 null f 4 25 e977ff89-a082-4676-85eb-6cc4ad852ba8 0 初始化数据 2026-02-23 06:41:21.168805 2026-02-23 06:41:21.168805 +LangJin文档 4 3 module_common:ljdoc:query el-icon-Document Ljdoc /common/ljdoc module_common/ljdoc/index \N f t f LangJin文档 null f 4 26 d524f89b-688c-4721-b2a5-15a6c85c93b8 0 初始化数据 2026-02-23 06:41:21.168808 2026-02-23 06:41:21.168808 +代码生成 2 1 module_generator:gencode:query code GenCode /generator/gencode module_generator/gencode/index \N f t f 代码生成 null f 5 27 569bbc1b-a819-4cd0-8632-53b67d92eb11 0 代码生成 2026-02-23 06:41:21.168811 2026-02-23 06:41:21.168812 +我的应用 2 1 module_application:myapp:query el-icon-ShoppingCartFull MYAPP /application/myapp module_application/myapp/index \N f t f 我的应用 null f 6 28 34851479-acfd-4129-9ee2-3ba4112f9321 0 初始化数据 2026-02-23 06:41:21.168814 2026-02-23 06:41:21.168815 +会话标题 2 1 module_ai:chat_session:query el-icon-ChatLineRound ChatSession /ai/chat_session module_ai/chat_session/index \N f t f 会话标题 null f 7 29 d1afdd54-0672-470c-a0ed-b77eb1c9a51b 0 会话标题 2026-02-23 06:41:21.168817 2026-02-23 06:41:21.168818 +会话内容 2 2 module_ai:chat_message:query el-icon-ChatSquare ChatMessage /ai/chat_message module_ai/chat_message/index \N f t f 会话内容 null f 7 30 e15ed9b6-acc0-43aa-bb65-51250302fc72 0 会话内容 2026-02-23 06:41:21.16882 2026-02-23 06:41:21.168821 +AI智能助手 2 3 module_ai:chat:ws el-icon-ChatDotRound Chat /application/ai module_ai/chat/index \N f t f AI智能助手 null f 7 31 f21af8cf-ea67-4e3e-90d3-8425e2b00de5 0 AI智能助手 2026-02-23 06:41:21.168823 2026-02-23 06:41:21.168824 +调度器监控 2 1 module_task:job:query el-icon-DataLine Job /task/job module_task/job/index \N f t f 调度器监控 null f 8 32 bd0ff214-a9d0-45f8-a220-2ced1057fa8f 0 调度器监控 2026-02-23 06:41:21.168827 2026-02-23 06:41:21.168828 +节点管理 2 2 module_task:node:query el-icon-Postcard Node /task/node module_task/node/index \N f t f 节点管理 null f 8 33 d96e7a7e-a029-423f-9f04-cff2d211a170 0 节点管理 2026-02-23 06:41:21.168831 2026-02-23 06:41:21.168832 +流程编排 2 3 module_task:workflow:query el-icon-Share Workflow /task/workflow module_task/workflow/index \N f t f 流程编排 null f 8 34 7c9c80d9-0a09-4954-beed-fb95bb9bba61 0 流程编排 2026-02-23 06:41:21.168836 2026-02-23 06:41:21.168836 +示例管理 2 1 module_example:demo:query menu Demo /example/demo module_example/demo/index \N f t f 示例管理 null f 9 35 2367e72e-fec8-4fe5-aad4-5e72ead23207 0 示例管理 2026-02-23 06:41:21.16884 2026-02-23 06:41:21.16884 +创建菜单 3 1 module_system:menu:create \N \N \N \N \N f t f 创建菜单 null f 11 36 cd2b49d4-3565-4430-9956-b1988d2bc335 0 初始化数据 2026-02-23 06:41:21.173505 2026-02-23 06:41:21.173507 +修改菜单 3 2 module_system:menu:update \N \N \N \N \N f t f 修改菜单 null f 11 37 73911eeb-df86-4f82-af41-a616cdc1b181 0 初始化数据 2026-02-23 06:41:21.173512 2026-02-23 06:41:21.173512 +删除菜单 3 3 module_system:menu:delete \N \N \N \N \N f t f 删除菜单 null f 11 38 50bef276-f801-40ae-8cc6-39f23dfe903e 0 初始化数据 2026-02-23 06:41:21.173515 2026-02-23 06:41:21.173516 +批量修改菜单状态 3 4 module_system:menu:patch \N \N \N \N \N f t f 批量修改菜单状态 null f 11 39 e6988f19-8da3-4fd8-836d-06372293beb2 0 初始化数据 2026-02-23 06:41:21.173519 2026-02-23 06:41:21.173519 +详情菜单 3 5 module_system:menu:detail \N \N \N \N \N f t f 详情菜单 null f 11 40 646219c5-ad2a-41d6-a79a-e66c04282979 0 初始化数据 2026-02-23 06:41:21.173522 2026-02-23 06:41:21.173523 +查询菜单 3 6 module_system:menu:query \N \N \N \N \N f t f 查询菜单 null f 11 41 314c094f-bda2-4254-a859-d37727276112 0 初始化数据 2026-02-23 06:41:21.173526 2026-02-23 06:41:21.173526 +创建部门 3 1 module_system:dept:create \N \N \N \N \N f t f 创建部门 null f 12 42 6b2660f0-2dfe-498c-8a87-eddaf5459e1c 0 初始化数据 2026-02-23 06:41:21.173529 2026-02-23 06:41:21.17353 +修改部门 3 2 module_system:dept:update \N \N \N \N \N f t f 修改部门 null f 12 43 5fc013ff-afdb-4814-aa37-ca3f3d393b39 0 初始化数据 2026-02-23 06:41:21.173532 2026-02-23 06:41:21.173533 +删除部门 3 3 module_system:dept:delete \N \N \N \N \N f t f 删除部门 null f 12 44 ee5177eb-1d36-43c1-a97b-5641d718203c 0 初始化数据 2026-02-23 06:41:21.173536 2026-02-23 06:41:21.173536 +批量修改部门状态 3 4 module_system:dept:patch \N \N \N \N \N f t f 批量修改部门状态 null f 12 45 f4c8f88f-eabd-4193-a720-16a56e56037b 0 初始化数据 2026-02-23 06:41:21.173539 2026-02-23 06:41:21.173539 +详情部门 3 5 module_system:dept:detail \N \N \N \N \N f t f 详情部门 null f 12 46 5b78441e-652f-42c2-8ef8-f9870f30ba3b 0 初始化数据 2026-02-23 06:41:21.173542 2026-02-23 06:41:21.173543 +查询部门 3 6 module_system:dept:query \N \N \N \N \N f t f 查询部门 null f 12 47 0493c602-fbe3-4d42-b668-3c5678e85b3c 0 初始化数据 2026-02-23 06:41:21.173547 2026-02-23 06:41:21.173547 +创建岗位 3 1 module_system:position:create \N \N \N \N \N f t f 创建岗位 null f 13 48 87ac2883-f536-48a2-a2c7-bce9eddf3163 0 初始化数据 2026-02-23 06:41:21.17355 2026-02-23 06:41:21.17355 +修改岗位 3 2 module_system:position:update \N \N \N \N \N f t f 修改岗位 null f 13 49 4b66be05-e453-40d9-a4e4-06f66044809f 0 初始化数据 2026-02-23 06:41:21.173553 2026-02-23 06:41:21.173554 +删除岗位 3 3 module_system:position:delete \N \N \N \N \N f t f 修改岗位 null f 13 50 4d602af8-49b6-4d6c-8710-a9a14942da3e 0 初始化数据 2026-02-23 06:41:21.173556 2026-02-23 06:41:21.173557 +批量修改岗位状态 3 4 module_system:position:patch \N \N \N \N \N f t f 批量修改岗位状态 null f 13 51 42b68bae-b723-442f-84d1-95965ffaf44e 0 初始化数据 2026-02-23 06:41:21.17356 2026-02-23 06:41:21.17356 +岗位导出 3 5 module_system:position:export \N \N \N \N \N f t f 岗位导出 null f 13 52 8614414f-8867-41bf-a8c9-e55331d06a6f 0 初始化数据 2026-02-23 06:41:21.173563 2026-02-23 06:41:21.173563 +详情岗位 3 6 module_system:position:detail \N \N \N \N \N f t f 详情岗位 null f 13 53 0ff1a35d-a153-442b-a111-563935233647 0 初始化数据 2026-02-23 06:41:21.173566 2026-02-23 06:41:21.173566 +查询岗位 3 7 module_system:position:query \N \N \N \N \N f t f 查询岗位 null f 13 54 5ea3cd79-a159-4821-b4b3-8aa986f1e1bf 0 初始化数据 2026-02-23 06:41:21.173569 2026-02-23 06:41:21.173569 +创建角色 3 1 module_system:role:create \N \N \N \N \N f t f 创建角色 null f 14 55 57c451c5-b269-44bc-a110-f1f1a8c9ae94 0 初始化数据 2026-02-23 06:41:21.173572 2026-02-23 06:41:21.173572 +修改角色 3 2 module_system:role:update \N \N \N \N \N f t f 修改角色 null f 14 56 e90161b1-c2ac-4bbb-8e97-46e5ebbf4074 0 初始化数据 2026-02-23 06:41:21.173575 2026-02-23 06:41:21.173575 +删除角色 3 3 module_system:role:delete \N \N \N \N \N f t f 删除角色 null f 14 57 825396fd-f8ce-4a05-b333-0ce3dea0efe8 0 初始化数据 2026-02-23 06:41:21.173578 2026-02-23 06:41:21.173578 +批量修改角色状态 3 4 module_system:role:patch \N \N \N \N \N f t f 批量修改角色状态 null f 14 58 45158ae0-d377-4a07-b56e-20b8e66878fb 0 初始化数据 2026-02-23 06:41:21.173581 2026-02-23 06:41:21.173581 +角色导出 3 5 module_system:role:export \N \N \N \N \N f t f 角色导出 null f 14 59 f06fd447-e643-411a-81df-09e37a5131c2 0 初始化数据 2026-02-23 06:41:21.173584 2026-02-23 06:41:21.173585 +详情角色 3 6 module_system:role:detail \N \N \N \N \N f t f 详情角色 null f 14 60 4ae7180a-9d37-47e3-bd46-a17b582467e5 0 初始化数据 2026-02-23 06:41:21.173587 2026-02-23 06:41:21.173588 +查询角色 3 7 module_system:role:query \N \N \N \N \N f t f 查询角色 null f 14 61 0c2c2d09-2516-4a9c-bbdb-735a35040a77 0 初始化数据 2026-02-23 06:41:21.17359 2026-02-23 06:41:21.173591 +分配权限 3 8 module_system:role:permission \N \N \N \N \N f t f 分配权限 null f 14 62 dc23b37f-fc5d-40d6-b7a2-2b3481e3b401 0 初始化数据 2026-02-23 06:41:21.173593 2026-02-23 06:41:21.173594 +创建用户 3 1 module_system:user:create \N \N \N \N \N f t f 创建用户 null f 15 63 48fdfc48-80ff-4e1f-a671-50077aba142a 0 初始化数据 2026-02-23 06:41:21.173596 2026-02-23 06:41:21.173597 +修改用户 3 2 module_system:user:update \N \N \N \N \N f t f 修改用户 null f 15 64 3e40b761-0bda-4f5f-a9e6-958b2a1f187c 0 初始化数据 2026-02-23 06:41:21.1736 2026-02-23 06:41:21.1736 +删除用户 3 3 module_system:user:delete \N \N \N \N \N f t f 删除用户 null f 15 65 2163a39a-ca30-4fcd-a7a1-92ebc62eb051 0 初始化数据 2026-02-23 06:41:21.173603 2026-02-23 06:41:21.173603 +批量修改用户状态 3 4 module_system:user:patch \N \N \N \N \N f t f 批量修改用户状态 null f 15 66 de042b7c-995c-4f23-a2de-41e77b10dc23 0 初始化数据 2026-02-23 06:41:21.173606 2026-02-23 06:41:21.173606 +导出用户 3 5 module_system:user:export \N \N \N \N \N f t f 导出用户 null f 15 67 fe311438-fd4d-4adf-9056-3726073a2bbf 0 初始化数据 2026-02-23 06:41:21.173609 2026-02-23 06:41:21.173609 +导入用户 3 6 module_system:user:import \N \N \N \N \N f t f 导入用户 null f 15 68 119e4389-d41e-4cc1-9a83-bb95e9c143de 0 初始化数据 2026-02-23 06:41:21.173612 2026-02-23 06:41:21.173612 +下载用户导入模板 3 7 module_system:user:download \N \N \N \N \N f t f 下载用户导入模板 null f 15 69 c0344cf3-db7d-4a44-941b-b238a9a281b4 0 初始化数据 2026-02-23 06:41:21.173615 2026-02-23 06:41:21.173615 +详情用户 3 8 module_system:user:detail \N \N \N \N \N f t f 详情用户 null f 15 70 e6211e68-4432-42e8-9cfe-4051b456a8f2 0 初始化数据 2026-02-23 06:41:21.173618 2026-02-23 06:41:21.173618 +查询用户 3 9 module_system:user:query \N \N \N \N \N f t f 查询用户 null f 15 71 3bf90a8a-05be-4c91-a30b-2231b074477f 0 初始化数据 2026-02-23 06:41:21.173621 2026-02-23 06:41:21.173621 +日志删除 3 1 module_system:log:delete \N \N \N \N \N f t f 日志删除 null f 16 72 7f69f46d-c302-4b3d-be5f-e5fd71bdb3ab 0 初始化数据 2026-02-23 06:41:21.173624 2026-02-23 06:41:21.173624 +日志导出 3 2 module_system:log:export \N \N \N \N \N f t f 日志导出 null f 16 73 63aafebe-a4a2-4558-bd76-0e977e7ef820 0 初始化数据 2026-02-23 06:41:21.173627 2026-02-23 06:41:21.173628 +日志详情 3 3 module_system:log:detail \N \N \N \N \N f t f 日志详情 null f 16 74 aa50293f-1dfe-4ec2-b733-99cbd352866d 0 初始化数据 2026-02-23 06:41:21.17363 2026-02-23 06:41:21.173631 +查询日志 3 4 module_system:log:query \N \N \N \N \N f t f 查询日志 null f 16 75 5a7b0c16-a52d-47cc-8ca0-3887bab398cf 0 初始化数据 2026-02-23 06:41:21.173633 2026-02-23 06:41:21.173634 +公告创建 3 1 module_system:notice:create \N \N \N \N \N f t f 公告创建 null f 17 76 521e80ec-2416-459a-8125-d6821f3f1f1a 0 初始化数据 2026-02-23 06:41:21.173637 2026-02-23 06:41:21.173637 +公告修改 3 2 module_system:notice:update \N \N \N \N \N f t f 修改用户 null f 17 77 7981962f-4c0d-4eab-b893-bc160e2e35b3 0 初始化数据 2026-02-23 06:41:21.17364 2026-02-23 06:41:21.17364 +公告删除 3 3 module_system:notice:delete \N \N \N \N \N f t f 公告删除 null f 17 78 6a3dffc1-a146-435a-b2c7-4f86d05570b0 0 初始化数据 2026-02-23 06:41:21.173643 2026-02-23 06:41:21.173643 +公告导出 3 4 module_system:notice:export \N \N \N \N \N f t f 公告导出 null f 17 79 13d90919-e964-4f5c-8ac0-8f0fbcc80b94 0 初始化数据 2026-02-23 06:41:21.173646 2026-02-23 06:41:21.173646 +公告批量修改状态 3 5 module_system:notice:patch \N \N \N \N \N f t f 公告批量修改状态 null f 17 80 14edbcd8-2e89-4ceb-96cb-99f45aed2553 0 初始化数据 2026-02-23 06:41:21.173649 2026-02-23 06:41:21.173649 +公告详情 3 6 module_system:notice:detail \N \N \N \N \N f t f 公告详情 null f 17 81 419c3a6c-b2da-4cfd-96b6-689608d198fb 0 初始化数据 2026-02-23 06:41:21.173652 2026-02-23 06:41:21.173652 +查询公告 3 5 module_system:notice:query \N \N \N \N \N f t f 查询公告 null f 17 82 339b80bf-add7-4cf2-85d5-88157f6c4ecd 0 初始化数据 2026-02-23 06:41:21.173655 2026-02-23 06:41:21.173655 +创建参数 3 1 module_system:param:create \N \N \N \N \N f t f 创建参数 null f 18 83 3ee381e8-4d34-47fa-acb0-34d403623091 0 初始化数据 2026-02-23 06:41:21.173658 2026-02-23 06:41:21.173658 +修改参数 3 2 module_system:param:update \N \N \N \N \N f t f 修改参数 null f 18 84 84a567d9-c046-4055-8f9e-3422f57a1e07 0 初始化数据 2026-02-23 06:41:21.173661 2026-02-23 06:41:21.173661 +删除参数 3 3 module_system:param:delete \N \N \N \N \N f t f 删除参数 null f 18 85 e221dfb6-cded-4cbe-bb2b-6ee6e2025a6b 0 初始化数据 2026-02-23 06:41:21.173666 2026-02-23 06:41:21.173666 +导出参数 3 4 module_system:param:export \N \N \N \N \N f t f 导出参数 null f 18 86 54c9c24c-7eee-4990-9123-d24205027057 0 初始化数据 2026-02-23 06:41:21.173669 2026-02-23 06:41:21.17367 +参数上传 3 5 module_system:param:upload \N \N \N \N \N f t f 参数上传 null f 18 87 8330b1f0-ff6a-4b4c-9535-0c8eb6280303 0 初始化数据 2026-02-23 06:41:21.173673 2026-02-23 06:41:21.173673 +参数详情 3 6 module_system:param:detail \N \N \N \N \N f t f 参数详情 null f 18 88 7dd00690-edef-4575-88af-c583b488d786 0 初始化数据 2026-02-23 06:41:21.173676 2026-02-23 06:41:21.173676 +查询参数 3 7 module_system:param:query \N \N \N \N \N f t f 查询参数 null f 18 89 99e650c6-0c0d-4847-a398-a733a6718e3d 0 初始化数据 2026-02-23 06:41:21.173679 2026-02-23 06:41:21.173679 +创建字典类型 3 1 module_system:dict_type:create \N \N \N \N \N f t f 创建字典类型 null f 19 90 095bff6a-eb76-4277-a3d4-a66171d7b974 0 初始化数据 2026-02-23 06:41:21.173682 2026-02-23 06:41:21.173682 +修改字典类型 3 2 module_system:dict_type:update \N \N \N \N \N f t f 修改字典类型 null f 19 91 30b1a794-959e-4ae8-a83c-1080a71ea221 0 初始化数据 2026-02-23 06:41:21.173685 2026-02-23 06:41:21.173685 +删除字典类型 3 3 module_system:dict_type:delete \N \N \N \N \N f t f 删除字典类型 null f 19 92 1ebcd0e2-c459-4313-864e-4d8d8617abad 0 初始化数据 2026-02-23 06:41:21.173688 2026-02-23 06:41:21.173689 +导出字典类型 3 4 module_system:dict_type:export \N \N \N \N \N f t f 导出字典类型 null f 19 93 4083a801-37d5-4492-9caa-a6186545b984 0 初始化数据 2026-02-23 06:41:21.173691 2026-02-23 06:41:21.173692 +批量修改字典状态 3 5 module_system:dict_type:patch \N \N \N \N \N f t f 导出字典类型 null f 19 94 eb02426e-b219-47df-b6b9-680a5e71bf26 0 初始化数据 2026-02-23 06:41:21.173694 2026-02-23 06:41:21.173695 +字典数据查询 3 6 module_system:dict_data:query \N \N \N \N \N f t f 字典数据查询 null f 19 95 b38fcb32-1802-4ae4-9306-c702f684f261 0 初始化数据 2026-02-23 06:41:21.173697 2026-02-23 06:41:21.173698 +创建字典数据 3 7 module_system:dict_data:create \N \N \N \N \N f t f 创建字典数据 null f 19 96 471b6c3b-9228-4f91-afb9-5ad0bc572161 0 初始化数据 2026-02-23 06:41:21.1737 2026-02-23 06:41:21.173701 +修改字典数据 3 8 module_system:dict_data:update \N \N \N \N \N f t f 修改字典数据 null f 19 97 66730add-3ad7-42c1-b7ff-f21f1a57e959 0 初始化数据 2026-02-23 06:41:21.173704 2026-02-23 06:41:21.173704 +删除字典数据 3 9 module_system:dict_data:delete \N \N \N \N \N f t f 删除字典数据 null f 19 98 779fe83c-b90a-42bb-8a11-c12aea3a1b8f 0 初始化数据 2026-02-23 06:41:21.173707 2026-02-23 06:41:21.173707 +导出字典数据 3 10 module_system:dict_data:export \N \N \N \N \N f t f 导出字典数据 null f 19 99 c2e9cf0f-8421-4e71-9b7e-58c72ecab3ea 0 初始化数据 2026-02-23 06:41:21.17371 2026-02-23 06:41:21.17371 +批量修改字典数据状态 3 11 module_system:dict_data:patch \N \N \N \N \N f t f 批量修改字典数据状态 null f 19 100 0c101605-6ed7-458e-9821-bdbe361e8a59 0 初始化数据 2026-02-23 06:41:21.173713 2026-02-23 06:41:21.173713 +详情字典类型 3 12 module_system:dict_type:detail \N \N \N \N \N f t f 详情字典类型 null f 19 101 c5731311-8f4d-422a-ae10-c3748c367a69 0 初始化数据 2026-02-23 06:41:21.173716 2026-02-23 06:41:21.173716 +查询字典类型 3 13 module_system:dict_type:query \N \N \N \N \N f t f 查询字典类型 null f 19 102 3bc26692-ae3a-4436-aa51-af5b43b84584 0 初始化数据 2026-02-23 06:41:21.173719 2026-02-23 06:41:21.173719 +详情字典数据 3 14 module_system:dict_data:detail \N \N \N \N \N f t f 详情字典数据 null f 19 103 f8fc6c1c-8a27-4b2f-b4c2-97326370fbf5 0 初始化数据 2026-02-23 06:41:21.173722 2026-02-23 06:41:21.173722 +在线用户强制下线 3 1 module_monitor:online:delete \N \N \N \N \N f t f 在线用户强制下线 null f 20 104 d76e74d8-fa99-4402-a32a-0e27b16e1cb0 0 初始化数据 2026-02-23 06:41:21.173725 2026-02-23 06:41:21.173725 +清除缓存 3 1 module_monitor:cache:delete \N \N \N \N \N f t f 清除缓存 null f 22 105 a9c6b095-c355-4823-ac36-6d8025328e71 0 初始化数据 2026-02-23 06:41:21.173728 2026-02-23 06:41:21.173728 +文件上传 3 1 module_monitor:resource:upload \N \N \N \N \N f t f 文件上传 null f 23 106 3fe31502-38c1-4052-9e40-8ce04ac843a4 0 初始化数据 2026-02-23 06:41:21.173731 2026-02-23 06:41:21.173731 +文件下载 3 2 module_monitor:resource:download \N \N \N \N \N f t f 文件下载 null f 23 107 4598946e-e3c8-4467-b880-86b8b2726adc 0 初始化数据 2026-02-23 06:41:21.173734 2026-02-23 06:41:21.173734 +文件删除 3 3 module_monitor:resource:delete \N \N \N \N \N f t f 文件删除 null f 23 108 e4cea8eb-5ddd-4f44-a711-367c5d936996 0 初始化数据 2026-02-23 06:41:21.173737 2026-02-23 06:41:21.173737 +文件移动 3 4 module_monitor:resource:move \N \N \N \N \N f t f 文件移动 null f 23 109 00601053-5ca0-4d4f-a754-ace07a8b3460 0 初始化数据 2026-02-23 06:41:21.17374 2026-02-23 06:41:21.173741 +文件复制 3 5 module_monitor:resource:copy \N \N \N \N \N f t f 文件复制 null f 23 110 4ffc977a-a8e1-4132-818e-861f19ad6d6d 0 初始化数据 2026-02-23 06:41:21.173743 2026-02-23 06:41:21.173744 +文件重命名 3 6 module_monitor:resource:rename \N \N \N \N \N f t f 文件重命名 null f 23 111 4b341656-e788-49e6-a2d5-7e0e974bf1da 0 初始化数据 2026-02-23 06:41:21.173746 2026-02-23 06:41:21.173747 +创建目录 3 7 module_monitor:resource:create_dir \N \N \N \N \N f t f 创建目录 null f 23 112 0edb9146-f008-4d04-9f56-83a352a205e9 0 初始化数据 2026-02-23 06:41:21.17375 2026-02-23 06:41:21.17375 +导出文件列表 3 9 module_monitor:resource:export \N \N \N \N \N f t f 导出文件列表 null f 23 113 768f4d85-56a0-49bf-994a-9f63478fccea 0 初始化数据 2026-02-23 06:41:21.173753 2026-02-23 06:41:21.173753 +查询代码生成业务表列表 3 1 module_generator:gencode:query \N \N \N \N \N f t f 查询代码生成业务表列表 null f 27 114 8ca073c8-5aab-40a2-bb79-f8988712f23b 0 查询代码生成业务表列表 2026-02-23 06:41:21.173757 2026-02-23 06:41:21.173758 +创建表结构 3 2 module_generator:gencode:create \N \N \N \N \N f t f 创建表结构 null f 27 115 dcc96f93-b3a2-44bf-b60c-7ae80e6150b0 0 创建表结构 2026-02-23 06:41:21.17376 2026-02-23 06:41:21.173761 +编辑业务表信息 3 3 module_generator:gencode:update \N \N \N \N \N f t f 编辑业务表信息 null f 27 116 24e6a4b6-0c42-46a4-9248-0fffec5129a8 0 编辑业务表信息 2026-02-23 06:41:21.173763 2026-02-23 06:41:21.173764 +删除业务表信息 3 4 module_generator:gencode:delete \N \N \N \N \N f t f 删除业务表信息 null f 27 117 5cac5d12-3b91-4be4-b4de-f53db9ca92fe 0 删除业务表信息 2026-02-23 06:41:21.173766 2026-02-23 06:41:21.173767 +导入表结构 3 5 module_generator:gencode:import \N \N \N \N \N f t f 导入表结构 null f 27 118 0851b90e-d310-407a-a308-2577866a91f6 0 导入表结构 2026-02-23 06:41:21.17377 2026-02-23 06:41:21.17377 +批量生成代码 3 6 module_generator:gencode:operate \N \N \N \N \N f t f 批量生成代码 null f 27 119 810d7279-44e7-420e-909e-5cfd75e2c86a 0 批量生成代码 2026-02-23 06:41:21.173773 2026-02-23 06:41:21.173773 +生成代码到指定路径 3 7 module_generator:gencode:code \N \N \N \N \N f t f 生成代码到指定路径 null f 27 120 9865b103-927a-4f92-b1d5-c39d7500d16f 0 生成代码到指定路径 2026-02-23 06:41:21.173776 2026-02-23 06:41:21.173776 +查询数据库表列表 3 8 module_generator:dblist:query \N \N \N \N \N f t f 查询数据库表列表 null f 27 121 c2f14aba-d830-4450-af96-29359d9de993 0 查询数据库表列表 2026-02-23 06:41:21.173779 2026-02-23 06:41:21.173779 +同步数据库 3 9 module_generator:db:sync \N \N \N \N \N f t f 同步数据库 null f 27 122 d22e39b2-0979-4d76-8630-a56e4c8854da 0 同步数据库 2026-02-23 06:41:21.173782 2026-02-23 06:41:21.173782 +创建应用 3 1 module_application:myapp:create \N \N \N \N \N f t f 创建应用 null f 28 123 bdecb3a3-d65b-470e-b741-d1871324615e 0 初始化数据 2026-02-23 06:41:21.173785 2026-02-23 06:41:21.173785 +修改应用 3 2 module_application:myapp:update \N \N \N \N \N f t f 修改应用 null f 28 124 7dd68d38-8def-49e0-be72-25922d7a8269 0 初始化数据 2026-02-23 06:41:21.173788 2026-02-23 06:41:21.173788 +删除应用 3 3 module_application:myapp:delete \N \N \N \N \N f t f 删除应用 null f 28 125 8ba51c45-aa9c-417d-8ccc-30b81f226920 0 初始化数据 2026-02-23 06:41:21.173791 2026-02-23 06:41:21.173791 +批量修改应用状态 3 4 module_application:myapp:patch \N \N \N \N \N f t f 批量修改应用状态 null f 28 126 e90ed814-d499-499e-8938-8e2d8b2f550e 0 初始化数据 2026-02-23 06:41:21.173794 2026-02-23 06:41:21.173794 +详情应用 3 5 module_application:myapp:detail \N \N \N \N \N f t f 详情应用 null f 28 127 4676114a-80ed-436d-aad4-338ddab7dafe 0 初始化数据 2026-02-23 06:41:21.173797 2026-02-23 06:41:21.173797 +查询应用 3 6 module_application:myapp:query \N \N \N \N \N f t f 查询应用 null f 28 128 c08e895a-9f3f-478a-9831-3e091cb95541 0 初始化数据 2026-02-23 06:41:21.1738 2026-02-23 06:41:21.1738 +会话标题详情 3 1 module_ai:chat_session:detail \N \N \N \N \N f t f 会话标题详情 null f 29 129 0504afd5-fb1f-42ef-9f75-a80df3362fe6 0 会话标题详情 2026-02-23 06:41:21.173803 2026-02-23 06:41:21.173803 +创建会话标题 3 2 module_ai:chat_session:create \N \N \N \N \N f t f 创建会话标题 null f 29 130 b4b43f5b-386c-4b98-a9a6-8a5c966b3523 0 创建会话标题 2026-02-23 06:41:21.173806 2026-02-23 06:41:21.173806 +修改会话标题 3 3 module_ai:chat_session:update \N \N \N \N \N f t f 修改会话标题 null f 29 131 ca960e47-f12c-4b28-bb64-73bd8e8f4b63 0 修改会话标题 2026-02-23 06:41:21.173809 2026-02-23 06:41:21.17381 +删除会话标题 3 4 module_ai:chat_session:delete \N \N \N \N \N f t f 删除会话标题 null f 29 132 3da7d6a5-bc5f-4ba6-8b1c-ed3369ca6b8a 0 删除会话标题 2026-02-23 06:41:21.173812 2026-02-23 06:41:21.173813 +查询会话标题 3 5 module_ai:chat_session:query \N \N \N \N \N f t f 查询会话标题 null f 29 133 78e4ac12-f11d-4cb8-8cff-739dc2bb0774 0 查询会话标题 2026-02-23 06:41:21.173815 2026-02-23 06:41:21.173816 +会话消息详情 3 6 module_ai:chat_message:detail \N \N \N \N \N f t f 会话消息详情 null f 30 134 579077fa-e8b6-4cf0-b1d6-df12245c5d64 0 会话消息详情 2026-02-23 06:41:21.173818 2026-02-23 06:41:21.173819 +创建会话消息 3 7 module_ai:chat_message:create \N \N \N \N \N f t f 创建会话消息 null f 30 135 f6c3a543-8e74-40ba-b5b8-d998b1626cb3 0 创建会话消息 2026-02-23 06:41:21.173821 2026-02-23 06:41:21.173822 +修改会话消息 3 8 module_ai:chat_message:update \N \N \N \N \N f t f 修改会话消息 null f 30 136 dd8dbd57-a888-4520-96fd-bacb1f207d58 0 修改会话消息 2026-02-23 06:41:21.173824 2026-02-23 06:41:21.173825 +删除会话消息 3 9 module_ai:chat_message:delete \N \N \N \N \N f t f 删除会话消息 null f 30 137 3883db70-c8f9-4522-8e7a-a4ee10c1b4cd 0 删除会话消息 2026-02-23 06:41:21.173827 2026-02-23 06:41:21.173828 +查询会话消息 3 10 module_ai:chat_message:query \N \N \N \N \N f t f 查询会话消息 null f 30 138 a920ea5c-cc83-48df-9d8c-a3ed3afe1a75 0 查询会话消息 2026-02-23 06:41:21.17383 2026-02-23 06:41:21.173831 +AI对话 3 1 module_ai:chat:ws \N \N \N \N \N f t f AI对话 null f 31 139 2ea1cc9e-8ef3-40ac-89d4-c293db818542 0 AI对话 2026-02-23 06:41:21.173833 2026-02-23 06:41:21.173834 +查询调度器 3 1 module_task:job:query \N \N \N \N \N f t f 查询调度器 null f 32 140 003d0cc2-9eda-47ab-90ca-1309a6b7ffa3 0 查询调度器 2026-02-23 06:41:21.173836 2026-02-23 06:41:21.173837 +操作调度器 3 2 module_task:job:update \N \N \N \N \N f t f 操作调度器 null f 32 141 b9789751-9f6c-4258-96ad-3ab7adb1f51c 0 操作调度器 2026-02-23 06:41:21.17384 2026-02-23 06:41:21.17384 +删除执行日志 3 3 module_task:job:delete \N \N \N \N \N f t f 删除执行日志 null f 32 142 aa780ddc-5f13-426f-9095-244f4571d2ac 0 删除执行日志 2026-02-23 06:41:21.173843 2026-02-23 06:41:21.173843 +详情执行日志 3 4 module_task:job:detail \N \N \N \N \N f t f 详情执行日志 null f 32 143 3bc0d878-39f4-4101-9c83-6c8d5ef1aa19 0 详情执行日志 2026-02-23 06:41:21.173846 2026-02-23 06:41:21.173846 +创建节点 3 1 module_task:node:create \N \N \N \N \N f t f 创建节点 null f 33 144 f32cadf5-1777-409a-a69f-860ab2d36643 0 创建节点 2026-02-23 06:41:21.173849 2026-02-23 06:41:21.173849 +修改节点 3 2 module_task:node:update \N \N \N \N \N f t f 修改节点 null f 33 145 63a99915-d1ef-455e-8441-56cca1ac8079 0 修改节点 2026-02-23 06:41:21.173852 2026-02-23 06:41:21.173852 +删除节点 3 3 module_task:node:delete \N \N \N \N \N f t f 删除节点 null f 33 146 d5fabe64-b599-440c-bfc8-d6f73248f820 0 删除节点 2026-02-23 06:41:21.173855 2026-02-23 06:41:21.173855 +详情节点 3 4 module_task:node:detail \N \N \N \N \N f t f 详情节点 null f 33 147 7ed7c0ac-f804-4dd5-ba0d-d926e43d10e1 0 详情节点 2026-02-23 06:41:21.173858 2026-02-23 06:41:21.173858 +查询节点 3 5 module_task:node:query \N \N \N \N \N f t f 查询节点 null f 33 148 261d60b6-e6ef-4e73-b0d3-56848fe23ba7 0 查询节点 2026-02-23 06:41:21.173861 2026-02-23 06:41:21.173861 +创建工作流 3 1 module_task:workflow:create \N \N \N \N \N f t f 创建工作流 null f 34 149 80ee4f30-151a-4753-8110-9b7a2b05a753 0 创建工作流 2026-02-23 06:41:21.173864 2026-02-23 06:41:21.173864 +修改工作流 3 2 module_task:workflow:update \N \N \N \N \N f t f 修改工作流 null f 34 150 54795961-3a31-4f75-a643-194c4b149849 0 修改工作流 2026-02-23 06:41:21.173867 2026-02-23 06:41:21.173867 +删除工作流 3 3 module_task:workflow:delete \N \N \N \N \N f t f 删除工作流 null f 34 151 93e6b6c2-a1b3-491f-9680-4514f4eb1903 0 删除工作流 2026-02-23 06:41:21.17387 2026-02-23 06:41:21.17387 +发布工作流 3 4 module_task:workflow:publish \N \N \N \N \N f t f 发布工作流 null f 34 152 87a085cb-a286-497b-b5f3-e0bee372ca04 0 发布工作流 2026-02-23 06:41:21.173873 2026-02-23 06:41:21.173873 +执行工作流 3 5 module_task:workflow:execute \N \N \N \N \N f t f 执行工作流 null f 34 153 441d4955-54eb-437f-a013-c8bd855e0bf1 0 执行工作流 2026-02-23 06:41:21.173876 2026-02-23 06:41:21.173876 +详情工作流 3 6 module_task:workflow:detail \N \N \N \N \N f t f 详情工作流 null f 34 154 74b85684-55b2-4150-82c7-6d5385bd1c97 0 详情工作流 2026-02-23 06:41:21.173879 2026-02-23 06:41:21.173879 +查询工作流 3 7 module_task:workflow:query \N \N \N \N \N f t f 查询工作流 null f 34 155 53b2a139-6fc8-4c97-ac08-c4cc1dee8ba2 0 查询工作流 2026-02-23 06:41:21.173882 2026-02-23 06:41:21.173882 +创建示例 3 1 module_example:demo:create \N \N \N \N \N f t f 创建示例 null f 35 156 b9f9fc27-4408-4720-a913-e104444cc0e4 0 初始化数据 2026-02-23 06:41:21.173885 2026-02-23 06:41:21.173885 +更新示例 3 2 module_example:demo:update \N \N \N \N \N f t f 更新示例 null f 35 157 f981c798-5087-4289-ad0a-8d3d2e4bbb9f 0 初始化数据 2026-02-23 06:41:21.173888 2026-02-23 06:41:21.173888 +删除示例 3 3 module_example:demo:delete \N \N \N \N \N f t f 删除示例 null f 35 158 15256819-e11c-4352-98ed-f37615b6b972 0 初始化数据 2026-02-23 06:41:21.173891 2026-02-23 06:41:21.173891 +批量修改示例状态 3 4 module_example:demo:patch \N \N \N \N \N f t f 批量修改示例状态 null f 35 159 ae5b1a91-6cc0-4b40-9c50-d1034f805de8 0 初始化数据 2026-02-23 06:41:21.173894 2026-02-23 06:41:21.173895 +导出示例 3 5 module_example:demo:export \N \N \N \N \N f t f 导出示例 null f 35 160 c5f63630-2543-4463-990d-7fa91c2e82a4 0 初始化数据 2026-02-23 06:41:21.173897 2026-02-23 06:41:21.173898 +导入示例 3 6 module_example:demo:import \N \N \N \N \N f t f 导入示例 null f 35 161 9c12d2e8-809d-4749-b3c6-5ee666edc678 0 初始化数据 2026-02-23 06:41:21.173903 2026-02-23 06:41:21.173903 +下载导入示例模版 3 7 module_example:demo:download \N \N \N \N \N f t f 下载导入示例模版 null f 35 162 eae1f136-ec1c-4895-812c-33e9ef13e88c 0 初始化数据 2026-02-23 06:41:21.173907 2026-02-23 06:41:21.173907 +详情示例 3 8 module_example:demo:detail \N \N \N \N \N f t f 详情示例 null f 35 163 f9abb4ab-fab3-4e01-b52f-de3172dcbcb0 0 初始化数据 2026-02-23 06:41:21.173911 2026-02-23 06:41:21.173911 +查询示例 3 9 module_example:demo:query \N \N \N \N \N f t f 查询示例 null f 35 164 7a782c5e-6725-499f-9de4-ce27470fca06 0 初始化数据 2026-02-23 06:41:21.173915 2026-02-23 06:41:21.173915 \. @@ -3375,22 +3608,22 @@ COPY public.sys_notice (notice_title, notice_type, notice_content, id, uuid, sta -- COPY public.sys_param (config_name, config_key, config_value, config_type, id, uuid, status, description, created_time, updated_time) FROM stdin; -网站名称 sys_web_title FastApiAdmin t 1 c27c73a7-59b3-4942-a6a5-c1014a48ba31 0 初始化数据 2026-01-03 21:32:18.923106 2026-01-03 21:32:18.923107 -网站描述 sys_web_description FastApiAdmin 是完全开源的权限管理系统 t 2 83e5866f-6926-4b27-a323-c8b5457535e6 0 初始化数据 2026-01-03 21:32:18.923111 2026-01-03 21:32:18.923112 -网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 3 32ce1f34-f4c2-4b41-9845-f937cc385017 0 初始化数据 2026-01-03 21:32:18.923115 2026-01-03 21:32:18.923115 -网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 4 d8b9b7e3-c501-4f3c-a71b-94e44d319069 0 初始化数据 2026-01-03 21:32:18.923118 2026-01-03 21:32:18.923118 -登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 5 92713ea5-6fa8-4adc-ac7b-5e2a6ab80704 0 初始化数据 2026-01-03 21:32:18.923121 2026-01-03 21:32:18.923122 -版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 6 cbd70fb4-28c8-4e13-b9e4-44d461b5c1f1 0 初始化数据 2026-01-03 21:32:18.923125 2026-01-03 21:32:18.923125 -备案信息 sys_keep_record 陕ICP备2025069493号-1 t 7 059c93c3-82c2-4dfd-94f3-e539060d9fbc 0 初始化数据 2026-01-03 21:32:18.923128 2026-01-03 21:32:18.923128 -帮助文档 sys_help_doc https://service.fastapiadmin.com t 8 96ea2556-f9f0-403c-8da6-04c01970fe66 0 初始化数据 2026-01-03 21:32:18.923131 2026-01-03 21:32:18.923132 -隐私政策 sys_web_privacy https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE t 9 8fc4c4ee-8309-461c-8b62-c9bdeb4586d3 0 初始化数据 2026-01-03 21:32:18.923134 2026-01-03 21:32:18.923135 -用户协议 sys_web_clause https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE t 10 b47bde1c-a594-4362-8a0a-85b1574f4069 0 初始化数据 2026-01-03 21:32:18.923138 2026-01-03 21:32:18.923138 -源码代码 sys_git_code https://github.com/fastapiadmin/FastapiAdmin.git t 11 8cd060d1-01f6-48da-9150-b4050341e030 0 初始化数据 2026-01-03 21:32:18.923141 2026-01-03 21:32:18.923141 -项目版本 sys_web_version 2.0.0 t 12 f4797975-4fb8-4d5e-8ea9-70330ea2b374 0 初始化数据 2026-01-03 21:32:18.923144 2026-01-03 21:32:18.923144 -演示模式启用 demo_enable false t 13 f9d47fb7-72a7-4acc-a61e-13f0436b7664 0 初始化数据 2026-01-03 21:32:18.923147 2026-01-03 21:32:18.923148 -演示访问IP白名单 ip_white_list ["127.0.0.1"] t 14 9c60b05f-b473-4706-8d5d-60f1f1fc605b 0 初始化数据 2026-01-03 21:32:18.92315 2026-01-03 21:32:18.923151 -接口白名单 white_api_list_path ["/api/v1/system/auth/login", "/api/v1/system/auth/token/refresh", "/api/v1/system/auth/captcha/get", "/api/v1/system/auth/logout", "/api/v1/system/config/info", "/api/v1/system/user/current/info", "/api/v1/system/notice/available"] t 15 f0bd25e4-3c2c-478b-b625-4e63a9f7cc85 0 初始化数据 2026-01-03 21:32:18.923154 2026-01-03 21:32:18.923154 -访问IP黑名单 ip_black_list [] t 16 e69668dd-1cf5-406d-9089-788155dd6f39 0 初始化数据 2026-01-03 21:32:18.923157 2026-01-03 21:32:18.923157 +网站名称 sys_web_title FastApiAdmin t 1 689c9ec6-ac80-40bd-92a3-4479a9168210 0 初始化数据 2026-02-23 06:41:21.182814 2026-02-23 06:41:21.182815 +网站描述 sys_web_description FastApiAdmin 是完全开源的权限管理系统 t 2 dd8aaae7-9d59-48e7-99a8-514c8d954ef7 0 初始化数据 2026-02-23 06:41:21.182819 2026-02-23 06:41:21.182819 +网页图标 sys_web_favicon https://service.fastapiadmin.com/api/v1/static/image/favicon.png t 3 2c5b11ff-0d1c-42eb-a0f6-727aecdba49b 0 初始化数据 2026-02-23 06:41:21.182822 2026-02-23 06:41:21.182823 +网站Logo sys_web_logo https://service.fastapiadmin.com/api/v1/static/image/logo.png t 4 d5370fad-d85a-4e35-bda9-f554c640c2a3 0 初始化数据 2026-02-23 06:41:21.182826 2026-02-23 06:41:21.182826 +登录背景 sys_login_background https://service.fastapiadmin.com/api/v1/static/image/background.svg t 5 a7413027-0d73-48ce-9424-0554e8a90c71 0 初始化数据 2026-02-23 06:41:21.182829 2026-02-23 06:41:21.18283 +版权信息 sys_web_copyright Copyright © 2025-2026 service.fastapiadmin.com 版权所有 t 6 a6f89081-0d20-4afb-9109-a01cac6d2d36 0 初始化数据 2026-02-23 06:41:21.182832 2026-02-23 06:41:21.182833 +备案信息 sys_keep_record 陕ICP备2025069493号-1 t 7 510dbf53-156c-40bb-86dd-7e488936380c 0 初始化数据 2026-02-23 06:41:21.182836 2026-02-23 06:41:21.182836 +帮助文档 sys_help_doc https://service.fastapiadmin.com t 8 81809551-4a81-4d72-a1df-f507420db2db 0 初始化数据 2026-02-23 06:41:21.182839 2026-02-23 06:41:21.182839 +隐私政策 sys_web_privacy https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE t 9 a14f2130-1d69-4d68-9adb-048200ec3776 0 初始化数据 2026-02-23 06:41:21.182842 2026-02-23 06:41:21.182842 +用户协议 sys_web_clause https://github.com/fastapiadmin/FastapiAdmin/blob/master/LICENSE t 10 a616befc-27f4-4527-9b58-71b41fe47349 0 初始化数据 2026-02-23 06:41:21.182845 2026-02-23 06:41:21.182846 +源码代码 sys_git_code https://github.com/fastapiadmin/FastapiAdmin.git t 11 cb6ebc7c-482f-4d02-83bd-4e64308adf9d 0 初始化数据 2026-02-23 06:41:21.182848 2026-02-23 06:41:21.182849 +项目版本 sys_web_version 2.0.0 t 12 21486851-cb1d-407b-869c-856ef9770ef0 0 初始化数据 2026-02-23 06:41:21.182852 2026-02-23 06:41:21.182852 +演示模式启用 demo_enable false t 13 8e8b94a5-1ed4-489a-b2af-7c2d926ddb76 0 初始化数据 2026-02-23 06:41:21.182855 2026-02-23 06:41:21.182855 +演示访问IP白名单 ip_white_list ["127.0.0.1"] t 14 8a48f730-5772-491e-ab85-45965d0d3407 0 初始化数据 2026-02-23 06:41:21.182858 2026-02-23 06:41:21.182858 +接口白名单 white_api_list_path ["/api/v1/system/auth/login", "/api/v1/system/auth/token/refresh", "/api/v1/system/auth/captcha/get", "/api/v1/system/auth/logout", "/api/v1/system/config/info", "/api/v1/system/user/current/info", "/api/v1/system/notice/available"] t 15 9bed5906-3d3a-4e24-81f6-b94d6a159d61 0 初始化数据 2026-02-23 06:41:21.182861 2026-02-23 06:41:21.182862 +访问IP黑名单 ip_black_list [] t 16 3b4fe81d-fc26-48bb-b500-4f802a822f29 0 初始化数据 2026-02-23 06:41:21.182864 2026-02-23 06:41:21.182865 \. @@ -3407,7 +3640,7 @@ COPY public.sys_position (name, "order", id, uuid, status, description, created_ -- COPY public.sys_role (name, code, "order", data_scope, id, uuid, status, description, created_time, updated_time) FROM stdin; -管理员角色 ADMIN 1 4 1 21b7bab1-5126-4d1c-bcbc-63d3b7518f55 0 初始化角色 2026-01-03 21:32:18.92835 2026-01-03 21:32:18.928351 +管理员角色 ADMIN 1 4 1 3cca130b-aa06-4e38-8895-aac12a824070 0 初始化角色 2026-02-23 06:41:21.187915 2026-02-23 06:41:21.187916 \. @@ -3432,7 +3665,7 @@ COPY public.sys_role_menus (role_id, menu_id) FROM stdin; -- COPY public.sys_user (username, password, name, mobile, email, gender, avatar, is_superuser, last_login, gitee_login, github_login, wx_login, qq_login, dept_id, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; -admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 超级管理员 \N \N 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t \N \N \N \N \N 1 1 74ae22e9-6ba7-463a-bb88-03cf32e15796 0 超级管理员 2026-01-03 21:32:18.938652 2026-01-03 21:32:18.938653 \N \N +admin $2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa 超级管理员 \N \N 0 https://service.fastapiadmin.com/api/v1/static/image/avatar.png t \N \N \N \N \N 1 1 c99f43f6-649f-453d-bbc9-70e4b077841d 0 超级管理员 2026-02-23 06:41:21.200174 2026-02-23 06:41:21.200175 \N \N \. @@ -3454,24 +3687,41 @@ COPY public.sys_user_roles (user_id, role_id) FROM stdin; -- --- Name: app_ai_mcp_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao +-- Data for Name: task_job; Type: TABLE DATA; Schema: public; Owner: tao -- -SELECT pg_catalog.setval('public.app_ai_mcp_id_seq', 1, false); +COPY public.task_job (job_id, job_name, trigger_type, status, next_run_time, job_state, result, error, id, uuid, description, created_time, updated_time) FROM stdin; +\. -- --- Name: app_job_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao +-- Data for Name: task_node; Type: TABLE DATA; Schema: public; Owner: tao -- -SELECT pg_catalog.setval('public.app_job_id_seq', 1, false); +COPY public.task_node (name, code, category, jobstore, executor, trigger, trigger_args, func, args, kwargs, "coalesce", max_instances, start_date, end_date, id, uuid, status, description, created_time, updated_time, created_id, updated_id) FROM stdin; +\. -- --- Name: app_job_log_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao +-- Data for Name: task_workflow; Type: TABLE DATA; Schema: public; Owner: tao -- -SELECT pg_catalog.setval('public.app_job_log_id_seq', 1, false); +COPY public.task_workflow (name, code, status, nodes, edges, id, uuid, description, created_time, updated_time, created_id, updated_id) FROM stdin; +\. + + +-- +-- Name: ai_chat_message_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao +-- + +SELECT pg_catalog.setval('public.ai_chat_message_id_seq', 1, false); + + +-- +-- Name: ai_chat_session_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao +-- + +SELECT pg_catalog.setval('public.ai_chat_session_id_seq', 1, false); -- @@ -3534,7 +3784,7 @@ SELECT pg_catalog.setval('public.sys_log_id_seq', 1, false); -- Name: sys_menu_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao -- -SELECT pg_catalog.setval('public.sys_menu_id_seq', 137, true); +SELECT pg_catalog.setval('public.sys_menu_id_seq', 164, true); -- @@ -3573,27 +3823,40 @@ SELECT pg_catalog.setval('public.sys_user_id_seq', 1, true); -- --- Name: app_ai_mcp app_ai_mcp_pkey; Type: CONSTRAINT; Schema: public; Owner: tao +-- Name: task_job_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_ai_mcp - ADD CONSTRAINT app_ai_mcp_pkey PRIMARY KEY (id); +SELECT pg_catalog.setval('public.task_job_id_seq', 1, false); -- --- Name: app_job_log app_job_log_pkey; Type: CONSTRAINT; Schema: public; Owner: tao +-- Name: task_node_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job_log - ADD CONSTRAINT app_job_log_pkey PRIMARY KEY (id); +SELECT pg_catalog.setval('public.task_node_id_seq', 1, false); -- --- Name: app_job app_job_pkey; Type: CONSTRAINT; Schema: public; Owner: tao +-- Name: task_workflow_id_seq; Type: SEQUENCE SET; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job - ADD CONSTRAINT app_job_pkey PRIMARY KEY (id); +SELECT pg_catalog.setval('public.task_workflow_id_seq', 1, false); + + +-- +-- Name: ai_chat_message ai_chat_message_pkey; Type: CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_message + ADD CONSTRAINT ai_chat_message_pkey PRIMARY KEY (id); + + +-- +-- Name: ai_chat_session ai_chat_session_pkey; Type: CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_session + ADD CONSTRAINT ai_chat_session_pkey PRIMARY KEY (id); -- @@ -3781,143 +4044,126 @@ ALTER TABLE ONLY public.sys_user -- --- Name: ix_app_ai_mcp_created_id; Type: INDEX; Schema: public; Owner: tao +-- Name: task_job task_job_pkey; Type: CONSTRAINT; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_created_id ON public.app_ai_mcp USING btree (created_id); +ALTER TABLE ONLY public.task_job + ADD CONSTRAINT task_job_pkey PRIMARY KEY (id); -- --- Name: ix_app_ai_mcp_created_time; Type: INDEX; Schema: public; Owner: tao +-- Name: task_node task_node_code_key; Type: CONSTRAINT; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_created_time ON public.app_ai_mcp USING btree (created_time); +ALTER TABLE ONLY public.task_node + ADD CONSTRAINT task_node_code_key UNIQUE (code); -- --- Name: ix_app_ai_mcp_id; Type: INDEX; Schema: public; Owner: tao +-- Name: task_node task_node_pkey; Type: CONSTRAINT; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_id ON public.app_ai_mcp USING btree (id); +ALTER TABLE ONLY public.task_node + ADD CONSTRAINT task_node_pkey PRIMARY KEY (id); -- --- Name: ix_app_ai_mcp_status; Type: INDEX; Schema: public; Owner: tao +-- Name: task_workflow task_workflow_pkey; Type: CONSTRAINT; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_status ON public.app_ai_mcp USING btree (status); +ALTER TABLE ONLY public.task_workflow + ADD CONSTRAINT task_workflow_pkey PRIMARY KEY (id); -- --- Name: ix_app_ai_mcp_updated_id; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_created_time; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_updated_id ON public.app_ai_mcp USING btree (updated_id); +CREATE INDEX ix_ai_chat_message_created_time ON public.ai_chat_message USING btree (created_time); -- --- Name: ix_app_ai_mcp_updated_time; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_id; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_ai_mcp_updated_time ON public.app_ai_mcp USING btree (updated_time); +CREATE INDEX ix_ai_chat_message_id ON public.ai_chat_message USING btree (id); -- --- Name: ix_app_ai_mcp_uuid; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_session_id; Type: INDEX; Schema: public; Owner: tao -- -CREATE UNIQUE INDEX ix_app_ai_mcp_uuid ON public.app_ai_mcp USING btree (uuid); +CREATE INDEX ix_ai_chat_message_session_id ON public.ai_chat_message USING btree (session_id); -- --- Name: ix_app_job_created_id; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_status; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_created_id ON public.app_job USING btree (created_id); +CREATE INDEX ix_ai_chat_message_status ON public.ai_chat_message USING btree (status); -- --- Name: ix_app_job_created_time; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_updated_time; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_created_time ON public.app_job USING btree (created_time); +CREATE INDEX ix_ai_chat_message_updated_time ON public.ai_chat_message USING btree (updated_time); -- --- Name: ix_app_job_id; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_message_uuid; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_id ON public.app_job USING btree (id); +CREATE UNIQUE INDEX ix_ai_chat_message_uuid ON public.ai_chat_message USING btree (uuid); -- --- Name: ix_app_job_log_created_time; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_created_id; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_log_created_time ON public.app_job_log USING btree (created_time); +CREATE INDEX ix_ai_chat_session_created_id ON public.ai_chat_session USING btree (created_id); -- --- Name: ix_app_job_log_id; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_created_time; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_log_id ON public.app_job_log USING btree (id); +CREATE INDEX ix_ai_chat_session_created_time ON public.ai_chat_session USING btree (created_time); -- --- Name: ix_app_job_log_job_id; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_id; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_log_job_id ON public.app_job_log USING btree (job_id); +CREATE INDEX ix_ai_chat_session_id ON public.ai_chat_session USING btree (id); -- --- Name: ix_app_job_log_status; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_status; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_log_status ON public.app_job_log USING btree (status); +CREATE INDEX ix_ai_chat_session_status ON public.ai_chat_session USING btree (status); -- --- Name: ix_app_job_log_updated_time; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_updated_id; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_log_updated_time ON public.app_job_log USING btree (updated_time); +CREATE INDEX ix_ai_chat_session_updated_id ON public.ai_chat_session USING btree (updated_id); -- --- Name: ix_app_job_log_uuid; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_updated_time; Type: INDEX; Schema: public; Owner: tao -- -CREATE UNIQUE INDEX ix_app_job_log_uuid ON public.app_job_log USING btree (uuid); +CREATE INDEX ix_ai_chat_session_updated_time ON public.ai_chat_session USING btree (updated_time); -- --- Name: ix_app_job_status; Type: INDEX; Schema: public; Owner: tao +-- Name: ix_ai_chat_session_uuid; Type: INDEX; Schema: public; Owner: tao -- -CREATE INDEX ix_app_job_status ON public.app_job USING btree (status); - - --- --- Name: ix_app_job_updated_id; Type: INDEX; Schema: public; Owner: tao --- - -CREATE INDEX ix_app_job_updated_id ON public.app_job USING btree (updated_id); - - --- --- Name: ix_app_job_updated_time; Type: INDEX; Schema: public; Owner: tao --- - -CREATE INDEX ix_app_job_updated_time ON public.app_job USING btree (updated_time); - - --- --- Name: ix_app_job_uuid; Type: INDEX; Schema: public; Owner: tao --- - -CREATE UNIQUE INDEX ix_app_job_uuid ON public.app_job USING btree (uuid); +CREATE UNIQUE INDEX ix_ai_chat_session_uuid ON public.ai_chat_session USING btree (uuid); -- @@ -4137,13 +4383,6 @@ CREATE UNIQUE INDEX ix_gen_table_uuid ON public.gen_table USING btree (uuid); CREATE INDEX ix_sys_dept_code ON public.sys_dept USING btree (code); --- --- Name: ix_sys_dept_created_id; Type: INDEX; Schema: public; Owner: tao --- - -CREATE INDEX ix_sys_dept_created_id ON public.sys_dept USING btree (created_id); - - -- -- Name: ix_sys_dept_created_time; Type: INDEX; Schema: public; Owner: tao -- @@ -4172,13 +4411,6 @@ CREATE INDEX ix_sys_dept_parent_id ON public.sys_dept USING btree (parent_id); CREATE INDEX ix_sys_dept_status ON public.sys_dept USING btree (status); --- --- Name: ix_sys_dept_updated_id; Type: INDEX; Schema: public; Owner: tao --- - -CREATE INDEX ix_sys_dept_updated_id ON public.sys_dept USING btree (updated_id); - - -- -- Name: ix_sys_dept_updated_time; Type: INDEX; Schema: public; Owner: tao -- @@ -4586,43 +4818,174 @@ CREATE UNIQUE INDEX ix_sys_user_uuid ON public.sys_user USING btree (uuid); -- --- Name: app_ai_mcp app_ai_mcp_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- Name: ix_task_job_created_time; Type: INDEX; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_ai_mcp - ADD CONSTRAINT app_ai_mcp_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; +CREATE INDEX ix_task_job_created_time ON public.task_job USING btree (created_time); -- --- Name: app_ai_mcp app_ai_mcp_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- Name: ix_task_job_id; Type: INDEX; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_ai_mcp - ADD CONSTRAINT app_ai_mcp_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; +CREATE INDEX ix_task_job_id ON public.task_job USING btree (id); -- --- Name: app_job app_job_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- Name: ix_task_job_job_id; Type: INDEX; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job - ADD CONSTRAINT app_job_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; +CREATE INDEX ix_task_job_job_id ON public.task_job USING btree (job_id); -- --- Name: app_job_log app_job_log_job_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- Name: ix_task_job_updated_time; Type: INDEX; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job_log - ADD CONSTRAINT app_job_log_job_id_fkey FOREIGN KEY (job_id) REFERENCES public.app_job(id) ON DELETE CASCADE; +CREATE INDEX ix_task_job_updated_time ON public.task_job USING btree (updated_time); -- --- Name: app_job app_job_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- Name: ix_task_job_uuid; Type: INDEX; Schema: public; Owner: tao -- -ALTER TABLE ONLY public.app_job - ADD CONSTRAINT app_job_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; +CREATE UNIQUE INDEX ix_task_job_uuid ON public.task_job USING btree (uuid); + + +-- +-- Name: ix_task_node_created_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_created_id ON public.task_node USING btree (created_id); + + +-- +-- Name: ix_task_node_created_time; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_created_time ON public.task_node USING btree (created_time); + + +-- +-- Name: ix_task_node_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_id ON public.task_node USING btree (id); + + +-- +-- Name: ix_task_node_status; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_status ON public.task_node USING btree (status); + + +-- +-- Name: ix_task_node_updated_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_updated_id ON public.task_node USING btree (updated_id); + + +-- +-- Name: ix_task_node_updated_time; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_node_updated_time ON public.task_node USING btree (updated_time); + + +-- +-- Name: ix_task_node_uuid; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE UNIQUE INDEX ix_task_node_uuid ON public.task_node USING btree (uuid); + + +-- +-- Name: ix_task_workflow_code; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE UNIQUE INDEX ix_task_workflow_code ON public.task_workflow USING btree (code); + + +-- +-- Name: ix_task_workflow_created_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_created_id ON public.task_workflow USING btree (created_id); + + +-- +-- Name: ix_task_workflow_created_time; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_created_time ON public.task_workflow USING btree (created_time); + + +-- +-- Name: ix_task_workflow_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_id ON public.task_workflow USING btree (id); + + +-- +-- Name: ix_task_workflow_name; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_name ON public.task_workflow USING btree (name); + + +-- +-- Name: ix_task_workflow_status; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_status ON public.task_workflow USING btree (status); + + +-- +-- Name: ix_task_workflow_updated_id; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_updated_id ON public.task_workflow USING btree (updated_id); + + +-- +-- Name: ix_task_workflow_updated_time; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE INDEX ix_task_workflow_updated_time ON public.task_workflow USING btree (updated_time); + + +-- +-- Name: ix_task_workflow_uuid; Type: INDEX; Schema: public; Owner: tao +-- + +CREATE UNIQUE INDEX ix_task_workflow_uuid ON public.task_workflow USING btree (uuid); + + +-- +-- Name: ai_chat_message ai_chat_message_session_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_message + ADD CONSTRAINT ai_chat_message_session_id_fkey FOREIGN KEY (session_id) REFERENCES public.ai_chat_session(id) ON UPDATE CASCADE ON DELETE CASCADE; + + +-- +-- Name: ai_chat_session ai_chat_session_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_session + ADD CONSTRAINT ai_chat_session_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; + + +-- +-- Name: ai_chat_session ai_chat_session_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.ai_chat_session + ADD CONSTRAINT ai_chat_session_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; -- @@ -4697,14 +5060,6 @@ ALTER TABLE ONLY public.gen_table ADD CONSTRAINT gen_table_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; --- --- Name: sys_dept sys_dept_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao --- - -ALTER TABLE ONLY public.sys_dept - ADD CONSTRAINT sys_dept_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; - - -- -- Name: sys_dept sys_dept_parent_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao -- @@ -4713,14 +5068,6 @@ ALTER TABLE ONLY public.sys_dept ADD CONSTRAINT sys_dept_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES public.sys_dept(id) ON UPDATE CASCADE ON DELETE SET NULL; --- --- Name: sys_dept sys_dept_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao --- - -ALTER TABLE ONLY public.sys_dept - ADD CONSTRAINT sys_dept_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; - - -- -- Name: sys_dict_data sys_dict_data_dict_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao -- @@ -4873,7 +5220,41 @@ ALTER TABLE ONLY public.sys_user ADD CONSTRAINT sys_user_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; +-- +-- Name: task_node task_node_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_node + ADD CONSTRAINT task_node_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; + + +-- +-- Name: task_node task_node_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_node + ADD CONSTRAINT task_node_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; + + +-- +-- Name: task_workflow task_workflow_created_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_workflow + ADD CONSTRAINT task_workflow_created_id_fkey FOREIGN KEY (created_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; + + +-- +-- Name: task_workflow task_workflow_updated_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: tao +-- + +ALTER TABLE ONLY public.task_workflow + ADD CONSTRAINT task_workflow_updated_id_fkey FOREIGN KEY (updated_id) REFERENCES public.sys_user(id) ON UPDATE CASCADE ON DELETE SET NULL; + + -- -- PostgreSQL database dump complete -- +\unrestrict ulNIgdx7CtT5MrgK5O5igyKTPSLK56cbbdePKwjuQbUm20ekyjOAhWcXtSxiDc6 + diff --git a/frontend/src/api/module_task/node.ts b/frontend/src/api/module_task/node.ts index 6ac513a3..3b5651ff 100644 --- a/frontend/src/api/module_task/node.ts +++ b/frontend/src/api/module_task/node.ts @@ -96,7 +96,6 @@ export interface NodeTable extends BaseType { name: string; code: string; category?: string; - config_schema?: Record; jobstore?: string; executor?: string; trigger?: TriggerType; @@ -117,7 +116,6 @@ export interface NodeForm { name: string; code?: string; category?: string; - config_schema?: Record; jobstore?: string; executor?: string; func?: string; @@ -134,5 +132,7 @@ export interface NodeType { name: string; code: string; category?: string; - config_schema?: Record; + func?: string; + args?: string; + kwargs?: string; } diff --git a/frontend/src/api/module_task/workflow.ts b/frontend/src/api/module_task/workflow.ts index dfd7aa2b..3c4201cf 100644 --- a/frontend/src/api/module_task/workflow.ts +++ b/frontend/src/api/module_task/workflow.ts @@ -50,36 +50,6 @@ const WorkflowAPI = { }); }, - validateWorkflow(body: WorkflowValidateForm) { - return request>({ - url: `${API_PATH}/validate`, - method: "post", - data: body, - }); - }, - - getTemplates() { - return request>({ - url: `${API_PATH}/templates`, - method: "get", - }); - }, - - exportWorkflow(id: number) { - return request>({ - url: `${API_PATH}/export/${id}`, - method: "get", - }); - }, - - importWorkflow(body: WorkflowImportData) { - return request>({ - url: `${API_PATH}/import`, - method: "post", - data: body, - }); - }, - executeWorkflow(body: WorkflowExecuteForm) { return request>({ url: `${API_PATH}/execute`, @@ -87,130 +57,15 @@ const WorkflowAPI = { data: body, }); }, - - pauseWorkflow(id: number) { - return request({ - url: `${API_PATH}/pause/${id}`, - method: "post", - }); - }, - - resumeWorkflow(id: number) { - return request({ - url: `${API_PATH}/resume/${id}`, - method: "post", - }); - }, - - terminateWorkflow(id: number) { - return request({ - url: `${API_PATH}/terminate/${id}`, - method: "post", - }); - }, -}; - -const WorkflowRunAPI = { - getWorkflowRunList(query: WorkflowRunPageQuery) { - return request>>({ - url: `${API_PATH}/run/list`, - method: "get", - params: query, - }); - }, - - getWorkflowRunDetail(id: number) { - return request>({ - url: `${API_PATH}/run/detail/${id}`, - method: "get", - }); - }, - - createWorkflowRun(body: WorkflowRunForm) { - return request>({ - url: `${API_PATH}/run/create`, - method: "post", - data: body, - }); - }, - - updateWorkflowRun(id: number, body: WorkflowRunUpdateForm) { - return request>({ - url: `${API_PATH}/run/update/${id}`, - method: "put", - data: body, - }); - }, - - deleteWorkflowRun(ids: number[]) { - return request({ - url: `${API_PATH}/run/delete`, - method: "delete", - data: { ids }, - }); - }, - - clearWorkflowRun() { - return request({ - url: `${API_PATH}/run/clear`, - method: "delete", - }); - }, - - cancelWorkflowRun(id: number) { - return request>({ - url: `${API_PATH}/run/cancel/${id}`, - method: "post", - }); - }, - - retryWorkflowRun(id: number, retryCount: number = 1) { - return request>({ - url: `${API_PATH}/run/retry/${id}`, - method: "post", - params: { retry_count: retryCount }, - }); - }, - - pauseWorkflowRun(id: number) { - return request>({ - url: `${API_PATH}/run/pause/${id}`, - method: "post", - }); - }, - - resumeWorkflowRun(id: number) { - return request>({ - url: `${API_PATH}/run/resume/${id}`, - method: "post", - }); - }, - - terminateWorkflowRun(id: number) { - return request>({ - url: `${API_PATH}/run/terminate/${id}`, - method: "post", - }); - }, - - getWorkflowRunLogList(query: WorkflowRunLogPageQuery) { - return request>>({ - url: `${API_PATH}/run/log/list`, - method: "get", - params: query, - }); - }, }; export default WorkflowAPI; -export { WorkflowAPI, WorkflowRunAPI }; +export { WorkflowAPI }; export interface WorkflowPageQuery extends PageQuery { name?: string; code?: string; status?: string; - category?: string; - is_template?: boolean; created_time?: string[]; updated_time?: string[]; created_id?: number; @@ -224,17 +79,6 @@ export interface WorkflowTable extends BaseType { description?: string; nodes?: any[]; edges?: any[]; - version?: string; - category?: string; - tags?: string[]; - is_template?: boolean; - template_id?: number; - published_at?: string; - published_by?: number; - metadata?: Record; - canvas_state?: Record; - thumbnail?: string; - statistics?: Record; created_by?: CommonType; updated_by?: CommonType; } @@ -246,53 +90,9 @@ export interface WorkflowForm extends BaseFormType { description?: string; nodes?: any[]; edges?: any[]; - version?: string; - category?: string; - tags?: string[]; - is_template?: boolean; - template_id?: number; - metadata?: Record; } -export interface WorkflowPublishForm { - version?: string; -} - -export interface WorkflowValidateForm { - nodes: any[]; - edges: any[]; -} - -export interface WorkflowValidateResult { - is_valid: boolean; - errors: string[]; - warnings: string[]; - stats: Record; -} - -export interface WorkflowExportData { - id: number; - name: string; - code: string; - description?: string; - nodes: Record; - edges: Record; - version: string; - category?: string; - metadata?: Record; - exportedAt: string; -} - -export interface WorkflowImportData { - name?: string; - code?: string; - description?: string; - nodes: Record; - edges: Record; - version?: string; - category?: string; - metadata?: Record; -} +export interface WorkflowPublishForm {} export interface WorkflowExecuteForm { workflow_id: number; @@ -302,92 +102,11 @@ export interface WorkflowExecuteForm { } export interface WorkflowExecuteResult { - task_run_id: number; workflow_id: number; workflow_name: string; status: string; - message: string; -} - -export interface WorkflowRunPageQuery extends PageQuery { - workflow_id?: number; - workflow_name?: string; - status?: string; - business_key?: string; - initiator?: number; - job_id?: number; - created_time?: string[]; - updated_time?: string[]; -} - -export interface WorkflowRunTable extends BaseType { - workflow_id: number; - workflow_name: string; - workflow_version: string; - business_key?: string; - initiator?: number; - initiator_name?: string; + start_time?: string; + end_time?: string; variables?: Record; - status: string; - error_message?: string; - start_time?: string; - end_time?: string; - duration?: number; - retry_count: number; - max_retry: number; - job_id?: number; - metadata?: Record; - node_executions?: NodeExecution[]; -} - -export interface NodeExecution { - node_id: string; - node_name: string; - node_type: string; - status: string; - start_time?: string; - end_time?: string; - duration?: number; - error_message?: string; - input_data?: Record; - output_data?: Record; -} - -export interface WorkflowRunForm extends BaseFormType { - workflow_id: number; - workflow_name: string; - workflow_version?: string; - business_key?: string; - initiator?: number; - initiator_name?: string; - variables?: Record; - job_id?: number; -} - -export interface WorkflowRunUpdateForm extends BaseFormType { - status?: string; - error_message?: string; - start_time?: string; - end_time?: string; - duration?: number; - retry_count?: number; - max_retry_count?: number; - metadata?: Record; -} - -export interface WorkflowRunLogPageQuery extends PageQuery { - task_run_id?: number; - level?: string; - node_id?: string; - node_name?: string; - created_time?: string[]; -} - -export interface WorkflowRunLogTable extends BaseType { - task_run_id: number; - level: string; - node_id?: string; - node_name?: string; - message: string; - data?: Record; + node_results?: Record; } diff --git a/frontend/src/composables/index.ts b/frontend/src/composables/index.ts index 9dec97e5..99d083f1 100644 --- a/frontend/src/composables/index.ts +++ b/frontend/src/composables/index.ts @@ -2,3 +2,9 @@ // AI 相关 export { useAiAction } from "./ai/useAiAction"; export type { UseAiActionOptions, AiActionHandler } from "./ai/useAiAction"; + +// 任务相关 +export { useDebounce, useThrottle } from "./task/usePerformance"; +export { useNodeDrag } from "./task/useNodeDrag"; +export { useNodeOperations } from "./task/useNodeOperations"; +export { useWorkflowHistory } from "./task/useWorkflowHistory"; diff --git a/frontend/src/composables/useNodeDrag.ts b/frontend/src/composables/task/useNodeDrag.ts similarity index 90% rename from frontend/src/composables/useNodeDrag.ts rename to frontend/src/composables/task/useNodeDrag.ts index ee2f4d73..cfec5398 100644 --- a/frontend/src/composables/useNodeDrag.ts +++ b/frontend/src/composables/task/useNodeDrag.ts @@ -5,8 +5,10 @@ interface DragItem { data: { label: string; type: string; - config: any; + args?: string; + kwargs?: string; nodeId?: number; + category?: string; }; type: string; position: { x: number; y: number }; @@ -20,6 +22,8 @@ interface NodeItem { icon?: string; color?: string; class?: string; + args?: string; + kwargs?: string; } interface Coordinate { @@ -52,8 +56,10 @@ export function useNodeDrag() { data: { label: item.name, type: item.type, - config: {}, + args: item.args || "", + kwargs: item.kwargs || "{}", nodeId: item.id, + category: (item as any).category, }, type: item.type, position: { x: 0, y: 0 }, diff --git a/frontend/src/composables/useNodeOperations.ts b/frontend/src/composables/task/useNodeOperations.ts similarity index 100% rename from frontend/src/composables/useNodeOperations.ts rename to frontend/src/composables/task/useNodeOperations.ts diff --git a/frontend/src/composables/usePerformance.ts b/frontend/src/composables/task/usePerformance.ts similarity index 100% rename from frontend/src/composables/usePerformance.ts rename to frontend/src/composables/task/usePerformance.ts diff --git a/frontend/src/composables/useWorkflowHistory.ts b/frontend/src/composables/task/useWorkflowHistory.ts similarity index 100% rename from frontend/src/composables/useWorkflowHistory.ts rename to frontend/src/composables/task/useWorkflowHistory.ts diff --git a/frontend/src/layouts/components/Settings/index.vue b/frontend/src/layouts/components/Settings/index.vue index 77875449..ade0a66d 100644 --- a/frontend/src/layouts/components/Settings/index.vue +++ b/frontend/src/layouts/components/Settings/index.vue @@ -443,7 +443,6 @@ const handleCloseDrawer = () => { /* 设置抽屉样式 */ .settings-drawer { :deep(.el-drawer__body) { - position: relative; display: flex; flex-direction: column; height: 100%; @@ -461,11 +460,7 @@ const handleCloseDrawer = () => { /* 底部操作区域样式 */ .action-footer { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 10; + flex-shrink: 0; padding: 0; background: var(--el-bg-color); border-top: 1px solid var(--el-border-color-light); diff --git a/frontend/src/store/modules/config.store.ts b/frontend/src/store/modules/config.store.ts index 37add232..ac7f8637 100644 --- a/frontend/src/store/modules/config.store.ts +++ b/frontend/src/store/modules/config.store.ts @@ -27,20 +27,28 @@ interface ConfigState { export const useConfigStore = defineStore("config", { state: () => ({ - configData: {} as ConfigState, // 存储系统配置 - isConfigLoaded: false, // 标记配置是否已加载 + configData: {} as ConfigState, + isConfigLoaded: false, + configLoading: false, }), actions: { async getConfig() { - const response = await ParamsAPI.getInitConfig(); - response.data.data.forEach((item: ConfigTable) => { - // 确保所有配置项都正确映射到 configData - if (item.config_value !== undefined) { - this.configData[item.config_key as keyof ConfigState] = item; - } - }); - this.isConfigLoaded = true; + if (this.isConfigLoaded || this.configLoading) { + return; + } + this.configLoading = true; + try { + const response = await ParamsAPI.getInitConfig(); + response.data.data.forEach((item: ConfigTable) => { + if (item.config_value !== undefined) { + this.configData[item.config_key as keyof ConfigState] = item; + } + }); + this.isConfigLoaded = true; + } finally { + this.configLoading = false; + } }, }, persist: true, diff --git a/frontend/src/views/module_system/auth/index.vue b/frontend/src/views/module_system/auth/index.vue index 40a81034..27494147 100644 --- a/frontend/src/views/module_system/auth/index.vue +++ b/frontend/src/views/module_system/auth/index.vue @@ -163,9 +163,6 @@ const showVoteNotification = () => { }); }; -// 组件初始化时就加载配置,而不是在onMounted中 -configStore.getConfig(); - onMounted(() => { setTimeout(showVoteNotification, 500); }); diff --git a/frontend/src/views/module_task/node/index.vue b/frontend/src/views/module_task/node/index.vue index a753cced..4405df7f 100644 --- a/frontend/src/views/module_task/node/index.vue +++ b/frontend/src/views/module_task/node/index.vue @@ -508,7 +508,6 @@ const formData = reactive({ name: "", code: undefined, category: undefined, - config_schema: undefined, jobstore: "default", executor: "default", func: defaultCodeBlock, @@ -616,8 +615,7 @@ const initialFormData: Partial = { name: "", code: undefined, category: undefined, - config_schema: undefined, - jobstore: "default", + jobstore: "sqlalchemy", executor: "default", func: defaultCodeBlock, args: undefined, diff --git a/frontend/src/views/module_task/workflow/components/DynamicNode.vue b/frontend/src/views/module_task/workflow/components/DynamicNode.vue index 1a7ab956..1c0add3c 100644 --- a/frontend/src/views/module_task/workflow/components/DynamicNode.vue +++ b/frontend/src/views/module_task/workflow/components/DynamicNode.vue @@ -7,6 +7,9 @@ >
{{ data.label }} + + {{ Object.keys(data.config).length }} +
{ - if (props.data?.type === "input") { - return { - code: "input", - name: "开始", - color: "#67c23a", - }; - } - if (props.data?.type === "output") { - return { - code: "output", - name: "结束", - color: "#f56c6c", - }; - } return { - code: "custom", - name: "自定义节点", - color: "#409EFF", + code: props.data?.type || "custom", + name: props.data?.label || "自定义节点", + color: getCategoryColor(props.data?.category), }; }); +function getCategoryColor(category) { + const colorMap = { + trigger: "#e6a23c", + action: "#409eff", + condition: "#67c23a", + control: "#909399", + }; + return colorMap[category] || "#409eff"; +} + const nodeClass = computed(() => { if (props.data?.type === "input") { return "start-node"; @@ -153,6 +152,15 @@ const nodeClass = computed(() => { letter-spacing: 0.5px; } +.node-badge { + padding: 0 6px; + font-size: 10px; + font-weight: 500; + color: #fff; + background: #409eff; + border-radius: 10px; +} + .vue-flow__handle { opacity: 0; transition: opacity 0.2s ease; diff --git a/frontend/src/views/module_task/workflow/components/NodeConfigPanel.vue b/frontend/src/views/module_task/workflow/components/NodeConfigPanel.vue index a71ad515..b8d1c140 100644 --- a/frontend/src/views/module_task/workflow/components/NodeConfigPanel.vue +++ b/frontend/src/views/module_task/workflow/components/NodeConfigPanel.vue @@ -24,37 +24,19 @@ - -
- - - - - - - - -
+ + +
多个参数用逗号分隔
+
+ + + +
JSON 格式的关键字参数
@@ -84,8 +66,6 @@ import { ElInput, ElSelect, ElOption, - ElInputNumber, - ElSwitch, ElMessage, ElIcon, } from "element-plus"; @@ -102,13 +82,12 @@ const props = defineProps({ const emit = defineEmits(["close", "save", "delete"]); const nodeTypes = ref([]); -const selectedTemplate = ref(); -const nodeConfigSchema = ref([]); const formData = ref({ type: props.node?.type || "", label: props.node?.data?.label || "", - config: props.node?.data?.config || {}, + args: props.node?.data?.args || "", + kwargsStr: props.node?.data?.kwargsStr || "{}", description: props.node?.data?.description || "", }); @@ -125,33 +104,36 @@ const loadNodeTypes = async () => { const handleTypeChange = async (typeCode: string) => { const nodeType = nodeTypes.value.find((t) => t.code === typeCode); - if (nodeType && nodeType.config_schema) { - nodeConfigSchema.value = nodeType.config_schema.fields || []; - } else { - nodeConfigSchema.value = []; + if (nodeType) { + formData.value.args = nodeType.args || ""; + formData.value.kwargsStr = nodeType.kwargs || "{}"; } - - selectedTemplate.value = undefined; - formData.value.config = {}; }; watch( () => props.node, (newNode) => { if (newNode) { + const kwargsData = newNode.data?.kwargs; + let kwargsStr = "{}"; + if (kwargsData) { + if (typeof kwargsData === "string") { + kwargsStr = kwargsData; + } else if (typeof kwargsData === "object") { + kwargsStr = JSON.stringify(kwargsData, null, 2); + } + } + formData.value = { type: newNode.type || "", label: newNode.data?.label || "", - config: newNode.data?.config || {}, + args: newNode.data?.args || "", + kwargsStr, description: newNode.data?.description || "", }; - - if (newNode.type) { - handleTypeChange(newNode.type); - } } }, - { deep: true } + { deep: true, immediate: true } ); function handleClose() { @@ -159,7 +141,22 @@ function handleClose() { } function handleSave() { - emit("save", formData.value); + try { + if (formData.value.kwargsStr && formData.value.kwargsStr.trim()) { + JSON.parse(formData.value.kwargsStr); + } + } catch { + ElMessage.error("关键字参数 JSON 格式错误"); + return; + } + + emit("save", { + type: formData.value.type, + label: formData.value.label, + args: formData.value.args, + kwargs: formData.value.kwargsStr, + description: formData.value.description, + }); ElMessage.success("保存成功"); } @@ -201,8 +198,10 @@ onMounted(() => { overflow-y: auto; } -.config-field { - margin-bottom: 8px; +.field-hint { + margin-top: 4px; + font-size: 12px; + color: #909399; } .panel-actions { diff --git a/frontend/src/views/module_task/workflow/components/WorkflowDesignDrawer.vue b/frontend/src/views/module_task/workflow/components/WorkflowDesignDrawer.vue index d2e1881b..b2282d27 100644 --- a/frontend/src/views/module_task/workflow/components/WorkflowDesignDrawer.vue +++ b/frontend/src/views/module_task/workflow/components/WorkflowDesignDrawer.vue @@ -26,18 +26,6 @@ - - - - - - - - +