Commit 9d70d292221b60e1ba9b7d05065ebdedf2d07232
1 parent
375d859f
Exists in
master
no message
Showing
27 changed files
with
462 additions
and
117 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
| ... | ... | @@ -275,7 +275,7 @@ public class MyTask implements ApplicationRunner { |
| 275 | 275 | pBuffer.read(0, bufferBytes, 0, dwBufSize); |
| 276 | 276 | |
| 277 | 277 | |
| 278 | - File path = new File("E:\\wwwhtdocs\\SmartCampus\\face17e50\FaceRecoder"); | |
| 278 | + File path = new File(".\FaceRecoder"); | |
| 279 | 279 | if (!path.exists()) { |
| 280 | 280 | path.mkdir(); |
| 281 | 281 | } |
| ... | ... | @@ -284,19 +284,18 @@ public class MyTask implements ApplicationRunner { |
| 284 | 284 | if (dwAlarmType == NetSDKLib.EVENT_IVS_ACCESS_CTL) { |
| 285 | 285 | NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO msg = new NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO(); |
| 286 | 286 | ToolKits.GetPointerData(pAlarmInfo, msg); |
| 287 | - // 保存图片,获取图片缓存 | |
| 288 | - String snapPicPath = path + "\\" + System.currentTimeMillis() + ".png"; // 保存图片地址 | |
| 289 | - byte[] buffer = pBuffer.getByteArray(0, dwBufSize); | |
| 290 | - ByteArrayInputStream byteArrInputGlobal = new ByteArrayInputStream(buffer); | |
| 291 | - | |
| 287 | + System.out.println("sda:" + new String(msg.szCardNo) + " 抓拍照片存储地址:"); | |
| 292 | 288 | try { |
| 293 | - System.out.println("sda:" + new String(msg.szCardNo) + " 抓拍照片存储地址:" + new String(msg.szSnapURL, "GBK").trim()); | |
| 294 | - gateBufferedImage = ImageIO.read(byteArrInputGlobal); | |
| 295 | - if (gateBufferedImage != null) { | |
| 296 | - ImageIO.write(gateBufferedImage, "png", new File(snapPicPath)); | |
| 297 | - } | |
| 298 | 289 | String card = new String(msg.szCardNo).trim(); |
| 299 | 290 | if (!StringUtils.isEmpty(card)) { |
| 291 | + // 保存图片,获取图片缓存 | |
| 292 | + String snapPicPath = path + "\\" + System.currentTimeMillis() + ".png"; // 保存图片地址 | |
| 293 | + byte[] buffer = pBuffer.getByteArray(0, dwBufSize); | |
| 294 | + ByteArrayInputStream byteArrInputGlobal = new ByteArrayInputStream(buffer); | |
| 295 | + gateBufferedImage = ImageIO.read(byteArrInputGlobal); | |
| 296 | + if (gateBufferedImage != null) { | |
| 297 | + ImageIO.write(gateBufferedImage, "png", new File(snapPicPath)); | |
| 298 | + } | |
| 300 | 299 | card=cardNo(card); |
| 301 | 300 | CardBean cardBean = userDao.getCards(card);//根据卡号获取身份信息 |
| 302 | 301 | String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/control/DeviceControl.java
| ... | ... | @@ -3,6 +3,7 @@ package com.example.dahua.control; |
| 3 | 3 | import com.example.dahua.service.DeviceService; |
| 4 | 4 | import io.swagger.annotations.Api; |
| 5 | 5 | import io.swagger.annotations.ApiImplicitParam; |
| 6 | +import io.swagger.annotations.ApiOperation; | |
| 6 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | 8 | import org.springframework.web.bind.annotation.RequestMapping; |
| 8 | 9 | import org.springframework.web.bind.annotation.RequestMethod; |
| ... | ... | @@ -23,4 +24,11 @@ public class DeviceControl { |
| 23 | 24 | } |
| 24 | 25 | |
| 25 | 26 | |
| 27 | + @RequestMapping(value = "setDVRIPConfig", method = RequestMethod.GET) | |
| 28 | + @ApiOperation("改变设备的IP信息") | |
| 29 | + public boolean setDVRIPConfig(@RequestParam("deviceId") String deviceId,@RequestParam("ip") String ip, | |
| 30 | + @RequestParam("port") int port) { | |
| 31 | + return deviceService.setDVRIPConfig(deviceId,ip,port); | |
| 32 | + } | |
| 33 | + | |
| 26 | 34 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
| ... | ... | @@ -163,7 +163,7 @@ public class UserControl { |
| 163 | 163 | angel = 180; |
| 164 | 164 | } |
| 165 | 165 | System.out.println("图片检验成功"); |
| 166 | - FileUtils.getInstance().writeLogs("检测成功:" + httpurl, FileUtils.checkSuc); | |
| 166 | + FileUtils.getInstance().writeLogs("检测成功:" + imgFilePath, FileUtils.checkSuc); | |
| 167 | 167 | //E:\wwwhtdocs\SmartCampus\face17e50\School |
| 168 | 168 | //http://campus.myjxt.com//face17e5/School861/Student/GBZX20171134.jpg |
| 169 | 169 | //F:\wwwroot\smartcampus\face17e5 |
| ... | ... | @@ -181,7 +181,7 @@ public class UserControl { |
| 181 | 181 | } |
| 182 | 182 | } else { |
| 183 | 183 | System.out.println("检测失败"); |
| 184 | - FileUtils.getInstance().writeLogs("检测失败:" + error_msg + httpurl, FileUtils.checkFail); | |
| 184 | + FileUtils.getInstance().writeLogs("检测失败:" + error_msg + imgFilePath, FileUtils.checkFail); | |
| 185 | 185 | deleteImgFile(imgFilePath); |
| 186 | 186 | return false; |
| 187 | 187 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/module/DeviceControlModule.java
| 1 | 1 | package com.example.dahua.module; |
| 2 | 2 | |
| 3 | +import com.example.dahua.MyTask; | |
| 3 | 4 | import com.example.dahua.lib.NetSDKLib; |
| 4 | 5 | import com.example.dahua.lib.ToolKits; |
| 5 | 6 | |
| 7 | +import java.io.UnsupportedEncodingException; | |
| 6 | 8 | import java.text.SimpleDateFormat; |
| 7 | 9 | |
| 8 | 10 | |
| 9 | - | |
| 10 | 11 | /** |
| 11 | 12 | * \if ENGLISH_LANG |
| 12 | 13 | * Device Control Interface |
| ... | ... | @@ -17,48 +18,47 @@ import java.text.SimpleDateFormat; |
| 17 | 18 | * \endif |
| 18 | 19 | */ |
| 19 | 20 | public class DeviceControlModule { |
| 20 | - | |
| 21 | - /** | |
| 22 | - * \if ENGLISH_LANG | |
| 23 | - * Reboot Device | |
| 24 | - * \else | |
| 25 | - * 重启设备 | |
| 26 | - * \endif | |
| 27 | - */ | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * \if ENGLISH_LANG | |
| 24 | + * Reboot Device | |
| 25 | + * \else | |
| 26 | + * 重启设备 | |
| 27 | + * \endif | |
| 28 | + */ | |
| 28 | 29 | public static boolean reboot() { |
| 29 | - | |
| 30 | + | |
| 30 | 31 | if (!LoginModule.netsdk.CLIENT_ControlDevice(LoginModule.m_hLoginHandle, NetSDKLib.CtrlType.CTRLTYPE_CTRL_REBOOT, null, 3000)) { |
| 31 | - System.err.println("CLIENT_ControlDevice Failed!" + ToolKits.getErrorCodePrint()); | |
| 32 | - return false; | |
| 32 | + System.err.println("CLIENT_ControlDevice Failed!" + ToolKits.getErrorCodePrint()); | |
| 33 | + return false; | |
| 33 | 34 | } |
| 34 | 35 | return true; |
| 35 | 36 | } |
| 36 | 37 | |
| 37 | - public static boolean reboot(NetSDKLib.LLong lLong) { | |
| 38 | + public static boolean reboot(NetSDKLib.LLong lLong) { | |
| 38 | 39 | |
| 39 | - if (!LoginModule.netsdk.CLIENT_ControlDevice(lLong, NetSDKLib.CtrlType.CTRLTYPE_CTRL_REBOOT, null, 3000)) { | |
| 40 | - System.err.println("CLIENT_ControlDevice Failed!" + ToolKits.getErrorCodePrint()); | |
| 41 | - return false; | |
| 42 | - } | |
| 43 | - else System.out.println("设备重启成功"); | |
| 44 | - return true; | |
| 45 | - } | |
| 40 | + if (!LoginModule.netsdk.CLIENT_ControlDevice(lLong, NetSDKLib.CtrlType.CTRLTYPE_CTRL_REBOOT, null, 3000)) { | |
| 41 | + System.err.println("CLIENT_ControlDevice Failed!" + ToolKits.getErrorCodePrint()); | |
| 42 | + return false; | |
| 43 | + } else System.out.println("设备重启成功"); | |
| 44 | + return true; | |
| 45 | + } | |
| 46 | 46 | |
| 47 | 47 | /** |
| 48 | - * \if ENGLISH_LANG | |
| 49 | - * Setup Device Time | |
| 50 | - * \else | |
| 51 | - * 时间同步 | |
| 52 | - * \endif | |
| 53 | - */ | |
| 48 | + * \if ENGLISH_LANG | |
| 49 | + * Setup Device Time | |
| 50 | + * \else | |
| 51 | + * 时间同步 | |
| 52 | + * \endif | |
| 53 | + */ | |
| 54 | 54 | public static boolean setTime(String date) { |
| 55 | - NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME(); | |
| 56 | - if (date == null) { | |
| 57 | - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 55 | + NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME(); | |
| 56 | + if (date == null) { | |
| 57 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 58 | 58 | date = dateFormat.format(new java.util.Date()); |
| 59 | - } | |
| 60 | - | |
| 61 | - String[] dateTime = date.split(" "); | |
| 59 | + } | |
| 60 | + | |
| 61 | + String[] dateTime = date.split(" "); | |
| 62 | 62 | String[] arrDate = dateTime[0].split("-"); |
| 63 | 63 | String[] arrTime = dateTime[1].split(":"); |
| 64 | 64 | deviceTime.dwYear = Integer.parseInt(arrDate[0]); |
| ... | ... | @@ -69,30 +69,47 @@ public class DeviceControlModule { |
| 69 | 69 | deviceTime.dwSecond = Integer.parseInt(arrTime[2]); |
| 70 | 70 | |
| 71 | 71 | if (!LoginModule.netsdk.CLIENT_SetupDeviceTime(LoginModule.m_hLoginHandle, deviceTime)) { |
| 72 | - System.err.println("CLIENT_SetupDeviceTime Failed!" + ToolKits.getErrorCodePrint()); | |
| 73 | - return false; | |
| 72 | + System.err.println("CLIENT_SetupDeviceTime Failed!" + ToolKits.getErrorCodePrint()); | |
| 73 | + return false; | |
| 74 | 74 | } |
| 75 | 75 | return true; |
| 76 | 76 | } |
| 77 | - | |
| 77 | + | |
| 78 | 78 | /** |
| 79 | - * \if ENGLISH_LANG | |
| 80 | - * Get Device Current Time | |
| 81 | - * \else | |
| 82 | - * 获取设备当前时间 | |
| 83 | - * \endif | |
| 84 | - */ | |
| 79 | + * \if ENGLISH_LANG | |
| 80 | + * Get Device Current Time | |
| 81 | + * \else | |
| 82 | + * 获取设备当前时间 | |
| 83 | + * \endif | |
| 84 | + */ | |
| 85 | 85 | public static String getTime() { |
| 86 | - NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME(); | |
| 87 | - | |
| 88 | - if (!LoginModule.netsdk.CLIENT_QueryDeviceTime(LoginModule.m_hLoginHandle, deviceTime, 3000)) { | |
| 89 | - System.err.println("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint()); | |
| 90 | - return null; | |
| 91 | - } | |
| 92 | - | |
| 93 | - String date = deviceTime.toStringTime(); | |
| 94 | - date = date.replace("/", "-"); | |
| 95 | - | |
| 96 | - return date; | |
| 86 | + NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME(); | |
| 87 | + | |
| 88 | + if (!LoginModule.netsdk.CLIENT_QueryDeviceTime(LoginModule.m_hLoginHandle, deviceTime, 3000)) { | |
| 89 | + System.err.println("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint()); | |
| 90 | + return null; | |
| 91 | + } | |
| 92 | + | |
| 93 | + String date = deviceTime.toStringTime(); | |
| 94 | + date = date.replace("/", "-"); | |
| 95 | + | |
| 96 | + return date; | |
| 97 | 97 | } |
| 98 | + | |
| 99 | + | |
| 100 | + public static boolean setDVRIPConfig(String deviceId, String ip, int port) { | |
| 101 | + NetSDKLib.CFG_DVRIP_INFO info = AutoRegisterModule.getDVRIPConfig(MyTask.lLongMap.get(deviceId)); | |
| 102 | + | |
| 103 | +// win下,中文需要转换为GBK | |
| 104 | + byte[] deviceIdBytes = null; | |
| 105 | + try { | |
| 106 | + deviceIdBytes = deviceId.getBytes("GBK"); | |
| 107 | + } catch (UnsupportedEncodingException e) { | |
| 108 | + e.printStackTrace(); | |
| 109 | + } | |
| 110 | + boolean setResult = AutoRegisterModule.setDVRIPConfig(MyTask.lLongMap.get(deviceId), true, ip, port, deviceIdBytes, info); | |
| 111 | + if (setResult) return true; | |
| 112 | + else return false; | |
| 113 | + } | |
| 114 | + | |
| 98 | 115 | } | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/service/DeviceService.java
cloud/dahua/src/main/java/com/example/dahua/service/DeviceServiceImp.java
| ... | ... | @@ -14,4 +14,10 @@ public class DeviceServiceImp implements DeviceService{ |
| 14 | 14 | return DeviceControlModule.reboot(MyTask.lLongMap.get(deviceId)); |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | + @Override | |
| 18 | + public boolean setDVRIPConfig(String deviceId,String ip,int port) { | |
| 19 | + | |
| 20 | + return DeviceControlModule.setDVRIPConfig(deviceId,ip,port); | |
| 21 | + } | |
| 22 | + | |
| 17 | 23 | } | ... | ... |
cloud/dahua/src/test/java/com/example/dahua/DahuaApplicationTests.java
| ... | ... | @@ -385,7 +385,7 @@ public class DahuaApplicationTests { |
| 385 | 385 | @Test |
| 386 | 386 | public void Mqtt() { |
| 387 | 387 | |
| 388 | - /*MqttManager mqttManager = new MqttManager(); | |
| 388 | + /* MqttManager mqttManager = new MqttManager(); | |
| 389 | 389 | |
| 390 | 390 | mqttManager.init(); |
| 391 | 391 | |
| ... | ... | @@ -395,7 +395,7 @@ public class DahuaApplicationTests { |
| 395 | 395 | String devId = stringList.get(i); |
| 396 | 396 | //30关闭显示屏 31打开显示屏,9升级客户端 |
| 397 | 397 | |
| 398 | - mqttManager.sendMq(devId, 9); | |
| 398 | + mqttManager.sendMq(devId, 31); | |
| 399 | 399 | }*/ |
| 400 | 400 | } |
| 401 | 401 | ... | ... |
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +2019-12-04 17:39:42 文件名:A38DBF515020CE1B884DA4D8A0B12EFC2019-12-04.jpg | |
| 2 | + | |
| 3 | +2019-12-04 17:39:48 文件名:53279343AD42FE392FD3424098AF36812019-12-04.jpg | |
| 4 | + | |
| 5 | +2019-12-04 17:41:24 文件名:F9655C0FD13615BBD9B1070ED28BC24C2019-12-04.jpg | |
| 6 | + | |
| 7 | +2019-12-04 17:41:30 文件名:BC30A4282D2FF66EE3AE669BE9FE2D3D2019-12-04.jpg | |
| 8 | + | |
| 9 | +2019-12-04 17:42:31 文件名:35AC177BF66B817C91FDEF59CB23FE802019-12-04.jpg | |
| 10 | + | |
| 11 | +2019-12-04 17:44:51 文件名:CBA93648B16BF37256E3D2C984FE8AA62019-12-04.jpg | |
| 12 | + | |
| 13 | +2019-12-04 17:44:57 文件名:B43686A091D26DB93FE3F5917D0F52D02019-12-04.jpg | |
| 14 | + | |
| 15 | +2019-12-04 17:44:59 文件名:820D45CBACD7674663B813F95DA4D8EF2019-12-04.jpg | |
| 16 | + | |
| 17 | +2019-12-04 17:45:04 文件名:E094FBFF22AB3D48C7B400C47F201C212019-12-04.jpg | |
| 18 | + | |
| 19 | +2019-12-04 17:45:13 文件名:8AFE884497ED73034930BCAE38C61D862019-12-04.jpg | |
| 20 | + | |
| 21 | +2019-12-04 17:45:18 文件名:BC502A2B766E5F5AAEB920B3163330E52019-12-04.jpg | |
| 22 | + | |
| 23 | +2019-12-04 17:51:07 文件名:D0310F45310AE02AA9E91B28697B31C72019-12-04.jpg | |
| 24 | + | |
| 25 | +2019-12-04 17:51:12 文件名:77C9E6A6E3BC4FF106F881548B9770112019-12-04.jpg | |
| 26 | + | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
| ... | ... | @@ -71,7 +71,7 @@ public class CMSServer implements ApplicationRunner { |
| 71 | 71 | |
| 72 | 72 | static HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE; |
| 73 | 73 | FRegisterCallBack fRegisterCallBack;//注册回调函数实现 |
| 74 | -// NativeLong lLoginID;//用户句柄 | |
| 74 | + // NativeLong lLoginID;//用户句柄 | |
| 75 | 75 | HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM(); |
| 76 | 76 | Map<String, NativeLong> map = new HashMap<>(); |
| 77 | 77 | |
| ... | ... | @@ -109,7 +109,7 @@ public class CMSServer implements ApplicationRunner { |
| 109 | 109 | * @param deviceId |
| 110 | 110 | */ |
| 111 | 111 | public boolean getIsDeviceOnline(String deviceId) { |
| 112 | - return map.containsKey(deviceId)?true:false; | |
| 112 | + return map.containsKey(deviceId) ? true : false; | |
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { |
| ... | ... | @@ -272,12 +272,13 @@ public class CMSServer implements ApplicationRunner { |
| 272 | 272 | |
| 273 | 273 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { |
| 274 | 274 | String strPath = "C://EhomePicServer/"; |
| 275 | -// System.out.println("pFileName:"+pFileName); | |
| 276 | - pFileName = pFileName.replace("_",""); | |
| 275 | + System.out.println("pFileName:" + pFileName); | |
| 276 | + pFileName = pFileName.replace("_", ""); | |
| 277 | 277 | boolean isZhuaPai = false; |
| 278 | - if (pFileName.contains("-")){//人脸抓拍机抓拍到的图片 | |
| 279 | - strPath = "E://wwwhtdocs//SmartCampus//face17e5//School16//Student//";//测试服务器 | |
| 280 | - pFileName = pFileName.split("T")[0]+".jpg"; | |
| 278 | + if (pFileName.contains("-")) {//人脸抓拍机抓拍到的图片 | |
| 279 | + if (!ip.contains("172.16")) | |
| 280 | + strPath = "E://wwwhtdocs//SmartCampus//face17e5//School16//Student//";//测试服务器 | |
| 281 | + pFileName = pFileName.split("T")[0] + ".jpg"; | |
| 281 | 282 | isZhuaPai = true; |
| 282 | 283 | } |
| 283 | 284 | String strFilePath = strPath + pFileName; |
| ... | ... | @@ -324,8 +325,8 @@ public class CMSServer implements ApplicationRunner { |
| 324 | 325 | |
| 325 | 326 | pFilePath.write(0, strFilePath.getBytes(), 0, strFilePath.getBytes().length); |
| 326 | 327 | |
| 327 | - if (isZhuaPai){ | |
| 328 | - MqtUtils.getInstance().sendMsg("http://campus.myjxt.com//face17e5/School16/Student/"+pFileName); | |
| 328 | + if (isZhuaPai) { | |
| 329 | + MqtUtils.getInstance().sendMsg("http://campus.myjxt.com//face17e5/School16/Student/" + pFileName); | |
| 329 | 330 | } |
| 330 | 331 | |
| 331 | 332 | return true; |
| ... | ... | @@ -403,11 +404,11 @@ public class CMSServer implements ApplicationRunner { |
| 403 | 404 | alarmUtils = new AlarmUtils(deviceDao); |
| 404 | 405 | alarmUtils.setCallBack(new AlarmUtils.AlarmCallBack() { |
| 405 | 406 | @Override |
| 406 | - public void callBack(String minorType, String deviceID, String cardNo, String time,String picDataUrlId) { | |
| 407 | + public void callBack(String minorType, String deviceID, String cardNo, String time, String picDataUrlId) { | |
| 407 | 408 | switch (minorType) { |
| 408 | 409 | case "0x4b"://人脸认证通过 |
| 409 | 410 | // sendSMS(cardNo, deviceID, time); |
| 410 | - saveFaceRecoder(deviceID,cardNo,time,picDataUrlId); | |
| 411 | + saveFaceRecoder(deviceID, cardNo, time, picDataUrlId); | |
| 411 | 412 | break; |
| 412 | 413 | case "0x426"://人证设备在线 |
| 413 | 414 | |
| ... | ... | @@ -417,7 +418,7 @@ public class CMSServer implements ApplicationRunner { |
| 417 | 418 | deviceDao.updateDeviceStatu(0, deviceID); |
| 418 | 419 | break; |
| 419 | 420 | case "0x69"://人证比对通过 |
| 420 | - saveFaceRecoder(deviceID,cardNo,time,picDataUrlId); | |
| 421 | + saveFaceRecoder(deviceID, cardNo, time, picDataUrlId); | |
| 421 | 422 | break; |
| 422 | 423 | } |
| 423 | 424 | } |
| ... | ... | @@ -434,15 +435,14 @@ public class CMSServer implements ApplicationRunner { |
| 434 | 435 | |
| 435 | 436 | |
| 436 | 437 | /** |
| 437 | - * | |
| 438 | 438 | * @param deviceID |
| 439 | - * @param cardNo 十进制卡号 | |
| 439 | + * @param cardNo 十进制卡号 | |
| 440 | 440 | * @param time |
| 441 | 441 | * @param picDataUrlId |
| 442 | 442 | */ |
| 443 | - private void saveFaceRecoder( String deviceID, String cardNo, String time,String picDataUrlId){ | |
| 443 | + private void saveFaceRecoder(String deviceID, String cardNo, String time, String picDataUrlId) { | |
| 444 | 444 | |
| 445 | - if(!StringUtils.isEmpty(cardNo)){ | |
| 445 | + if (!StringUtils.isEmpty(cardNo)) { | |
| 446 | 446 | Face_Recoder face_recoder = new Face_Recoder(); |
| 447 | 447 | |
| 448 | 448 | //卡号逆转 |
| ... | ... | @@ -450,20 +450,20 @@ public class CMSServer implements ApplicationRunner { |
| 450 | 450 | |
| 451 | 451 | StudentBean studentBean = userDao.getStudentWithCard(cardNo); |
| 452 | 452 | |
| 453 | - if (null!=studentBean){ | |
| 454 | - FileUtils.getInstance().writeLogs(studentBean.getName()+" "+ cardNo,FileUtils.facerecoder); | |
| 453 | + if (null != studentBean) { | |
| 454 | + FileUtils.getInstance().writeLogs(studentBean.getName() + " " + cardNo, FileUtils.facerecoder); | |
| 455 | 455 | |
| 456 | 456 | face_recoder.setCardNum(cardNo); |
| 457 | 457 | face_recoder.setDeviceId(deviceID); |
| 458 | 458 | face_recoder.setTime(time); |
| 459 | 459 | face_recoder.setName(studentBean.getName()); |
| 460 | - String imgUrl = "http://114.55.30.100:8081/kms/services/rest/dataInfoService/downloadFile?id="+picDataUrlId; | |
| 460 | + String imgUrl = "http://114.55.30.100:8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; | |
| 461 | 461 | face_recoder.setImgurl(imgUrl); |
| 462 | 462 | face_recoder.setUser_id(studentBean.getUser_id()); |
| 463 | 463 | face_recoder.setInOrOut(1); |
| 464 | 464 | |
| 465 | - sendRecordDao.addFaceRecoder(face_recoder.getDeviceId(),face_recoder.getUser_id(),face_recoder.getName(), | |
| 466 | - face_recoder.getImgurl(),face_recoder.getInOrOut(),face_recoder.getTime(),face_recoder.getCardNum()); | |
| 465 | + sendRecordDao.addFaceRecoder(face_recoder.getDeviceId(), face_recoder.getUser_id(), face_recoder.getName(), | |
| 466 | + face_recoder.getImgurl(), face_recoder.getInOrOut(), face_recoder.getTime(), face_recoder.getCardNum()); | |
| 467 | 467 | } |
| 468 | 468 | } |
| 469 | 469 | |
| ... | ... | @@ -477,7 +477,7 @@ public class CMSServer implements ApplicationRunner { |
| 477 | 477 | * @param deviceId |
| 478 | 478 | * @return |
| 479 | 479 | */ |
| 480 | - public boolean createImgPath(String srcFile, String picUrl, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType,String employeeNo) { | |
| 480 | + public boolean createImgPath(String srcFile, String picUrl, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, String employeeNo) { | |
| 481 | 481 | |
| 482 | 482 | if (map.containsKey(deviceId)) { |
| 483 | 483 | HCEHomeSS.NET_EHOME_SS_CLIENT_PARAM pClientParam = new HCEHomeSS.NET_EHOME_SS_CLIENT_PARAM(); |
| ... | ... | @@ -513,7 +513,7 @@ public class CMSServer implements ApplicationRunner { |
| 513 | 513 | } |
| 514 | 514 | hCEhomeSS.NET_ESS_DestroyClient(client);//释放资源 |
| 515 | 515 | } |
| 516 | - return sendInfo(srcFile, url, card, startTime, endTime, validTimeEnabled, name, deviceId, userType,employeeNo); | |
| 516 | + return sendInfo(srcFile, url, card, startTime, endTime, validTimeEnabled, name, deviceId, userType, employeeNo); | |
| 517 | 517 | } |
| 518 | 518 | sendRecoderUtils.sendFail(sendRecordDao, card, srcFile, deviceId, userDao, "设备不在线", userType); |
| 519 | 519 | return false; |
| ... | ... | @@ -524,8 +524,8 @@ public class CMSServer implements ApplicationRunner { |
| 524 | 524 | * |
| 525 | 525 | * @Param picUrl 原图 |
| 526 | 526 | */ |
| 527 | - public boolean sendInfo(String srcFile, String url, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType,String employeeNo) { | |
| 528 | - editCard(startTime,endTime,validTimeEnabled,name,card,deviceId,employeeNo); | |
| 527 | + public boolean sendInfo(String srcFile, String url, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, String employeeNo) { | |
| 528 | + editCard(startTime, endTime, validTimeEnabled, name, card, deviceId, employeeNo); | |
| 529 | 529 | String strRequest = "/ISAPI/AccessControl/SetFaceParamCfg"; |
| 530 | 530 | String strConfigXML = "<SetFaceParamCfg version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\">\n" + |
| 531 | 531 | "<cardNo>" + card + "</cardNo>\n" + |
| ... | ... | @@ -534,14 +534,15 @@ public class CMSServer implements ApplicationRunner { |
| 534 | 534 | "<faceID>1</faceID>\n" + |
| 535 | 535 | "<faceDataType>1</faceDataType>\n" + |
| 536 | 536 | "</SetFaceParamCfg>"; |
| 537 | -// System.out.println("strConfigXML:" + strConfigXML); | |
| 537 | +// System.out.println("图片下发参数:" + strConfigXML); | |
| 538 | + deleteCard(deviceId,card); | |
| 538 | 539 | return editFace(srcFile, url, card, strRequest, strConfigXML, "下发人脸", deviceId, 1, userType); |
| 539 | 540 | } |
| 540 | 541 | |
| 541 | 542 | /** |
| 542 | 543 | * 编辑卡号 |
| 543 | 544 | */ |
| 544 | - private void editCard(String startTime, String endTime, int validTimeEnabled, String name, String card, String deviceId,String employeeNo) { | |
| 545 | + private void editCard(String startTime, String endTime, int validTimeEnabled, String name, String card, String deviceId, String employeeNo) { | |
| 545 | 546 | HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); |
| 546 | 547 | |
| 547 | 548 | HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); |
| ... | ... | @@ -578,7 +579,7 @@ public class CMSServer implements ApplicationRunner { |
| 578 | 579 | "<maxSwipeTime></maxSwipeTime>\r\n" + |
| 579 | 580 | "<swipeTime></swipeTime>\r\n" + |
| 580 | 581 | "<groupNo></groupNo>\r\n" + |
| 581 | - "<employeeNo>"+employeeNo+ "</employeeNo>\r\n" + | |
| 582 | + "<employeeNo>" + employeeNo + "</employeeNo>\r\n" + | |
| 582 | 583 | "<name>"; |
| 583 | 584 | String nameAfter = "</name>\r\n" + |
| 584 | 585 | "<departmentNo></departmentNo>\r\n" + |
| ... | ... | @@ -724,7 +725,7 @@ public class CMSServer implements ApplicationRunner { |
| 724 | 725 | |
| 725 | 726 | private boolean editFace(String srcFile, String faceUrl, String card, String strRequest, String strConfigXML, String content, String deviceId, int type, String userType) { |
| 726 | 727 | |
| 727 | - | |
| 728 | +// deleteCard(deviceId, card); | |
| 728 | 729 | // lLoginID = map.get(deviceId); |
| 729 | 730 | |
| 730 | 731 | HCEHomeCMS.NET_EHOME_PTXML_PARAM struISAPXML = new HCEHomeCMS.NET_EHOME_PTXML_PARAM(); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/async/SendUserAsync.java
| ... | ... | @@ -37,7 +37,7 @@ public class SendUserAsync { |
| 37 | 37 | |
| 38 | 38 | // @Async("taskExecutor") |
| 39 | 39 | public void sendStuToHaiKang(String srcFile, String picUrl, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, int isPiliang) { |
| 40 | -// System.out.println("下发卡号:"+card+" startTime:"+startTime+" endTime:"+endTime); | |
| 40 | + System.out.println("下发时间设置:"+" startTime:"+startTime+" endTime:"+endTime); | |
| 41 | 41 | if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils(); |
| 42 | 42 | //1、检测图片是否合格 |
| 43 | 43 | boolean check = true; |
| ... | ... | @@ -49,14 +49,14 @@ public class SendUserAsync { |
| 49 | 49 | } |
| 50 | 50 | //根据设备是5603 还是新设备 |
| 51 | 51 | String employeeNo = ""; |
| 52 | - if (deviceId.contains("luzx")||deviceId.contains("5607")||deviceId.contains("5671")){ | |
| 52 | + if (deviceId.contains("ymzx")||deviceId.contains("5607")||deviceId.contains("5671")){ | |
| 53 | 53 | employeeNo = System.currentTimeMillis()+""; |
| 54 | - cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardRightCfg(card), "设置卡权限"); | |
| 55 | - cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | |
| 56 | 54 | cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); |
| 55 | + cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | |
| 57 | 56 | for (int i = 0; i < 7; i++) { |
| 58 | 57 | cmsServer. SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlanTime("00:00:00", "23:00:00",""+i), "设置卡权限周计划时间"); |
| 59 | 58 | } |
| 59 | + cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardRightCfg(card), "设置卡权限"); | |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | boolean result = cmsServer.createImgPath(srcFile, picUrl, card, startTime, endTime, validTimeEnabled, name, deviceId, userType,employeeNo); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/bean/StudentBean.java
| ... | ... | @@ -51,6 +51,15 @@ public class StudentBean implements Serializable { |
| 51 | 51 | |
| 52 | 52 | private String user_id; |
| 53 | 53 | |
| 54 | + private String photo; | |
| 55 | + | |
| 56 | + public String getPhoto() { | |
| 57 | + return photo; | |
| 58 | + } | |
| 59 | + | |
| 60 | + public void setPhoto(String photo) { | |
| 61 | + this.photo = photo; | |
| 62 | + } | |
| 54 | 63 | |
| 55 | 64 | public String getUser_id() { |
| 56 | 65 | return user_id; | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
| ... | ... | @@ -159,7 +159,8 @@ public interface UserDao { |
| 159 | 159 | @Param("userId") String userId, @Param("targetUrl") String targetUrl, @Param("clicks") int clicks, @Param("userList") String userList, @Param("isShare") int isShare, |
| 160 | 160 | @Param("charpId1") int charpId1, @Param("knowledgeId") int knowledgeId); |
| 161 | 161 | |
| 162 | - @Select("select * from SZ_V_School_Student where school_id = #{school_id} and len(photo)>0 and len(student_num)>0") | |
| 162 | + @Select("select * from SZ_V_School_Student where school_id = 1066 and student_type = 1 and user_id not in (select DISTINCT user_id from DBlan27.xiaoanhxy.dbo.Face_Recoder where deviceId in ('840153205671', '840153965671', '840153485671', '840153325671', '840154005671',\n" + | |
| 163 | + " '840153105671', '840153165671', '840153835671') and time > '2019-12-10' )") | |
| 163 | 164 | List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id); |
| 164 | 165 | |
| 165 | 166 | @Select("select * from SZ_V_School_Student where school_id = #{school_id} and student_type = 2") | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/AlarmUtils.java
| ... | ... | @@ -124,7 +124,7 @@ public class AlarmUtils { |
| 124 | 124 | content = "无此卡号"; |
| 125 | 125 | break; |
| 126 | 126 | case "0x4b"://人脸认证通过 |
| 127 | - if (!StringUtils.isEmpty(picDataUrl)) { | |
| 127 | + if (!StringUtils.isEmpty(picDataUrl)&&picDataUrl.split("id=").length>1) { | |
| 128 | 128 | String picDataUrlId = picDataUrl.split("id=")[1]; |
| 129 | 129 | FileUtils.getInstance().writeLogs("0x4bdeviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); |
| 130 | 130 | content = "人脸认证通过"; |
| ... | ... | @@ -141,7 +141,7 @@ public class AlarmUtils { |
| 141 | 141 | content = "真人检测失败"; |
| 142 | 142 | break; |
| 143 | 143 | case "0x69"://人证比对通过 |
| 144 | - if (!StringUtils.isEmpty(picDataUrl)) { | |
| 144 | + if (!StringUtils.isEmpty(picDataUrl)&&picDataUrl.split("id=").length>1) { | |
| 145 | 145 | String picDataUrlId = picDataUrl.split("id=")[1]; |
| 146 | 146 | FileUtils.getInstance().writeLogs("0x69deviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); |
| 147 | 147 | content = "人脸认证通过"; | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java
| ... | ... | @@ -27,7 +27,7 @@ public interface SendRecordDao { |
| 27 | 27 | @Param("userType") int userType, @Param("deviceType") int deviceType); |
| 28 | 28 | |
| 29 | 29 | |
| 30 | - @Select("select * from Face_SendSuccess") | |
| 30 | + @Select("select * from Face_SendSuccess where schoolId = 1066 ") | |
| 31 | 31 | List<SendRecordBean> getSenSuccess(); |
| 32 | 32 | |
| 33 | 33 | @Select("select * from Face_SendSuccess where deviceID = #{deviceID} and schoolId = #{schoolId}") | ... | ... |
cloud/haikangface/src/test/java/com/sincere/haikangface/HaikangfaceApplicationTests.java
| ... | ... | @@ -85,24 +85,50 @@ public class HaikangfaceApplicationTests { |
| 85 | 85 | |
| 86 | 86 | @Test |
| 87 | 87 | public void send() { |
| 88 | - /* RestTemplate restTemplate = new RestTemplate(); | |
| 88 | + //补发失败人脸 | |
| 89 | + /*RestTemplate restTemplate = new RestTemplate(); | |
| 89 | 90 | //失败人脸补发 |
| 90 | - List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("1066",2); | |
| 91 | + int userType = 2; | |
| 92 | + List<SendRecordBean> sendRecordBeanList = sendRecordDao.getSenFail("110",userType); | |
| 91 | 93 | int idnex = 0; |
| 92 | 94 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
| 93 | 95 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); |
| 94 | 96 | String url =String.format( "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card=%s&deviceId=%s&endTime=%s&filePath=%s&name=%s&userType=%s&validTimeEnabled=%s&startTime=%s" |
| 95 | - ,sendRecordBean.getNum(),sendRecordBean.getDeviceID(),"2023-10-01 10:00:00",sendRecordBean.getImgPath(),sendRecordBean.getName(),"2","1","2019-10-01 10:00:00"); | |
| 97 | + ,sendRecordBean.getNum(),sendRecordBean.getDeviceID(),"2023-10-01 10:00:00",sendRecordBean.getImgPath(),sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); | |
| 96 | 98 | String result1 = restTemplate.getForObject(url, String.class); |
| 97 | 99 | System.out.println("下发人脸:" + result1+" idnex:"+idnex++); |
| 98 | -// try { | |
| 99 | -// Thread.sleep(2000); | |
| 100 | -// } catch (InterruptedException e) { | |
| 101 | -// e.printStackTrace(); | |
| 102 | -// } | |
| 103 | 100 | |
| 104 | 101 | }*/ |
| 105 | 102 | |
| 103 | + /*RestTemplate restTemplate = new RestTemplate(); | |
| 104 | + //失败人脸补发 | |
| 105 | + int userType = 2; | |
| 106 | + List<StudentBean> studentBeans = userDao.getAllStudentsWithSchoolId("1066"); | |
| 107 | + List<String> list = new ArrayList<>(); | |
| 108 | +// list.add("840153205671"); | |
| 109 | +// list.add("840153965671"); | |
| 110 | +// list.add("840153485671"); | |
| 111 | +// list.add("840153325671"); | |
| 112 | +// list.add("840154005671"); | |
| 113 | +// list.add("840153105671"); | |
| 114 | + list.add("840153165671"); | |
| 115 | +// list.add("840153835671"); | |
| 116 | + int idnex = 0; | |
| 117 | + for (int i = 0; i < studentBeans.size(); i++) { | |
| 118 | + StudentBean sendRecordBean = studentBeans.get(i); | |
| 119 | +//E:\wwwhtdocs\smartcampus\face17e50\School562\Teacher\947.png | |
| 120 | +// http://campus.myjxt.com//face17e50/School1066/Student/st20190101.png | |
| 121 | + for (int j = 0; j < list.size(); j++) { | |
| 122 | + String imgUrl = sendRecordBean.getPhoto().replace("http://campus.myjxt.com","E:\\wwwhtdocs\\smartcampus"); | |
| 123 | + String url =String.format( "http://114.55.30.100:8089/facereco/sendStuCardAndImg?card=%s&deviceId=%s&endTime=%s&filePath=%s&name=%s&userType=%s&validTimeEnabled=%s&startTime=%s" | |
| 124 | + ,sendRecordBean.getStudent_num(),list.get(j),"2023-10-01 10:00:00",imgUrl,sendRecordBean.getName(),userType+"","1","2019-10-01 10:00:00"); | |
| 125 | + String result1 = restTemplate.getForObject(url, String.class); | |
| 126 | + System.out.println("下发人脸:" + result1+" idnex:"+idnex++); | |
| 127 | + } | |
| 128 | + | |
| 129 | + }*/ | |
| 130 | + | |
| 131 | + | |
| 106 | 132 | /* List<HSGrade> gradeList = userDao.getGrades(); |
| 107 | 133 | |
| 108 | 134 | for (int i = 0; i < gradeList.size(); i++) { |
| ... | ... | @@ -291,7 +317,7 @@ public class HaikangfaceApplicationTests { |
| 291 | 317 | |
| 292 | 318 | @Test |
| 293 | 319 | public void fileRes() { |
| 294 | - List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | |
| 320 | +// List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | |
| 295 | 321 | /* List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); |
| 296 | 322 | String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| 297 | 323 | |
| ... | ... | @@ -304,12 +330,12 @@ public class HaikangfaceApplicationTests { |
| 304 | 330 | ques.getState(),intime,stemId+"",ques.getExamineFlag(),ques.getSubjectId(),"10","1",ques.getChapterId(),ques.getGradeId()+"","1","","1"); |
| 305 | 331 | }*/ |
| 306 | 332 | |
| 307 | -List<Long> queIds = zuoyeAdminDao.getQueIds(); | |
| 333 | +//List<Long> queIds = zuoyeAdminDao.getQueIds(); | |
| 308 | 334 | |
| 309 | 335 | |
| 310 | - for (int i = queIds.size()-1; i >=0 ; i--) { | |
| 311 | - zuoyeAdminDao.addYYQuestionAndKnowledg(queIds.get(i), Long.parseLong(questionBeans.get(questionBeans.size()-1-i).getKnowledgeId()),0,1); | |
| 312 | - } | |
| 336 | +// for (int i = queIds.size()-1; i >=0 ; i--) { | |
| 337 | +// zuoyeAdminDao.addYYQuestionAndKnowledg(queIds.get(i), Long.parseLong(questionBeans.get(questionBeans.size()-1-i).getKnowledgeId()),0,1); | |
| 338 | +// } | |
| 313 | 339 | |
| 314 | 340 | |
| 315 | 341 | } | ... | ... |
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +2019-12-04 13:44:02 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD65 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 2 | + | |
| 3 | +2019-12-04 13:44:44 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD65 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 4 | + | |
| 5 | +2019-12-04 13:45:35 filePath:C:\TaoHandong\copy\School1035\Student\HSZL201901103.png card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 6 | + | |
| 7 | +2019-12-04 13:46:13 filePath:C:\TaoHandong\copy\School1035\Student\HSZL201901103.png card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 8 | + | |
| 9 | +2019-12-04 13:54:39 filePath:C:\TaoHandong\copy\School1035\Student\HSZL201901103.png card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 10 | + | |
| 11 | +2019-12-04 13:55:01 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 12 | + | |
| 13 | +2019-12-04 13:55:07 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 14 | + | |
| 15 | +2019-12-04 13:55:22 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD66 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 16 | + | |
| 17 | +2019-12-04 13:55:48 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 18 | + | |
| 19 | +2019-12-04 13:56:12 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 20 | + | ... | ... |
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +2019-12-04 13:44:02 文件名:B25B8D991F703D7446556F779769C3451111.jpg | |
| 2 | + | |
| 3 | +2019-12-04 13:44:44 文件名:B080427C3DC6892D672EC78A31036DFA1111.jpg | |
| 4 | + | |
| 5 | +2019-12-04 13:45:35 文件名:4B7A932AF8E49BD80472EB10D9D6A973HSZL201901103.png | |
| 6 | + | |
| 7 | +2019-12-04 13:46:13 文件名:82CD103F0B2BDCBBB65D63548A0A9ECEHSZL201901103.png | |
| 8 | + | |
| 9 | +2019-12-04 13:54:40 文件名:D85FE5276FB74C963721798BBAC95211HSZL201901103.png | |
| 10 | + | |
| 11 | +2019-12-04 13:55:01 文件名:B366A0913FDFA40E6B2C7B2997EC005B1111.jpg | |
| 12 | + | |
| 13 | +2019-12-04 13:55:07 文件名:999BB6DF31D019569F42C5BED2BA545A1111.jpg | |
| 14 | + | |
| 15 | +2019-12-04 13:55:22 文件名:12D459538736C19523315D204BF560401111.jpg | |
| 16 | + | |
| 17 | +2019-12-04 13:55:48 文件名:EE6EDD519AA303E3E92EEFA59428619C1111.jpg | |
| 18 | + | |
| 19 | +2019-12-04 13:56:13 文件名:1C7528EBB8656AE4FC5797BC9CD419651111.jpg | |
| 20 | + | ... | ... |
| ... | ... | @@ -0,0 +1,6 @@ |
| 1 | +2019-12-04 14:01:21 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 2 | + | |
| 3 | +2019-12-04 14:04:22 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 4 | + | |
| 5 | +2019-12-04 14:04:34 filePath:C:\Users\taohandong\Desktop\1111.jpg card:31D1AD64 name:林炜 deviceId:qqqqqqqqqqqqq | |
| 6 | + | ... | ... |
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +2019-12-04 14:06:58 学校ID:1077 设备列表:[] | |
| 2 | + | |
| 3 | +2019-12-04 14:06:58 学校ID:435 设备列表:[] | |
| 4 | + | |
| 5 | +2019-12-04 14:06:58 学校ID:435 设备列表:[] | |
| 6 | + | |
| 7 | +2019-12-04 14:06:58 学校ID:435 设备列表:[] | |
| 8 | + | |
| 9 | +2019-12-04 14:06:58 学校ID:460 设备列表:[] | |
| 10 | + | |
| 11 | +2019-12-04 14:06:58 学校ID:23 设备列表:[] | |
| 12 | + | |
| 13 | +2019-12-04 14:06:58 学校ID:1077 设备列表:[] | |
| 14 | + | |
| 15 | +2019-12-04 14:06:58 学校ID:366 设备列表:[] | |
| 16 | + | |
| 17 | +2019-12-04 14:06:59 学校ID:654 设备列表:[] | |
| 18 | + | |
| 19 | +2019-12-04 14:06:59 学校ID:1077 设备列表:[] | |
| 20 | + | ... | ... |
| ... | ... | @@ -0,0 +1,4 @@ |
| 1 | +2019-12-04 15:29:16 0x4bdeviceID:qqqqqqqqqqqqq cardNo:1689112881 time:2019-12-04 15:41:44 picDataUrlId:11CA89B5F512A8AF84B6C0A4E663C26D&username=&password= | |
| 2 | + | |
| 3 | +2019-12-04 15:32:56 0x4bdeviceID:qqqqqqqqqqqqq cardNo:1689112881 time:2019-12-04 15:45:25 picDataUrlId:E6E0858773E98757B0DA4DDFADA66D40&username=&password= | |
| 4 | + | ... | ... |
| ... | ... | @@ -0,0 +1,164 @@ |
| 1 | +2019-12-04 17:08:59 文件名:F516BFBA1486878F1F96703C2720E0962019-12-04.jpg | |
| 2 | + | |
| 3 | +2019-12-04 17:09:04 文件名:F171B7542BC77F6CC924FE8F0719001B2019-12-04.jpg | |
| 4 | + | |
| 5 | +2019-12-04 17:09:04 文件名:4DA79C5BA39B2DE57CB64A247CEB4DB92019-12-04.jpg | |
| 6 | + | |
| 7 | +2019-12-04 17:09:05 文件名:2337527EFF7065DFAEC3FC7D399271352019-12-04.jpg | |
| 8 | + | |
| 9 | +2019-12-04 17:09:09 文件名:F363801DFC3B189C5E89932202470E962019-12-04.jpg | |
| 10 | + | |
| 11 | +2019-12-04 17:09:09 文件名:30F3D9B4F164C81DC245BC834E1825F42019-12-04.jpg | |
| 12 | + | |
| 13 | +2019-12-04 17:09:13 文件名:E7F4C8698DB32A30CF64CAEE724D6B502019-12-04.jpg | |
| 14 | + | |
| 15 | +2019-12-04 17:09:18 文件名:3D68AAF8E6A53AC0C6214FA00D9E47A42019-12-04.jpg | |
| 16 | + | |
| 17 | +2019-12-04 17:09:23 文件名:91C037518486F8903377BCBE128B8AD12019-12-04.jpg | |
| 18 | + | |
| 19 | +2019-12-04 17:09:28 文件名:23952D6A829000268C017E0402C2235E2019-12-04.jpg | |
| 20 | + | |
| 21 | +2019-12-04 17:09:35 文件名:147A383519C728BC3170CD3A0283CAED2019-12-04.jpg | |
| 22 | + | |
| 23 | +2019-12-04 17:09:40 文件名:38BF0BF906A0A69B35473E6B0DE4A53B2019-12-04.jpg | |
| 24 | + | |
| 25 | +2019-12-04 17:10:04 文件名:09979008552AA392E00388EB514D30D92019-12-04.jpg | |
| 26 | + | |
| 27 | +2019-12-04 17:10:25 文件名:D9F9B84858ADD779F3B17A36307614752019-12-04T17:10:57A08:0001D8123177701.jpg | |
| 28 | + | |
| 29 | +2019-12-04 17:10:30 文件名:590A143A445118C6C4997F62C58C14CB2019-12-04T17:10:57A08:0001D8123177701.jpg | |
| 30 | + | |
| 31 | +2019-12-04 17:10:37 文件名:1741AD2FB0788CC40C2DAF5D9F433FE12019-12-04T17:11:07A08:0001D8123177701.jpg | |
| 32 | + | |
| 33 | +2019-12-04 17:10:41 文件名:45AC0B45D568EAFFA98D21902F62F8052019-12-04T17:11:14A08:0001D8123177701.jpg | |
| 34 | + | |
| 35 | +2019-12-04 17:10:42 文件名:30464D923875B61D160DBAEAF3A94FF32019-12-04T17:11:07A08:0001D8123177701.jpg | |
| 36 | + | |
| 37 | +2019-12-04 17:10:47 文件名:D83FBA7EE184C15C4A4F7224223EBFEC2019-12-04T17:11:14A08:0001D8123177701.jpg | |
| 38 | + | |
| 39 | +2019-12-04 17:12:36 文件名:740205939AB2C998E1CB3B1F661644F12019-12-04.jpg | |
| 40 | + | |
| 41 | +2019-12-04 17:12:41 文件名:DF37DEE57FC2DCC0C4253B1FAE5CB2E22019-12-04.jpg | |
| 42 | + | |
| 43 | +2019-12-04 17:12:42 文件名:913ADDF2C40140C319C3FBC9EAFB002A2019-12-04.jpg | |
| 44 | + | |
| 45 | +2019-12-04 17:12:46 文件名:F15D44790CC48998D9D3AC8FCF741A822019-12-04.jpg | |
| 46 | + | |
| 47 | +2019-12-04 17:14:29 文件名:99B92DBA52C5E6F66B3D8D92CA37DAB42019-12-04.jpg | |
| 48 | + | |
| 49 | +2019-12-04 17:14:34 文件名:E354F7C80FCDBC2883AB296A02DA0E1B2019-12-04.jpg | |
| 50 | + | |
| 51 | +2019-12-04 17:15:02 文件名:CD0192E6791DF6467EA316AA54CC5DFB2019-12-04.jpg | |
| 52 | + | |
| 53 | +2019-12-04 17:15:07 文件名:18BD8BCAECB12B829866C82C04252E3A2019-12-04.jpg | |
| 54 | + | |
| 55 | +2019-12-04 17:15:15 文件名:A7BA73DADBA8AA48E6B722831D6B3E792019-12-04.jpg | |
| 56 | + | |
| 57 | +2019-12-04 17:15:20 文件名:EEB67F6913B192BF1F0ED9887EBA41062019-12-04.jpg | |
| 58 | + | |
| 59 | +2019-12-04 17:15:30 文件名:78E0F8641F871E3C06B13951CD0CC7CC2019-12-04.jpg | |
| 60 | + | |
| 61 | +2019-12-04 17:15:36 文件名:82819CC856663CBCDE900A5F7E18A7262019-12-04.jpg | |
| 62 | + | |
| 63 | +2019-12-04 17:15:52 文件名:735397BB9075E69F6194F1030F6372BD2019-12-04.jpg | |
| 64 | + | |
| 65 | +2019-12-04 17:15:56 文件名:8075892E0DFF5A047D6B4AE00DCD571F2019-12-04.jpg | |
| 66 | + | |
| 67 | +2019-12-04 17:15:57 文件名:84B87B234FE1D461A34FDCB52E8381712019-12-04.jpg | |
| 68 | + | |
| 69 | +2019-12-04 17:16:01 文件名:F36C55EE350DBF867648BC90E956953D2019-12-04.jpg | |
| 70 | + | |
| 71 | +2019-12-04 17:16:27 文件名:1E39C261FA101BE293E8307D52BBF4F22019-12-04.jpg | |
| 72 | + | |
| 73 | +2019-12-04 17:16:32 文件名:438ED99F669D4E1F68B81622F071529A2019-12-04.jpg | |
| 74 | + | |
| 75 | +2019-12-04 17:17:17 文件名:7EC4B7157000920CB27E754DCA89B6EA2019-12-04.jpg | |
| 76 | + | |
| 77 | +2019-12-04 17:17:23 文件名:2BD6F8AA437C7C074BA22E3F0086A19D2019-12-04.jpg | |
| 78 | + | |
| 79 | +2019-12-04 17:17:29 文件名:CA9E4F02AF4C3F003BA9FFAA1C7E02A42019-12-04.jpg | |
| 80 | + | |
| 81 | +2019-12-04 17:17:34 文件名:908B6CD51F053E7ED3EF3C980ACFA1FC2019-12-04.jpg | |
| 82 | + | |
| 83 | +2019-12-04 17:17:47 文件名:248684757B9B7DCA57AB77CAD81FD14F2019-12-04.jpg | |
| 84 | + | |
| 85 | +2019-12-04 17:17:53 文件名:82480CE864851B6B0A2B9CDB8813DB692019-12-04.jpg | |
| 86 | + | |
| 87 | +2019-12-04 17:17:56 文件名:5B279EF45EA49B8BB5064FFFB5561F362019-12-04.jpg | |
| 88 | + | |
| 89 | +2019-12-04 17:18:01 文件名:970A2DAF8365E615E69D242B695E326A2019-12-04.jpg | |
| 90 | + | |
| 91 | +2019-12-04 17:18:11 文件名:8CB28F93094CF59A09DA70AEAABC98082019-12-04.jpg | |
| 92 | + | |
| 93 | +2019-12-04 17:18:16 文件名:7DAB29949C5E64AC08FD4728EC5A030E2019-12-04.jpg | |
| 94 | + | |
| 95 | +2019-12-04 17:18:32 文件名:D10852C00407E56F2BDAAF598AA1771E2019-12-04.jpg | |
| 96 | + | |
| 97 | +2019-12-04 17:18:38 文件名:E35C8926D9DB8E4815702BDF6A01A72B2019-12-04.jpg | |
| 98 | + | |
| 99 | +2019-12-04 17:19:57 文件名:079C31118F8B20E9A7CB73E0031A68782019-12-04.jpg | |
| 100 | + | |
| 101 | +2019-12-04 17:20:02 文件名:466636ACD3D15184095B2CA67DCDA1762019-12-04.jpg | |
| 102 | + | |
| 103 | +2019-12-04 17:22:28 文件名:F410BB8D2E0DBEA4E0BCB5229A15BBE42019-12-04.jpg | |
| 104 | + | |
| 105 | +2019-12-04 17:22:33 文件名:9A30960CA0353A45BE8C6D873A9D2F7F2019-12-04.jpg | |
| 106 | + | |
| 107 | +2019-12-04 17:23:25 文件名:8FFB68D2A075AEB3E6D08F0F4C8DDD952019-12-04.jpg | |
| 108 | + | |
| 109 | +2019-12-04 17:23:30 文件名:6F331633B8E57B15693FE458DF789E742019-12-04.jpg | |
| 110 | + | |
| 111 | +2019-12-04 17:25:39 文件名:34EC480C9D5B0A7671A985FCFE21F8B42019-12-04.jpg | |
| 112 | + | |
| 113 | +2019-12-04 17:25:42 文件名:FD7EE2C4BFFA9B8E8BF2454FEFCC44FC2019-12-04.jpg | |
| 114 | + | |
| 115 | +2019-12-04 17:25:44 文件名:D0D8C7BC33F74695C92BDFA266BDFF842019-12-04.jpg | |
| 116 | + | |
| 117 | +2019-12-04 17:25:47 文件名:5B0E0FD00CFB86702C3D83B225C759DD2019-12-04.jpg | |
| 118 | + | |
| 119 | +2019-12-04 17:28:00 文件名:A96BBAAA692F225751CCB3D07BF1D3212019-12-04.jpg | |
| 120 | + | |
| 121 | +2019-12-04 17:28:05 文件名:89C1FD1354B65DA0C572522D560ECC1C2019-12-04.jpg | |
| 122 | + | |
| 123 | +2019-12-04 17:28:46 文件名:32F2DC6F51CDABF46DF02D400E54C8332019-12-04.jpg | |
| 124 | + | |
| 125 | +2019-12-04 17:28:51 文件名:F27FBDD4586F6ED2CB6E1C4A28037E232019-12-04.jpg | |
| 126 | + | |
| 127 | +2019-12-04 17:30:28 文件名:C3A17E2345A2ECE8FB36ED2CFC6E02F92019-12-04.jpg | |
| 128 | + | |
| 129 | +2019-12-04 17:30:34 文件名:F08753F2D2579DA65E7045419732D9662019-12-04.jpg | |
| 130 | + | |
| 131 | +2019-12-04 17:31:22 文件名:D0312D0402287898F63BD2F23B7D81802019-12-04.jpg | |
| 132 | + | |
| 133 | +2019-12-04 17:31:25 文件名:160BABE20EE32A62D29ADDC7B8A9AA282019-12-04.jpg | |
| 134 | + | |
| 135 | +2019-12-04 17:31:27 文件名:B4D8E026FEDFE801DC2A65986B3B1B592019-12-04.jpg | |
| 136 | + | |
| 137 | +2019-12-04 17:31:30 文件名:DB101BE8A22FA05CC8429161A8E7D9EA2019-12-04.jpg | |
| 138 | + | |
| 139 | +2019-12-04 17:31:39 文件名:0076B339B4B10B2626D9CB382908A6D32019-12-04.jpg | |
| 140 | + | |
| 141 | +2019-12-04 17:31:44 文件名:7DC79B1E58253021FBADB374F5B5CDF62019-12-04.jpg | |
| 142 | + | |
| 143 | +2019-12-04 17:32:57 文件名:D72F4CA45A739CEA538F61138875C1BA2019-12-04.jpg | |
| 144 | + | |
| 145 | +2019-12-04 17:33:03 文件名:3B6D40D2EBC3C75DDFD425486D276A022019-12-04.jpg | |
| 146 | + | |
| 147 | +2019-12-04 17:33:40 文件名:2EAC68C6B0F49C48B519CA691A7192F72019-12-04.jpg | |
| 148 | + | |
| 149 | +2019-12-04 17:33:45 文件名:ECAC6D45F72C20BFD2A561D8DF5A2F5B2019-12-04.jpg | |
| 150 | + | |
| 151 | +2019-12-04 17:34:56 文件名:023124E93B9514C81396F3C36E1A700E2019-12-04.jpg | |
| 152 | + | |
| 153 | +2019-12-04 17:35:01 文件名:F882EE5D13C14B2F550B2E76B85ACBA32019-12-04.jpg | |
| 154 | + | |
| 155 | +2019-12-04 17:35:34 文件名:5B7FE253243C53BD8B6838527E7A3B3D2019-12-04.jpg | |
| 156 | + | |
| 157 | +2019-12-04 17:35:39 文件名:53CCC073DD7F3CAD9C91E6F43DB548F62019-12-04.jpg | |
| 158 | + | |
| 159 | +2019-12-04 17:35:47 文件名:54F46DD950395A8457B2FB30519048D92019-12-04.jpg | |
| 160 | + | |
| 161 | +2019-12-04 17:35:52 文件名:02368EA1389708B8BD6509529022DB742019-12-04.jpg | |
| 162 | + | |
| 163 | +2019-12-04 17:35:55 文件名:91716470126490BEF7C673498F9786D42019-12-04.jpg | |
| 164 | + | ... | ... |
70.2 KB
47.9 KB