90 lines
1.9 KiB
TypeScript
90 lines
1.9 KiB
TypeScript
import { apiClient } from './client';
|
|
|
|
// ─────────── Types ───────────
|
|
|
|
export interface WtimeItem {
|
|
workPlanYymmdd: string;
|
|
planWorkCd: string;
|
|
workCd: string;
|
|
realWorkCd: string;
|
|
workStartDt: string;
|
|
workEndDt: string;
|
|
abtiYn: string;
|
|
otRctnYn: string;
|
|
elRctnYn: string;
|
|
totWorkMin: number;
|
|
lateMin: number;
|
|
skipoffRemnBzMin: number;
|
|
incluWorkOtMin: number;
|
|
otWorkMin: number;
|
|
ngtOtMin: number;
|
|
outingMin: number;
|
|
holidayLateMin: number;
|
|
realStartDt: string;
|
|
realEndDt: string;
|
|
getoffworkTmNm: string;
|
|
usrId: string;
|
|
usrNm: string;
|
|
teamCd: string;
|
|
dutyCd: string;
|
|
}
|
|
|
|
export interface WstatItem {
|
|
usrId: string;
|
|
usrNm: string;
|
|
teamCd: string;
|
|
dutyCd: string;
|
|
workDcnt: number;
|
|
abtiDcnt: number;
|
|
yyctDeduDcnt: number;
|
|
lateDcnt: number;
|
|
skipoffDcnt: number;
|
|
sickleaveDcnt: number;
|
|
totWorkMin: number;
|
|
lateMin: number;
|
|
skipoffRemnBzMin: number;
|
|
incluWorkOtMin: number;
|
|
otWorkMin: number;
|
|
ngtOtMin: number;
|
|
outingDcnt: number;
|
|
outingMin: number;
|
|
yyvctCnt: number;
|
|
}
|
|
|
|
// 분 → hh:mm
|
|
export function minToHhmm(min: number): string {
|
|
if (!min) return '0:00';
|
|
const h = Math.floor(min / 60);
|
|
const m = min % 60;
|
|
return `${h}:${String(m).padStart(2, '0')}`;
|
|
}
|
|
|
|
// ─────────── API ───────────
|
|
|
|
export async function getWtimeList(params: {
|
|
staYmd: string;
|
|
endYmd: string;
|
|
usrId?: string;
|
|
usrNm?: string;
|
|
teamCd?: string;
|
|
dutyCd?: string;
|
|
includeRetireYn?: string;
|
|
includeWorkYn?: string;
|
|
}): Promise<WtimeItem[]> {
|
|
const res = await apiClient.get('/wtime/0010', { params });
|
|
return res.data.data;
|
|
}
|
|
|
|
export async function getWstatList(params: {
|
|
staYmd: string;
|
|
endYmd: string;
|
|
usrId?: string;
|
|
usrNm?: string;
|
|
teamCd?: string;
|
|
dutyCd?: string;
|
|
includeRetireYn?: string;
|
|
}): Promise<WstatItem[]> {
|
|
const res = await apiClient.get('/wtime/0030', { params });
|
|
return res.data.data;
|
|
}
|