import type { PageParam, PageResult } from '@vben/request';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace MesCalScheduleDetailApi {
|
/** MES 员工排班明细 */
|
export interface Detail {
|
id?: number; // 明细编号
|
planId?: number; // 排班计划编号
|
teamId?: number; // 班组编号
|
userId?: number; // 班组成员用户编号
|
day?: Date; // 日期
|
shiftId?: number; // 班次编号
|
shiftName?: string; // 班次名称
|
startTime?: string; // 开始时间(HH:mm)
|
endTime?: string; // 结束时间(HH:mm)
|
source?: number; // 来源:1-自动生成 2-人工调整
|
remark?: string; // 备注
|
}
|
|
/** 员工排班明细查询参数 */
|
export interface DetailPageParam extends PageParam {
|
planId?: number; // 排班计划编号
|
teamId?: number; // 班组编号
|
userId?: number; // 班组成员用户编号
|
startDay?: string; // 开始日期
|
endDay?: string; // 结束日期
|
}
|
|
/** 合规校验结果项 */
|
export interface CheckItem {
|
day?: string; // 日期
|
shiftName?: string; // 班次名称
|
startTime?: string; // 开始时间(HH:mm)
|
endTime?: string; // 结束时间(HH:mm)
|
issueType?: number; // 违规类型:1-单日疑似连续工时超长 2-相邻班次间休息不足
|
issue?: string; // 问题描述,为空表示该班次合规
|
}
|
|
/** 合规校验参数 */
|
export interface CheckParam {
|
userId: number; // 班组成员用户编号
|
startDay?: string; // 起始日期
|
endDay?: string; // 结束日期
|
}
|
}
|
|
/** 查询员工排班明细分页 */
|
export function getDetailPage(params: MesCalScheduleDetailApi.DetailPageParam) {
|
return requestClient.get<PageResult<MesCalScheduleDetailApi.Detail>>(
|
'/mes/cal/schedule-detail/page',
|
{ params },
|
);
|
}
|
|
/** 查询员工排班明细列表 */
|
export function getDetailList(
|
params: MesCalScheduleDetailApi.DetailPageParam,
|
): Promise<MesCalScheduleDetailApi.Detail[]> {
|
return requestClient.get<MesCalScheduleDetailApi.Detail[]>(
|
'/mes/cal/schedule-detail/list',
|
{ params },
|
);
|
}
|
|
/** 按班组排班生成员工级排班明细 */
|
export function generateDetails(planId: number) {
|
return requestClient.post(
|
`/mes/cal/schedule-detail/generate?planId=${planId}`,
|
);
|
}
|
|
/** 更新员工排班明细(人工微调) */
|
export function updateDetail(data: MesCalScheduleDetailApi.Detail) {
|
return requestClient.put('/mes/cal/schedule-detail/update', data);
|
}
|
|
/** 员工排班合规校验 */
|
export function checkCompliance(
|
params: MesCalScheduleDetailApi.CheckParam,
|
): Promise<MesCalScheduleDetailApi.CheckItem[]> {
|
return requestClient.get<MesCalScheduleDetailApi.CheckItem[]>(
|
'/mes/cal/schedule-detail/check',
|
{ params },
|
);
|
}
|