import { requestClient } from '#/api/request';
|
|
export namespace HrmEmployeeScheduleApi {
|
/** 排班记录 */
|
export interface EmployeeSchedule {
|
id?: number;
|
employeeId?: number;
|
employeeName?: string;
|
employeeNo?: string;
|
/** 排班日期 yyyy-MM-dd */
|
date?: string;
|
shiftId?: number;
|
shiftName?: string;
|
shiftColor?: string;
|
remark?: string;
|
}
|
|
/** 保存项(整月全量提交,shiftId 为空表示休息/清除) */
|
export interface ScheduleItem {
|
employeeId: number;
|
/** 排班日期 yyyy-MM-dd */
|
date: string;
|
shiftId?: number | null;
|
remark?: string;
|
}
|
|
/** 按群体批量排班请求 */
|
export interface BatchSaveReq {
|
/** 部门ID(含下级部门) */
|
deptId: number;
|
/** 岗位ID,为空表示不限岗位 */
|
postId?: number;
|
/** 员工状态:1-在职,2-试用,3-离职;为空表示在职及试用 */
|
employeeStatus?: number;
|
/** 开始日期 yyyy-MM-dd */
|
startDate: string;
|
/** 结束日期 yyyy-MM-dd */
|
endDate: string;
|
/** 班次ID,为空表示休息(清除排班) */
|
shiftId?: number | null;
|
/** none-不休息,single-周日休息,double-周六日休息 */
|
restMode?: 'double' | 'none' | 'single';
|
}
|
|
/** 按群体批量排班结果 */
|
export interface BatchSaveResp {
|
employeeCount?: number;
|
itemCount?: number;
|
}
|
|
/** 排班日历展示用的请假记录(仅审批通过) */
|
export interface ScheduleLeave {
|
id?: number;
|
employeeId?: number;
|
employeeName?: string;
|
leaveType?: number;
|
leaveTypeName?: string;
|
/** 开始时间 yyyy-MM-dd HH:mm:ss */
|
startTime?: string;
|
/** 结束时间 yyyy-MM-dd HH:mm:ss */
|
endTime?: string;
|
duration?: number;
|
}
|
}
|
|
/** 查询某月排班列表 */
|
export function getEmployeeScheduleList(params: {
|
yearMonth: string;
|
deptId?: number;
|
employeeId?: number;
|
}) {
|
return requestClient.get<HrmEmployeeScheduleApi.EmployeeSchedule[]>(
|
'/hrm/employee-schedule/list',
|
{ params },
|
);
|
}
|
|
/** 批量保存排班(整月覆盖式:有班次 upsert,无班次删除) */
|
export function saveEmployeeSchedule(data: HrmEmployeeScheduleApi.ScheduleItem[]) {
|
return requestClient.post('/hrm/employee-schedule/save', data);
|
}
|
|
/** 按部门+岗位批量排班(一类人一次排完) */
|
export function batchSaveEmployeeSchedule(data: HrmEmployeeScheduleApi.BatchSaveReq) {
|
return requestClient.post<HrmEmployeeScheduleApi.BatchSaveResp>(
|
'/hrm/employee-schedule/batch-save',
|
data,
|
);
|
}
|
|
/** 查询日期范围内审批通过的请假记录(排班日历展示用) */
|
export function getEmployeeScheduleLeaveList(params: {
|
startDate: string;
|
endDate: string;
|
}) {
|
return requestClient.get<HrmEmployeeScheduleApi.ScheduleLeave[]>(
|
'/hrm/employee-schedule/leave-list',
|
{ params },
|
);
|
}
|