|
@@ -1,6 +1,13 @@
|
|
|
package Acs;
|
|
|
|
|
|
import NetSDKDemo.HCNetSDK;
|
|
|
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
+import cn.iocoder.yudao.module.system.controller.admin.studentAttendance.vo.StudentAttendanceSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.studentAttendance.StudentAttendanceDO;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
+import cn.iocoder.yudao.module.system.service.studentAttendance.StudentAttendanceService;
|
|
|
+import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
|
import com.sun.jna.Pointer;
|
|
|
|
|
|
import java.io.FileNotFoundException;
|
|
@@ -8,12 +15,21 @@ import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.nio.ByteBuffer;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
import cn.iocoder.yudao.module.md.service.*;
|
|
|
+
|
|
|
/**
|
|
|
* 事件查询模块
|
|
|
*/
|
|
|
public final class EventSearch {
|
|
|
|
|
|
+ private static StudentAttendanceService studentAttendanceService;
|
|
|
+ private static List<Object> studentAttendance =new ArrayList<>();
|
|
|
+ private static AdminUserService adminUserService;
|
|
|
/**
|
|
|
* 门禁事件查询,基于起止时间,事件类型进行查询
|
|
|
*
|
|
@@ -22,7 +38,7 @@ public final class EventSearch {
|
|
|
* @throws UnsupportedEncodingException
|
|
|
* @throws InterruptedException
|
|
|
*/
|
|
|
- public static String searchAllEvent(int lUserID) throws UnsupportedEncodingException, InterruptedException {
|
|
|
+ public static List<Object> searchAllEvent(int lUserID) throws UnsupportedEncodingException, InterruptedException {
|
|
|
int i = 0; //事件条数
|
|
|
HCNetSDK.NET_DVR_ACS_EVENT_COND struAcsEventCond = new HCNetSDK.NET_DVR_ACS_EVENT_COND();
|
|
|
struAcsEventCond.read();
|
|
@@ -32,20 +48,20 @@ public final class EventSearch {
|
|
|
struAcsEventCond.dwMinor = 0; //
|
|
|
//开始时间
|
|
|
struAcsEventCond.struStartTime.dwYear = 2024;
|
|
|
- struAcsEventCond.struStartTime.dwMonth = 8;
|
|
|
- struAcsEventCond.struStartTime.dwDay = 01;
|
|
|
+ struAcsEventCond.struStartTime.dwMonth = 10;
|
|
|
+ struAcsEventCond.struStartTime.dwDay = 21;
|
|
|
struAcsEventCond.struStartTime.dwHour = 0;
|
|
|
struAcsEventCond.struStartTime.dwMinute = 0;
|
|
|
struAcsEventCond.struStartTime.dwSecond = 0;
|
|
|
//结束时间
|
|
|
struAcsEventCond.struEndTime.dwYear = 2024;
|
|
|
struAcsEventCond.struEndTime.dwMonth = 10;
|
|
|
- struAcsEventCond.struEndTime.dwDay = 9;
|
|
|
+ struAcsEventCond.struEndTime.dwDay = 21;
|
|
|
struAcsEventCond.struEndTime.dwHour = 23;
|
|
|
struAcsEventCond.struEndTime.dwMinute = 59;
|
|
|
struAcsEventCond.struEndTime.dwSecond = 59;
|
|
|
struAcsEventCond.wInductiveEventType = 1;
|
|
|
- struAcsEventCond.byPicEnable = 1; //是否带图片,0-不带图片,1-带图片
|
|
|
+ struAcsEventCond.byPicEnable = 0; //是否带图片,0-不带图片,1-带图片
|
|
|
struAcsEventCond.write();
|
|
|
Pointer ptrStruEventCond = struAcsEventCond.getPointer();
|
|
|
int m_lSearchEventHandle = AcsService.hCNetSDK.NET_DVR_StartRemoteConfig(lUserID, HCNetSDK.NET_DVR_GET_ACS_EVENT, ptrStruEventCond, struAcsEventCond.size(), null, null);
|
|
@@ -91,6 +107,40 @@ public final class EventSearch {
|
|
|
" 时:"+struAcsEventCfg.struTime.dwHour+" 分:"+struAcsEventCfg.struTime.dwMinute+" 秒:"+struAcsEventCfg.struTime.dwSecond);
|
|
|
System.out.println("刷卡信息:"+new String(struAcsEventCfg.struAcsEventInfo.byCardNo));
|
|
|
|
|
|
+ String clockInTime = (struAcsEventCfg.struTime.dwYear + "-" +
|
|
|
+ String.format("%02d", struAcsEventCfg.struTime.dwMonth) + "-" +
|
|
|
+ String.format("%02d", struAcsEventCfg.struTime.dwDay) + " " +
|
|
|
+ String.format("%02d", struAcsEventCfg.struTime.dwHour) + ":" +
|
|
|
+ String.format("%02d", struAcsEventCfg.struTime.dwMinute) + ":" +
|
|
|
+ String.format("%02d", struAcsEventCfg.struTime.dwSecond));
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ LocalDateTime parsedTime =null;
|
|
|
+ String employeeNo =null;
|
|
|
+ if ( clockInTime!=null){
|
|
|
+ parsedTime = LocalDateTime.parse(clockInTime, formatter);
|
|
|
+ }
|
|
|
+ if (struAcsEventCfg.struAcsEventInfo.dwEmployeeNo!=0){
|
|
|
+ employeeNo = String.valueOf(struAcsEventCfg.struAcsEventInfo.dwEmployeeNo);
|
|
|
+ }
|
|
|
+ StudentAttendanceDO attendance =new StudentAttendanceDO();
|
|
|
+// if (employeeNo != null && !employeeNo.equals("0")) {
|
|
|
+// AdminUserDO user = adminUserService.findUserByUserNumber(employeeNo);
|
|
|
+// if (user != null) {
|
|
|
+// attendance.setStudentName(user.getNickname());
|
|
|
+// attendance.setStudentId(user.getId());
|
|
|
+// }else {
|
|
|
+// System.out.println("没有找到该用户"+employeeNo);
|
|
|
+// }
|
|
|
+// }
|
|
|
+ //插入
|
|
|
+ attendance.setClockInTime(parsedTime);//打卡时间
|
|
|
+ attendance.setUserNumber(employeeNo);//学号
|
|
|
+
|
|
|
+ //插入考勤表
|
|
|
+// studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
|
|
|
+ studentAttendance.add(attendance);
|
|
|
+
|
|
|
//人脸图片保存
|
|
|
if (struAcsEventCfg.dwPicDataLen>0 || struAcsEventCfg.pPicData != null )
|
|
|
{
|
|
@@ -126,6 +176,7 @@ public final class EventSearch {
|
|
|
System.out.println("NET_DVR_StopRemoteConfig接口调用失败,错误码:" + AcsService.hCNetSDK.NET_DVR_GetLastError());
|
|
|
} else {
|
|
|
System.out.println("NET_DVR_StopRemoteConfig接口成功");
|
|
|
+ return studentAttendance;
|
|
|
}
|
|
|
return null;
|
|
|
}
|