Commit 78e154b2 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 327fc696 2488b616
...@@ -209,15 +209,20 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -209,15 +209,20 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
attendanceRecordQuery.setAttendanceDateStart(DateUtil.beginOfMonth(new Date()).toDateStr()); attendanceRecordQuery.setAttendanceDateStart(DateUtil.beginOfMonth(new Date()).toDateStr());
attendanceRecordQuery.setAttendanceDateEnd(DateUtil.today()); attendanceRecordQuery.setAttendanceDateEnd(DateUtil.today());
List<AttendanceRecordEntity> attendanceRecordEntities = recordService.find(attendanceRecordQuery); List<AttendanceRecordEntity> attendanceRecordEntities = recordService.find(attendanceRecordQuery);
//总打卡人次
long total = recordHikService.find(hikQuery).parallelStream().map(item -> item.getStaffId()).distinct().count();
//long total = attendanceRecordEntities.parallelStream().map(item -> item.getStaffId()).distinct().count(); //获取当月打卡人数,如果存在
Long totalCache = cacheService.hget(RedisKey.KEY_ATTENC_TOTOAL_CACHE, DateUtil.format(new Date(), "yyyy-MM"), Long.class);
if (ObjectUtils.isEmpty(totalCache)) {
totalCache = recordHikService.find(hikQuery).parallelStream().map(item -> item.getStaffId()).distinct().count();
cacheService.hset(RedisKey.KEY_ATTENC_TOTOAL_CACHE, DateUtil.format(new Date(), "yyyy-MM"), totalCache);
}
//迟到次数 //迟到次数
long beLate = attendanceRecordEntities.parallelStream() long beLate = attendanceRecordEntities.parallelStream()
.flatMap(item -> item.getAttendanceRecordDetailList().stream()) .flatMap(item -> item.getAttendanceRecordDetailList().stream())
.filter(f -> GoWorkResultEnum.迟到.getValue() == f.getGoWorkResult() || OffWorkResultEnum.迟到.getValue() == f.getOffWorkResult()) .filter(f -> GoWorkResultEnum.迟到.getValue() == f.getGoWorkResult() || OffWorkResultEnum.迟到.getValue() == f.getOffWorkResult())
.map(i->i.getStaffId()) .map(i -> i.getStaffId())
.distinct() .distinct()
.count(); .count();
...@@ -225,7 +230,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -225,7 +230,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
long leaveEarly = attendanceRecordEntities.parallelStream() long leaveEarly = attendanceRecordEntities.parallelStream()
.flatMap(item -> item.getAttendanceRecordDetailList().stream()) .flatMap(item -> item.getAttendanceRecordDetailList().stream())
.filter(f -> GoWorkResultEnum.早退.getValue() == f.getGoWorkResult() || OffWorkResultEnum.早退.getValue() == f.getOffWorkResult()) .filter(f -> GoWorkResultEnum.早退.getValue() == f.getGoWorkResult() || OffWorkResultEnum.早退.getValue() == f.getOffWorkResult())
.map(i->i.getStaffId()) .map(i -> i.getStaffId())
.distinct() .distinct()
.count(); .count();
...@@ -233,7 +238,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -233,7 +238,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
long lackOfCards = attendanceRecordEntities.parallelStream() long lackOfCards = attendanceRecordEntities.parallelStream()
.flatMap(item -> item.getAttendanceRecordDetailList().stream()) .flatMap(item -> item.getAttendanceRecordDetailList().stream())
.filter(f -> GoWorkResultEnum.缺卡.getValue() == f.getGoWorkResult() || OffWorkResultEnum.缺卡.getValue() == f.getOffWorkResult()) .filter(f -> GoWorkResultEnum.缺卡.getValue() == f.getGoWorkResult() || OffWorkResultEnum.缺卡.getValue() == f.getOffWorkResult())
.map(i->i.getStaffId()) .map(i -> i.getStaffId())
.distinct() .distinct()
.count(); .count();
...@@ -259,12 +264,12 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -259,12 +264,12 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
.count(); .count();
//异常考勤记录 //异常考勤记录
//未考勤 //未考勤
// long noAtt=lackOfCards; // long noAtt=lackOfCards;
long att = totalAttend - lackOfCardsAttend-levealPersonNum; long att = totalAttend - lackOfCardsAttend - levealPersonNum;
if (att!=0L){ if (att != 0L) {
BigDecimal bigDecimal = new BigDecimal(att).divide(new BigDecimal(totalAttend),4,BigDecimal.ROUND_CEILING).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_CEILING); BigDecimal bigDecimal = new BigDecimal(att).divide(new BigDecimal(totalAttend), 4, BigDecimal.ROUND_CEILING).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_CEILING);
homeStatInfo.setAttendRadio(bigDecimal.toString()+"%"); homeStatInfo.setAttendRadio(bigDecimal.toString() + "%");
}else{ } else {
homeStatInfo.setAttendRadio("0%"); homeStatInfo.setAttendRadio("0%");
} }
...@@ -272,7 +277,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -272,7 +277,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
homeStatInfo.setLatePersonNum(beLate); homeStatInfo.setLatePersonNum(beLate);
homeStatInfo.setLeftEarlyPersonNum(leaveEarly); homeStatInfo.setLeftEarlyPersonNum(leaveEarly);
homeStatInfo.setMissCardPersonNum(lackOfCards); homeStatInfo.setMissCardPersonNum(lackOfCards);
homeStatInfo.setAttendPersonNum(total); homeStatInfo.setAttendPersonNum(totalCache);
data.put("homeStat", homeStatInfo); data.put("homeStat", homeStatInfo);
data.put("token", token); data.put("token", token);
...@@ -289,7 +294,6 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -289,7 +294,6 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
} }
@RequestMapping("validcode") @RequestMapping("validcode")
public String validCode(HttpServletRequest request, HttpServletResponse response, LoginForm loginForm) { public String validCode(HttpServletRequest request, HttpServletResponse response, LoginForm loginForm) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
......
...@@ -16,4 +16,9 @@ public class RedisKey { ...@@ -16,4 +16,9 @@ public class RedisKey {
*/ */
public static final String KEY_DINGTALK_ACCESSTOKEN_CACHE = "dingtalk:token:"; public static final String KEY_DINGTALK_ACCESSTOKEN_CACHE = "dingtalk:token:";
/**
* 每月打卡人数
*/
public static final String KEY_ATTENC_TOTOAL_CACHE = "attend:total";
} }
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