import type { PageParam, PageResult } from '#/packages/effects/request/src';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace HrmAttendanceRecordApi {
|
/** 考勤记录 */
|
export interface AttendanceRecord {
|
id?: number;
|
userId?: number;
|
userName?: string;
|
deptId?: number;
|
deptName?: string;
|
date?: string;
|
clockInTime?: string;
|
clockOutTime?: string;
|
clockInType?: number;
|
clockInTypeName?: string;
|
clockOutType?: number;
|
clockOutTypeName?: string;
|
workHours?: number;
|
overtimeHours?: number;
|
location?: string;
|
dataSource?: number;
|
dataSourceName?: string;
|
remark?: string;
|
createTime?: string;
|
}
|
|
/** 考勤统计 */
|
export interface AttendanceStatistics {
|
userId?: number;
|
userName?: string;
|
deptName?: string;
|
totalDays?: number;
|
normalDays?: number;
|
lateDays?: number;
|
earlyDays?: number;
|
absentDays?: number;
|
overtimeHours?: number;
|
totalWorkHours?: number;
|
}
|
}
|
|
/** 查询考勤记录分页列表 */
|
export function getAttendanceRecordPage(params: PageParam) {
|
return requestClient.get<PageResult<HrmAttendanceRecordApi.AttendanceRecord>>(
|
'/hrm/attendance/record/page',
|
{ params },
|
);
|
}
|
|
/** 查询考勤统计(按月) */
|
export function getAttendanceStatistics(params: {
|
userId?: number;
|
deptId?: number;
|
month: string;
|
}) {
|
return requestClient.get<HrmAttendanceRecordApi.AttendanceStatistics[]>(
|
'/hrm/attendance/record/statistics',
|
{ params },
|
);
|
}
|
|
/** 导入考勤记录 */
|
export function importAttendanceRecord(file: File, updateSupport: boolean) {
|
return requestClient.upload('/hrm/attendance/record/import', {
|
file,
|
updateSupport,
|
});
|
}
|
|
/** 下载考勤导入模板 */
|
export function importAttendanceTemplate() {
|
return requestClient.download('/hrm/attendance/record/get-import-template');
|
}
|
|
/** 导出考勤记录 */
|
export function exportAttendanceRecord(params: any) {
|
return requestClient.download('/hrm/attendance/record/export-excel', { params });
|
}
|
|
/** 上班打卡 */
|
export function clockIn(params: { location: string }) {
|
return requestClient.post<HrmAttendanceRecordApi.AttendanceRecord>(
|
'/hrm/attendance/record/clock-in',
|
null,
|
{ params },
|
);
|
}
|
|
/** 下班打卡 */
|
export function clockOut(params: { location: string }) {
|
return requestClient.post<HrmAttendanceRecordApi.AttendanceRecord>(
|
'/hrm/attendance/record/clock-out',
|
null,
|
{ params },
|
);
|
}
|