feat: 新增电工APP端与定时任务管理功能

- 新增电工APP独立鉴权中间件与登录注册接口
- 新增定时任务管理模块,支持任务配置、执行日志与手动触发
- 新增运维费定价与电工派单成本价目管理
- 新增电工资质证照管理与到期提醒定时任务
- 完善数据库实体与DTO校验,优化权限控制
This commit is contained in:
andyesfly committed 2026-10-02 16:08:00 +08:00
1 parent 1803ad679c
commit f4454ad014
57 files changed
+9388 -200

No files matched your search

+63
View File
@@ -0,0 +1,63 @@
import { IsNotEmpty, IsOptional, IsString, IsInt, IsObject, Min, Max, MaxLength } from "class-validator";
export class UpdateJobDTO {
@IsString()
@IsNotEmpty({ message: "cron 表达式不能为空" })
@MaxLength(64, { message: "cron 表达式最大 64 字符" })
cronExpression!: string;
@IsOptional()
@IsObject()
params?: Record<string, any>;
@IsInt()
@Min(0, { message: "重试次数不能小于 0" })
@Max(5, { message: "重试次数不能超过 5" })
retryTimes!: number;
@IsInt()
@Min(10, { message: "重试间隔不能小于 10 秒" })
@Max(3600, { message: "重试间隔不能超过 3600 秒" })
retryInterval!: number;
@IsOptional()
@IsString()
@MaxLength(255, { message: "备注最大 255 字符" })
remark?: string;
}
export class JobStatusDTO {
@IsInt()
@Min(0, { message: "状态值非法" })
@Max(1, { message: "状态值非法" })
status!: number;
}
export class JobLogQueryDTO {
@IsOptional()
@IsInt()
@Min(1)
page?: number = 1;
@IsOptional()
@IsInt()
@Min(1)
@Max(200, { message: "分页大小不能超过 200 条" })
pageSize?: number = 10;
@IsOptional()
@IsInt()
status?: number;
@IsOptional()
@IsInt()
triggerType?: number;
@IsOptional()
@IsString()
startDate?: string;
@IsOptional()
@IsString()
endDate?: string;
}