|
@@ -4,7 +4,9 @@ package com.ruoyi.system.service;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.common.utils.HolidayUtils;
|
|
import com.ruoyi.common.utils.HolidayUtils;
|
|
|
|
+import com.ruoyi.system.domain.AttendanceTime;
|
|
import com.ruoyi.system.domain.KaoqinRecord;
|
|
import com.ruoyi.system.domain.KaoqinRecord;
|
|
|
|
+import com.ruoyi.system.mapper.AttendanceTimeMapper;
|
|
import com.ruoyi.system.mapper.KaoqinRecordMapper;
|
|
import com.ruoyi.system.mapper.KaoqinRecordMapper;
|
|
import com.ruoyi.system.mapper.SysUserMapper;
|
|
import com.ruoyi.system.mapper.SysUserMapper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -14,6 +16,8 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Component
|
|
@Component
|
|
public class Task {
|
|
public class Task {
|
|
@@ -22,6 +26,8 @@ public class Task {
|
|
private SysUserMapper userMapper;
|
|
private SysUserMapper userMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private KaoqinRecordMapper kaoqinRecordMapper;
|
|
private KaoqinRecordMapper kaoqinRecordMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private AttendanceTimeMapper attendanceTimeMapper;
|
|
|
|
|
|
/***
|
|
/***
|
|
* 定时插入未打卡数据
|
|
* 定时插入未打卡数据
|
|
@@ -30,14 +36,20 @@ public class Task {
|
|
//@Scheduled(cron = "0 0/2 * * * ? ")
|
|
//@Scheduled(cron = "0 0/2 * * * ? ")
|
|
@Scheduled(cron = "0 1 0 * * ? ")
|
|
@Scheduled(cron = "0 1 0 * * ? ")
|
|
public void thirdNucleicAcid() {
|
|
public void thirdNucleicAcid() {
|
|
|
|
+ String day = DateUtils.getDate();
|
|
//获取前一天的日期
|
|
//获取前一天的日期
|
|
String data = DateUtils.plusSeconds(DateUtils.getDate(),-1,"yyyy-MM-dd");
|
|
String data = DateUtils.plusSeconds(DateUtils.getDate(),-1,"yyyy-MM-dd");
|
|
- //判断前一天是否是法定节假日 0 上班 1周末 2节假日
|
|
|
|
|
|
+ //判断当天天是否是法定节假日 0 上班 1周末 2节假日
|
|
String jsonResult = HolidayUtils.request(data);
|
|
String jsonResult = HolidayUtils.request(data);
|
|
if(!"0".equals(jsonResult)){
|
|
if(!"0".equals(jsonResult)){
|
|
//是节假日的话不需要插入数据,直接返回
|
|
//是节假日的话不需要插入数据,直接返回
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ //查询考勤规则
|
|
|
|
+ AttendanceTime attendanceTime = new AttendanceTime();
|
|
|
|
+ List<AttendanceTime> attendanceTimes = attendanceTimeMapper.selectAttendanceTimeList(attendanceTime);
|
|
|
|
+ //根据部门分类
|
|
|
|
+ //Map<Long, List<AttendanceTime>> collect = attendanceTimes.stream().collect(Collectors.groupingBy(AttendanceTime::getDeptId));
|
|
//获取所有有部门的人员
|
|
//获取所有有部门的人员
|
|
List<SysUser> userList = userMapper.selectUserListNoDept();
|
|
List<SysUser> userList = userMapper.selectUserListNoDept();
|
|
//获取前一天的所有考勤记录
|
|
//获取前一天的所有考勤记录
|
|
@@ -45,6 +57,18 @@ public class Task {
|
|
kaoqinRecord.setKaTime(data);
|
|
kaoqinRecord.setKaTime(data);
|
|
List<KaoqinRecord> kaoqinRecordList = kaoqinRecordMapper.selectKaoqinRecordList(kaoqinRecord);
|
|
List<KaoqinRecord> kaoqinRecordList = kaoqinRecordMapper.selectKaoqinRecordList(kaoqinRecord);
|
|
for (SysUser sysUser : userList) {
|
|
for (SysUser sysUser : userList) {
|
|
|
|
+ boolean blt = false;
|
|
|
|
+ if(attendanceTimes != null && !attendanceTimes.isEmpty()){
|
|
|
|
+ for (AttendanceTime time : attendanceTimes) {
|
|
|
|
+ if(time.getDeptName().contains(sysUser.getDept().getDeptName()) && DateUtils.isDateBetween(DateUtils.convertStringToDate(data), time.getStartTime(), time.getEndTime())){
|
|
|
|
+ blt = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(!blt){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
boolean bl = true;
|
|
boolean bl = true;
|
|
for (KaoqinRecord record : kaoqinRecordList) {
|
|
for (KaoqinRecord record : kaoqinRecordList) {
|
|
if(record.getUserId().equals(sysUser.getUserId())){
|
|
if(record.getUserId().equals(sysUser.getUserId())){
|
|
@@ -57,6 +81,7 @@ public class Task {
|
|
KaoqinRecord kaoqinRecords = new KaoqinRecord();
|
|
KaoqinRecord kaoqinRecords = new KaoqinRecord();
|
|
kaoqinRecords.setUserId(sysUser.getUserId());
|
|
kaoqinRecords.setUserId(sysUser.getUserId());
|
|
kaoqinRecords.setUserName(sysUser.getNickName());
|
|
kaoqinRecords.setUserName(sysUser.getNickName());
|
|
|
|
+ kaoqinRecords.setPhone(sysUser.getPhonenumber());
|
|
kaoqinRecords.setDeptId(sysUser.getDeptId());
|
|
kaoqinRecords.setDeptId(sysUser.getDeptId());
|
|
kaoqinRecords.setDeptName(sysUser.getDept().getDeptName());
|
|
kaoqinRecords.setDeptName(sysUser.getDept().getDeptName());
|
|
kaoqinRecords.setAncestors(sysUser.getDept().getAncestors());
|
|
kaoqinRecords.setAncestors(sysUser.getDept().getAncestors());
|