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