Commit 9d70d292221b60e1ba9b7d05065ebdedf2d07232

Authored by 陶汉栋
1 parent 375d859f
Exists in master

no message

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

70.2 KB

cloud/picPath/comp/HSZL201901103.png 0 → 100644

47.9 KB