import request from './request' // ==================== 排班管理 ==================== export function getMonthlySchedule(year: number, month: number) { return request.get('/production/duty/schedule/monthly', { params: { year, month } }) } export function getScheduleRange(start: string, end: string) { return request.get('/production/duty/schedule/range', { params: { start, end } }) } export function getTodaySchedule() { return request.get('/production/duty/schedule/today') } export function createSchedule(data: any) { return request.post('/production/duty/schedule', data) } export function batchCreateSchedule(data: any[]) { return request.post('/production/duty/schedule/batch', data) } export function autoSchedule(data: { userIds: number[], startDate: string, endDate: string, shiftType?: string }) { return request.post('/production/duty/schedule/auto', data) } export function updateSchedule(id: number, data: any) { return request.put(`/production/duty/schedule/${id}`, data) } export function cancelSchedule(id: number) { return request.delete(`/production/duty/schedule/${id}`) } // ==================== 上下班打卡 ==================== export function getTodayRecords() { return request.get('/production/duty/record/today') } export function getRecordsByDate(date: string) { return request.get(`/production/duty/record/date/${date}`) } export function getUserRecords(userId: number, start: string, end: string) { return request.get(`/production/duty/record/user/${userId}`, { params: { start, end } }) } export function startDuty(data: { userId: number, location?: string }) { return request.post('/production/duty/record/start', data) } export function endDuty(data: { userId: number, location?: string, handoverRemark?: string }) { return request.post('/production/duty/record/end', data) } export function getCurrentDutyStatus(userId: number) { return request.get(`/production/duty/record/status/${userId}`) } export function getDutyStats(userId: number, year: number, month: number) { return request.get(`/production/duty/record/stats/${userId}`, { params: { year, month } }) } // ==================== 交接班管理 ==================== export function createHandover(data: any) { return request.post('/production/duty/handover', data) } export function getHandoversByDate(date: string) { return request.get(`/production/duty/handover/date/${date}`) } export function getHandoversByRange(start: string, end: string) { return request.get('/production/duty/handover/range', { params: { start, end } }) } export function getHandoverDetail(id: number) { return request.get(`/production/duty/handover/${id}`) } export function updateHandover(id: number, data: any) { return request.put(`/production/duty/handover/${id}`, data) } export function signFrom(id: number) { return request.post(`/production/duty/handover/${id}/sign-from`) } export function signTo(id: number) { return request.post(`/production/duty/handover/${id}/sign-to`) } export function checkHandoverStatus(date: string) { return request.get(`/production/duty/handover/status/${date}`) } // ==================== 值班日志 ==================== export function createDutyLog(data: any) { return request.post('/production/duty/log', data) } export function getLogsByDate(date: string) { return request.get(`/production/duty/log/date/${date}`) } export function getLogsByRange(start: string, end: string) { return request.get('/production/duty/log/range', { params: { start, end } }) } export function getLogDetail(id: number) { return request.get(`/production/duty/log/${id}`) } export function updateLog(id: number, data: any) { return request.put(`/production/duty/log/${id}`, data) } export function deleteLog(id: number) { return request.delete(`/production/duty/log/${id}`) } export function handleLog(id: number, data: { handlerId: number, result: string }) { return request.post(`/production/duty/log/${id}/handle`, data) } export function getLogStats(date: string) { return request.get(`/production/duty/log/stats/${date}`) } // ==================== 联系方式面板 ==================== export function getDutyContacts() { return request.get('/production/duty/contacts') }