Commit 20c3076e78a9286121032602dfca01f446699a1a

Authored by 徐泉
1 parent ab1437f8
Exists in master

下发失败人脸接口代码提交

cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java
@@ -87,8 +87,8 @@ public class UserOperateController { @@ -87,8 +87,8 @@ public class UserOperateController {
87 @ApiOperation(value = "按班级指定下发") 87 @ApiOperation(value = "按班级指定下发")
88 @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST) 88 @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST)
89 public void exportFace(@RequestParam("schoolId") Integer schoolId, 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 userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds); 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,22 +108,27 @@ public class UserOperateServiceImpl implements UserOperateService {
108 if(photo.indexOf("face17e50")!=-1){ 108 if(photo.indexOf("face17e50")!=-1){
109 filePath = path_1 + "\\" + fileName; 109 filePath = path_1 + "\\" + fileName;
110 } 110 }
  111 + if(filePath.indexOf("?v=")!=-1){
  112 + filePath = filePath.split("\\?")[0];
  113 + }
111 log.info("学籍号:{},人脸路径:{}, ",studentCode,filePath); 114 log.info("学籍号:{},人脸路径:{}, ",studentCode,filePath);
112 //100服务人脸照图片路径 115 //100服务人脸照图片路径
113 File file = new File(filePath); 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 }catch (Exception e){ 133 }catch (Exception e){
129 log.error("人脸下发失败"); 134 log.error("人脸下发失败");
@@ -133,6 +138,15 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -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 @Override 150 @Override
137 public void test6(Integer schoolId, Integer roomId, Integer type, Integer outof, String intime, String clintId, String startTime, String endTime) { 151 public void test6(Integer schoolId, Integer roomId, Integer type, Integer outof, String intime, String clintId, String startTime, String endTime) {
138 List<String> studentIds = userDao.queryStudentIdList(schoolId,roomId); 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,7 +67,7 @@ public class CMSServer implements ApplicationRunner {
67 //114.55.30.100 67 //114.55.30.100
68 //120.26.116.253 68 //120.26.116.253
69 // private String ip_cloud = "114.55.30.100"; 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 private String ip; 72 private String ip;
73 { 73 {
@@ -290,7 +290,6 @@ public class CMSServer implements ApplicationRunner { @@ -290,7 +290,6 @@ public class CMSServer implements ApplicationRunner {
290 // int type = pInBuffer.dwAlarmServerType; 290 // int type = pInBuffer.dwAlarmServerType;
291 // int picServerType = pInBuffer.dwPicServerType; 291 // int picServerType = pInBuffer.dwPicServerType;
292 // System.out.println("type=" + type + " picType=" + picServerType); 292 // System.out.println("type=" + type + " picType=" + picServerType);
293 -  
294 } else if (3 == enumType) { 293 } else if (3 == enumType) {
295 } 294 }
296 return true; 295 return true;
@@ -300,7 +299,7 @@ public class CMSServer implements ApplicationRunner { @@ -300,7 +299,7 @@ public class CMSServer implements ApplicationRunner {
300 //文件保存回调函数(下载) 299 //文件保存回调函数(下载)
301 public class PSS_Storage_Callback implements HCEHomeSS.EHomeSSStorageCallBack { 300 public class PSS_Storage_Callback implements HCEHomeSS.EHomeSSStorageCallBack {
302 public boolean invoke(NativeLong iHandle, String pFileName, Pointer pFileBuf, int dwFileLen, Pointer pFilePath, Pointer pUser) { 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 File myPath = new File(strPath); 304 File myPath = new File(strPath);
306 if (!myPath.exists()) { 305 if (!myPath.exists()) {
@@ -422,7 +421,6 @@ public class CMSServer implements ApplicationRunner { @@ -422,7 +421,6 @@ public class CMSServer implements ApplicationRunner {
422 } 421 }
423 }); 422 });
424 } else { 423 } else {
425 - log.info("处理报警进来了");  
426 //处理报警事件 424 //处理报警事件
427 alarmUtils.deleAlarm(strXML); 425 alarmUtils.deleAlarm(strXML);
428 } 426 }
@@ -490,7 +488,6 @@ public class CMSServer implements ApplicationRunner { @@ -490,7 +488,6 @@ public class CMSServer implements ApplicationRunner {
490 String imgUrl = "http://" + ip_cloud + ":8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId; 488 String imgUrl = "http://" + ip_cloud + ":8081/kms/services/rest/dataInfoService/downloadFile?id=" + picDataUrlId;
491 face_recoder.setImgurl(imgUrl); 489 face_recoder.setImgurl(imgUrl);
492 log.info("设备: {},人脸抓怕:学校id: {} ,班级:{} ,用户名:{} ,卡号:{} ,",deviceID,schoolId,className,name,cardNo); 490 log.info("设备: {},人脸抓怕:学校id: {} ,班级:{} ,用户名:{} ,卡号:{} ,",deviceID,schoolId,className,name,cardNo);
493 - log.info("抓拍人脸:" + imgUrl);  
494 if (!TextUtils.isEmpty(currTemperature)) {//只有有温度的才存记录 491 if (!TextUtils.isEmpty(currTemperature)) {//只有有温度的才存记录
495 userDao.addWGTem(studentBean.getUser_id(), studentBean.getStudent_id(), studentBean.getName(), studentBean.getClass_id() + "", 492 userDao.addWGTem(studentBean.getUser_id(), studentBean.getStudent_id(), studentBean.getName(), studentBean.getClass_id() + "",
496 studentBean.getClass_name(), currTemperature, studentBean.getStudent_type() + "", studentBean.getSchool_id() + "", time); 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,6 +235,9 @@ public class UserOperateServiceImpl implements UserOperateService {
235 if(photo.indexOf("face17e50")!=-1){ 235 if(photo.indexOf("face17e50")!=-1){
236 filePath = path_1 + "\\" + fileName; 236 filePath = path_1 + "\\" + fileName;
237 } 237 }
  238 + if(filePath.indexOf("?v=")!=-1){
  239 + filePath = filePath.split("\\?")[0];
  240 + }
238 //校验100服务文件存储地址上是否存在此人脸 241 //校验100服务文件存储地址上是否存在此人脸
239 File file = new File(filePath.trim());//图片 242 File file = new File(filePath.trim());//图片
240 if (!file.exists()) { 243 if (!file.exists()) {
@@ -431,6 +434,9 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -431,6 +434,9 @@ public class UserOperateServiceImpl implements UserOperateService {
431 if(photo.indexOf("face17e50")!=-1){ 434 if(photo.indexOf("face17e50")!=-1){
432 filePath = path_1 + "\\" + fileName; 435 filePath = path_1 + "\\" + fileName;
433 } 436 }
  437 + if(filePath.indexOf("?v=")!=-1){
  438 + filePath = filePath.split("\\?")[0];
  439 + }
434 File file = new File(filePath);//图片 440 File file = new File(filePath);//图片
435 if(file.exists()){ 441 if(file.exists()){
436 String targetPath = FileUtils.picPathComp + file.getName(); 442 String targetPath = FileUtils.picPathComp + file.getName();
@@ -532,6 +538,9 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -532,6 +538,9 @@ public class UserOperateServiceImpl implements UserOperateService {
532 if(photo.indexOf("face17e50")!=-1){ 538 if(photo.indexOf("face17e50")!=-1){
533 filePath = path_1 + "\\" + fileName; 539 filePath = path_1 + "\\" + fileName;
534 } 540 }
  541 + if(filePath.indexOf("?v=")!=-1){
  542 + filePath = filePath.split("\\?")[0];
  543 + }
535 File file = new File(filePath);//图片 544 File file = new File(filePath);//图片
536 if(file.exists()){ 545 if(file.exists()){
537 String targetPath = FileUtils.picPathComp + file.getName(); 546 String targetPath = FileUtils.picPathComp + file.getName();
@@ -967,9 +976,17 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -967,9 +976,17 @@ public class UserOperateServiceImpl implements UserOperateService {
967 //去重重复数据 976 //去重重复数据
968 deviceList = resultDevices.stream().distinct().collect(Collectors.toList()); 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 int fileSize = studentBeanList.size(); 990 int fileSize = studentBeanList.size();
974 int clintNum = deviceList.size(); 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,7 +331,6 @@ public class AlarmUtils {
331 faceWaterRecoder.setTime(time); 331 faceWaterRecoder.setTime(time);
332 faceWaterRecoder.setCardNo(cardNo); 332 faceWaterRecoder.setCardNo(cardNo);
333 faceWaterRecoder.setSystime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 333 faceWaterRecoder.setSystime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
334 - log.info("保存流水记录,流水信息: {}",objectMapper.toJson(faceWaterRecoder));  
335 deviceDao.saveFaceWaterRecoder(faceWaterRecoder.getDeviceId(), faceWaterRecoder.getDeviceType() + "", faceWaterRecoder.getMinorType(), 334 deviceDao.saveFaceWaterRecoder(faceWaterRecoder.getDeviceId(), faceWaterRecoder.getDeviceType() + "", faceWaterRecoder.getMinorType(),
336 faceWaterRecoder.getContent(), faceWaterRecoder.getMajorType(), faceWaterRecoder.getTime(), faceWaterRecoder.getCardNo(), faceWaterRecoder.getSystime()); 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,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 * @param schoolId 317 * @param schoolId