diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
index f8101d5..80efcde 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
@@ -47,7 +47,7 @@
${ew.sqlSegment}
- ORDER BY a.CREATE_TIME
+ ORDER BY a.ON_JOB_TIME DESC
diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
index f8101d5..80efcde 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
@@ -47,7 +47,7 @@
${ew.sqlSegment}
- ORDER BY a.CREATE_TIME
+ ORDER BY a.ON_JOB_TIME DESC
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
index 649d4b2..eef1b04 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
@@ -7,6 +7,7 @@
import com.casic.missiles.modular.system.dto.PersonAttendDTO;
import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import java.util.Date;
import java.util.List;
/**
@@ -34,4 +35,6 @@
* @param account
*/
void saveUserLog(String account,Integer Long);
+
+ int getLogCount(Long personId, Date base, Integer minute);
}
diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
index f8101d5..80efcde 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
@@ -47,7 +47,7 @@
${ew.sqlSegment}
- ORDER BY a.CREATE_TIME
+ ORDER BY a.ON_JOB_TIME DESC
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
index 649d4b2..eef1b04 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
@@ -7,6 +7,7 @@
import com.casic.missiles.modular.system.dto.PersonAttendDTO;
import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import java.util.Date;
import java.util.List;
/**
@@ -34,4 +35,6 @@
* @param account
*/
void saveUserLog(String account,Integer Long);
+
+ int getLogCount(Long personId, Date base, Integer minute);
}
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
index 0073d15..bf11313 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
@@ -88,6 +88,21 @@
}
@Override
+ public int getLogCount(Long personId, Date base, Integer minute) {
+ EntityWrapper wrapper = new EntityWrapper<>();
+
+ Calendar calender = Calendar.getInstance();
+ calender.setTime(base);
+ calender.add(Calendar.MINUTE, -1 * minute);
+
+ wrapper.eq("PERSON_ID", personId);
+ wrapper.ge("ON_JOB_TIME", calender.getTime());
+ wrapper.le("ON_JOB_TIME", base);
+
+ return selectCount(wrapper);
+ }
+
+ @Override
public boolean insert(PersonAttendanceLog entity) {
//人员添加自动增加用户信息
return super.insert(entity);
diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
index f8101d5..80efcde 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
@@ -47,7 +47,7 @@
${ew.sqlSegment}
- ORDER BY a.CREATE_TIME
+ ORDER BY a.ON_JOB_TIME DESC
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
index 649d4b2..eef1b04 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
@@ -7,6 +7,7 @@
import com.casic.missiles.modular.system.dto.PersonAttendDTO;
import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import java.util.Date;
import java.util.List;
/**
@@ -34,4 +35,6 @@
* @param account
*/
void saveUserLog(String account,Integer Long);
+
+ int getLogCount(Long personId, Date base, Integer minute);
}
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
index 0073d15..bf11313 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
@@ -88,6 +88,21 @@
}
@Override
+ public int getLogCount(Long personId, Date base, Integer minute) {
+ EntityWrapper wrapper = new EntityWrapper<>();
+
+ Calendar calender = Calendar.getInstance();
+ calender.setTime(base);
+ calender.add(Calendar.MINUTE, -1 * minute);
+
+ wrapper.eq("PERSON_ID", personId);
+ wrapper.ge("ON_JOB_TIME", calender.getTime());
+ wrapper.le("ON_JOB_TIME", base);
+
+ return selectCount(wrapper);
+ }
+
+ @Override
public boolean insert(PersonAttendanceLog entity) {
//人员添加自动增加用户信息
return super.insert(entity);
diff --git a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java
new file mode 100644
index 0000000..48c5a2b
--- /dev/null
+++ b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.modular.toilet.job;
+
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.util.RandomUtil;
+import com.casic.missiles.modular.staff.dto.StaffDto;
+import com.casic.missiles.modular.staff.service.IStaffService;
+import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import com.casic.missiles.modular.system.service.IPersonAttendanceLogService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+@Slf4j
+@Component
+public class StaffPresentJobHandler {
+
+ @Resource
+ private IPersonAttendanceLogService personAttendanceLogService;
+
+ @Resource
+ private IStaffService staffService;
+
+ @XxlJob(value = "staffPresentHandler")
+ public ReturnT execute(String param) throws Exception {
+ log.debug("创建人员出勤记录任务开始");
+
+ List staffList = staffService.list("", "", "", "", "");
+ for (StaffDto staffDto : staffList) {
+ // 电话号码为登录名 不能为空
+ if (staffDto.getTel().isEmpty()) {
+ continue;
+ }
+
+ // 每次只筛选10%的人员打卡出勤
+ int random = RandomUtil.randomInt(0, 10);
+ if (staffDto.getId() % 10 != random) {
+ continue;
+ }
+
+ // 执行时间之前的随机时间
+ Date presentTime = RandomUtil.randomDate(Calendar.getInstance().getTime(), DateField.SECOND, -60 * 60, 0);
+
+ // 判断4小时之内是否有打卡记录
+ int count = personAttendanceLogService.getLogCount(staffDto.getId(), presentTime, 6 * 60);
+ if (count > 0) {
+ continue;
+ }
+
+ PersonAttendanceLog log = new PersonAttendanceLog();
+ log.setPersonId(staffDto.getId());
+ log.setOnJobTime(presentTime);
+ log.setCreateTime(presentTime);
+ log.setStatus("0");
+ log.setUpdateTime(presentTime);
+ personAttendanceLogService.insert(log);
+ }
+
+ log.info("创建人员出勤记录成功");
+ return SUCCESS;
+ }
+}
diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml
index 0f992bb..5749c9a 100644
--- a/casic-service-person/pom.xml
+++ b/casic-service-person/pom.xml
@@ -49,6 +49,12 @@
casic-export-support
${admin.version}
+
+
+ cn.hutool
+ hutool-all
+ 5.8.31
+
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
index f8101d5..80efcde 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/dao/mapping/PersonAttendanceLogMapper.xml
@@ -47,7 +47,7 @@
${ew.sqlSegment}
- ORDER BY a.CREATE_TIME
+ ORDER BY a.ON_JOB_TIME DESC
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
index 649d4b2..eef1b04 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/IPersonAttendanceLogService.java
@@ -7,6 +7,7 @@
import com.casic.missiles.modular.system.dto.PersonAttendDTO;
import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import java.util.Date;
import java.util.List;
/**
@@ -34,4 +35,6 @@
* @param account
*/
void saveUserLog(String account,Integer Long);
+
+ int getLogCount(Long personId, Date base, Integer minute);
}
diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
index 0073d15..bf11313 100644
--- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
+++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/service/impl/PersonAttendanceLogServiceImpl.java
@@ -88,6 +88,21 @@
}
@Override
+ public int getLogCount(Long personId, Date base, Integer minute) {
+ EntityWrapper wrapper = new EntityWrapper<>();
+
+ Calendar calender = Calendar.getInstance();
+ calender.setTime(base);
+ calender.add(Calendar.MINUTE, -1 * minute);
+
+ wrapper.eq("PERSON_ID", personId);
+ wrapper.ge("ON_JOB_TIME", calender.getTime());
+ wrapper.le("ON_JOB_TIME", base);
+
+ return selectCount(wrapper);
+ }
+
+ @Override
public boolean insert(PersonAttendanceLog entity) {
//人员添加自动增加用户信息
return super.insert(entity);
diff --git a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java
new file mode 100644
index 0000000..48c5a2b
--- /dev/null
+++ b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/StaffPresentJobHandler.java
@@ -0,0 +1,70 @@
+package com.casic.missiles.modular.toilet.job;
+
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.util.RandomUtil;
+import com.casic.missiles.modular.staff.dto.StaffDto;
+import com.casic.missiles.modular.staff.service.IStaffService;
+import com.casic.missiles.modular.system.model.PersonAttendanceLog;
+import com.casic.missiles.modular.system.service.IPersonAttendanceLogService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import static com.xxl.job.core.biz.model.ReturnT.SUCCESS;
+
+@Slf4j
+@Component
+public class StaffPresentJobHandler {
+
+ @Resource
+ private IPersonAttendanceLogService personAttendanceLogService;
+
+ @Resource
+ private IStaffService staffService;
+
+ @XxlJob(value = "staffPresentHandler")
+ public ReturnT execute(String param) throws Exception {
+ log.debug("创建人员出勤记录任务开始");
+
+ List staffList = staffService.list("", "", "", "", "");
+ for (StaffDto staffDto : staffList) {
+ // 电话号码为登录名 不能为空
+ if (staffDto.getTel().isEmpty()) {
+ continue;
+ }
+
+ // 每次只筛选10%的人员打卡出勤
+ int random = RandomUtil.randomInt(0, 10);
+ if (staffDto.getId() % 10 != random) {
+ continue;
+ }
+
+ // 执行时间之前的随机时间
+ Date presentTime = RandomUtil.randomDate(Calendar.getInstance().getTime(), DateField.SECOND, -60 * 60, 0);
+
+ // 判断4小时之内是否有打卡记录
+ int count = personAttendanceLogService.getLogCount(staffDto.getId(), presentTime, 6 * 60);
+ if (count > 0) {
+ continue;
+ }
+
+ PersonAttendanceLog log = new PersonAttendanceLog();
+ log.setPersonId(staffDto.getId());
+ log.setOnJobTime(presentTime);
+ log.setCreateTime(presentTime);
+ log.setStatus("0");
+ log.setUpdateTime(presentTime);
+ personAttendanceLogService.insert(log);
+ }
+
+ log.info("创建人员出勤记录成功");
+ return SUCCESS;
+ }
+}
diff --git a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/ToiletCleanJobHandler.java b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/ToiletCleanJobHandler.java
index e11a06b..7f9437d 100644
--- a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/ToiletCleanJobHandler.java
+++ b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/job/ToiletCleanJobHandler.java
@@ -47,9 +47,9 @@
cleanLog.setDelFlag("0");
// 随机数
- int randomMinute = RandomUtil.randomInt(0, 90);
+ int randomSec = RandomUtil.randomInt(0, 90 * 60);
Calendar workTime = Calendar.getInstance();
- workTime.add(Calendar.MINUTE, -1 * randomMinute);
+ workTime.add(Calendar.SECOND, -1 * randomSec);
// 工作时间
cleanLog.setStartTime(workTime.getTime());