Browse Source

定时同步打卡数据

main
1341924763@qq.com 3 days ago
parent
commit
eb7f894f63

BIN
ruoyi-admin/src/main/resources/template/template-riben.xls View File


+ 61
- 43
zs-manager/src/main/java/com/ruoyi/zhushi/entity/EmployeeAttendance.java View File

@@ -3,60 +3,78 @@ package com.ruoyi.zhushi.entity;
import java.util.List;

public class EmployeeAttendance {
private String employeeName;
private String department;
private String dateTime;
private int year;
private int month;
private List<DayRecord> dayRecords;
private long userId;
private String employeeName;
private String nickName;
private String department;
private String dateTime;
private int year;
private int month;
private List<DayRecord> dayRecords;

// getters and setters
// getters and setters

public String getEmployeeName() {
return employeeName;
}
public long getUserId() {
return userId;
}

public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
public void setUserId(long userId) {
this.userId = userId;
}

public String getDepartment() {
return department;
}
public String getEmployeeName() {
return employeeName;
}

public void setDepartment(String department) {
this.department = department;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}

public String getDateTime() {
return dateTime;
}
public String getNickName() {
return nickName;
}

public void setDateTime(String dateTime) {
this.dateTime = dateTime;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}

public int getYear() {
return year;
}
public String getDepartment() {
return department;
}

public void setYear(int year) {
this.year = year;
}
public void setDepartment(String department) {
this.department = department;
}

public int getMonth() {
return month;
}
public String getDateTime() {
return dateTime;
}

public void setMonth(int month) {
this.month = month;
}
public void setDateTime(String dateTime) {
this.dateTime = dateTime;
}

public List<DayRecord> getDayRecords() {
return dayRecords;
}
public int getYear() {
return year;
}

public void setYear(int year) {
this.year = year;
}

public int getMonth() {
return month;
}

public void setMonth(int month) {
this.month = month;
}

public List<DayRecord> getDayRecords() {
return dayRecords;
}

public void setDayRecords(List<DayRecord> dayRecords) {
this.dayRecords = dayRecords;
}
public void setDayRecords(List<DayRecord> dayRecords) {
this.dayRecords = dayRecords;
}
}

+ 4
- 1
zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkRecordMapper.java View File

@@ -1,5 +1,6 @@
package com.ruoyi.zhushi.mapper;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.zhushi.entity.DkAttendanceGroup;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
@@ -18,5 +19,7 @@ public interface DkRecordMapper extends BaseMapperPlus<DkRecordMapper, DkCheckIn

DkAttendanceGroup queryConfigByUserId(@Param("userId") long userId);

DkCheckInRecord getRecordHistory(@Param("userId") long userId);
List<DkCheckInRecord> getRecordHistory(@Param("userId") long userId);

List<JSONObject> queryAllUsers();
}

+ 37
- 8
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkRecordServiceImpl.java View File

@@ -75,9 +75,9 @@ public class DkRecordServiceImpl implements DkRecordService {
if(flag != null){
queryWrapper.select(DkCheckInRecord::getSysUserName, DkCheckInRecord::getSysUserId);
queryWrapper.groupBy(DkCheckInRecord::getSysUserName).groupBy(DkCheckInRecord::getSysUserId);
}else{
queryWrapper.orderByDesc(DkCheckInRecord::getSysUserName).orderByDesc(DkCheckInRecord::getCheckInTime);
}

queryWrapper.orderByDesc(DkCheckInRecord::getSysUserName).orderByDesc(DkCheckInRecord::getCheckInTime);
return queryWrapper;
}

@@ -134,13 +134,13 @@ public class DkRecordServiceImpl implements DkRecordService {
Workbook workbook;
// 加载模板文件
if(Constans.GUONEI.equals(dkCheckInRecordDTO.getModelType())){
templateFile = new FileInputStream("template-guonei.xlsx");
// templateFile = new FileInputStream("template-guonei.xlsx");
// DkRecordServiceImpl.class.getClassLoader().getResourceAsStream("template/template-guonei.xlsx");
ClassPathResource resource = new ClassPathResource("template/template-guonei.xlsx");
inputStream = resource.getInputStream();
}
if(Constans.RIBEN.equals(dkCheckInRecordDTO.getModelType())){
templateFile = new FileInputStream("template-riben.xlsx");
// templateFile = new FileInputStream("template-riben.xlsx");
ClassPathResource resource = new ClassPathResource("template/template-riben.xlsx");
inputStream = resource.getInputStream();
}
@@ -233,7 +233,8 @@ public class DkRecordServiceImpl implements DkRecordService {
EmployeeAttendance data = new EmployeeAttendance();
// 设置员工的名字
data.setEmployeeName(dkCheckInRecordDTO.getSysUserName());

// 设置员工的id
data.setUserId(dkCheckInRecordDTO.getSysUserId());
// 判断月日是否为空
if(dkCheckInRecordDTO.getStrMonth() != null){
data.setDateTime(dkCheckInRecordDTO.getStrMonth());
@@ -386,6 +387,7 @@ public class DkRecordServiceImpl implements DkRecordService {

private void fillTemplate(Sheet sheet, EmployeeAttendance data) {
// 填充标题区域
setCellValue(sheet, 6, 6, data.getUserId());
setCellValue(sheet, 6, 10, data.getEmployeeName());
setCellValue(sheet, 3, 1, data.getDateTime());
// setCellValue(sheet, 2, 0, data.getYear() + "年" + data.getMonth() + "月考勤记录");
@@ -439,6 +441,15 @@ public class DkRecordServiceImpl implements DkRecordService {
EmployeeAttendance data = new EmployeeAttendance();
// 设置员工的名字
data.setEmployeeName(dkCheckInRecordDTO.getSysUserName());
// 设置员工id
data.setUserId(dkCheckInRecordDTO.getSysUserId());
// 判断月日是否为空
if(dkCheckInRecordDTO.getStrMonth() != null){
data.setDateTime(dkCheckInRecordDTO.getStrMonth());
}
if(dkCheckInRecordDTO.getStrDay() != null){
data.setDateTime(dkCheckInRecordDTO.getStrDay());
}

// 判断月日是否为空
if(dkCheckInRecordDTO.getStrMonth() != null){
@@ -469,7 +480,7 @@ public class DkRecordServiceImpl implements DkRecordService {
// 构造excel数据
for(DkCheckInRecordDTO dk : dkCheckInRecordDTOS){
// 根据打卡时间获取日期
LocalDate localDate = dk.getCheckInTime().toLocalDate();
LocalDate localDate = dk.getCheckInTime() != null ? dk.getCheckInTime().toLocalDate() : LocalDate.now();
// 构造当天开始打卡时间
String workStartTime = dkAttendanceGroup.getWorkStartTime();
LocalDateTime workStartTime1 = LocalDateTime.of(localDate, LocalTime.parse(workStartTime));
@@ -480,7 +491,24 @@ public class DkRecordServiceImpl implements DkRecordService {
// 构造DayRecord
DayRecord dayRecord = new DayRecord();
dayRecord.setDay(localDate.toString());
dayRecord.setWeekday(dk.getWeek());
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
int week = dayOfWeek.getValue();
if(week == Constans.EXPORT_ZHOUYI){

dayRecord.setWeekday("月");
}else if(week == Constans.EXPORT_ZHOUER){
dayRecord.setWeekday("火");
}else if(week == Constans.EXPORT_ZHOUSAN){
dayRecord.setWeekday("水");
}else if(week == Constans.EXPORT_ZHOUSI){
dayRecord.setWeekday("木");
}else if(week == Constans.EXPORT_ZHOUWU){
dayRecord.setWeekday("金");
} else if(week == Constans.EXPORT_ZHOULIU){
dayRecord.setWeekday("土");
}else if(week == Constans.EXPORT_ZHOURI){
dayRecord.setWeekday("日");
}
dayRecord.setStartTime(null != dk.getClockIn() ? dk.getClockIn().format(DateTimeFormatter.ofPattern("HH:mm")) : "");
dayRecord.setEndTime(null != dk.getClockOut() ? dk.getClockOut().format(DateTimeFormatter.ofPattern("HH:mm")) : "");
// 打卡异常判断
@@ -542,7 +570,8 @@ public class DkRecordServiceImpl implements DkRecordService {
private void fillTemplateRiBen(Sheet sheet, EmployeeAttendance data) {
// 填充标题区域
setCellValue(sheet, 5, 13, data.getEmployeeName());
setCellValue(sheet, 2, 1, data.getDateTime());
setCellValue(sheet, 5, 6, data.getUserId());
setCellValue(sheet, 2, 0, data.getDateTime());
// setCellValue(sheet, 2, 0, data.getYear() + "年" + data.getMonth() + "月考勤记录");

// 填充数据表格

+ 10
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/util/Constans.java View File

@@ -16,4 +16,14 @@ public class Constans {
public static final String GUONEI = "guonei";

public static final String RIBEN = "riben";

public static final int EXPORT_ZHOUYI = 1;
public static final int EXPORT_ZHOUER = 2;
public static final int EXPORT_ZHOUSAN = 3;
public static final int EXPORT_ZHOUSI = 4;
public static final int EXPORT_ZHOUWU = 5;
public static final int EXPORT_ZHOULIU = 6;
public static final int EXPORT_ZHOURI = 7;

public static final String CHECK_IN_STATUS_0 = "0";
}

+ 15
- 1
zs-manager/src/main/resources/mapper/DkRecordMapper.xml View File

@@ -18,7 +18,7 @@
<select id="getCurrentDayRecord" resultType="com.ruoyi.zhushi.entity.DkCheckInRecord">
select * from dk_check_in_record
<where>
create_time >= CURDATE() AND create_time &lt; CURDATE() + INTERVAL 1 DAY
(create_time BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) - INTERVAL 1 SECOND)
<if test="userId != null and userId != ''">
AND sys_user_id = #{userId}
</if>
@@ -34,4 +34,18 @@
</if>
</where>
</select>

<select id="queryAllUsers" resultType="com.alibaba.fastjson.JSONObject">
SELECT user_id userId, user_name userName FROM `sys_user`
</select>

<select id="getRecordHistory" resultType="com.ruoyi.zhushi.entity.DkCheckInRecord">
select * from dk_check_in_record
<where>
(check_in_time BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) - INTERVAL 1 SECOND)
<if test="userId != null">
AND sys_user_id = #{userId}
</if>
</where>
</select>
</mapper>

BIN
zs-manager/src/main/resources/template/template-riben.xls View File


Loading…
Cancel
Save