Commit 080b9ad0 authored by ZhangRunSong's avatar ZhangRunSong

feat:考勤打卡

parent a00ea9fc
...@@ -24,6 +24,28 @@ ...@@ -24,6 +24,28 @@
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId> <artifactId>ruoyi-system</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.4</version>
</dependency>
</dependencies> </dependencies>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
......
package com.ruoyi.web.controller.system; package com.ruoyi.attendance.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.attendance.domain.AttendanceClock;
import com.ruoyi.attendance.service.IAttendanceClockService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.PsaAttendanceClock;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.service.IPsaAttendanceClockService; import org.springframework.web.multipart.MultipartFile;
/** /**
* 考勤打卡Controller * 考勤打卡Controller
* *
* @author ruoyi * @author ruoyi
* @date 2025-02-24 * @date 2025-03-04
*/ */
@RestController @RestController
@RequestMapping("/system/attendance/clock") @RequestMapping("/psa/clock")
public class PsaAttendanceClockController extends BaseController public class AttendanceClockController extends BaseController
{ {
@Autowired @Autowired
private IPsaAttendanceClockService psaAttendanceClockService; private IAttendanceClockService attendanceClockService;
/** /**
* 查询考勤打卡列表 * 查询考勤打卡列表
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:list')") @PreAuthorize("@ss.hasPermi('psa:clock:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(PsaAttendanceClock psaAttendanceClock) public TableDataInfo list(AttendanceClock attendanceClock)
{ {
startPage(); startPage();
List<PsaAttendanceClock> list = psaAttendanceClockService.selectPsaAttendanceClockList(psaAttendanceClock); List<AttendanceClock> list = attendanceClockService.selectAttendanceClockList(attendanceClock);
return getDataTable(list); return getDataTable(list);
} }
/** /**
* 导出考勤打卡列表 * 导出考勤打卡列表
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:export')") @PreAuthorize("@ss.hasPermi('psa:clock:export')")
@Log(title = "考勤打卡", businessType = BusinessType.EXPORT) @Log(title = "考勤打卡", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, PsaAttendanceClock psaAttendanceClock) public void export(HttpServletResponse response, AttendanceClock attendanceClock)
{ {
List<PsaAttendanceClock> list = psaAttendanceClockService.selectPsaAttendanceClockList(psaAttendanceClock); List<AttendanceClock> list = attendanceClockService.selectAttendanceClockList(attendanceClock);
ExcelUtil<PsaAttendanceClock> util = new ExcelUtil<PsaAttendanceClock>(PsaAttendanceClock.class); ExcelUtil<AttendanceClock> util = new ExcelUtil<AttendanceClock>(AttendanceClock.class);
util.exportExcel(response, list, "考勤打卡数据"); util.exportExcel(response, list, "考勤打卡数据");
} }
/**
* 导入考勤打卡列表
*/
@PreAuthorize("@ss.hasPermi('psa:clock:import')")
@Log(title = "考勤打卡", businessType = BusinessType.IMPORT)
@PostMapping("/import")
public AjaxResult importList(@RequestParam("file") MultipartFile file)
{
try {
attendanceClockService.importAttendanceData(file);
return success("Excel导入成功!");
} catch (Exception e) {
return error("导入失败:"+e.getMessage());
}
}
/** /**
* 获取考勤打卡详细信息 * 获取考勤打卡详细信息
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:query')") @PreAuthorize("@ss.hasPermi('psa:clock:query')")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) public AjaxResult getInfo(@PathVariable("id") Long id)
{ {
return success(psaAttendanceClockService.selectPsaAttendanceClockById(id)); return success(attendanceClockService.selectAttendanceClockById(id));
} }
/** /**
* 新增考勤打卡 * 新增考勤打卡
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:add')") @PreAuthorize("@ss.hasPermi('psa:clock:add')")
@Log(title = "考勤打卡", businessType = BusinessType.INSERT) @Log(title = "考勤打卡", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody PsaAttendanceClock psaAttendanceClock) public AjaxResult add(@RequestBody AttendanceClock attendanceClock)
{ {
return toAjax(psaAttendanceClockService.insertPsaAttendanceClock(psaAttendanceClock)); return toAjax(attendanceClockService.insertAttendanceClock(attendanceClock));
} }
/** /**
* 修改考勤打卡 * 修改考勤打卡
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:edit')") @PreAuthorize("@ss.hasPermi('psa:clock:edit')")
@Log(title = "考勤打卡", businessType = BusinessType.UPDATE) @Log(title = "考勤打卡", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody PsaAttendanceClock psaAttendanceClock) public AjaxResult edit(@RequestBody AttendanceClock attendanceClock)
{ {
return toAjax(psaAttendanceClockService.updatePsaAttendanceClock(psaAttendanceClock)); return toAjax(attendanceClockService.updateAttendanceClock(attendanceClock));
} }
/** /**
* 删除考勤打卡 * 删除考勤打卡
*/ */
@PreAuthorize("@ss.hasPermi('attendance:clock:remove')") @PreAuthorize("@ss.hasPermi('psa:clock:remove')")
@Log(title = "考勤打卡", businessType = BusinessType.DELETE) @Log(title = "考勤打卡", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) public AjaxResult remove(@PathVariable Long[] ids)
{ {
return toAjax(psaAttendanceClockService.deletePsaAttendanceClockByIds(ids)); return toAjax(attendanceClockService.deleteAttendanceClockByIds(ids));
} }
} }
package com.ruoyi.attendance.domain;
import java.sql.Time;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 考勤打卡对象 attendance_clock
*
* @author ruoyi
* @date 2025-03-04
*/
@Getter
@TableName("attendance_clock")
public class AttendanceClock extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 工号ID */
private String employeeId;
/** 关联用户表主键user_id */
private Long userId;
/** 关联部门表主键dept_id */
private Long deptId;
/** 关联项目表主键 */
private Long projectId;
/** 姓名 */
@Excel(name = "姓名")
private String employeeName;
/** 部门 */
@Excel(name = "部门")
private String departmentName;
/** 打卡日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "打卡日期", width = 30, dateFormat = "yyyy-MM-dd")
private LocalDate candidateDate;
/** 打卡时段 */
@Excel(name = "打卡时段")
private String isClock;
/** 打卡时间 */
@JsonFormat(pattern = "HH:mm", timezone="GMT+8")
@Excel(name = "打卡时间", width = 30, dateFormat = "HH:mm")
private LocalTime clockTime;
/** 打卡状态 */
@Excel(name = "打卡状态")
private String checkInStatus;
/** 提交人 */
private String creatBy;
/** 创建时间 */
private LocalDate creatTime;
/** 草稿箱 0:否 1:是 */
private String draft;
/** 删除标记 0:否 1:是 */
private String delFlag;
public void setId(Long id)
{
this.id = id;
}
public void setEmployeeId(String employeeId)
{
this.employeeId = employeeId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public void setDeptId(Long deptId)
{
this.deptId = deptId;
}
public void setProjectId(Long projectId)
{
this.projectId = projectId;
}
public void setEmployeeName(String employeeName)
{
this.employeeName = employeeName;
}
public void setDepartmentName(String departmentName)
{
this.departmentName = departmentName;
}
public void setCandidateDate(LocalDate candidateDate)
{
this.candidateDate = candidateDate;
}
public void setIsClock(String isClock)
{
this.isClock = isClock;
}
public void setClockTime(LocalTime clockTime)
{
this.clockTime = clockTime;
}
public void setCheckInStatus(String checkInStatus)
{
this.checkInStatus = checkInStatus;
}
public void setCreatBy(String creatBy)
{
this.creatBy = creatBy;
}
public void setCreatTime(LocalDate creatTime)
{
this.creatTime = creatTime;
}
public void setDraft(String draft)
{
this.draft = draft;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("employeeId", getEmployeeId())
.append("userId", getUserId())
.append("deptId", getDeptId())
.append("projectId", getProjectId())
.append("employeeName", getEmployeeName())
.append("departmentName", getDepartmentName())
.append("candidateDate", getCandidateDate())
.append("isClock", getIsClock())
.append("clockTime", getClockTime())
.append("checkInStatus", getCheckInStatus())
.append("creatBy", getCreatBy())
.append("creatTime", getCreatTime())
.append("updateTime", getUpdateTime())
.append("draft", getDraft())
.append("delFlag", getDelFlag())
.toString();
}
}
package com.ruoyi.attendance.enums;
import lombok.Getter;
@Getter
public enum AttendanceDelFlag {
/**
* 存在
*/
EXIST("0","存在"),
/**
* 删除
*/
DELETE("1","删除");
private final String value;
private final String desc;
AttendanceDelFlag(String value, String desc) {
this.value = value;
this.desc = desc;
}
}
package com.ruoyi.attendance.enums;
import lombok.Getter;
@Getter
public enum AttendanceDraft {
/**
* 不是草稿
*/
NO("0","否"),
/**
* 是草稿
*/
YES("1","是");
private final String value;
private final String desc;
AttendanceDraft(String value, String desc) {
this.value = value;
this.desc = desc;
}
}
package com.ruoyi.attendance.enums;
import lombok.Getter;
@Getter
public enum AttendanceFlag {
/**
* 导入
*/
IMPORT("0","导入"),
/**
* 外勤
*/
OUTWORK("1","外勤"),
/**
* 补卡
*/
REPAIR("2","补卡"),
;
private final String value;
private final String desc;
AttendanceFlag(String value,String desc) {
this.value = value;
this.desc = desc;
}
}
package com.ruoyi.attendance.enums;
import lombok.Getter;
@Getter
public enum AttendanceStatus {
/**
* 正常签到
*/
ZCQD("0","正常签到"),
/**
* 早退
*/
ZT("1","早退"),
/**
* 迟到
*/
CD("2","迟到"),
/**
* 正常签退
*/
ZCQT ("3","正常签退");
private final String value;
private final String desc;
AttendanceStatus(String value,String desc) {
this.value = value;
this.desc = desc;
}
}
package com.ruoyi.attendance.enums;
import lombok.Getter;
@Getter
public enum AttendanceTimeDifference {
/**
* 不是当前时段
*/
AM("0","上班打卡"),
/**
* 是当前时段
*/
PM("1","下班打卡");
private final String value;
private final String desc;
AttendanceTimeDifference(String value, String desc) {
this.value = value;
this.desc = desc;
}
}
package com.ruoyi.system.mapper; package com.ruoyi.attendance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.attendance.domain.AttendanceClock;
import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.PsaAttendanceClock;
/** /**
* 考勤打卡Mapper接口 * 考勤打卡Mapper接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-02-24 * @date 2025-03-04
*/ */
public interface PsaAttendanceClockMapper @Mapper
public interface AttendanceClockMapper extends BaseMapper<AttendanceClock>
{ {
/** /**
* 查询考勤打卡 * 查询考勤打卡
...@@ -17,31 +22,31 @@ public interface PsaAttendanceClockMapper ...@@ -17,31 +22,31 @@ public interface PsaAttendanceClockMapper
* @param id 考勤打卡主键 * @param id 考勤打卡主键
* @return 考勤打卡 * @return 考勤打卡
*/ */
public PsaAttendanceClock selectPsaAttendanceClockById(Long id); public AttendanceClock selectAttendanceClockById(Long id);
/** /**
* 查询考勤打卡列表 * 查询考勤打卡列表
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 考勤打卡集合 * @return 考勤打卡集合
*/ */
public List<PsaAttendanceClock> selectPsaAttendanceClockList(PsaAttendanceClock psaAttendanceClock); public List<AttendanceClock> selectAttendanceClockList(AttendanceClock attendanceClock);
/** /**
* 新增考勤打卡 * 新增考勤打卡
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 结果 * @return 结果
*/ */
public int insertPsaAttendanceClock(PsaAttendanceClock psaAttendanceClock); public int insertAttendanceClock(AttendanceClock attendanceClock);
/** /**
* 修改考勤打卡 * 修改考勤打卡
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 结果 * @return 结果
*/ */
public int updatePsaAttendanceClock(PsaAttendanceClock psaAttendanceClock); public int updateAttendanceClock(AttendanceClock attendanceClock);
/** /**
* 删除考勤打卡 * 删除考勤打卡
...@@ -49,7 +54,7 @@ public interface PsaAttendanceClockMapper ...@@ -49,7 +54,7 @@ public interface PsaAttendanceClockMapper
* @param id 考勤打卡主键 * @param id 考勤打卡主键
* @return 结果 * @return 结果
*/ */
public int deletePsaAttendanceClockById(Long id); public int deleteAttendanceClockById(Long id);
/** /**
* 批量删除考勤打卡 * 批量删除考勤打卡
...@@ -57,5 +62,9 @@ public interface PsaAttendanceClockMapper ...@@ -57,5 +62,9 @@ public interface PsaAttendanceClockMapper
* @param ids 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deletePsaAttendanceClockByIds(Long[] ids); public int deleteAttendanceClockByIds(Long[] ids);
/**
* 批量导入
*/
void batchInsertAttendanceClock( List<AttendanceClock> records);
} }
package com.ruoyi.system.service; package com.ruoyi.attendance.service;
import com.ruoyi.attendance.domain.AttendanceClock;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.PsaAttendanceClock;
/** /**
* 考勤打卡Service接口 * 考勤打卡Service接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-02-24 * @date 2025-03-04
*/ */
public interface IAttendanceClockService
public interface IPsaAttendanceClockService
{ {
/** /**
* 查询考勤打卡 * 查询考勤打卡
...@@ -18,31 +21,31 @@ public interface IPsaAttendanceClockService ...@@ -18,31 +21,31 @@ public interface IPsaAttendanceClockService
* @param id 考勤打卡主键 * @param id 考勤打卡主键
* @return 考勤打卡 * @return 考勤打卡
*/ */
public PsaAttendanceClock selectPsaAttendanceClockById(Long id); public AttendanceClock selectAttendanceClockById(Long id);
/** /**
* 查询考勤打卡列表 * 查询考勤打卡列表
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 考勤打卡集合 * @return 考勤打卡集合
*/ */
public List<PsaAttendanceClock> selectPsaAttendanceClockList(PsaAttendanceClock psaAttendanceClock); public List<AttendanceClock> selectAttendanceClockList(AttendanceClock attendanceClock);
/** /**
* 新增考勤打卡 * 新增考勤打卡
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 结果 * @return 结果
*/ */
public int insertPsaAttendanceClock(PsaAttendanceClock psaAttendanceClock); public int insertAttendanceClock(AttendanceClock attendanceClock);
/** /**
* 修改考勤打卡 * 修改考勤打卡
* *
* @param psaAttendanceClock 考勤打卡 * @param attendanceClock 考勤打卡
* @return 结果 * @return 结果
*/ */
public int updatePsaAttendanceClock(PsaAttendanceClock psaAttendanceClock); public int updateAttendanceClock(AttendanceClock attendanceClock);
/** /**
* 批量删除考勤打卡 * 批量删除考勤打卡
...@@ -50,7 +53,7 @@ public interface IPsaAttendanceClockService ...@@ -50,7 +53,7 @@ public interface IPsaAttendanceClockService
* @param ids 需要删除的考勤打卡主键集合 * @param ids 需要删除的考勤打卡主键集合
* @return 结果 * @return 结果
*/ */
public int deletePsaAttendanceClockByIds(Long[] ids); public int deleteAttendanceClockByIds(Long[] ids);
/** /**
* 删除考勤打卡信息 * 删除考勤打卡信息
...@@ -58,5 +61,7 @@ public interface IPsaAttendanceClockService ...@@ -58,5 +61,7 @@ public interface IPsaAttendanceClockService
* @param id 考勤打卡主键 * @param id 考勤打卡主键
* @return 结果 * @return 结果
*/ */
public int deletePsaAttendanceClockById(Long id); public int deleteAttendanceClockById(Long id);
void importAttendanceData(MultipartFile file) throws IOException;
} }
package com.ruoyi.system.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 考勤打卡对象 psa_attendance_clock
*
* @author gaoying
* @date 2025-02-24
*/
@Data
public class PsaAttendanceClock extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 申请日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date applicationDate;
/** 归属周期 */
@Excel(name = "归属周期")
private String attributionPeriod;
/** 关联用户表主键user_id */
@Excel(name = "关联用户表主键user_id")
private Long userId;
/** 关联部门表主键dept_id */
@Excel(name = "关联部门表主键dept_id")
private Long deptId;
/** 关联项目表主键 */
@Excel(name = "关联项目表主键")
private Long projectId;
/** 补签/打卡日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "补签/打卡日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date candidateDate;
/** 星期几 */
@Excel(name = "星期几")
private String week;
/** 0:导入 1:外勤 2:补卡 */
@Excel(name = "0:导入 1:外勤 2:补卡")
private String flag;
/** 上班打卡 0:否 1:是 */
@Excel(name = "上班打卡 0:否 1:是")
private String isClockIn;
/** 下班打卡 0:否 1:是 */
@Excel(name = "下班打卡 0:否 1:是")
private String isClockOut;
/** 补签事由说明 */
@Excel(name = "补签事由说明")
private String reason;
/** 上班打卡时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date checkInTime;
/** 下班签退时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下班签退时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date signOutTime;
/** 打卡状态 0:正常签到 1:早退 2:迟到 3: 正常签退 */
@Excel(name = "打卡状态 0:正常签到 1:早退 2:迟到 3: 正常签退")
private String checkInStatus;
/** 迟到分钟数 */
@Excel(name = "迟到分钟数")
private String lateByMinutes;
/** 早退分钟数 */
@Excel(name = "早退分钟数")
private String leaveEarlyMinutes;
/** 提交人 */
@Excel(name = "提交人")
private String creatBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date creatTime;
}
package com.ruoyi.system.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.PsaAttendanceClockMapper;
import com.ruoyi.system.domain.PsaAttendanceClock;
import com.ruoyi.system.service.IPsaAttendanceClockService;
/**
* 考勤打卡Service业务层处理
*
* @author ruoyi
* @date 2025-02-24
*/
@Service
public class PsaAttendanceClockServiceImpl implements IPsaAttendanceClockService
{
@Autowired
private PsaAttendanceClockMapper psaAttendanceClockMapper;
/**
* 查询考勤打卡
*
* @param id 考勤打卡主键
* @return 考勤打卡
*/
@Override
public PsaAttendanceClock selectPsaAttendanceClockById(Long id)
{
return psaAttendanceClockMapper.selectPsaAttendanceClockById(id);
}
/**
* 查询考勤打卡列表
*
* @param psaAttendanceClock 考勤打卡
* @return 考勤打卡
*/
@Override
public List<PsaAttendanceClock> selectPsaAttendanceClockList(PsaAttendanceClock psaAttendanceClock)
{
return psaAttendanceClockMapper.selectPsaAttendanceClockList(psaAttendanceClock);
}
/**
* 新增考勤打卡
*
* @param psaAttendanceClock 考勤打卡
* @return 结果
*/
@Override
public int insertPsaAttendanceClock(PsaAttendanceClock psaAttendanceClock)
{
return psaAttendanceClockMapper.insertPsaAttendanceClock(psaAttendanceClock);
}
/**
* 修改考勤打卡
*
* @param psaAttendanceClock 考勤打卡
* @return 结果
*/
@Override
public int updatePsaAttendanceClock(PsaAttendanceClock psaAttendanceClock)
{
psaAttendanceClock.setUpdateTime(DateUtils.getNowDate());
return psaAttendanceClockMapper.updatePsaAttendanceClock(psaAttendanceClock);
}
/**
* 批量删除考勤打卡
*
* @param ids 需要删除的考勤打卡主键
* @return 结果
*/
@Override
public int deletePsaAttendanceClockByIds(Long[] ids)
{
return psaAttendanceClockMapper.deletePsaAttendanceClockByIds(ids);
}
/**
* 删除考勤打卡信息
*
* @param id 考勤打卡主键
* @return 结果
*/
@Override
public int deletePsaAttendanceClockById(Long id)
{
return psaAttendanceClockMapper.deletePsaAttendanceClockById(id);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment