- 重构勘察业务:移除SOP相关表,新增勘察明细表支持建筑/楼层/房间/照片管理 - 新增定时任务人性化频率配置,支持分钟/小时/天/周/月/自定义六种模式 - 新增频率预览接口,支持配置转换为cron表达式与执行时间预览 - 更新系统品牌名称为鑫潼智电,修改全局标题与登录页文案
81 lines
1.7 KiB
TypeScript
81 lines
1.7 KiB
TypeScript
import { IsNotEmpty, IsOptional, IsString, IsInt, IsObject, Min, Max, MaxLength } from "class-validator";
|
|
|
|
/** 频率配置:字段按 freqType 取用,由 util/cron_schedule 统一校验与翻译 */
|
|
export class UpdateJobDTO {
|
|
@IsString()
|
|
@IsNotEmpty({ message: "频率类型不能为空" })
|
|
@MaxLength(16, { message: "频率类型非法" })
|
|
freqType!: string;
|
|
|
|
@IsOptional()
|
|
@IsObject()
|
|
freqConfig?: Record<string, any>;
|
|
|
|
@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;
|
|
}
|
|
|
|
/** 频率预览入参:只传频率配置,cron 与下次执行时间由后端计算 */
|
|
export class CronPreviewDTO {
|
|
@IsString()
|
|
@IsNotEmpty({ message: "频率类型不能为空" })
|
|
@MaxLength(16, { message: "频率类型非法" })
|
|
freqType!: string;
|
|
|
|
@IsOptional()
|
|
@IsObject()
|
|
freqConfig?: Record<string, any>;
|
|
}
|
|
|
|
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;
|
|
}
|