From 919c75a57c4f858d11ca5a248ecc386b479cd31e Mon Sep 17 00:00:00 2001 From: xuquan <1099815072@qq.com> Date: Mon, 25 Oct 2021 08:19:42 +0800 Subject: [PATCH] 大华代码提交 --- cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java | 7 +++++++ cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java | 2 ++ cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java | 17 +++++++++++++++++ cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java | 39 +++++++++++++++++++++++++++++++++++++++ cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java | 8 ++++++++ 5 files changed, 73 insertions(+), 0 deletions(-) diff --git a/cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java b/cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java index c29d660..cdaf5bb 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java +++ b/cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java @@ -91,4 +91,11 @@ public class UserOperateController { @RequestParam(value = "deviceIds",required = false) String deviceIds){ userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds); } + + @ApiOperation(value = "删除指定学校下无效人脸") + @RequestMapping(value = "deleteFaceByClassId", method = RequestMethod.POST) + public void exportFace(@RequestParam("schoolId") Integer schoolId, + @RequestParam(value = "deviceIds",required = false) String deviceIds){ + userOperateService.deleteFaceByClassId(schoolId,deviceIds); + } } diff --git a/cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java b/cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java index 2611730..536cdf0 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java +++ b/cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java @@ -20,5 +20,7 @@ public interface UserOperateService { */ void sendFaceByClassId(Integer schoolId,String classIds,String deviceIds); + void deleteFaceByClassId(Integer schoolId,String deviceIds); + void test6(Integer schoolId,Integer roomId,Integer type,Integer outof,String intime,String clintId,String startTime,String endTime); } diff --git a/cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java b/cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java index a18c10e..5b4b6b8 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java +++ b/cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java @@ -145,4 +145,21 @@ public class BaseService { Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new)); return studentList; } + + /** + * 获取指定学校下的学生卡信息 + * @param schoolId + * @return + */ + public List getRecordCardBySchoolId(int schoolId) { + List allStudents = new LinkedList<>(); + List students = sendRecordDao.getSendFaceSuccess(schoolId); + allStudents.addAll(students); + List students2 = sendRecordDao.getFaceRecord(schoolId); + allStudents.addAll(students2); + //去重重复数据 + List studentList = allStudents.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SendRecordBean::getNum))),ArrayList::new)); + return studentList; + } } diff --git a/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java b/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java index f6cfab4..46afabc 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java +++ b/cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java @@ -1,10 +1,14 @@ package com.example.dahua.service.imp; +import com.example.dahua.MyTask; +import com.example.dahua.bean.SendRecordBean; import com.example.dahua.bean.StudentBean; import com.example.dahua.bean.UserInfoBean; import com.example.dahua.dao.UserDao; import com.example.dahua.lib.CompressPic; import com.example.dahua.lib.FilePath; +import com.example.dahua.lib.NetSDKLib; +import com.example.dahua.module.GateModule2; import com.example.dahua.service.UserOperateService; import com.example.dahua.utils.DateFormatUtil; import com.example.dahua.utils.DateUtils; @@ -175,4 +179,39 @@ public class UserOperateServiceImpl implements UserOperateService { String dateStr = DateUtils.date2String(afterDate,DateUtils.format3); return dateStr; } + + @Override + public void deleteFaceByClassId(Integer schoolId,String deviceIds) { + //下发设备集合 + List deviceList = new ArrayList<>(); + if(StringUtils.isEmpty(deviceIds)){ + deviceList = userDao.selectDeviceBySchoolId(schoolId); + }else{ + String[] deviceArr = deviceIds.split(","); + deviceList= new ArrayList<>(Arrays.asList(deviceArr)); + } + List students= baseService.getRecordCardBySchoolId(schoolId.intValue()); + if(!CollectionUtils.isEmpty(students)){ + for(SendRecordBean s : students){ + String cardNum = s.getNum(); + String userId = s.getUserId(); + StudentBean studentBean = userDao.getStudentWithCard(cardNum,schoolId.intValue()); + if(studentBean == null){ + deviceList.stream().forEach(deviceId->{ + int isOk = 1; + //登录设备 + NetSDKLib.LLong loginHandleLong = MyTask.lLongSendMap.get(deviceId); + if (loginHandleLong !=null) { + isOk = GateModule2.deleteFace(userId,loginHandleLong); + } + if(isOk ==0){ + log.info("删除成功: 用户:{}, 卡号: {}, 设备:{}", s.getName(),cardNum,deviceId); + //删除成功记录 + sendRecordDao.deleteRecordById(schoolId,deviceId,cardNum); + } + }); + } + } + } + } } diff --git a/cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java b/cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java index 750cc42..38a91b9 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java +++ b/cloud/dahua/src/main/java/com/example/dahua/xiananDao/SendRecordDao.java @@ -30,6 +30,8 @@ public interface SendRecordDao { @Update("update Face_SendSuccess set time = #{time} where num = #{num} and deviceID = #{deviceID} ") void updateFaceSuccess(@Param("time") String time, @Param("deviceID") String clint_id, @Param("num") String num); + @Select("select * from Face_SendSuccess where schoolId = #{schoolId} ") + List getSendFaceSuccess(@Param("schoolId") Integer schoolId); @Insert("insert into Face_SendFail values(#{deviceID},#{customerid},#{num},#{name},#{time},#{schoolName},#{imgPath},#{schoolId},#{failContent},#{failType},#{userType},#{deviceType})") void addFaceFail(@Param("customerid") String customerid, @Param("deviceID") String deviceID, @Param("num") String num, @Param("name") String name, @@ -102,6 +104,9 @@ public interface SendRecordDao { @Update("delete from Face_SendRecord where id = #{id}") void deleteRecord(@Param("id") Integer id); + @Delete("delete Face_SendRecord where deviceID = #{deviceID} and Num = #{Num} and schoolId = #{schoolId}") + void deleteRecordById(@Param("schoolId") Integer schoolId,@Param("deviceID") String deviceID,@Param("Num") String Num); + // ======================== 表 Face_SendRecord ======================== @Select("select * from Face_SendRecord where schoolId = #{schoolId} and deviceID = #{deviceID} and Num = #{Num} and userId = #{userId}") List getRecordIsExit(@Param("schoolId") Integer schoolId,@Param("deviceID") String deviceId, @Param("Num") String card,@Param("userId") String userId); @@ -120,6 +125,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}") + List getFaceRecord(@Param("schoolId") Integer schoolId); + @Select("select count(*) from SZ_AttendanceRecordsSS202101 where school_id = #{schoolId} and card_num = #{cardNum} and card_type = #{cardType} and outof=#{outof} and intime > #{startTime} and intime < #{endTime} ") int getSSKaoQin(@Param("schoolId") Integer schoolId,@Param("cardNum") String cardNum,@Param("cardType") Integer cardType,@Param("outof") Integer outof,@Param("startTime") String startTime,@Param("endTime") String endTime); -- libgit2 0.21.0