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,128 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 资质状态:none 无证书 / normal 正常 / expiring 临期 / expired 已过期
|
||||
export type WorkerCertStatus = 'none' | 'normal' | 'expiring' | 'expired';
|
||||
|
||||
// 审核状态:0 待审核 / 1 已通过 / 2 已驳回
|
||||
export type WorkerAuditStatus = 0 | 1 | 2;
|
||||
|
||||
// 证书行(详情接口返回完整证书,保存时按此结构提交)
|
||||
export interface WorkerCert {
|
||||
id?: number;
|
||||
workerId?: number;
|
||||
certType: string;
|
||||
certNo: string;
|
||||
issueAuthority?: string;
|
||||
issueDate?: string;
|
||||
expireDate?: string;
|
||||
certImageUrl?: string;
|
||||
}
|
||||
|
||||
// 列表接口返回的证书摘要
|
||||
export interface WorkerCertSummary {
|
||||
id: number;
|
||||
certType: string;
|
||||
certNo: string;
|
||||
expireDate?: string;
|
||||
}
|
||||
|
||||
export interface WorkerRecord {
|
||||
id: number;
|
||||
workerName: string;
|
||||
phone?: string;
|
||||
idCard?: string;
|
||||
workerTitle?: string;
|
||||
rating?: number | string;
|
||||
certInfo?: string;
|
||||
certVerified?: boolean;
|
||||
completedCount?: number;
|
||||
// 在岗状态:1 在岗 / 0 离职
|
||||
status: number;
|
||||
auditStatus: number;
|
||||
auditRemark?: string;
|
||||
auditBy?: number;
|
||||
auditAt?: string;
|
||||
lastLoginAt?: string;
|
||||
certStatus?: WorkerCertStatus;
|
||||
certs?: WorkerCertSummary[];
|
||||
createdAt?: string;
|
||||
created_at?: string;
|
||||
updatedAt?: string;
|
||||
updated_at?: string;
|
||||
}
|
||||
|
||||
export interface WorkerQuery {
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
keyword?: string;
|
||||
status?: number;
|
||||
auditStatus?: number;
|
||||
certStatus?: WorkerCertStatus;
|
||||
}
|
||||
|
||||
export interface WorkerListResult {
|
||||
list: WorkerRecord[];
|
||||
total: number;
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// KPI:电工总数 / 待审核 / 临期 / 已过期
|
||||
export interface WorkerStats {
|
||||
total: number;
|
||||
pendingAudit: number;
|
||||
expiring: number;
|
||||
expired: number;
|
||||
}
|
||||
|
||||
export interface WorkerCertPayload {
|
||||
certType: string;
|
||||
certNo: string;
|
||||
issueAuthority?: string;
|
||||
issueDate?: string;
|
||||
expireDate?: string;
|
||||
certImageUrl?: string;
|
||||
}
|
||||
|
||||
export interface WorkerPayload {
|
||||
workerName: string;
|
||||
phone: string;
|
||||
idCard?: string;
|
||||
workerTitle?: string;
|
||||
status?: number;
|
||||
rating?: number;
|
||||
certInfo?: string;
|
||||
// 新增时是否同时开通电工 APP 账号(默认密码为手机号后 6 位)
|
||||
withAccount?: boolean;
|
||||
// 存在时整体覆盖该电工的全部证书
|
||||
certs?: WorkerCertPayload[];
|
||||
}
|
||||
|
||||
export interface WorkerAuditPayload {
|
||||
approved: boolean;
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
// 管理端电工登记接口(不修改原 worker.ts,勘察派单页仍使用 workerApi)
|
||||
export const workerRegistryApi = {
|
||||
getList: (params: WorkerQuery) => request.get<WorkerListResult>('/workers', { params }),
|
||||
|
||||
getStats: () => request.get<WorkerStats>('/workers/stats'),
|
||||
|
||||
getDetail: (id: number) => request.get<WorkerRecord>(`/workers/${id}`),
|
||||
|
||||
create: (data: WorkerPayload) => request.post('/workers', data),
|
||||
|
||||
update: (id: number, data: Partial<WorkerPayload>) => request.put(`/workers/${id}`, data),
|
||||
|
||||
remove: (id: number) => request.delete(`/workers/${id}`),
|
||||
|
||||
audit: (id: number, data: WorkerAuditPayload) => request.put(`/workers/${id}/audit`, data),
|
||||
|
||||
addCert: (id: number, data: WorkerCertPayload) => request.post(`/workers/${id}/certs`, data),
|
||||
|
||||
updateCert: (id: number, certId: number, data: WorkerCertPayload) =>
|
||||
request.put(`/workers/${id}/certs/${certId}`, data),
|
||||
|
||||
removeCert: (id: number, certId: number) => request.delete(`/workers/${id}/certs/${certId}`),
|
||||
};
|
||||
Reference in new issue
Block a user