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,7 +275,7 @@ public class MyTask implements ApplicationRunner { | ||
| 275 | pBuffer.read(0, bufferBytes, 0, dwBufSize); | 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 | if (!path.exists()) { | 279 | if (!path.exists()) { |
| 280 | path.mkdir(); | 280 | path.mkdir(); |
| 281 | } | 281 | } |
| @@ -284,19 +284,18 @@ public class MyTask implements ApplicationRunner { | @@ -284,19 +284,18 @@ public class MyTask implements ApplicationRunner { | ||
| 284 | if (dwAlarmType == NetSDKLib.EVENT_IVS_ACCESS_CTL) { | 284 | if (dwAlarmType == NetSDKLib.EVENT_IVS_ACCESS_CTL) { |
| 285 | NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO msg = new NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO(); | 285 | NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO msg = new NetSDKLib.DEV_EVENT_ACCESS_CTL_INFO(); |
| 286 | ToolKits.GetPointerData(pAlarmInfo, msg); | 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 | try { | 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 | String card = new String(msg.szCardNo).trim(); | 289 | String card = new String(msg.szCardNo).trim(); |
| 299 | if (!StringUtils.isEmpty(card)) { | 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 | card=cardNo(card); | 299 | card=cardNo(card); |
| 301 | CardBean cardBean = userDao.getCards(card);//根据卡号获取身份信息 | 300 | CardBean cardBean = userDao.getCards(card);//根据卡号获取身份信息 |
| 302 | String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); | 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,6 +3,7 @@ package com.example.dahua.control; | ||
| 3 | import com.example.dahua.service.DeviceService; | 3 | import com.example.dahua.service.DeviceService; |
| 4 | import io.swagger.annotations.Api; | 4 | import io.swagger.annotations.Api; |
| 5 | import io.swagger.annotations.ApiImplicitParam; | 5 | import io.swagger.annotations.ApiImplicitParam; |
| 6 | +import io.swagger.annotations.ApiOperation; | ||
| 6 | import org.springframework.beans.factory.annotation.Autowired; | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | import org.springframework.web.bind.annotation.RequestMapping; | 8 | import org.springframework.web.bind.annotation.RequestMapping; |
| 8 | import org.springframework.web.bind.annotation.RequestMethod; | 9 | import org.springframework.web.bind.annotation.RequestMethod; |
| @@ -23,4 +24,11 @@ public class DeviceControl { | @@ -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,7 +163,7 @@ public class UserControl { | ||
| 163 | angel = 180; | 163 | angel = 180; |
| 164 | } | 164 | } |
| 165 | System.out.println("图片检验成功"); | 165 | System.out.println("图片检验成功"); |
| 166 | - FileUtils.getInstance().writeLogs("检测成功:" + httpurl, FileUtils.checkSuc); | 166 | + FileUtils.getInstance().writeLogs("检测成功:" + imgFilePath, FileUtils.checkSuc); |
| 167 | //E:\wwwhtdocs\SmartCampus\face17e50\School | 167 | //E:\wwwhtdocs\SmartCampus\face17e50\School |
| 168 | //http://campus.myjxt.com//face17e5/School861/Student/GBZX20171134.jpg | 168 | //http://campus.myjxt.com//face17e5/School861/Student/GBZX20171134.jpg |
| 169 | //F:\wwwroot\smartcampus\face17e5 | 169 | //F:\wwwroot\smartcampus\face17e5 |
| @@ -181,7 +181,7 @@ public class UserControl { | @@ -181,7 +181,7 @@ public class UserControl { | ||
| 181 | } | 181 | } |
| 182 | } else { | 182 | } else { |
| 183 | System.out.println("检测失败"); | 183 | System.out.println("检测失败"); |
| 184 | - FileUtils.getInstance().writeLogs("检测失败:" + error_msg + httpurl, FileUtils.checkFail); | 184 | + FileUtils.getInstance().writeLogs("检测失败:" + error_msg + imgFilePath, FileUtils.checkFail); |
| 185 | deleteImgFile(imgFilePath); | 185 | deleteImgFile(imgFilePath); |
| 186 | return false; | 186 | return false; |
| 187 | } | 187 | } |
cloud/dahua/src/main/java/com/example/dahua/module/DeviceControlModule.java
| 1 | package com.example.dahua.module; | 1 | package com.example.dahua.module; |
| 2 | 2 | ||
| 3 | +import com.example.dahua.MyTask; | ||
| 3 | import com.example.dahua.lib.NetSDKLib; | 4 | import com.example.dahua.lib.NetSDKLib; |
| 4 | import com.example.dahua.lib.ToolKits; | 5 | import com.example.dahua.lib.ToolKits; |
| 5 | 6 | ||
| 7 | +import java.io.UnsupportedEncodingException; | ||
| 6 | import java.text.SimpleDateFormat; | 8 | import java.text.SimpleDateFormat; |
| 7 | 9 | ||
| 8 | 10 | ||
| 9 | - | ||
| 10 | /** | 11 | /** |
| 11 | * \if ENGLISH_LANG | 12 | * \if ENGLISH_LANG |
| 12 | * Device Control Interface | 13 | * Device Control Interface |
| @@ -17,48 +18,47 @@ import java.text.SimpleDateFormat; | @@ -17,48 +18,47 @@ import java.text.SimpleDateFormat; | ||
| 17 | * \endif | 18 | * \endif |
| 18 | */ | 19 | */ |
| 19 | public class DeviceControlModule { | 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 | public static boolean reboot() { | 29 | public static boolean reboot() { |
| 29 | - | 30 | + |
| 30 | if (!LoginModule.netsdk.CLIENT_ControlDevice(LoginModule.m_hLoginHandle, NetSDKLib.CtrlType.CTRLTYPE_CTRL_REBOOT, null, 3000)) { | 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 | return true; | 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 | public static boolean setTime(String date) { | 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 | date = dateFormat.format(new java.util.Date()); | 58 | date = dateFormat.format(new java.util.Date()); |
| 59 | - } | ||
| 60 | - | ||
| 61 | - String[] dateTime = date.split(" "); | 59 | + } |
| 60 | + | ||
| 61 | + String[] dateTime = date.split(" "); | ||
| 62 | String[] arrDate = dateTime[0].split("-"); | 62 | String[] arrDate = dateTime[0].split("-"); |
| 63 | String[] arrTime = dateTime[1].split(":"); | 63 | String[] arrTime = dateTime[1].split(":"); |
| 64 | deviceTime.dwYear = Integer.parseInt(arrDate[0]); | 64 | deviceTime.dwYear = Integer.parseInt(arrDate[0]); |
| @@ -69,30 +69,47 @@ public class DeviceControlModule { | @@ -69,30 +69,47 @@ public class DeviceControlModule { | ||
| 69 | deviceTime.dwSecond = Integer.parseInt(arrTime[2]); | 69 | deviceTime.dwSecond = Integer.parseInt(arrTime[2]); |
| 70 | 70 | ||
| 71 | if (!LoginModule.netsdk.CLIENT_SetupDeviceTime(LoginModule.m_hLoginHandle, deviceTime)) { | 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 | return true; | 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 | public static String getTime() { | 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,4 +14,10 @@ public class DeviceServiceImp implements DeviceService{ | ||
| 14 | return DeviceControlModule.reboot(MyTask.lLongMap.get(deviceId)); | 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,7 +385,7 @@ public class DahuaApplicationTests { | ||
| 385 | @Test | 385 | @Test |
| 386 | public void Mqtt() { | 386 | public void Mqtt() { |
| 387 | 387 | ||
| 388 | - /*MqttManager mqttManager = new MqttManager(); | 388 | + /* MqttManager mqttManager = new MqttManager(); |
| 389 | 389 | ||
| 390 | mqttManager.init(); | 390 | mqttManager.init(); |
| 391 | 391 | ||
| @@ -395,7 +395,7 @@ public class DahuaApplicationTests { | @@ -395,7 +395,7 @@ public class DahuaApplicationTests { | ||
| 395 | String devId = stringList.get(i); | 395 | String devId = stringList.get(i); |
| 396 | //30关闭显示屏 31打开显示屏,9升级客户端 | 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 @@ | @@ -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,7 +71,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 71 | 71 | ||
| 72 | static HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE; | 72 | static HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE; |
| 73 | FRegisterCallBack fRegisterCallBack;//注册回调函数实现 | 73 | FRegisterCallBack fRegisterCallBack;//注册回调函数实现 |
| 74 | -// NativeLong lLoginID;//用户句柄 | 74 | + // NativeLong lLoginID;//用户句柄 |
| 75 | HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM(); | 75 | HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM(); |
| 76 | Map<String, NativeLong> map = new HashMap<>(); | 76 | Map<String, NativeLong> map = new HashMap<>(); |
| 77 | 77 | ||
| @@ -109,7 +109,7 @@ public class CMSServer implements ApplicationRunner { | @@ -109,7 +109,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 109 | * @param deviceId | 109 | * @param deviceId |
| 110 | */ | 110 | */ |
| 111 | public boolean getIsDeviceOnline(String deviceId) { | 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 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { | 115 | public class FRegisterCallBack implements HCEHomeCMS.DEVICE_REGISTER_CB { |
| @@ -272,12 +272,13 @@ public class CMSServer implements ApplicationRunner { | @@ -272,12 +272,13 @@ public class CMSServer implements ApplicationRunner { | ||
| 272 | 272 | ||
| 273 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { | 273 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { |
| 274 | String strPath = "C://EhomePicServer/"; | 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 | boolean isZhuaPai = false; | 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 | isZhuaPai = true; | 282 | isZhuaPai = true; |
| 282 | } | 283 | } |
| 283 | String strFilePath = strPath + pFileName; | 284 | String strFilePath = strPath + pFileName; |
| @@ -324,8 +325,8 @@ public class CMSServer implements ApplicationRunner { | @@ -324,8 +325,8 @@ public class CMSServer implements ApplicationRunner { | ||
| 324 | 325 | ||
| 325 | pFilePath.write(0, strFilePath.getBytes(), 0, strFilePath.getBytes().length); | 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 | return true; | 332 | return true; |
| @@ -403,11 +404,11 @@ public class CMSServer implements ApplicationRunner { | @@ -403,11 +404,11 @@ public class CMSServer implements ApplicationRunner { | ||
| 403 | alarmUtils = new AlarmUtils(deviceDao); | 404 | alarmUtils = new AlarmUtils(deviceDao); |
| 404 | alarmUtils.setCallBack(new AlarmUtils.AlarmCallBack() { | 405 | alarmUtils.setCallBack(new AlarmUtils.AlarmCallBack() { |
| 405 | @Override | 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 | switch (minorType) { | 408 | switch (minorType) { |
| 408 | case "0x4b"://人脸认证通过 | 409 | case "0x4b"://人脸认证通过 |
| 409 | // sendSMS(cardNo, deviceID, time); | 410 | // sendSMS(cardNo, deviceID, time); |
| 410 | - saveFaceRecoder(deviceID,cardNo,time,picDataUrlId); | 411 | + saveFaceRecoder(deviceID, cardNo, time, picDataUrlId); |
| 411 | break; | 412 | break; |
| 412 | case "0x426"://人证设备在线 | 413 | case "0x426"://人证设备在线 |
| 413 | 414 | ||
| @@ -417,7 +418,7 @@ public class CMSServer implements ApplicationRunner { | @@ -417,7 +418,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 417 | deviceDao.updateDeviceStatu(0, deviceID); | 418 | deviceDao.updateDeviceStatu(0, deviceID); |
| 418 | break; | 419 | break; |
| 419 | case "0x69"://人证比对通过 | 420 | case "0x69"://人证比对通过 |
| 420 | - saveFaceRecoder(deviceID,cardNo,time,picDataUrlId); | 421 | + saveFaceRecoder(deviceID, cardNo, time, picDataUrlId); |
| 421 | break; | 422 | break; |
| 422 | } | 423 | } |
| 423 | } | 424 | } |
| @@ -434,15 +435,14 @@ public class CMSServer implements ApplicationRunner { | @@ -434,15 +435,14 @@ public class CMSServer implements ApplicationRunner { | ||
| 434 | 435 | ||
| 435 | 436 | ||
| 436 | /** | 437 | /** |
| 437 | - * | ||
| 438 | * @param deviceID | 438 | * @param deviceID |
| 439 | - * @param cardNo 十进制卡号 | 439 | + * @param cardNo 十进制卡号 |
| 440 | * @param time | 440 | * @param time |
| 441 | * @param picDataUrlId | 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 | Face_Recoder face_recoder = new Face_Recoder(); | 446 | Face_Recoder face_recoder = new Face_Recoder(); |
| 447 | 447 | ||
| 448 | //卡号逆转 | 448 | //卡号逆转 |
| @@ -450,20 +450,20 @@ public class CMSServer implements ApplicationRunner { | @@ -450,20 +450,20 @@ public class CMSServer implements ApplicationRunner { | ||
| 450 | 450 | ||
| 451 | StudentBean studentBean = userDao.getStudentWithCard(cardNo); | 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 | face_recoder.setCardNum(cardNo); | 456 | face_recoder.setCardNum(cardNo); |
| 457 | face_recoder.setDeviceId(deviceID); | 457 | face_recoder.setDeviceId(deviceID); |
| 458 | face_recoder.setTime(time); | 458 | face_recoder.setTime(time); |
| 459 | face_recoder.setName(studentBean.getName()); | 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 | face_recoder.setImgurl(imgUrl); | 461 | face_recoder.setImgurl(imgUrl); |
| 462 | face_recoder.setUser_id(studentBean.getUser_id()); | 462 | face_recoder.setUser_id(studentBean.getUser_id()); |
| 463 | face_recoder.setInOrOut(1); | 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,7 +477,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 477 | * @param deviceId | 477 | * @param deviceId |
| 478 | * @return | 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 | if (map.containsKey(deviceId)) { | 482 | if (map.containsKey(deviceId)) { |
| 483 | HCEHomeSS.NET_EHOME_SS_CLIENT_PARAM pClientParam = new HCEHomeSS.NET_EHOME_SS_CLIENT_PARAM(); | 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,7 +513,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 513 | } | 513 | } |
| 514 | hCEhomeSS.NET_ESS_DestroyClient(client);//释放资源 | 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 | sendRecoderUtils.sendFail(sendRecordDao, card, srcFile, deviceId, userDao, "设备不在线", userType); | 518 | sendRecoderUtils.sendFail(sendRecordDao, card, srcFile, deviceId, userDao, "设备不在线", userType); |
| 519 | return false; | 519 | return false; |
| @@ -524,8 +524,8 @@ public class CMSServer implements ApplicationRunner { | @@ -524,8 +524,8 @@ public class CMSServer implements ApplicationRunner { | ||
| 524 | * | 524 | * |
| 525 | * @Param picUrl 原图 | 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 | String strRequest = "/ISAPI/AccessControl/SetFaceParamCfg"; | 529 | String strRequest = "/ISAPI/AccessControl/SetFaceParamCfg"; |
| 530 | String strConfigXML = "<SetFaceParamCfg version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\">\n" + | 530 | String strConfigXML = "<SetFaceParamCfg version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\">\n" + |
| 531 | "<cardNo>" + card + "</cardNo>\n" + | 531 | "<cardNo>" + card + "</cardNo>\n" + |
| @@ -534,14 +534,15 @@ public class CMSServer implements ApplicationRunner { | @@ -534,14 +534,15 @@ public class CMSServer implements ApplicationRunner { | ||
| 534 | "<faceID>1</faceID>\n" + | 534 | "<faceID>1</faceID>\n" + |
| 535 | "<faceDataType>1</faceDataType>\n" + | 535 | "<faceDataType>1</faceDataType>\n" + |
| 536 | "</SetFaceParamCfg>"; | 536 | "</SetFaceParamCfg>"; |
| 537 | -// System.out.println("strConfigXML:" + strConfigXML); | 537 | +// System.out.println("图片下发参数:" + strConfigXML); |
| 538 | + deleteCard(deviceId,card); | ||
| 538 | return editFace(srcFile, url, card, strRequest, strConfigXML, "下发人脸", deviceId, 1, userType); | 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 | HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); | 546 | HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); |
| 546 | 547 | ||
| 547 | HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | 548 | HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); |
| @@ -578,7 +579,7 @@ public class CMSServer implements ApplicationRunner { | @@ -578,7 +579,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 578 | "<maxSwipeTime></maxSwipeTime>\r\n" + | 579 | "<maxSwipeTime></maxSwipeTime>\r\n" + |
| 579 | "<swipeTime></swipeTime>\r\n" + | 580 | "<swipeTime></swipeTime>\r\n" + |
| 580 | "<groupNo></groupNo>\r\n" + | 581 | "<groupNo></groupNo>\r\n" + |
| 581 | - "<employeeNo>"+employeeNo+ "</employeeNo>\r\n" + | 582 | + "<employeeNo>" + employeeNo + "</employeeNo>\r\n" + |
| 582 | "<name>"; | 583 | "<name>"; |
| 583 | String nameAfter = "</name>\r\n" + | 584 | String nameAfter = "</name>\r\n" + |
| 584 | "<departmentNo></departmentNo>\r\n" + | 585 | "<departmentNo></departmentNo>\r\n" + |
| @@ -724,7 +725,7 @@ public class CMSServer implements ApplicationRunner { | @@ -724,7 +725,7 @@ public class CMSServer implements ApplicationRunner { | ||
| 724 | 725 | ||
| 725 | private boolean editFace(String srcFile, String faceUrl, String card, String strRequest, String strConfigXML, String content, String deviceId, int type, String userType) { | 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 | // lLoginID = map.get(deviceId); | 729 | // lLoginID = map.get(deviceId); |
| 729 | 730 | ||
| 730 | HCEHomeCMS.NET_EHOME_PTXML_PARAM struISAPXML = new HCEHomeCMS.NET_EHOME_PTXML_PARAM(); | 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,7 +37,7 @@ public class SendUserAsync { | ||
| 37 | 37 | ||
| 38 | // @Async("taskExecutor") | 38 | // @Async("taskExecutor") |
| 39 | public void sendStuToHaiKang(String srcFile, String picUrl, String card, String startTime, String endTime, int validTimeEnabled, String name, String deviceId, String userType, int isPiliang) { | 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 | if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils(); | 41 | if (null == sendRecoderUtils) sendRecoderUtils = new SendRecoderUtils(); |
| 42 | //1、检测图片是否合格 | 42 | //1、检测图片是否合格 |
| 43 | boolean check = true; | 43 | boolean check = true; |
| @@ -49,14 +49,14 @@ public class SendUserAsync { | @@ -49,14 +49,14 @@ public class SendUserAsync { | ||
| 49 | } | 49 | } |
| 50 | //根据设备是5603 还是新设备 | 50 | //根据设备是5603 还是新设备 |
| 51 | String employeeNo = ""; | 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 | employeeNo = System.currentTimeMillis()+""; | 53 | employeeNo = System.currentTimeMillis()+""; |
| 54 | - cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardRightCfg(card), "设置卡权限"); | ||
| 55 | - cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ||
| 56 | cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); | 54 | cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardTemplate(), "设置卡权限计划模板"); |
| 55 | + cmsServer.SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlan(), "卡权限周计划"); | ||
| 57 | for (int i = 0; i < 7; i++) { | 56 | for (int i = 0; i < 7; i++) { |
| 58 | cmsServer. SetCardWeekPlan(deviceId, HKXmlUtils.getInstance().SetCardWeekPlanTime("00:00:00", "23:00:00",""+i), "设置卡权限周计划时间"); | 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 | boolean result = cmsServer.createImgPath(srcFile, picUrl, card, startTime, endTime, validTimeEnabled, name, deviceId, userType,employeeNo); | 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,6 +51,15 @@ public class StudentBean implements Serializable { | ||
| 51 | 51 | ||
| 52 | private String user_id; | 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 | public String getUser_id() { | 64 | public String getUser_id() { |
| 56 | return user_id; | 65 | return user_id; |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
| @@ -159,7 +159,8 @@ public interface UserDao { | @@ -159,7 +159,8 @@ public interface UserDao { | ||
| 159 | @Param("userId") String userId, @Param("targetUrl") String targetUrl, @Param("clicks") int clicks, @Param("userList") String userList, @Param("isShare") int isShare, | 159 | @Param("userId") String userId, @Param("targetUrl") String targetUrl, @Param("clicks") int clicks, @Param("userList") String userList, @Param("isShare") int isShare, |
| 160 | @Param("charpId1") int charpId1, @Param("knowledgeId") int knowledgeId); | 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 | List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id); | 164 | List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id") String school_id); |
| 164 | 165 | ||
| 165 | @Select("select * from SZ_V_School_Student where school_id = #{school_id} and student_type = 2") | 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,7 +124,7 @@ public class AlarmUtils { | ||
| 124 | content = "无此卡号"; | 124 | content = "无此卡号"; |
| 125 | break; | 125 | break; |
| 126 | case "0x4b"://人脸认证通过 | 126 | case "0x4b"://人脸认证通过 |
| 127 | - if (!StringUtils.isEmpty(picDataUrl)) { | 127 | + if (!StringUtils.isEmpty(picDataUrl)&&picDataUrl.split("id=").length>1) { |
| 128 | String picDataUrlId = picDataUrl.split("id=")[1]; | 128 | String picDataUrlId = picDataUrl.split("id=")[1]; |
| 129 | FileUtils.getInstance().writeLogs("0x4bdeviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); | 129 | FileUtils.getInstance().writeLogs("0x4bdeviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); |
| 130 | content = "人脸认证通过"; | 130 | content = "人脸认证通过"; |
| @@ -141,7 +141,7 @@ public class AlarmUtils { | @@ -141,7 +141,7 @@ public class AlarmUtils { | ||
| 141 | content = "真人检测失败"; | 141 | content = "真人检测失败"; |
| 142 | break; | 142 | break; |
| 143 | case "0x69"://人证比对通过 | 143 | case "0x69"://人证比对通过 |
| 144 | - if (!StringUtils.isEmpty(picDataUrl)) { | 144 | + if (!StringUtils.isEmpty(picDataUrl)&&picDataUrl.split("id=").length>1) { |
| 145 | String picDataUrlId = picDataUrl.split("id=")[1]; | 145 | String picDataUrlId = picDataUrl.split("id=")[1]; |
| 146 | FileUtils.getInstance().writeLogs("0x69deviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); | 146 | FileUtils.getInstance().writeLogs("0x69deviceID:" + deviceID + " cardNo:" + cardNo + " time:" + time + " picDataUrlId:" + picDataUrlId, FileUtils.faceSuccess); |
| 147 | content = "人脸认证通过"; | 147 | content = "人脸认证通过"; |
cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java
| @@ -27,7 +27,7 @@ public interface SendRecordDao { | @@ -27,7 +27,7 @@ public interface SendRecordDao { | ||
| 27 | @Param("userType") int userType, @Param("deviceType") int deviceType); | 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 | List<SendRecordBean> getSenSuccess(); | 31 | List<SendRecordBean> getSenSuccess(); |
| 32 | 32 | ||
| 33 | @Select("select * from Face_SendSuccess where deviceID = #{deviceID} and schoolId = #{schoolId}") | 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,24 +85,50 @@ public class HaikangfaceApplicationTests { | ||
| 85 | 85 | ||
| 86 | @Test | 86 | @Test |
| 87 | public void send() { | 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 | int idnex = 0; | 93 | int idnex = 0; |
| 92 | for (int i = 0; i < sendRecordBeanList.size(); i++) { | 94 | for (int i = 0; i < sendRecordBeanList.size(); i++) { |
| 93 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); | 95 | SendRecordBean sendRecordBean = sendRecordBeanList.get(i); |
| 94 | 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" | 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 | String result1 = restTemplate.getForObject(url, String.class); | 98 | String result1 = restTemplate.getForObject(url, String.class); |
| 97 | System.out.println("下发人脸:" + result1+" idnex:"+idnex++); | 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 | /* List<HSGrade> gradeList = userDao.getGrades(); | 132 | /* List<HSGrade> gradeList = userDao.getGrades(); |
| 107 | 133 | ||
| 108 | for (int i = 0; i < gradeList.size(); i++) { | 134 | for (int i = 0; i < gradeList.size(); i++) { |
| @@ -291,7 +317,7 @@ public class HaikangfaceApplicationTests { | @@ -291,7 +317,7 @@ public class HaikangfaceApplicationTests { | ||
| 291 | 317 | ||
| 292 | @Test | 318 | @Test |
| 293 | public void fileRes() { | 319 | public void fileRes() { |
| 294 | - List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | 320 | +// List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); |
| 295 | /* List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); | 321 | /* List<QuestionBean> questionBeans = zuoYeDao.getQuestionsRecent(); |
| 296 | String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); | 322 | String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| 297 | 323 | ||
| @@ -304,12 +330,12 @@ public class HaikangfaceApplicationTests { | @@ -304,12 +330,12 @@ public class HaikangfaceApplicationTests { | ||
| 304 | ques.getState(),intime,stemId+"",ques.getExamineFlag(),ques.getSubjectId(),"10","1",ques.getChapterId(),ques.getGradeId()+"","1","","1"); | 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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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