diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java index 17f277f..634030f 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java @@ -83,6 +83,12 @@ public class UserOperateController { return userOperateService.sendFailFace(schoolId); } + @RequestMapping(value = "sendFailFace2", method = RequestMethod.POST) + @ApiOperation(value = "重新下发失败人脸2.1") + public Result sendFailFace(@RequestParam("schoolId") Integer schoolId,@RequestParam(value = "deviceIds",required = false) String deviceIds) { + return userOperateService.sendFailFace2(schoolId,deviceIds); + } + @ApiOperation(value = "删除指定人脸2.0") @RequestMapping(value = "deleteFace", method = RequestMethod.POST) public Result deleteFace(@RequestParam("schoolId") Integer schoolId, @RequestParam("cards") String cards, diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java index af7759f..f048a3e 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java @@ -72,6 +72,8 @@ public interface UserOperateService { */ Result sendFailFace(Integer schoolId); + Result sendFailFace2(Integer schoolId,String deviceIds); + /** * 删除指定人脸 * @param schoolId diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java index 92fcd0d..c15b98d 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java @@ -458,6 +458,107 @@ public class UserOperateServiceImpl implements UserOperateService { return ResultGenerator.genSuccessResult(); } + + @Override + public Result sendFailFace2(Integer schoolId,String deviceIds) { + if(schoolId ==null){ + return ResultGenerator.genFailResult("删除失败人脸,学校ID不能为空"); + } + List resultList = new ArrayList<>(); + if(StringUtils.isNotBlank(deviceIds)){ + //设备集合 + String[] deviceArr = deviceIds.split(","); + List deviceList= new ArrayList<>(Arrays.asList(deviceArr)); + for(String deviceId : deviceList){ + List recordBeanList = sendRecordDao.getFailRecord2(schoolId,deviceId); + resultList.addAll(recordBeanList); + } + }else{ + List recordBeanList = sendRecordDao.getFailRecord(schoolId); + resultList.addAll(recordBeanList); + } + if(resultList.size()>0){ + for(SendRecordBean recordBean : resultList){ + try{ + //用户类型1老师2学生 + int userType = recordBean.getUserType(); + //人脸卡号 + String cardNum = recordBean.getNum(); + //设备ID、设备类型 + String deviceId = recordBean.getDeviceID(); + Integer clintType = userDao.getClintTypeByDeviceId(deviceId); + //2.重新下发 + StudentBean studentBean= null; + String typeName =""; + String photo = ""; + if(userType ==1){ + typeName= "Teacher"; + studentBean = userDao.getTeacherWithCard(cardNum,schoolId); + photo=studentBean.getFace(); + }else{ + typeName= "Student"; + studentBean= userDao.getStudentWithCard(cardNum,schoolId); + photo=studentBean.getPhoto(); + } + if(studentBean==null|| StringUtils.isBlank(photo)){ + continue; + } + String userName= studentBean.getName(); + String studentCode = studentBean.getStudentCode(); + String filePath=""; + //下发海康人脸 + if(clintType.intValue()== 18 || clintType.intValue()== 28){ + //1.先删除人脸 + if (cmsServer.getIsDeviceOnline(deviceId)) { + String cardNo = Long.parseLong(baseService.getCard(cardNum),16) + ""; + cmsServer.deleteFace(deviceId, cardNo,schoolId); + }else{ + //不在线,去253服务器上删除 + HttpUtil.deleteCard(deviceId, cardNum); + } + //以学籍号为名的文件名 + String fileName = photo.substring(photo.lastIndexOf("/") + 1,photo.length()); + //100服务器人脸照绝对路径 + String path_1 = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\" + typeName; + String path_2 = "E:\\wwwhtdocs\\SmartCampus\\face17e5\\School" + schoolId + "\\" + typeName; + String path_3 = "E:\\wwwhtdocs\\SmartCampus\\f0i5l7e5\\"; + if(photo.indexOf("f0i5l7e5")!=-1){ + String afterStr = photo.split("f0i5l7e5/")[1].replace("/","\\"); + filePath= path_3 + afterStr; + } + if(photo.indexOf("face17e5")!=-1){ + filePath = path_2 + "\\" + fileName; + } + if(photo.indexOf("face17e50")!=-1){ + filePath = path_1 + "\\" + fileName; + } + File file = new File(filePath);//图片 + if(file.exists()){ + String targetPath = FileUtils.picPathComp + file.getName(); + try { + CompressPic.CompressPic(file.getAbsolutePath(), targetPath); + } catch (Exception e) { + log.error("压缩图片失败:",e); + continue; + } + if(!StringUtils.isBlank(cardNum)) { + baseService.sendImg(file.getAbsolutePath(), targetPath, deviceId, cardNum, userName, String.valueOf(userType), schoolId); + } + } + } + //下发大华人脸 + if(clintType.intValue()== 22 || clintType.intValue()== 29){ + HttpUtil.uploadDHImgForOne(filePath,schoolId,studentCode,clintType,deviceId); + } + }catch (Exception e){ + log.error("下发失败表人脸失败,异常信息:{}",e); + continue; + } + } + } + return ResultGenerator.genSuccessResult(); + } + @Override public Result deleteFace(Integer schoolId,String cards,String deviceIds) { if(StringUtils.isBlank(cards)){ diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java index 3f263ef..f5fa17f 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/xiananDao/SendRecordDao.java @@ -77,6 +77,9 @@ public interface SendRecordDao { @Select("select * from Face_SendRecord where schoolId = #{schoolId} and status =2") List getFailRecord(@Param("schoolId") Integer schoolId); + @Select("select * from Face_SendRecord where schoolId = #{schoolId} and deviceID = #{deviceId} and status =2") + List getFailRecord2(@Param("schoolId") Integer schoolId,@Param("deviceId") String deviceId); + @Select("select * from Face_SendRecord where schoolId = #{schoolId}") List getFaceRecord(@Param("schoolId") Integer schoolId); -- libgit2 0.21.0