package com.xiaopeng.maintenance.service;
|
|
import com.xiaopeng.api.model.maintenance.XpClockIn;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.maintenance.dto.*;
|
import com.xiaopeng.maintenance.vo.ClockInStatisticsDetailsVo;
|
import com.xiaopeng.maintenance.vo.ClockInStatisticsVo;
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.time.LocalDate;
|
|
/**
|
* <p>
|
* 打卡明细 服务类
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
public interface IXpClockInService extends IService<XpClockIn> {
|
|
/**
|
* 验证打卡范围
|
*
|
* @param dto
|
* @return
|
*/
|
Boolean verifyRange(VerifyRangeDTO dto);
|
|
/**
|
* 打卡
|
*
|
* @param dto
|
* @return
|
*/
|
R<Integer> clockIn(ClockDTO dto);
|
|
/**
|
* 下班打卡
|
*
|
* @param dto
|
* @return
|
*/
|
R<Integer> clockOut(ClockDTO dto);
|
|
/**
|
* 补充上班缺卡记录
|
*
|
* @param appUserId 用户ID
|
* @param shiftId 班次ID
|
* @param attendanceDate 考勤日期
|
* @return 是否新增成功
|
*/
|
boolean createMissingClockInIfAbsent(Long appUserId, Long shiftId, LocalDate attendanceDate);
|
|
/**
|
* 检查用户是否上班中
|
* @param appUserId 用户ID
|
* @return true=上班中(只打了上班卡), false=未上班或已下班
|
*/
|
Integer checkWorkStatus(Long appUserId);
|
|
|
/**
|
* 获取打卡统计
|
* @param query
|
* @return
|
*/
|
PageInfo<ClockInStatisticsDto> getClockInStatistics(ClockInStatisticsVo query);
|
|
|
/**
|
* 导出打卡统计
|
* @param vo
|
* @param response
|
*/
|
void exportClockInStatistics(ClockInStatisticsVo vo, HttpServletResponse response);
|
|
|
|
/**
|
* 获取打卡统计详情
|
* @param query
|
* @return
|
*/
|
GetClockInStatisticsDetailsDto getClockInStatisticsDetails(ClockInStatisticsDetailsVo query);
|
|
|
/**
|
* 导出打卡统计详情
|
* @param vo
|
* @param response
|
*/
|
void exportClockInStatisticsDetails(ClockInStatisticsDetailsVo vo, HttpServletResponse response);
|
}
|