| 
					
				 | 
			
			
				@ -1,1270 +1,1249 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.netdevsdk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.sun.jna.Memory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.sun.jna.Pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.sun.jna.Structure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.dao.face.BaseDeviceFaceRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.dao.face.BaseDevicePatientFaceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_DEVICE_TYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_DEVICE_LOGIN_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_SELOG_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_DEVICE_BASE_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_LAPI_SUB_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_SUBSCRIBE_SUCC_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_LIB_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_PERSON_QUERY_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_BATCH_OPERATE_BASIC_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_PERSON_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_REGION_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_IMAGE_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FILE_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_GENDER_TYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_ID_TYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_ALARM_LOG_COND_LIST_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_QUERY_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_QUERYCOND_TYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_QUERYCOND_LOGICTYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_SMART_ALARM_LOG_RESULT_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_RECORD_SNAPSHOT_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_ALARM_CMP_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_MEMBER_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_MEMBER_REGION_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_MEMBER_ID_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_ALARM_SNAP_IMAGE_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_ALARM_IMAGE_AREA_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_DISCOVERY_DEVINFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_REPORT_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_REPORT_TYPE_E; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_TMS_FACE_SNAPSHOT_PIC_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_PERSON_EVENT_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_ACS_ATTENDANCE_LOG_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_COMPARE_INFO_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.NETDEV_FACE_ATTR_S; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.netdevsdk.util.Common; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.device.BaseDeviceFaceRecordDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.care.device.BaseDevicePatientFaceDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Profile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.annotation.PostConstruct; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.swing.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.FileOutputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 宇视人脸摄像头sdk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by yeshijie on 2022/5/19. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class NetDevSdkService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDevicePatientFaceDao devicePatientFaceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDeviceFaceRecordDao faceRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BasePatientDao patientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final Logger logger = LoggerFactory.getLogger(NetDevSdkService.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    // http://zhyzh.gongshu.gov.cn:3001/ 开vpn后可以本地调试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //IP:10.18.50.18   账号admin  密码Admin12345@    HTTP端口80  HTTPS端口  443  RTSP端口 554 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final int dwPort = 80;//端口号 443 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final int dwPort = 3001;//端口号 443 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final String strUserName = "admin";//用户名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final String strPassword = "Admin12345@";//密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String strIPAddr = "zhyzh.gongshu.gov.cn";//ip地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final String strIPAddr = "10.18.50.18";//ip地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final Integer dwLoginProto = 1; /* 登录协议 0:onvif 1:私有*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final Integer dwDeviceType = 1; /* 设备类型 IPC/NVR */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final String baseFaceImg = "https://zhyzh.gongshu.gov.cn/face/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void init(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        initSDK(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        initLogin(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 初始化sdk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void initSDK(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String strLogPath = "./sdklog/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_SetLogPath(strLogPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("日志路径设置失败:"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        bRet = NetDemo.netdevsdk.NETDEV_Init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("sdk初始化失败:"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.updateStructureByReferenceMethod.setAccessible(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new RuntimeException(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        File file=new File(NetDemo.strPicturePath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!file.exists()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            file.mkdir(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * SDK清理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void cleanupSDK(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.netdevsdk.NETDEV_Cleanup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void initLogin(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_DEVICE_LOGIN_INFO_S stDevLoginInfo = new NETDEV_DEVICE_LOGIN_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.arraycopy(strUserName.getBytes(), 0, stDevLoginInfo.szUserName, 0, strUserName.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.arraycopy(strPassword.getBytes(), 0, stDevLoginInfo.szPassword, 0, strPassword.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.arraycopy(strIPAddr.getBytes(), 0, stDevLoginInfo.szIPAddr, 0, strIPAddr.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stDevLoginInfo.dwPort = dwPort; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stDevLoginInfo.dwLoginProto = dwLoginProto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_SELOG_INFO_S stSELogInfo = new NETDEV_SELOG_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.lpUserID = NetDemo.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(NetDemo.lpUserID!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //4.25.5 注册人脸抓拍上报回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NetDemo.netdevsdk.NETDEV_SetFaceSnapshotCallBack(NetDemo.lpUserID,  cbFaceSnapshotCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("登录sdk失败,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //获取设备信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.pstDeviceInfo = new NETDEV_DEVICE_BASE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.pstDeviceInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_GetDeviceBaseInfo(NetDemo.lpUserID,NetDemo.pstDeviceInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(bRet != true){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("获取设备信息失败:" + NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.pstDeviceInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取设备信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject pstDeviceInfo(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(NetDemo.pstDeviceInfo==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("请先登录设备"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("dwChlID",NetDemo.pstDeviceInfo.dwChlID);//视频输入通道号  Video input channel ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("dwDeviceType",NetDemo.pstDeviceInfo.dwDeviceType);//设备类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("dwDevCode",NetDemo.pstDeviceInfo.dwDevCode);//设备编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("dwCurrentLang",NetDemo.pstDeviceInfo.dwCurrentLang);//设备当前语言 参见枚举#NETDEV_LANG_TYPE_E Current language NETDEV_LANG_TYPE_E* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("stBuildDate",NetDemo.pstDeviceInfo.stBuildDate.dwYear 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                +"-"+NetDemo.pstDeviceInfo.stBuildDate.dwMonth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                +"-"+NetDemo.pstDeviceInfo.stBuildDate.dwDay 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                +" "+NetDemo.pstDeviceInfo.stBuildDate.dwHour 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                +":"+NetDemo.pstDeviceInfo.stBuildDate.dwMinute);//发布时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szSerialNum",Common.byteArrayToString(NetDemo.pstDeviceInfo.szSerialNum));//设备序列号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szMacAddress",Common.byteArrayToString(NetDemo.pstDeviceInfo.szMacAddress));//IPv4的Mac地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szDevName",Common.byteArrayToString(NetDemo.pstDeviceInfo.szDevName));//设备名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szDevModel",Common.byteArrayToString(NetDemo.pstDeviceInfo.szDevModel));//设备型号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szVIIDVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szVIIDVersion));//视图库组件版本号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szSoftwareVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szSoftwareVersion));//内部软件版本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szFirmwareVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szFirmwareVersion));//软件版本号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szHardewareID",Common.byteArrayToString(NetDemo.pstDeviceInfo.szHardewareID));//硬件标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szUbootVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szUbootVersion));//UBOOT引导版本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szManufacturer",Common.byteArrayToString(NetDemo.pstDeviceInfo.szManufacturer));//厂商名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("szProtoName",Common.byteArrayToString(NetDemo.pstDeviceInfo.szProtoName));//设备原型机名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("dwChlID",NetDemo.pstDeviceInfo.dwChlID);// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 设备搜索回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void discoveryDevice(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean flag1 = NetDemo.netdevsdk.NETDEV_SetDiscoveryCallBack(cbDiscoveryCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean flag2 = NetDemo.netdevsdk.NETDEV_Discovery("0.0.0.0", "0.0.0.0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("flag1:"+flag1+",flag2:"+flag2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 订阅告警信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void SubscribeAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, cbAlarmMessCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(bRet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("订阅告警信息成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("订阅告警信息失败,错误码"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 取消订阅告警信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void UnSubscribeAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(bRet==false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("取消订阅告警信息失败,错误码"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("取消订阅告警信息成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 4.25.7 注册人脸报警消息回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void registerPersonAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_SetPersonAlarmCallBack(NetDemo.lpUserID, personAlarmMessCB, NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("设置人脸报警消息回调方法失败,错误码"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_LAPI_SUB_INFO_S stSubInfo = new NETDEV_LAPI_SUB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stSubInfo.udwType = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stSubInfo.udwLibIDNum = 0xffff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_SUBSCRIBE_SUCC_INFO_S stSubSuccInfo = new NETDEV_SUBSCRIBE_SUCC_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        bRet = NetDemo.netdevsdk.NETDEV_SubscibeLapiAlarm(NetDemo.lpUserID, stSubInfo, stSubSuccInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("注册人脸报警消息失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("注册人脸报警消息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.dwPersonRecognizeMointerID = stSubSuccInfo.udwID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 取消注册人脸报警消息回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void cancelRegisterPersonAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = NetDemo.netdevsdk.NETDEV_UnSubLapiAlarm(NetDemo.lpUserID, NetDemo.dwPersonRecognizeMointerID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("取消注册人脸报警消息失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("取消成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.dwPersonRecognizeMointerID = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 同步人脸数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void synPatientFaceRecords(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDevicePatientFaceDO> list = devicePatientFaceDao.findListByType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (BaseDevicePatientFaceDO faceDO:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sysPatientFaceRecord(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String sysPatientFaceRecord(BaseDevicePatientFaceDO faceDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String endTime = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String idcard = faceDO.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String patient = faceDO.getPatient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String name = faceDO.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "未登录,请先登录"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isBlank(idcard)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "身份证不能为空"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(faceDO.getSynTime())&&faceDO.getSynTime().compareTo(DateUtil.getNextMinute(DateUtil.getStringDate(), -30))>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "同步时间必须晚于当前时间30分钟"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String startTime = faceDO.getSynTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(StringUtils.isBlank(startTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //第一次取当前时间的前30分钟数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                endTime = DateUtil.getStringDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                startTime = DateUtil.getNextMinute(endTime, -30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                endTime = DateUtil.getNextMinute(startTime, 30);//采集30分钟后的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info(name+",startTime="+startTime+",endTime="+endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.dwPageRow = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.dwCondSize = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(startTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(endTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwQueryType = 57; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //1表示匹配成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("1", stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4].dwQueryType = 58; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(idcard, stFindCond.astCondition[4].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NETDEV_SMART_ALARM_LOG_RESULT_INFO_S stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.info("人脸数据stFindCond.dwFirstRow:"+stFindCond.dwFirstRow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stRecordInfo.stCompareInfo.pstPersonInfo = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String passTime = Common.timeStamp2Date(String.valueOf(stRecordInfo.udwPassTime),NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            //nvr 没有大图 String strFileNameBig = NetDemo.strPicturePath  + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + "_" + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String imgName = "PassTime_"+ stRecordInfo.udwPassTime + "_" + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String strFileNameSmall = NetDemo.strPicturePath + imgName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            BaseDeviceFaceRecordDO faceRecordDO = new BaseDeviceFaceRecordDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDO.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDO.setName(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDO.setPassTime(passTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDO.setImg(baseFaceImg+imgName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            faceRecordDao.save(faceRecordDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.info("关闭人脸记录详情失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(stResultInfo.udwTotal <= stFindCond.dwFirstRow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("查询结束"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            faceDO.setSynTime(endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            devicePatientFaceDao.save(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }while (endTime.compareTo(DateUtil.getNextMinute(DateUtil.getStringDate(), -30))<0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 更新人脸库人员数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String updPatientFace(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "未登录,请先登录"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Pointer pPersonLibHandle = NetDemo.netdevsdk.NETDEV_FindPersonLibList(NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == pPersonLibHandle){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "获取人员库列表失败, "+NetDemo.netdevsdk.NETDEV_GetLastError(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                NETDEV_LIB_INFO_S stPersonLibInfo = new NETDEV_LIB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonLibInfo(pPersonLibHandle, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("获取下一个人员库列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String szName = Common.byteArrayToString(stPersonLibInfo.szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                NetDemo.mapPersonLib.put(szName, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("人脸信息--szName:"+Common.byteArrayToString(stPersonLibInfo.szName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonLibList(pPersonLibHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "关闭人脸库资源失败:"+ NetDemo.netdevsdk.NETDEV_GetLastError(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(NetDemo.mapPersonLib.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "人员库不存在"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (NETDEV_LIB_INFO_S stPersonLibInfo: NetDemo.mapPersonLib.values()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NETDEV_PERSON_QUERY_INFO_S stQueryInfo = new NETDEV_PERSON_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stQueryInfo.udwNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stQueryInfo.udwOffset =  0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stQueryInfo.udwLimit = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NETDEV_BATCH_OPERATE_BASIC_S stQueryResultInfo = new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Pointer lpPersonFindHandle = NetDemo.netdevsdk.NETDEV_FindPersonInfoList(NetDemo.lpUserID, stPersonLibInfo.udwID, stQueryInfo, stQueryResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(lpPersonFindHandle == null || stQueryResultInfo.udwTotal == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("获取人员列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stQueryInfo.udwOffset += stQueryInfo.udwLimit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        NETDEV_PERSON_INFO_S stPersonInfo = new NETDEV_PERSON_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.stRegionInfo = new NETDEV_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.stImageInfo[0] = new NETDEV_IMAGE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.stImageInfo[0].stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.stImageInfo[0].stFileInfo.udwSize = 1048576; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.stImageInfo[0].stFileInfo.pcData = new Memory(stPersonInfo.stImageInfo[0].stFileInfo.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        stPersonInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonInfo(lpPersonFindHandle, stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String udwPersonID = stPersonInfo.udwPersonID+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String szPersonName = Common.byteArrayToString(stPersonInfo.szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(stPersonInfo.udwIdentificationNum > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                String szNumber = Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                BaseDevicePatientFaceDO faceDO = devicePatientFaceDao.findByIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if(faceDO == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    BasePatientDO patientDO = patientDao.findByIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if(patientDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO = new BaseDevicePatientFaceDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setFaceId(udwPersonID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setName(szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        faceDO.setPatient(patientDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        devicePatientFaceDao.save(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                logger.info("人员没有身份证-- udwPersonID:"+udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        +",szPersonName:"+szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonInfoList(lpPersonFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(bRet == false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.info("关闭人员列表资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(stQueryInfo.udwOffset >= stQueryResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查找人员库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void findPersonLib() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Pointer pPersonLibHandle = NetDemo.netdevsdk.NETDEV_FindPersonLibList(NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == pPersonLibHandle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("获取人员库列表失败{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                NETDEV_LIB_INFO_S stPersonLibInfo = new NETDEV_LIB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonLibInfo(pPersonLibHandle, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("获取下一个人员库列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                NetDemo.mapPersonLib.put(Common.byteArrayToString(stPersonLibInfo.szName), stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("人脸信息--szName:"+Common.byteArrayToString(stPersonLibInfo.szName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwID:"+stPersonLibInfo.udwID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwType:"+stPersonLibInfo.udwType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwPersonNum:"+stPersonLibInfo.udwPersonNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwFaceNum:"+stPersonLibInfo.udwFaceNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwMemberNum:"+stPersonLibInfo.udwMemberNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",udwLastChange:"+stPersonLibInfo.udwLastChange 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",szBelongIndex:"+Common.byteArrayToString(stPersonLibInfo.szBelongIndex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",bIsMonitored:"+stPersonLibInfo.bIsMonitored 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        +",byRes:"+Common.byteArrayToString(stPersonLibInfo.byRes)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonLibList(pPersonLibHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("关闭人脸库资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查找人员(必须先查找人员库) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param szName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void findPerson(String szName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(NetDemo.mapPersonLib.size()==0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("请先查找人员库"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isBlank(szName)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("请输入查找的人员库名称"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_LIB_INFO_S stPersonLibInfo = NetDemo.mapPersonLib.get(szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_PERSON_QUERY_INFO_S stQueryInfo = new NETDEV_PERSON_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stQueryInfo.udwNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stQueryInfo.udwOffset =  0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stQueryInfo.udwLimit = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_BATCH_OPERATE_BASIC_S stQueryResultInfo = new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.mapPersonInfo.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Pointer lpPersonFindHandle = NetDemo.netdevsdk.NETDEV_FindPersonInfoList(NetDemo.lpUserID, stPersonLibInfo.udwID, stQueryInfo, stQueryResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(lpPersonFindHandle == null || stQueryResultInfo.udwTotal == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("获取人员列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                stQueryInfo.udwOffset += stQueryInfo.udwLimit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    NETDEV_PERSON_INFO_S stPersonInfo = new NETDEV_PERSON_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.stRegionInfo = new NETDEV_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.stImageInfo[0] = new NETDEV_IMAGE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.stImageInfo[0].stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.stImageInfo[0].stFileInfo.udwSize = 1048576; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.stImageInfo[0].stFileInfo.pcData = new Memory(stPersonInfo.stImageInfo[0].stFileInfo.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stPersonInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonInfo(lpPersonFindHandle, stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        NetDemo.mapPersonInfo.put(String.valueOf(stPersonInfo.udwPersonID), stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Vector<String> PersonLibVector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(String.valueOf(stPersonInfo.udwPersonID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.szPersonName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(stPersonInfo.udwGender == NETDEV_GENDER_TYPE_E.NETDEV_GENDER_TYPE_MAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PersonLibVector.add("man"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        else if(stPersonInfo.udwGender == NETDEV_GENDER_TYPE_E.NETDEV_GENDER_TYPE_WOMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PersonLibVector.add("woman"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PersonLibVector.add("unknow"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.szBirthday)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(stPersonInfo.udwIdentificationNum > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_ID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PersonLibVector.add("Identity card"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            else if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_PASSPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PersonLibVector.add("Passport"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            else if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_DRIVING_LICENSE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PersonLibVector.add("Driving license"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PersonLibVector.add("other"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(stPersonInfo.udwIdentificationNum > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            logger.info("人员-- udwPersonID:"+stPersonInfo.udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szPersonName:"+Common.byteArrayToString(stPersonInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",udwGender:"+stPersonInfo.udwGender 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szBirthday:"+Common.byteArrayToString(stPersonInfo.szBirthday) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szNation:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szProvince:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szCity:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",udwType:"+stPersonInfo.stIdentificationInfo[0].udwType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szNumber:"+Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            logger.info("人员-- udwPersonID:"+stPersonInfo.udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szPersonName:"+Common.byteArrayToString(stPersonInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",udwGender:"+stPersonInfo.udwGender 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szBirthday:"+Common.byteArrayToString(stPersonInfo.szBirthday) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szNation:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szProvince:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    +",szCity:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonInfoList(lpPersonFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(bRet == false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("关闭人员列表资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(stQueryInfo.udwOffset >= stQueryResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 4.25.14 人脸识别记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void queryPassRecord(String strBeginTime,String strEndTime,String getPersonPassAlarmSource) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == Common.isValidDate(strBeginTime,NetDemo.DateFormat) ||false == Common.isValidDate(strEndTime, NetDemo.DateFormat)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("请输入开始时间结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get1=Common.date2TimeStamp(strBeginTime,NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get2=Common.date2TimeStamp(strEndTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(get1>get2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("开始时间不能大于结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.dwPageRow = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isBlank(getPersonPassAlarmSource)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("没有告警源"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.dwCondSize = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwQueryType = 57; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("1", stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4].dwQueryType = 58; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[4].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("330103193303040742", stFindCond.astCondition[4].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.dwCondSize = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_ALARMSRCNAME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stFindCond.astCondition[3].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DIM_QUERY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray(getPersonPassAlarmSource, stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_SMART_ALARM_LOG_RESULT_INFO_S stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("人脸数据stFindCond.dwFirstRow:"+stFindCond.dwFirstRow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo = new NETDEV_FACE_MEMBER_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberRegionInfo = new NETDEV_FACE_MEMBER_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberIDInfo = new NETDEV_FACE_MEMBER_ID_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        logger.info("szMemberName="+Common.byteArrayToString(stRecordInfo.stCompareInfo.stMemberInfo.szMemberName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String strFileNameBig = NetDemo.strPicturePath  + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + "_" + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String strFileNameSmall = NetDemo.strPicturePath + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("关闭人脸记录详情失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(stResultInfo.udwTotal <= stFindCond.dwFirstRow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String strPicPath = System.getProperty("user.dir").replaceAll("%20"," ") +File.separator +"Picture"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("查询结束.路径:"+strPicPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 告警记录 //数据量较大,建议采用分页形式展示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param strBeginTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void queryAlarmRecord(String strBeginTime,String strEndTime,Integer monitorType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(false == Common.isValidDate(strBeginTime, NetDemo.DateFormat) ||false == Common.isValidDate(strEndTime,NetDemo.DateFormat)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("Please check that the time format is correct."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get1=Common.date2TimeStamp(strBeginTime,NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get2=Common.date2TimeStamp(strEndTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(get1>get2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info(" Start time can not more than end time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.dwPageRow = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.dwCondSize = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_ALARMTYPE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_EQUAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(monitorType == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("1018", stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if(monitorType == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Common.stringToByteArray("1020", stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MISMATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[3].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        stFindCond.astCondition[3].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray("", stFindCond.astCondition[3].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_SMART_ALARM_LOG_RESULT_INFO_S  stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("告警记录1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("人脸数据1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo = new NETDEV_FACE_MEMBER_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberRegionInfo = new NETDEV_FACE_MEMBER_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberIDInfo = new NETDEV_FACE_MEMBER_ID_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//package com.yihu.jw.care.netdevsdk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.sun.jna.Memory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.sun.jna.Pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.sun.jna.Structure; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.care.dao.face.BaseDeviceFaceRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.care.dao.face.BaseDevicePatientFaceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.care.netdevsdk.lib.NetDEVSDKLib.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.care.netdevsdk.util.Common; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.entity.care.device.BaseDeviceFaceRecordDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.entity.care.device.BaseDevicePatientFaceDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.apache.commons.lang.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.FileOutputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.util.Vector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				///** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// * 宇视人脸摄像头sdk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// * Created by yeshijie on 2022/5/19. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//public class NetDevSdkService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private BaseDevicePatientFaceDao devicePatientFaceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private BaseDeviceFaceRecordDao faceRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private BasePatientDao patientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final Logger logger = LoggerFactory.getLogger(NetDevSdkService.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    // http://zhyzh.gongshu.gov.cn:3001/ 开vpn后可以本地调试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    //IP:10.18.50.18   账号admin  密码Admin12345@    HTTP端口80  HTTPS端口  443  RTSP端口 554 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final int dwPort = 80;//端口号 443 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////    private static final int dwPort = 3001;//端口号 443 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String strUserName = "admin";//用户名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String strPassword = "Admin12345@";//密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////    private static final String strIPAddr = "zhyzh.gongshu.gov.cn";//ip地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String strIPAddr = "10.18.50.18";//ip地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final Integer dwLoginProto = 1; /* 登录协议 0:onvif 1:私有*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final Integer dwDeviceType = 1; /* 设备类型 IPC/NVR */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String baseFaceImg = "https://zhyzh.gongshu.gov.cn/face/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void init(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        initSDK(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        initLogin(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 初始化sdk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private void initSDK(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String strLogPath = "./sdklog/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_SetLogPath(strLogPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("日志路径设置失败:"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        bRet = NetDemo.netdevsdk.NETDEV_Init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("sdk初始化失败:"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.updateStructureByReferenceMethod = Structure.class.getDeclaredMethod("updateStructureByReference", Class.class, Structure.class, Pointer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.updateStructureByReferenceMethod.setAccessible(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            throw new RuntimeException(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        File file=new File(NetDemo.strPicturePath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(!file.exists()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            file.mkdir(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * SDK清理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private void cleanupSDK(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.netdevsdk.NETDEV_Cleanup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void initLogin(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_DEVICE_LOGIN_INFO_S stDevLoginInfo = new NETDEV_DEVICE_LOGIN_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        System.arraycopy(strUserName.getBytes(), 0, stDevLoginInfo.szUserName, 0, strUserName.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        System.arraycopy(strPassword.getBytes(), 0, stDevLoginInfo.szPassword, 0, strPassword.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        System.arraycopy(strIPAddr.getBytes(), 0, stDevLoginInfo.szIPAddr, 0, strIPAddr.getBytes().length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stDevLoginInfo.dwPort = dwPort; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stDevLoginInfo.dwLoginProto = dwLoginProto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_SELOG_INFO_S stSELogInfo = new NETDEV_SELOG_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.lpUserID = NetDemo.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(NetDemo.lpUserID!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //4.25.5 注册人脸抓拍上报回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NetDemo.netdevsdk.NETDEV_SetFaceSnapshotCallBack(NetDemo.lpUserID,  cbFaceSnapshotCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("登录sdk失败,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        //获取设备信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.pstDeviceInfo = new NETDEV_DEVICE_BASE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.pstDeviceInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_GetDeviceBaseInfo(NetDemo.lpUserID,NetDemo.pstDeviceInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(bRet != true){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("获取设备信息失败:" + NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.pstDeviceInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 获取设备信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public JSONObject pstDeviceInfo(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(NetDemo.pstDeviceInfo==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("请先登录设备"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("dwChlID",NetDemo.pstDeviceInfo.dwChlID);//视频输入通道号  Video input channel ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("dwDeviceType",NetDemo.pstDeviceInfo.dwDeviceType);//设备类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("dwDevCode",NetDemo.pstDeviceInfo.dwDevCode);//设备编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("dwCurrentLang",NetDemo.pstDeviceInfo.dwCurrentLang);//设备当前语言 参见枚举#NETDEV_LANG_TYPE_E Current language NETDEV_LANG_TYPE_E* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("stBuildDate",NetDemo.pstDeviceInfo.stBuildDate.dwYear 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                +"-"+NetDemo.pstDeviceInfo.stBuildDate.dwMonth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                +"-"+NetDemo.pstDeviceInfo.stBuildDate.dwDay 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                +" "+NetDemo.pstDeviceInfo.stBuildDate.dwHour 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                +":"+NetDemo.pstDeviceInfo.stBuildDate.dwMinute);//发布时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szSerialNum",Common.byteArrayToString(NetDemo.pstDeviceInfo.szSerialNum));//设备序列号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szMacAddress",Common.byteArrayToString(NetDemo.pstDeviceInfo.szMacAddress));//IPv4的Mac地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szDevName",Common.byteArrayToString(NetDemo.pstDeviceInfo.szDevName));//设备名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szDevModel",Common.byteArrayToString(NetDemo.pstDeviceInfo.szDevModel));//设备型号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szVIIDVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szVIIDVersion));//视图库组件版本号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szSoftwareVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szSoftwareVersion));//内部软件版本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szFirmwareVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szFirmwareVersion));//软件版本号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szHardewareID",Common.byteArrayToString(NetDemo.pstDeviceInfo.szHardewareID));//硬件标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szUbootVersion",Common.byteArrayToString(NetDemo.pstDeviceInfo.szUbootVersion));//UBOOT引导版本 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szManufacturer",Common.byteArrayToString(NetDemo.pstDeviceInfo.szManufacturer));//厂商名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("szProtoName",Common.byteArrayToString(NetDemo.pstDeviceInfo.szProtoName));//设备原型机名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        jsonObject.put("dwChlID",NetDemo.pstDeviceInfo.dwChlID);// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 设备搜索回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void discoveryDevice(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean flag1 = NetDemo.netdevsdk.NETDEV_SetDiscoveryCallBack(cbDiscoveryCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean flag2 = NetDemo.netdevsdk.NETDEV_Discovery("0.0.0.0", "0.0.0.0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        logger.info("flag1:"+flag1+",flag2:"+flag2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 订阅告警信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void SubscribeAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, cbAlarmMessCallBack, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(bRet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("订阅告警信息成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("订阅告警信息失败,错误码"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 取消订阅告警信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void UnSubscribeAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_SetAlarmCallBack_V30(NetDemo.lpUserID, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(bRet==false) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("取消订阅告警信息失败,错误码"+ NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("取消订阅告警信息成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 4.25.7 注册人脸报警消息回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void registerPersonAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_SetPersonAlarmCallBack(NetDemo.lpUserID, personAlarmMessCB, NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("设置人脸报警消息回调方法失败,错误码"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_LAPI_SUB_INFO_S stSubInfo = new NETDEV_LAPI_SUB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stSubInfo.udwType = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stSubInfo.udwLibIDNum = 0xffff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_SUBSCRIBE_SUCC_INFO_S stSubSuccInfo = new NETDEV_SUBSCRIBE_SUCC_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        bRet = NetDemo.netdevsdk.NETDEV_SubscibeLapiAlarm(NetDemo.lpUserID, stSubInfo, stSubSuccInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == bRet){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("注册人脸报警消息失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("注册人脸报警消息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.dwPersonRecognizeMointerID = stSubSuccInfo.udwID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 取消注册人脸报警消息回调函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static void cancelRegisterPersonAlarm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = NetDemo.netdevsdk.NETDEV_UnSubLapiAlarm(NetDemo.lpUserID, NetDemo.dwPersonRecognizeMointerID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("取消注册人脸报警消息失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("取消成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.dwPersonRecognizeMointerID = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 同步人脸数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void synPatientFaceRecords(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<BaseDevicePatientFaceDO> list = devicePatientFaceDao.findListByType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        for (BaseDevicePatientFaceDO faceDO:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                sysPatientFaceRecord(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public String sysPatientFaceRecord(BaseDevicePatientFaceDO faceDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String endTime = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String idcard = faceDO.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String patient = faceDO.getPatient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String name = faceDO.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        int minus = 30; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "未登录,请先登录"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (StringUtils.isBlank(idcard)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "身份证不能为空"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(StringUtils.isNotBlank(faceDO.getSynTime())&&faceDO.getSynTime().compareTo(DateUtil.getNextMinute(DateUtil.getStringDate(), -minus))>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "同步时间必须晚于当前时间30分钟"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String startTime = faceDO.getSynTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(StringUtils.isBlank(startTime)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //第一次取当前时间的前30分钟数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                endTime = DateUtil.getStringDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                startTime = DateUtil.getNextMinute(endTime, -minus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                endTime = DateUtil.getNextMinute(startTime, minus);//采集30分钟后的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info(name+",startTime="+startTime+",endTime="+endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.dwPageRow = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.dwCondSize = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(startTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(endTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwQueryType = 57; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //1表示匹配成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("1", stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4].dwQueryType = 58; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(idcard, stFindCond.astCondition[4].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NETDEV_SMART_ALARM_LOG_RESULT_INFO_S stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("告警记录总数udwTotal:"+stResultInfo.udwTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("此次返回告警记录个数udwNum:"+stResultInfo.udwNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        logger.info("人脸数据stFindCond.dwFirstRow:"+stFindCond.dwFirstRow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo = new NETDEV_FACE_MEMBER_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberRegionInfo = new NETDEV_FACE_MEMBER_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberIDInfo = new NETDEV_FACE_MEMBER_ID_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stRecordInfo.stCompareInfo.pstPersonInfo = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String passTime = Common.timeStamp2Date(String.valueOf(stRecordInfo.udwPassTime),NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            //nvr 没有大图 String strFileNameBig = NetDemo.strPicturePath  + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + "_" + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String imgName = "PassTime_"+ stRecordInfo.udwPassTime + "_" + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String strFileNameSmall = NetDemo.strPicturePath + imgName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            BaseDeviceFaceRecordDO faceRecordDO = new BaseDeviceFaceRecordDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDO.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDO.setName(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDO.setPassTime(passTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDO.setImg(baseFaceImg+imgName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            faceRecordDao.save(faceRecordDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        logger.info("关闭人脸记录详情失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(stResultInfo.udwTotal <= stFindCond.dwFirstRow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("查询结束"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            faceDO.setSynTime(endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            devicePatientFaceDao.save(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }while (endTime.compareTo(DateUtil.getNextMinute(DateUtil.getStringDate(), -minus))<0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 更新人脸库人员数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public String updPatientFace(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "未登录,请先登录"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Pointer pPersonLibHandle = NetDemo.netdevsdk.NETDEV_FindPersonLibList(NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == pPersonLibHandle){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "获取人员库列表失败, "+NetDemo.netdevsdk.NETDEV_GetLastError(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                NETDEV_LIB_INFO_S stPersonLibInfo = new NETDEV_LIB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonLibInfo(pPersonLibHandle, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("获取下一个人员库列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String szName = Common.byteArrayToString(stPersonLibInfo.szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                NetDemo.mapPersonLib.put(szName, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("人脸信息--szName:"+Common.byteArrayToString(stPersonLibInfo.szName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonLibList(pPersonLibHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return "关闭人脸库资源失败:"+ NetDemo.netdevsdk.NETDEV_GetLastError(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(NetDemo.mapPersonLib.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return "人员库不存在"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        for (NETDEV_LIB_INFO_S stPersonLibInfo: NetDemo.mapPersonLib.values()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NETDEV_PERSON_QUERY_INFO_S stQueryInfo = new NETDEV_PERSON_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stQueryInfo.udwNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stQueryInfo.udwOffset =  0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stQueryInfo.udwLimit = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NETDEV_BATCH_OPERATE_BASIC_S stQueryResultInfo = new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Pointer lpPersonFindHandle = NetDemo.netdevsdk.NETDEV_FindPersonInfoList(NetDemo.lpUserID, stPersonLibInfo.udwID, stQueryInfo, stQueryResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(lpPersonFindHandle == null || stQueryResultInfo.udwTotal == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("获取人员列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stQueryInfo.udwOffset += stQueryInfo.udwLimit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        NETDEV_PERSON_INFO_S stPersonInfo = new NETDEV_PERSON_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.stRegionInfo = new NETDEV_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.stImageInfo[0] = new NETDEV_IMAGE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.stImageInfo[0].stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.stImageInfo[0].stFileInfo.udwSize = 1048576; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.stImageInfo[0].stFileInfo.pcData = new Memory(stPersonInfo.stImageInfo[0].stFileInfo.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        stPersonInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonInfo(lpPersonFindHandle, stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String udwPersonID = stPersonInfo.udwPersonID+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String szPersonName = Common.byteArrayToString(stPersonInfo.szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            if(stPersonInfo.udwIdentificationNum > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                String szNumber = Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                BaseDevicePatientFaceDO faceDO = devicePatientFaceDao.findByIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                if(faceDO == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    BasePatientDO patientDO = patientDao.findByIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    if(patientDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO = new BaseDevicePatientFaceDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setFaceId(udwPersonID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setIdcard(szNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setName(szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        faceDO.setPatient(patientDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        devicePatientFaceDao.save(faceDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                logger.info("人员没有身份证-- udwPersonID:"+udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                        +",szPersonName:"+szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonInfoList(lpPersonFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(bRet == false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        logger.info("关闭人员列表资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(stQueryInfo.udwOffset >= stQueryResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 查找人员库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void findPersonLib() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Pointer pPersonLibHandle = NetDemo.netdevsdk.NETDEV_FindPersonLibList(NetDemo.lpUserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == pPersonLibHandle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("获取人员库列表失败{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                NETDEV_LIB_INFO_S stPersonLibInfo = new NETDEV_LIB_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonLibInfo(pPersonLibHandle, stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("获取下一个人员库列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                NetDemo.mapPersonLib.put(Common.byteArrayToString(stPersonLibInfo.szName), stPersonLibInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("人脸信息--szName:"+Common.byteArrayToString(stPersonLibInfo.szName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwID:"+stPersonLibInfo.udwID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwType:"+stPersonLibInfo.udwType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwPersonNum:"+stPersonLibInfo.udwPersonNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwFaceNum:"+stPersonLibInfo.udwFaceNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwMemberNum:"+stPersonLibInfo.udwMemberNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",udwLastChange:"+stPersonLibInfo.udwLastChange 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",szBelongIndex:"+Common.byteArrayToString(stPersonLibInfo.szBelongIndex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",bIsMonitored:"+stPersonLibInfo.bIsMonitored 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        +",byRes:"+Common.byteArrayToString(stPersonLibInfo.byRes)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonLibList(pPersonLibHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(false == bRet) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("关闭人脸库资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 查找人员(必须先查找人员库) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param szName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void findPerson(String szName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(NetDemo.mapPersonLib.size()==0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("请先查找人员库"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(StringUtils.isBlank(szName)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("请输入查找的人员库名称"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_LIB_INFO_S stPersonLibInfo = NetDemo.mapPersonLib.get(szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_PERSON_QUERY_INFO_S stQueryInfo = new NETDEV_PERSON_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stQueryInfo.udwNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stQueryInfo.udwOffset =  0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stQueryInfo.udwLimit = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_BATCH_OPERATE_BASIC_S stQueryResultInfo = new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.mapPersonInfo.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Pointer lpPersonFindHandle = NetDemo.netdevsdk.NETDEV_FindPersonInfoList(NetDemo.lpUserID, stPersonLibInfo.udwID, stQueryInfo, stQueryResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(lpPersonFindHandle == null || stQueryResultInfo.udwTotal == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("获取人员列表失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                stQueryInfo.udwOffset += stQueryInfo.udwLimit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    NETDEV_PERSON_INFO_S stPersonInfo = new NETDEV_PERSON_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.stRegionInfo = new NETDEV_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.stImageInfo[0] = new NETDEV_IMAGE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.stImageInfo[0].stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.stImageInfo[0].stFileInfo.udwSize = 1048576; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.stImageInfo[0].stFileInfo.pcData = new Memory(stPersonInfo.stImageInfo[0].stFileInfo.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stPersonInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    bRet = NetDemo.netdevsdk.NETDEV_FindNextPersonInfo(lpPersonFindHandle, stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        NetDemo.mapPersonInfo.put(String.valueOf(stPersonInfo.udwPersonID), stPersonInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Vector<String> PersonLibVector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(String.valueOf(stPersonInfo.udwPersonID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.szPersonName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(stPersonInfo.udwGender == NETDEV_GENDER_TYPE_E.NETDEV_GENDER_TYPE_MAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            PersonLibVector.add("man"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        else if(stPersonInfo.udwGender == NETDEV_GENDER_TYPE_E.NETDEV_GENDER_TYPE_WOMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String strFileNameBig = NetDemo.strPicturePath + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            NETDEV_FILE_INFO_S stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            stFileInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            stFileInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            bRet = NetDemo.netdevsdk.NETDEV_GetFaceRecordImageInfo(NetDemo.lpUserID, stRecordInfo.udwRecordID, 0, stFileInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Common.savePicture(stFileInfo.pcData, stFileInfo.udwSize, strFileNameBig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                System.out.printf("Get picture failed failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            PersonLibVector.add("woman"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String strFileNameSmall = NetDemo.strPicturePath + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("NETDEV_FindCloseFaceRecordDetail failed:"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(stFindCond.dwFirstRow >= stResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            {   String strPicPath = System.getProperty("user.dir").replaceAll("%20"," ") + File.separator +"Picture"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("Query ended.The path:"+strPicPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 门禁查询出入记录 对接设备没有门禁记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void searchAccessRecords(String startTime,String endTime,String persionId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_ALARM_LOG_COND_LIST_S pstFindCond=new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.dwPageRow=8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.dwFirstRow=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.dwCondSize=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[0]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[0].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[0].dwLogicFlag=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get1=Common.date2TimeStamp(startTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String getStartTime=Long.toString(get1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray(getStartTime, pstFindCond.astCondition[0].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[1]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[1].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[1].dwLogicFlag=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long get2=Common.date2TimeStamp(endTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(get1>get2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("开始时间不能大于结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String getendtTime=Long.toString(get2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray(getendtTime, pstFindCond.astCondition[1].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[2]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[2].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.astCondition[2].dwLogicFlag=9; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Common.stringToByteArray(getendtTime, pstFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("pstFindCond.astCondition.length:"+ pstFindCond.astCondition.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(StringUtils.isNotBlank(persionId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //人员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstFindCond.astCondition[3]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstFindCond.astCondition[3].dwQueryType=79; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstFindCond.astCondition[3].dwLogicFlag=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(persionId, pstFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            PersonLibVector.add("unknow"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.szBirthday)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(stPersonInfo.udwIdentificationNum > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_ID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                PersonLibVector.add("Identity card"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            else if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_PASSPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                PersonLibVector.add("Passport"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            else if(stPersonInfo.stIdentificationInfo[0].udwType == NETDEV_ID_TYPE_E.NETDEV_CERTIFICATE_TYPE_DRIVING_LICENSE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                PersonLibVector.add("Driving license"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                PersonLibVector.add("other"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            PersonLibVector.add(Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        if(stPersonInfo.udwIdentificationNum > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            logger.info("人员-- udwPersonID:"+stPersonInfo.udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szPersonName:"+Common.byteArrayToString(stPersonInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",udwGender:"+stPersonInfo.udwGender 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szBirthday:"+Common.byteArrayToString(stPersonInfo.szBirthday) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szNation:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szProvince:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szCity:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",udwType:"+stPersonInfo.stIdentificationInfo[0].udwType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szNumber:"+Common.byteArrayToString(stPersonInfo.stIdentificationInfo[0].szNumber)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            logger.info("人员-- udwPersonID:"+stPersonInfo.udwPersonID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szPersonName:"+Common.byteArrayToString(stPersonInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",udwGender:"+stPersonInfo.udwGender 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szBirthday:"+Common.byteArrayToString(stPersonInfo.szBirthday) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szNation:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szNation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szProvince:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szProvince) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    +",szCity:"+Common.byteArrayToString(stPersonInfo.stRegionInfo.szCity)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //关闭资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                bRet = NetDemo.netdevsdk.NETDEV_FindClosePersonInfoList(lpPersonFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(bRet == false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("关闭人员列表资源失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(stQueryInfo.udwOffset >= stQueryResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 4.25.14 人脸识别记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void queryPassRecord(String strBeginTime,String strEndTime,String getPersonPassAlarmSource) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == Common.isValidDate(strBeginTime,NetDemo.DateFormat) ||false == Common.isValidDate(strEndTime, NetDemo.DateFormat)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("请输入开始时间结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get1=Common.date2TimeStamp(strBeginTime,NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get2=Common.date2TimeStamp(strEndTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(get1>get2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("开始时间不能大于结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.dwPageRow = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(StringUtils.isBlank(getPersonPassAlarmSource)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("没有告警源"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.dwCondSize = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwQueryType = 57; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("1", stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4].dwQueryType = 58; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[4].dwLogicFlag = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("330103193303040742", stFindCond.astCondition[4].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.dwCondSize = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("", stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_ALARMSRCNAME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            stFindCond.astCondition[3].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DIM_QUERY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray(getPersonPassAlarmSource, stFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_SMART_ALARM_LOG_RESULT_INFO_S stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("人脸数据stFindCond.dwFirstRow:"+stFindCond.dwFirstRow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo = new NETDEV_FACE_MEMBER_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberRegionInfo = new NETDEV_FACE_MEMBER_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberIDInfo = new NETDEV_FACE_MEMBER_ID_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.pstPersonInfo = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        logger.info("szMemberName="+Common.byteArrayToString(stRecordInfo.stCompareInfo.stMemberInfo.szMemberName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        String strFileNameBig = NetDemo.strPicturePath  + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + "_" + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        String strFileNameSmall = NetDemo.strPicturePath + "_" + "PassTime_"+ stRecordInfo.udwPassTime + "_" + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("关闭人脸记录详情失败:{}", NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(stResultInfo.udwTotal <= stFindCond.dwFirstRow) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String strPicPath = System.getProperty("user.dir").replaceAll("%20"," ") +File.separator +"Picture"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("查询结束.路径:"+strPicPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 告警记录 //数据量较大,建议采用分页形式展示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param strBeginTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static void queryAlarmRecord(String strBeginTime,String strEndTime,Integer monitorType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(false == Common.isValidDate(strBeginTime, NetDemo.DateFormat) ||false == Common.isValidDate(strEndTime,NetDemo.DateFormat)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("Please check that the time format is correct."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get1=Common.date2TimeStamp(strBeginTime,NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get2=Common.date2TimeStamp(strEndTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(get1>get2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info(" Start time can not more than end time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_ALARM_LOG_COND_LIST_S stFindCond = new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.dwPageRow = 16; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.dwFirstRow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.dwCondSize = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[0] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[1] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[2] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[3] = new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[0].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_ALARMTYPE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[0].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_EQUAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(monitorType == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("1018", stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else if(monitorType == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Common.stringToByteArray("1020", stFindCond.astCondition[0].szConditionData);   //NETDEV_ALARM_SMART_FACE_MISMATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[1].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[1].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_LESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strBeginTime, NetDemo.DateFormat)), stFindCond.astCondition[1].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[2].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[2].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_NO_GREATER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray(String.valueOf(Common.date2TimeStamp(strEndTime, NetDemo.DateFormat)), stFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[3].dwQueryType = NETDEV_QUERYCOND_TYPE_E.NETDEV_QUERYCOND_TIME; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        stFindCond.astCondition[3].dwLogicFlag = NETDEV_QUERYCOND_LOGICTYPE_E.NETDEV_QUERYCOND_LOGIC_DESC_ORDER; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray("", stFindCond.astCondition[3].szConditionData);   //NETDEV_ALARM_SMART_FACE_MATCH_LIST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_SMART_ALARM_LOG_RESULT_INFO_S  stResultInfo = new NETDEV_SMART_ALARM_LOG_RESULT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        boolean bRet = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("告警记录1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Pointer lpFindRecordHandlePointer = NetDemo.netdevsdk.NETDEV_FindFaceRecordDetailList(NetDemo.lpUserID, stFindCond, stResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(lpFindRecordHandlePointer != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("人脸数据1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    NETDEV_FACE_RECORD_SNAPSHOT_INFO_S stRecordInfo = new NETDEV_FACE_RECORD_SNAPSHOT_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo = new NETDEV_FACE_ALARM_CMP_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo = new NETDEV_FACE_MEMBER_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberRegionInfo = new NETDEV_FACE_MEMBER_REGION_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberIDInfo = new NETDEV_FACE_MEMBER_ID_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberImageInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stMemberInfo.stMemberSemiInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage = new NETDEV_FACE_ALARM_SNAP_IMAGE_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stBigImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.stSnapshotImage.stArea = new NETDEV_FACE_ALARM_IMAGE_AREA_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    stRecordInfo.stCompareInfo.pstPersonInfo = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    bRet = NetDemo.netdevsdk.NETDEV_FindNextFaceRecordDetail(lpFindRecordHandlePointer, stRecordInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                        if(NetDemo.jComboBoxDeviceType.getSelectedIndex() == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            String strFileNameBig = NetDemo.strPicturePath + strTime +"BigImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            NETDEV_FILE_INFO_S stFileInfo = new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            stFileInfo.pcData = new Memory(Common.NETDEMO_PICTURE_SIZE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            stFileInfo.udwSize = Common.NETDEMO_PICTURE_SIZE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            bRet = NetDemo.netdevsdk.NETDEV_GetFaceRecordImageInfo(NetDemo.lpUserID, stRecordInfo.udwRecordID, 0, stFileInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            if(bRet == true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                Common.savePicture(stFileInfo.pcData, stFileInfo.udwSize, strFileNameBig); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                System.out.printf("Get picture failed failed,error code"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        String strFileNameSmall = NetDemo.strPicturePath + strTime +"SmallImage.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Common.savePicture(stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.pcData, stRecordInfo.stCompareInfo.stSnapshotImage.stSmallImage.udwSize, strFileNameSmall); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                bRet = NetDemo.netdevsdk.NETDEV_FindCloseFaceRecordDetail(lpFindRecordHandlePointer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(bRet != true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("NETDEV_FindCloseFaceRecordDetail failed:"+NetDemo.netdevsdk.NETDEV_GetLastError()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(stFindCond.dwFirstRow >= stResultInfo.udwTotal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                stFindCond.dwFirstRow += stFindCond.dwPageRow; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            {   String strPicPath = System.getProperty("user.dir").replaceAll("%20"," ") + File.separator +"Picture"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("Query ended.The path:"+strPicPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 门禁查询出入记录 对接设备没有门禁记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void searchAccessRecords(String startTime,String endTime,String persionId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(null == NetDemo.lpUserID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未登录,请先登录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_ALARM_LOG_COND_LIST_S pstFindCond=new NETDEV_ALARM_LOG_COND_LIST_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.dwPageRow=8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.dwFirstRow=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.dwCondSize=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[0]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[0].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[0].dwLogicFlag=3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get1=Common.date2TimeStamp(startTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String getStartTime=Long.toString(get1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray(getStartTime, pstFindCond.astCondition[0].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[1]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[1].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[1].dwLogicFlag=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        long get2=Common.date2TimeStamp(endTime, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(get1>get2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("开始时间不能大于结束时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String getendtTime=Long.toString(get2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray(getendtTime, pstFindCond.astCondition[1].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[2]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[2].dwQueryType=4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.astCondition[2].dwLogicFlag=9; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Common.stringToByteArray(getendtTime, pstFindCond.astCondition[2].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        logger.info("pstFindCond.astCondition.length:"+ pstFindCond.astCondition.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////        if(StringUtils.isNotBlank(persionId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////            //人员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////            pstFindCond.astCondition[3]=new NETDEV_QUERY_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////            pstFindCond.astCondition[3].dwQueryType=79; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////            pstFindCond.astCondition[3].dwLogicFlag=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////            Common.stringToByteArray(persionId, pstFindCond.astCondition[3].szConditionData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NETDEV_BATCH_OPERATE_BASIC_S pstResultInfo=new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstResultInfo.udwOffset=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstFindCond.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pstResultInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Pointer lpFindHandle= NetDemo.netdevsdk.NETDEV_FindACSAttendanceLogList(NetDemo.lpUserID,pstFindCond,pstResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(lpFindHandle!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NETDEV_ACS_ATTENDANCE_LOG_INFO_S pstACSLogInfo=new NETDEV_ACS_ATTENDANCE_LOG_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stCompareInfo=new NETDEV_COMPARE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stCompareInfo.stPersonImage=new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stCompareInfo.stPersonImage.pcData=new Memory(1048576); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stCompareInfo.stSnapshotImage=new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stCompareInfo.stSnapshotImage.pcData=new Memory(1048576); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("stSnapshotImage.szUrl="+Common.byteArrayToString(pstACSLogInfo.stCompareInfo.stSnapshotImage.szUrl)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.stFaceAttr=new NETDEV_FACE_ATTR_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            pstACSLogInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            boolean flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            NetDemo.getRowData=new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                boolean nextAcs= NetDemo.netdevsdk.NETDEV_FindNextACSAttendanceLog(lpFindHandle,pstACSLogInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(!nextAcs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                pstACSLogInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                pstResultInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////              分页数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    Vector data=new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(i+1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String szName=Common.byteArrayToString(pstACSLogInfo.szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    Long getTime=pstACSLogInfo.tTimeStamp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String new1=String.valueOf(getTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String getNewDateTime=Common.timeStamp2Date(new1, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String deptName=Common.byteArrayToString(pstACSLogInfo.szDoorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    int direct=pstACSLogInfo.udwDoorDirect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String getDirect=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(direct==0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        getDirect="in"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    }else if(direct==1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        getDirect="out"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        getDirect="unknow"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(getNewDateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(getDirect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.add(pstACSLogInfo.stFaceAttr.fTemperature); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    NetDemo.getRowData.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    logger.info("门禁记录-- szPersonName:"+Common.byteArrayToString(pstACSLogInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            +",getNewDateTime:"+getNewDateTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            +",deptName:"+deptName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            +",getDirect:"+getDirect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            +",fTemperature:"+pstACSLogInfo.stFaceAttr.fTemperature 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                }catch(Exception eee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                }i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            while (flag && i < 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("未找到记录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        NetDemo.netdevsdk.NETDEV_FindCloseACSAttendanceLogList(lpFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        int pageSize=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(pstResultInfo.udwTotal>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(pstResultInfo.udwTotal%8==0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    pageSize=pstResultInfo.udwTotal/8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                }catch(Exception m) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    pageSize=(pstResultInfo.udwTotal/8)+1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                }catch(Exception m) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("没数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /***************************sdk call back**************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static NETDEV_DISCOVERY_CALLBACK_PF cbDiscoveryCallBack = new NETDEV_DISCOVERY_CALLBACK_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static class NETDEV_DISCOVERY_CALLBACK_PF  implements NetDEVSDKLib.NETDEV_DISCOVERY_CALLBACK_PF { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        public void invoke(NETDEV_DISCOVERY_DEVINFO_S pstDevInfo, Pointer lpUserData){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            Vector<String> vector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(Common.DevideTypeToString((int)pstDevInfo.enDevType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(Common.utfToString(pstDevInfo.szDevAddr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(String.valueOf(pstDevInfo.dwDevPort)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(Common.utfToString(pstDevInfo.szDevMac)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(Common.utfToString(pstDevInfo.szDevSerailNum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            vector.add(Common.utfToString(pstDevInfo.szManuFacturer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("设备搜索回调-- enDevType:"+Common.DevideTypeToString((int)pstDevInfo.enDevType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    +",szDevAddr:"+Common.utfToString(pstDevInfo.szDevAddr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    +",dwDevPort:"+pstDevInfo.dwDevPort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    +",szDevMac:"+Common.utfToString(pstDevInfo.szDevMac) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    +",szDevSerailNum:"+Common.utfToString(pstDevInfo.szDevSerailNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    +",szManuFacturer:"+Common.utfToString(pstDevInfo.szManuFacturer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static  NETDEV_AlarmMessCallBack_PF_V30 cbAlarmMessCallBack = new NETDEV_AlarmMessCallBack_PF_V30(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static class NETDEV_AlarmMessCallBack_PF_V30 implements NetDEVSDKLib.NETDEV_AlarmMessCallBack_PF_V30{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        public void invoke(Pointer lpUserID, NETDEV_REPORT_INFO_S pstReportInfo, Pointer lpBuf, int dwBufLen, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                           Pointer lpUserParam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (NETDEV_REPORT_TYPE_E.NETDEV_REPORT_TYPE_ALARM == pstReportInfo.dwReportType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String strTime = Common.timeStamp2Date(Long.toString(pstReportInfo.stAlarmInfo.tAlarmTimeStamp),NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Vector<String> vector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                vector.add(strTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String ChannelInfo = Integer.toString(pstReportInfo.stAlarmInfo.dwChannelID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String AlarmSrc = Common.utfToString(pstReportInfo.stAlarmInfo.szAlarmSrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (!AlarmSrc.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    ChannelInfo += "("; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    ChannelInfo += AlarmSrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    ChannelInfo += ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                vector.add(ChannelInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                vector.add(Common.AlarmTypeToString(pstReportInfo.stAlarmInfo.dwAlarmType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("告警信息--strTime:"+strTime+",ChannelInfo:" +ChannelInfo+ ",dwAlarmType:" + pstReportInfo.stAlarmInfo.dwAlarmType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        + ",dwAlarmLevel:" + pstReportInfo.stAlarmInfo.dwAlarmLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("event_info null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static NETDEV_FaceSnapshotCallBack_PF cbFaceSnapshotCallBack = new NETDEV_FaceSnapshotCallBack_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static class NETDEV_FaceSnapshotCallBack_PF implements NetDEVSDKLib.NETDEV_FaceSnapshotCallBack_PF{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        public void invoke(Pointer lpPlayHandle, NETDEV_TMS_FACE_SNAPSHOT_PIC_INFO_S pstFaceSnapShotData, Pointer lpUserParam){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info(pstFaceSnapShotData.udwPicBuffLen+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            byte[] szDataBuf = new byte[pstFaceSnapShotData.udwPicBuffLen]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            szDataBuf = pstFaceSnapShotData.pcPicBuff.getByteArray(0, pstFaceSnapShotData.udwPicBuffLen); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            FileOutputStream fop = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            File file; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                file = new File("./face.jpg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                fop = new FileOutputStream(file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (!file.exists()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    file.createNewFile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                fop.write(szDataBuf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                fop.flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                fop.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("write Done"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } catch (IOException e2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                e2.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static NETDEV_PersonAlarmMessCallBack_PF personAlarmMessCB =new NETDEV_PersonAlarmMessCallBack_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public static class NETDEV_PersonAlarmMessCallBack_PF implements NetDEVSDKLib.NETDEV_PersonAlarmMessCallBack_PF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        public void invoke(Pointer lpUserID, NETDEV_PERSON_EVENT_INFO_S pstAlarmData, Pointer lpUserData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            // TODO Auto-generated method stub 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.info("Person AlarmTime:"+ pstAlarmData.udwTimestamp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            for(int i = 0; i < pstAlarmData.udwFaceInfoNum; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                logger.info("Person udwSimilarity:"+ pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.udwSimilarity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //布控的图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.udwImageNum > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String strFileName = NetDemo.strPicturePath + strTime +"bukong.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.stImageInfo[0].stFileInfo.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.stImageInfo[0].stFileInfo.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                // 大图,一体机获取的方法,ipc/NVR直接写数据 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String strFileName = NetDemo.strPicturePath + strTime +"Person_Big.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String iCmRet = Common.byteArrayToString(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.szUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    if(!iCmRet.equals("")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Pointer pszUrl = new Memory(260); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        pszUrl.write(0, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.szUrl, 0, 260); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Pointer pszData = new Memory(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        NetDemo.netdevsdk.NETDEV_GetSystemPicture(lpUserID, pszUrl, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, pszData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Common.savePicture(pszData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                //小图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String strFileName = NetDemo.strPicturePath + strTime +"Person_Small.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stFaceImage.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stFaceImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NETDEV_BATCH_OPERATE_BASIC_S pstResultInfo=new NETDEV_BATCH_OPERATE_BASIC_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstResultInfo.udwOffset=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstFindCond.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pstResultInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Pointer lpFindHandle= NetDemo.netdevsdk.NETDEV_FindACSAttendanceLogList(NetDemo.lpUserID,pstFindCond,pstResultInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(lpFindHandle!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NETDEV_ACS_ATTENDANCE_LOG_INFO_S pstACSLogInfo=new NETDEV_ACS_ATTENDANCE_LOG_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stCompareInfo=new NETDEV_COMPARE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stCompareInfo.stPersonImage=new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stCompareInfo.stPersonImage.pcData=new Memory(1048576); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stCompareInfo.stSnapshotImage=new NETDEV_FILE_INFO_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stCompareInfo.stSnapshotImage.pcData=new Memory(1048576); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("stSnapshotImage.szUrl="+Common.byteArrayToString(pstACSLogInfo.stCompareInfo.stSnapshotImage.szUrl)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.stFaceAttr=new NETDEV_FACE_ATTR_S(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            pstACSLogInfo.write(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            NetDemo.getRowData=new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            do { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean nextAcs= NetDemo.netdevsdk.NETDEV_FindNextACSAttendanceLog(lpFindHandle,pstACSLogInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(!nextAcs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pstACSLogInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pstResultInfo.read(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//              分页数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Vector data=new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(i+1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String szName=Common.byteArrayToString(pstACSLogInfo.szPersonName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(szName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Long getTime=pstACSLogInfo.tTimeStamp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String new1=String.valueOf(getTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String getNewDateTime=Common.timeStamp2Date(new1, NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String deptName=Common.byteArrayToString(pstACSLogInfo.szDoorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int direct=pstACSLogInfo.udwDoorDirect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String getDirect=null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(direct==0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        getDirect="in"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else if(direct==1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        getDirect="out"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        getDirect="unknow"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(getNewDateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(getDirect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    data.add(pstACSLogInfo.stFaceAttr.fTemperature); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    NetDemo.getRowData.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("门禁记录-- szPersonName:"+Common.byteArrayToString(pstACSLogInfo.szPersonName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            +",getNewDateTime:"+getNewDateTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            +",deptName:"+deptName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            +",getDirect:"+getDirect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            +",fTemperature:"+pstACSLogInfo.stFaceAttr.fTemperature 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }catch(Exception eee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while (flag && i < 8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("未找到记录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        NetDemo.netdevsdk.NETDEV_FindCloseACSAttendanceLogList(lpFindHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int pageSize=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(pstResultInfo.udwTotal>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(pstResultInfo.udwTotal%8==0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    pageSize=pstResultInfo.udwTotal/8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }catch(Exception m) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    pageSize=(pstResultInfo.udwTotal/8)+1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }catch(Exception m) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("没数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /***************************sdk call back**************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static NETDEV_DISCOVERY_CALLBACK_PF cbDiscoveryCallBack = new NETDEV_DISCOVERY_CALLBACK_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static class NETDEV_DISCOVERY_CALLBACK_PF  implements NetDEVSDKLib.NETDEV_DISCOVERY_CALLBACK_PF { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        public void invoke(NETDEV_DISCOVERY_DEVINFO_S pstDevInfo, Pointer lpUserData){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Vector<String> vector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(Common.DevideTypeToString((int)pstDevInfo.enDevType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(Common.utfToString(pstDevInfo.szDevAddr)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(String.valueOf(pstDevInfo.dwDevPort)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(Common.utfToString(pstDevInfo.szDevMac)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(Common.utfToString(pstDevInfo.szDevSerailNum)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            vector.add(Common.utfToString(pstDevInfo.szManuFacturer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("设备搜索回调-- enDevType:"+Common.DevideTypeToString((int)pstDevInfo.enDevType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    +",szDevAddr:"+Common.utfToString(pstDevInfo.szDevAddr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    +",dwDevPort:"+pstDevInfo.dwDevPort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    +",szDevMac:"+Common.utfToString(pstDevInfo.szDevMac) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    +",szDevSerailNum:"+Common.utfToString(pstDevInfo.szDevSerailNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    +",szManuFacturer:"+Common.utfToString(pstDevInfo.szManuFacturer)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static  NETDEV_AlarmMessCallBack_PF_V30 cbAlarmMessCallBack = new NETDEV_AlarmMessCallBack_PF_V30(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static class NETDEV_AlarmMessCallBack_PF_V30 implements NetDEVSDKLib.NETDEV_AlarmMessCallBack_PF_V30{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        public void invoke(Pointer lpUserID, NETDEV_REPORT_INFO_S pstReportInfo, Pointer lpBuf, int dwBufLen, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           Pointer lpUserParam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (NETDEV_REPORT_TYPE_E.NETDEV_REPORT_TYPE_ALARM == pstReportInfo.dwReportType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String strTime = Common.timeStamp2Date(Long.toString(pstReportInfo.stAlarmInfo.tAlarmTimeStamp),NetDemo.DateFormat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Vector<String> vector = new Vector<String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                vector.add(strTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String ChannelInfo = Integer.toString(pstReportInfo.stAlarmInfo.dwChannelID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String AlarmSrc = Common.utfToString(pstReportInfo.stAlarmInfo.szAlarmSrc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!AlarmSrc.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ChannelInfo += "("; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ChannelInfo += AlarmSrc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ChannelInfo += ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                vector.add(ChannelInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                vector.add(Common.AlarmTypeToString(pstReportInfo.stAlarmInfo.dwAlarmType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("告警信息--strTime:"+strTime+",ChannelInfo:" +ChannelInfo+ ",dwAlarmType:" + pstReportInfo.stAlarmInfo.dwAlarmType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        + ",dwAlarmLevel:" + pstReportInfo.stAlarmInfo.dwAlarmLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("event_info null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static NETDEV_FaceSnapshotCallBack_PF cbFaceSnapshotCallBack = new NETDEV_FaceSnapshotCallBack_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static class NETDEV_FaceSnapshotCallBack_PF implements NetDEVSDKLib.NETDEV_FaceSnapshotCallBack_PF{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        public void invoke(Pointer lpPlayHandle, NETDEV_TMS_FACE_SNAPSHOT_PIC_INFO_S pstFaceSnapShotData, Pointer lpUserParam){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info(pstFaceSnapShotData.udwPicBuffLen+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            byte[] szDataBuf = new byte[pstFaceSnapShotData.udwPicBuffLen]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            szDataBuf = pstFaceSnapShotData.pcPicBuff.getByteArray(0, pstFaceSnapShotData.udwPicBuffLen); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            FileOutputStream fop = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            File file; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                file = new File("./face.jpg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                fop = new FileOutputStream(file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!file.exists()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    file.createNewFile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                fop.write(szDataBuf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                fop.flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                fop.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("write Done"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (IOException e2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                e2.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static NETDEV_PersonAlarmMessCallBack_PF personAlarmMessCB =new NETDEV_PersonAlarmMessCallBack_PF(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static class NETDEV_PersonAlarmMessCallBack_PF implements NetDEVSDKLib.NETDEV_PersonAlarmMessCallBack_PF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        public void invoke(Pointer lpUserID, NETDEV_PERSON_EVENT_INFO_S pstAlarmData, Pointer lpUserData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // TODO Auto-generated method stub 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String strTime = Common.getDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("Person AlarmTime:"+ pstAlarmData.udwTimestamp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i = 0; i < pstAlarmData.udwFaceInfoNum; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("Person udwSimilarity:"+ pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.udwSimilarity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //布控的图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.udwImageNum > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String strFileName = NetDemo.strPicturePath + strTime +"bukong.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.stImageInfo[0].stFileInfo.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPersonInfo.stImageInfo[0].stFileInfo.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 大图,一体机获取的方法,ipc/NVR直接写数据 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String strFileName = NetDemo.strPicturePath + strTime +"Person_Big.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String iCmRet = Common.byteArrayToString(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.szUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(!iCmRet.equals("")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Pointer pszUrl = new Memory(260); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        pszUrl.write(0, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.szUrl, 0, 260); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Pointer pszData = new Memory(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        NetDemo.netdevsdk.NETDEV_GetSystemPicture(lpUserID, pszUrl, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, pszData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Common.savePicture(pszData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stPanoImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //小图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String strFileName = NetDemo.strPicturePath + strTime +"Person_Small.jpg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Common.savePicture(pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stFaceImage.pcData, pstAlarmData.stCtrlFaceInfo[i].stCompareInfo.stFaceImage.udwSize, strFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//} 
			 |