feat: 新增电工APP端与定时任务管理功能
- 新增电工APP独立鉴权中间件与登录注册接口 - 新增定时任务管理模块,支持任务配置、执行日志与手动触发 - 新增运维费定价与电工派单成本价目管理 - 新增电工资质证照管理与到期提醒定时任务 - 完善数据库实体与DTO校验,优化权限控制
This commit is contained in:
1 parent
1803ad679c
commit
f4454ad014
57 files changed
+9388
-200
No files matched your search
@@ -0,0 +1,113 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export interface JobParamField {
|
||||
key: string;
|
||||
label: string;
|
||||
type: 'number' | 'string';
|
||||
min?: number;
|
||||
max?: number;
|
||||
placeholder?: string;
|
||||
}
|
||||
|
||||
export interface JobItem {
|
||||
id: number;
|
||||
jobKey: string;
|
||||
jobName: string;
|
||||
cronExpression: string;
|
||||
params: Record<string, any>;
|
||||
retryTimes: number;
|
||||
retryInterval: number;
|
||||
status: number;
|
||||
remark?: string;
|
||||
lastRunAt?: string | null;
|
||||
lastRunStatus?: number | null;
|
||||
lastRunCostMs?: number | null;
|
||||
lastError?: string | null;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
description?: string;
|
||||
paramFields?: JobParamField[];
|
||||
registered: boolean;
|
||||
nextRunTime?: string | null;
|
||||
}
|
||||
|
||||
export interface JobLogItem {
|
||||
id: number;
|
||||
jobId: number;
|
||||
jobKey: string;
|
||||
jobName: string;
|
||||
triggerType: number;
|
||||
status: number;
|
||||
attempt: number;
|
||||
startedAt?: string | null;
|
||||
finishedAt?: string | null;
|
||||
costMs?: number | null;
|
||||
message?: string | null;
|
||||
errorStack?: string | null;
|
||||
createdAt?: string | null;
|
||||
}
|
||||
|
||||
export interface JobRunResult {
|
||||
status: number;
|
||||
message: string;
|
||||
costMs: number;
|
||||
attempt: number;
|
||||
}
|
||||
|
||||
export interface JobQuery {
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
jobName?: string;
|
||||
status?: number;
|
||||
}
|
||||
|
||||
export interface JobLogQuery {
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
status?: number;
|
||||
triggerType?: number;
|
||||
startDate?: string;
|
||||
endDate?: string;
|
||||
}
|
||||
|
||||
export interface UpdateJobPayload {
|
||||
cronExpression: string;
|
||||
params: Record<string, any>;
|
||||
retryTimes: number;
|
||||
retryInterval: number;
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
export interface JobListResult {
|
||||
list: JobItem[];
|
||||
total: number;
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
export interface JobLogListResult {
|
||||
list: JobLogItem[];
|
||||
total: number;
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
export const jobApi = {
|
||||
getJobList: (params: JobQuery) =>
|
||||
request.get<JobListResult>('/jobs', { params }),
|
||||
|
||||
updateJob: (id: number, data: UpdateJobPayload) =>
|
||||
request.put<JobItem>(`/jobs/${id}`, data),
|
||||
|
||||
changeJobStatus: (id: number, status: 0 | 1) =>
|
||||
request.put<JobItem>(`/jobs/${id}/status`, { status }),
|
||||
|
||||
runJob: (id: number) =>
|
||||
request.post<JobRunResult>(`/jobs/${id}/run`),
|
||||
|
||||
getJobLogs: (id: number, params: JobLogQuery) =>
|
||||
request.get<JobLogListResult>(`/jobs/${id}/logs`, { params }),
|
||||
|
||||
clearJobLogs: (days = 90) =>
|
||||
request.delete<{ deleted: number }>('/jobs/logs/clear', { params: { days } }),
|
||||
};
|
||||
Reference in new issue
Block a user