|
@@ -443,6 +443,10 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
//每次获取到截屏后计算并处理
|
|
//每次获取到截屏后计算并处理
|
|
private void calculateTime(Screenshot screenshot) {
|
|
private void calculateTime(Screenshot screenshot) {
|
|
try {
|
|
try {
|
|
|
|
+ //如果图片类型为空 则认为是0-编程
|
|
|
|
+ if(screenshot.getPicType() == null){
|
|
|
|
+ screenshot.setPicType(0);
|
|
|
|
+ }
|
|
//默认状态为不连续 如果下面判断是连续才会修改为true
|
|
//默认状态为不连续 如果下面判断是连续才会修改为true
|
|
Boolean isConsecutive = false;
|
|
Boolean isConsecutive = false;
|
|
//获取本人当天结束时间为准的最后一条记录
|
|
//获取本人当天结束时间为准的最后一条记录
|
|
@@ -453,8 +457,11 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
.last("LIMIT 1"));
|
|
.last("LIMIT 1"));
|
|
//单独记录当前的时间以便使用
|
|
//单独记录当前的时间以便使用
|
|
LocalTime currentTime = screenshot.getIndate().toLocalTime();
|
|
LocalTime currentTime = screenshot.getIndate().toLocalTime();
|
|
|
|
+ log.info("开始处理图片");
|
|
|
|
+ log.info("上一条记录latestRecord: " + latestRecord);
|
|
if (latestRecord != null) {
|
|
if (latestRecord != null) {
|
|
//首先对比类型
|
|
//首先对比类型
|
|
|
|
+ log.info("类型是否相同: " + latestRecord.getActionType().equals(screenshot.getPicType()));
|
|
if (latestRecord.getActionType().equals(screenshot.getPicType())) {
|
|
if (latestRecord.getActionType().equals(screenshot.getPicType())) {
|
|
//如果有记录的话 准备计算上次结束和新的开始的时间差
|
|
//如果有记录的话 准备计算上次结束和新的开始的时间差
|
|
LocalTime estimatedTime = latestRecord.getEndTime();
|
|
LocalTime estimatedTime = latestRecord.getEndTime();
|
|
@@ -462,12 +469,14 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
+ (currentTime.getMinute() - estimatedTime.getMinute()) * 60
|
|
+ (currentTime.getMinute() - estimatedTime.getMinute()) * 60
|
|
+ (currentTime.getSecond() - estimatedTime.getSecond()));
|
|
+ (currentTime.getSecond() - estimatedTime.getSecond()));
|
|
//断层不大于600秒的话
|
|
//断层不大于600秒的话
|
|
|
|
+ log.info("间隔时间durationSecond: " + durationSecond + " 结果" + (durationSecond <= DETECTION_INTERVAL));
|
|
if (durationSecond <= DETECTION_INTERVAL) {
|
|
if (durationSecond <= DETECTION_INTERVAL) {
|
|
//确认连续 将状态改为连续
|
|
//确认连续 将状态改为连续
|
|
isConsecutive = true;
|
|
isConsecutive = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ log.info("连续状态: " + isConsecutive);
|
|
if (isConsecutive) {
|
|
if (isConsecutive) {
|
|
//如果是连续的话那就准备修改上一条记录的最后时间和持续时间
|
|
//如果是连续的话那就准备修改上一条记录的最后时间和持续时间
|
|
LocalTime startTime = latestRecord.getStartTime();
|
|
LocalTime startTime = latestRecord.getStartTime();
|
|
@@ -483,8 +492,8 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
|
|
TimeCalculation timeCalculation = new TimeCalculation();
|
|
TimeCalculation timeCalculation = new TimeCalculation();
|
|
timeCalculation
|
|
timeCalculation
|
|
.setUserId(screenshot.getUid())
|
|
.setUserId(screenshot.getUid())
|
|
- //根据截图种类设置行为代号 如果为空则默认为正常 即0
|
|
|
|
- .setActionType(screenshot.getPicType() != null ? screenshot.getPicType() : 0)
|
|
|
|
|
|
+ //根据截图种类设置行为代号
|
|
|
|
+ .setActionType(screenshot.getPicType())
|
|
.setDate(screenshot.getIndate().toLocalDate())
|
|
.setDate(screenshot.getIndate().toLocalDate())
|
|
//设置开始时间和结束时间都为当前时间
|
|
//设置开始时间和结束时间都为当前时间
|
|
.setStartTime(currentTime)
|
|
.setStartTime(currentTime)
|