Commit 20c3076e78a9286121032602dfca01f446699a1a
1 parent
ab1437f8
Exists in
master
下发失败人脸接口代码提交
Showing
6 changed files
with
63 additions
and
24 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java
| ... | ... | @@ -87,8 +87,8 @@ public class UserOperateController { |
| 87 | 87 | @ApiOperation(value = "按班级指定下发") |
| 88 | 88 | @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST) |
| 89 | 89 | public void exportFace(@RequestParam("schoolId") Integer schoolId, |
| 90 | - @RequestParam(value = "classIds",required = false) String classIds, | |
| 91 | - @RequestParam(value = "deviceIds",required = false) String deviceIds){ | |
| 90 | + @RequestParam(value = "classIds",required = false) String classIds, | |
| 91 | + @RequestParam(value = "deviceIds",required = false) String deviceIds){ | |
| 92 | 92 | userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds); |
| 93 | 93 | } |
| 94 | 94 | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java
| ... | ... | @@ -108,22 +108,27 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 108 | 108 | if(photo.indexOf("face17e50")!=-1){ |
| 109 | 109 | filePath = path_1 + "\\" + fileName; |
| 110 | 110 | } |
| 111 | + if(filePath.indexOf("?v=")!=-1){ | |
| 112 | + filePath = filePath.split("\\?")[0]; | |
| 113 | + } | |
| 111 | 114 | log.info("学籍号:{},人脸路径:{}, ",studentCode,filePath); |
| 112 | 115 | //100服务人脸照图片路径 |
| 113 | 116 | File file = new File(filePath); |
| 114 | - if(file.exists()){ | |
| 115 | - String targetPath = FilePath.picPathComp+ file.getName(); | |
| 116 | - try { | |
| 117 | - CompressPic.CompressPic(file.getAbsolutePath(), targetPath,""); | |
| 118 | - } catch (Exception e) { | |
| 119 | - log.error("压缩图片失败"); | |
| 120 | - e.printStackTrace(); | |
| 121 | - continue; | |
| 122 | - } | |
| 123 | - for(String sno : deviceList){ | |
| 124 | - String clint_type = userDao.getClintType(sno); | |
| 125 | - HttpUtils.uploadImgs(new File(targetPath), String.valueOf(schoolId), studentCode, clint_type, userType, sno); | |
| 126 | - } | |
| 117 | + if (!file.exists()) { | |
| 118 | + log.error("文件不存在:" + filePath); | |
| 119 | + continue; | |
| 120 | + } | |
| 121 | + String targetPath = FilePath.picPathComp+ file.getName(); | |
| 122 | + try { | |
| 123 | + CompressPic.CompressPic(file.getAbsolutePath(), targetPath,""); | |
| 124 | + } catch (Exception e) { | |
| 125 | + log.error("压缩图片失败"); | |
| 126 | + e.printStackTrace(); | |
| 127 | + continue; | |
| 128 | + } | |
| 129 | + for(String sno : deviceList){ | |
| 130 | + String clint_type = userDao.getClintType(sno); | |
| 131 | + HttpUtils.uploadImgs(new File(targetPath), String.valueOf(schoolId), studentCode, clint_type, userType, sno); | |
| 127 | 132 | } |
| 128 | 133 | }catch (Exception e){ |
| 129 | 134 | log.error("人脸下发失败"); |
| ... | ... | @@ -133,6 +138,15 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 133 | 138 | } |
| 134 | 139 | } |
| 135 | 140 | |
| 141 | + public static void main(String[] args) { | |
| 142 | + File file = new File("http://campus.myjxt.com//face17e5/School1485/Student/202170214.png?v=1635478750130"); | |
| 143 | + if (!file.isFile()) { | |
| 144 | + System.out.println(false); | |
| 145 | + }else{ | |
| 146 | + System.out.println(true); | |
| 147 | + } | |
| 148 | + } | |
| 149 | + | |
| 136 | 150 | @Override |
| 137 | 151 | public void test6(Integer schoolId, Integer roomId, Integer type, Integer outof, String intime, String clintId, String startTime, String endTime) { |
| 138 | 152 | List<String> studentIds = userDao.queryStudentIdList(schoolId,roomId); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
| ... | ... | @@ -67,7 +67,7 @@ public class CMSServer implements ApplicationRunner { |
| 67 | 67 | //114.55.30.100 |
| 68 | 68 | //120.26.116.253 |
| 69 | 69 | // private String ip_cloud = "114.55.30.100"; |
| 70 | - private String ip_cloud = "120.26.116.253"; | |
| 70 | + private String ip_cloud = "114.55.30.100"; | |
| 71 | 71 | |
| 72 | 72 | private String ip; |
| 73 | 73 | { |
| ... | ... | @@ -290,7 +290,6 @@ public class CMSServer implements ApplicationRunner { |
| 290 | 290 | // int type = pInBuffer.dwAlarmServerType; |
| 291 | 291 | // int picServerType = pInBuffer.dwPicServerType; |
| 292 | 292 | // System.out.println("type=" + type + " picType=" + picServerType); |
| 293 | - | |
| 294 | 293 | } else if (3 == enumType) { |
| 295 | 294 | } |
| 296 | 295 | return true; |
| ... | ... | @@ -300,7 +299,7 @@ public class CMSServer implements ApplicationRunner { |
| 300 | 299 | //文件保存回调函数(下载) |
| 301 | 300 | public class PSS_Storage_Callback implements HCEHomeSS.EHomeSSStorageCallBack { |
| 302 | 301 | public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { |
| 303 | - String strPath = "D://EhomePicServer/"; | |
| 302 | + String strPath = "E://EhomePicServer/"; | |
| 304 | 303 | //若此目录不存在,则创建之 |
| 305 | 304 | File myPath = new File(strPath); |
| 306 | 305 | if (!myPath.exists()) { |
| ... | ... | @@ -422,7 +421,6 @@ public class CMSServer implements ApplicationRunner { |
| 422 | 421 | } |
| 423 | 422 | }); |
| 424 | 423 | } else { |
| 425 | - log.info("处理报警进来了"); | |
| 426 | 424 | //处理报警事件 |
| 427 | 425 | alarmUtils.deleAlarm(strXML); |
| 428 | 426 | } |
| ... | ... | @@ -490,7 +488,6 @@ public class CMSServer implements ApplicationRunner { |
| 490 | 488 | String imgUrl = "http://" + ip_cloud + ":8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; |
| 491 | 489 | face_recoder.setImgurl(imgUrl); |
| 492 | 490 | log.info("设备: {},人脸抓怕:学校id: {} ,班级:{} ,用户名:{} ,卡号:{} ,",deviceID,schoolId,className,name,cardNo); |
| 493 | - log.info("抓拍人脸:" + imgUrl); | |
| 494 | 491 | if (!TextUtils.isEmpty(currTemperature)) {//只有有温度的才存记录 |
| 495 | 492 | userDao.addWGTem(studentBean.getUser_id(), studentBean.getStudent_id(), studentBean.getName(), studentBean.getClass_id() + "", |
| 496 | 493 | studentBean.getClass_name(), currTemperature, studentBean.getStudent_type() + "", studentBean.getSchool_id() + "", time); | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java
| ... | ... | @@ -235,6 +235,9 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 235 | 235 | if(photo.indexOf("face17e50")!=-1){ |
| 236 | 236 | filePath = path_1 + "\\" + fileName; |
| 237 | 237 | } |
| 238 | + if(filePath.indexOf("?v=")!=-1){ | |
| 239 | + filePath = filePath.split("\\?")[0]; | |
| 240 | + } | |
| 238 | 241 | //校验100服务文件存储地址上是否存在此人脸 |
| 239 | 242 | File file = new File(filePath.trim());//图片 |
| 240 | 243 | if (!file.exists()) { |
| ... | ... | @@ -431,6 +434,9 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 431 | 434 | if(photo.indexOf("face17e50")!=-1){ |
| 432 | 435 | filePath = path_1 + "\\" + fileName; |
| 433 | 436 | } |
| 437 | + if(filePath.indexOf("?v=")!=-1){ | |
| 438 | + filePath = filePath.split("\\?")[0]; | |
| 439 | + } | |
| 434 | 440 | File file = new File(filePath);//图片 |
| 435 | 441 | if(file.exists()){ |
| 436 | 442 | String targetPath = FileUtils.picPathComp + file.getName(); |
| ... | ... | @@ -532,6 +538,9 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 532 | 538 | if(photo.indexOf("face17e50")!=-1){ |
| 533 | 539 | filePath = path_1 + "\\" + fileName; |
| 534 | 540 | } |
| 541 | + if(filePath.indexOf("?v=")!=-1){ | |
| 542 | + filePath = filePath.split("\\?")[0]; | |
| 543 | + } | |
| 535 | 544 | File file = new File(filePath);//图片 |
| 536 | 545 | if(file.exists()){ |
| 537 | 546 | String targetPath = FileUtils.picPathComp + file.getName(); |
| ... | ... | @@ -967,9 +976,17 @@ public class UserOperateServiceImpl implements UserOperateService { |
| 967 | 976 | //去重重复数据 |
| 968 | 977 | deviceList = resultDevices.stream().distinct().collect(Collectors.toList()); |
| 969 | 978 | } |
| 970 | - //发送海康设备:异步执行 | |
| 971 | - baseService.sendUserFaceByAsyncThread(schoolId,2,studentBeanList,deviceList); | |
| 972 | - | |
| 979 | + log.info("统计共有下发用户数量:{}",studentBeanList.size()); | |
| 980 | + //设备类型 | |
| 981 | + Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0)); | |
| 982 | + if(clintType.intValue()== 22 || clintType.intValue()== 29){ | |
| 983 | + //发送大华设备 | |
| 984 | + HttpUtil.uploadDHImgByClassId(String.valueOf(schoolId),deviceIds,classIds); | |
| 985 | + } | |
| 986 | + if(clintType.intValue()== 18 || clintType.intValue()== 28){ | |
| 987 | + //发送海康设备:异步执行 | |
| 988 | + baseService.sendUserFaceByAsyncThread(schoolId,2,studentBeanList,deviceList); | |
| 989 | + } | |
| 973 | 990 | int fileSize = studentBeanList.size(); |
| 974 | 991 | int clintNum = deviceList.size(); |
| 975 | 992 | //下发所用时长 | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/AlarmUtils.java
| ... | ... | @@ -331,7 +331,6 @@ public class AlarmUtils { |
| 331 | 331 | faceWaterRecoder.setTime(time); |
| 332 | 332 | faceWaterRecoder.setCardNo(cardNo); |
| 333 | 333 | faceWaterRecoder.setSystime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| 334 | - log.info("保存流水记录,流水信息: {}",objectMapper.toJson(faceWaterRecoder)); | |
| 335 | 334 | deviceDao.saveFaceWaterRecoder(faceWaterRecoder.getDeviceId(), faceWaterRecoder.getDeviceType() + "", faceWaterRecoder.getMinorType(), |
| 336 | 335 | faceWaterRecoder.getContent(), faceWaterRecoder.getMajorType(), faceWaterRecoder.getTime(), faceWaterRecoder.getCardNo(), faceWaterRecoder.getSystime()); |
| 337 | 336 | } | ... | ... |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HttpUtil.java
| ... | ... | @@ -300,6 +300,18 @@ public class HttpUtil { |
| 300 | 300 | } |
| 301 | 301 | } |
| 302 | 302 | |
| 303 | + public static void uploadDHImgByClassId(String schoolId,String deviceIds,String classIds) { | |
| 304 | + String api = "http://114.55.30.100:8991/operate/sendFaceByClassId"; | |
| 305 | + try { | |
| 306 | + String url = String.format(api +"?schoolId=%s&deviceIds=%s&classIds%s",schoolId,deviceIds,classIds); | |
| 307 | + RestTemplate restTemplate = new RestTemplate(); | |
| 308 | + ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class); | |
| 309 | + log.info("发送请求,照片下发至大华设备,请求地址:{},返回信息: {}",url,responseEntity.getBody()); | |
| 310 | + } catch (Exception e) { | |
| 311 | + log.error("发送请求,照片下发至大华设备,异常信息:{}",e); | |
| 312 | + } | |
| 313 | + } | |
| 314 | + | |
| 303 | 315 | /** |
| 304 | 316 | * 删除大华设备人脸 |
| 305 | 317 | * @param schoolId | ... | ... |