|
@@ -58,6 +58,7 @@ import java.nio.charset.Charset;
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.Year;
|
|
import java.time.Year;
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.Stream;
|
|
@@ -132,6 +133,8 @@ public class SmartUserController implements SmartUserControllerAPI {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SmartOperationUserService smartOperationUserService;
|
|
private SmartOperationUserService smartOperationUserService;
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
private static Logger logger = LoggerFactory.getLogger(SmartUserController.class);
|
|
private static Logger logger = LoggerFactory.getLogger(SmartUserController.class);
|
|
|
|
|
|
|
|
//region 开发自己导数据用的接口
|
|
//region 开发自己导数据用的接口
|
|
@@ -4890,6 +4893,69 @@ public class SmartUserController implements SmartUserControllerAPI {
|
|
|
|
|
|
|
|
return CommonResult.ok(list);
|
|
return CommonResult.ok(list);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @DESRespondSecret(validated = true)
|
|
|
|
|
+ public CommonResult statisticsCampus(Integer classId, String dateTime) {
|
|
|
|
|
+ DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ LocalDateTime startTime = LocalDateTime.parse(dateTime, dateTimeFormatter1);
|
|
|
|
|
+ LocalDateTime endTime = startTime.plusDays(1);
|
|
|
|
|
+// 正常
|
|
|
|
|
+ Set<StatisticsCampusVo> vos = new HashSet<>();
|
|
|
|
|
+
|
|
|
|
|
+// 查找门禁记录
|
|
|
|
|
+ List<StatisticsCampusVo> accessVos=smartUserService.getAccessStatisticsCampus(classId,startTime,endTime);
|
|
|
|
|
+ for (StatisticsCampusVo accessVo : accessVos) {
|
|
|
|
|
+ vos.add(accessVo);
|
|
|
|
|
+ }
|
|
|
|
|
+// 查找打卡记录
|
|
|
|
|
+ List<StatisticsCampusVo> attendanceVos=smartUserService.getAttendanceStatisticsCampus(classId,startTime,endTime);
|
|
|
|
|
+ for (StatisticsCampusVo attendanceVo : attendanceVos) {
|
|
|
|
|
+ vos.add(attendanceVo);
|
|
|
|
|
+ }
|
|
|
|
|
+// 查找人脸记录
|
|
|
|
|
+ List<StatisticsCampusVo> faceDiscernVos=smartUserService.getFaceDiscernStatisticsCampus(classId,startTime,endTime);
|
|
|
|
|
+ for (StatisticsCampusVo faceDiscernVo : faceDiscernVos) {
|
|
|
|
|
+ vos.add(faceDiscernVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// 查找请假记录
|
|
|
|
|
+ List<StatisticsCampusVo> ackVos= smartUserService.getAckStatisticsCampus(classId,startTime,endTime);
|
|
|
|
|
+ for (StatisticsCampusVo ackVo : ackVos) {
|
|
|
|
|
+ vos.add(ackVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// 查找该班级下的所有人
|
|
|
|
|
+ List<StatisticsCampusVo> campusVos= smartUserService.getClassStudent(classId);
|
|
|
|
|
+
|
|
|
|
|
+// 不在正常记录里面的就是异常记录
|
|
|
|
|
+ ArrayList<StatisticsCampusVo> abnormalVos = new ArrayList<>();
|
|
|
|
|
+ for (StatisticsCampusVo campusVo : campusVos) {
|
|
|
|
|
+ if (!vos.contains(campusVo)) {
|
|
|
|
|
+ abnormalVos.add(campusVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ HashMap<String, Object> normal = new HashMap<>();
|
|
|
|
|
+ normal.put("date",vos);
|
|
|
|
|
+ normal.put("count",vos.size());
|
|
|
|
|
+
|
|
|
|
|
+ HashMap<String, Object> ack = new HashMap<>();
|
|
|
|
|
+ ack.put("date",ackVos);
|
|
|
|
|
+ ack.put("count",ackVos.size());
|
|
|
|
|
+
|
|
|
|
|
+ HashMap<String, Object> abnormal = new HashMap<>();
|
|
|
|
|
+ abnormal.put("date",abnormalVos);
|
|
|
|
|
+ abnormal.put("count",abnormalVos.size());
|
|
|
|
|
+
|
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
|
+ jsonObject.put("normal",normal);
|
|
|
|
|
+ jsonObject.put("ack",ack);
|
|
|
|
|
+ jsonObject.put("abnormal",abnormal);
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok(jsonObject);
|
|
|
|
|
+ }
|
|
|
//endregion
|
|
//endregion
|
|
|
|
|
|
|
|
//region 用户导出
|
|
//region 用户导出
|