Переглянути джерело

1、解决不通知学生考勤结果的问题
2、删除学生和教师人脸,移除海康人脸信息哦

dzx 8 місяців тому
батько
коміт
a379d2b12d

+ 3 - 2
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -287,8 +287,9 @@ public class DataUtil {
             paramJson.addProperty("birthday", objectMap.get("birthday")==null?"":objectMap.get("birthday").toString());
             paramJson.addProperty("personType", 2);
 
-            int gender;
-            switch (objectMap.get("gender").toString()) {
+            int gender = 0;
+            String genderData = objectMap.get("gender") == null ? "" : objectMap.get("gender").toString();
+            switch (genderData) {
                 case "SB10001":
                     gender = 1;
                     break;

+ 2 - 2
src/main/java/com/xjrsoft/module/job/AttendanceMessageTask.java

@@ -194,7 +194,7 @@ public class AttendanceMessageTask {
             String format = recentlyTime.format(formatter);
 
             userCount += userList.size();
-            if(messageSet.getRoleType() != null && messageSet.getRoleType() == 2){
+            if(messageSet.getRoleType() != null && messageSet.getRoleType() == 1){
                 //教师总人数
                 long teacherCout = userService.count(
                         new MPJLambdaWrapper<XjrUser>()
@@ -242,7 +242,7 @@ public class AttendanceMessageTask {
                     weChatSendMessageDto.setUserId(xjrUser.getOpenId());
 //                    weChatService.sendTemplateMessage(weChatSendMessageDto);
                 }
-            }else if(messageSet.getRoleType() != null && messageSet.getRoleType() == 3){
+            }else if(messageSet.getRoleType() != null && messageSet.getRoleType() == 2){
                 //教师总人数
                 long teacherCout = userService.count(
                         new MPJLambdaWrapper<XjrUser>()

+ 0 - 3
src/main/java/com/xjrsoft/module/job/HikvisionBaseDataTask.java

@@ -6,7 +6,6 @@ import com.xjrsoft.common.utils.SqlRunnerAdapterUtil;
 import com.xjrsoft.module.hikvision.entity.HikvisionData;
 import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
 import com.xjrsoft.module.hikvision.util.DataUtil;
-import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -25,8 +24,6 @@ import java.util.Set;
 @Component
 @Slf4j
 public class HikvisionBaseDataTask {
-    @Autowired
-    private FaceImportMapper faceImportMapper;
 
     @Autowired
     private HikvisionDataMapper hikvisionDataMapper;

+ 1 - 1
src/main/java/com/xjrsoft/module/personnel/controller/StundentFaceProcessController.java

@@ -163,7 +163,7 @@ public class StundentFaceProcessController {
     @ApiOperation(value = "删除学生人脸信息审核")
     @SaCheckPermission("stundentfaceprocess:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(stundentFaceProcessService.removeBatchByIds(ids));
+        return RT.ok(stundentFaceProcessService.removeByIds(ids));
     }
 
     @PostMapping(value = "/batch-import")

+ 1 - 1
src/main/java/com/xjrsoft/module/personnel/controller/TeacherFaceProcessController.java

@@ -148,7 +148,7 @@ public class TeacherFaceProcessController {
     @ApiOperation(value = "删除人脸信息审核")
     @SaCheckPermission("teacherfaceprocess:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(teacherFaceProcessService.removeBatchByIds(ids));
+        return RT.ok(teacherFaceProcessService.removeByIds(ids));
 
     }
 

+ 4 - 0
src/main/java/com/xjrsoft/module/personnel/service/IStundentFaceProcessService.java

@@ -3,6 +3,8 @@ package com.xjrsoft.module.personnel.service;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
 
+import java.util.List;
+
 /**
 * @title: 学生人脸信息审核
 * @Author dzx
@@ -11,4 +13,6 @@ import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
 */
 
 public interface IStundentFaceProcessService extends MPJBaseService<StundentFaceProcess> {
+
+    Boolean removeByIds(List<Long> ids);
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/personnel/service/ITeacherFaceProcessService.java

@@ -3,6 +3,8 @@ package com.xjrsoft.module.personnel.service;
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.personnel.entity.TeacherFaceProcess;
 
+import java.util.List;
+
 /**
 * @title: 人脸信息审核
 * @Author dzx
@@ -11,4 +13,6 @@ import com.xjrsoft.module.personnel.entity.TeacherFaceProcess;
 */
 
 public interface ITeacherFaceProcessService extends MPJBaseService<TeacherFaceProcess> {
+
+    Boolean removeByIds(List<Long> ids);
 }

+ 48 - 0
src/main/java/com/xjrsoft/module/personnel/service/impl/StundentFaceProcessServiceImpl.java

@@ -1,12 +1,23 @@
 package com.xjrsoft.module.personnel.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.google.gson.JsonObject;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.ApiUtil;
+import com.xjrsoft.module.personnel.entity.FaceManagement;
 import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
 import com.xjrsoft.module.personnel.mapper.StundentFaceProcessMapper;
+import com.xjrsoft.module.personnel.service.IFaceManagementService;
 import com.xjrsoft.module.personnel.service.IStundentFaceProcessService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+
 /**
 * @title: 学生人脸信息审核
 * @Author dzx
@@ -16,4 +27,41 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class StundentFaceProcessServiceImpl extends MPJBaseServiceImpl<StundentFaceProcessMapper, StundentFaceProcess> implements IStundentFaceProcessService {
+
+    private final HikvisionDataMapper hikvisionDataMapper;
+
+    private final IFaceManagementService faceManagementService;
+
+
+    //删除人脸后,移除海康那边的人脸
+    @Override
+    public Boolean removeByIds(List<Long> ids) {
+        List<StundentFaceProcess> list = this.baseMapper.selectBatchIds(ids);
+        ApiUtil apiUtil = new ApiUtil();
+        String apiPath = "/api/resource/v1/face/single/delete";
+        for (StundentFaceProcess process : list) {
+            String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(process.getUserId());
+
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("faceId", studentHikvisionId);
+
+            String result = apiUtil.doPost(apiPath, paramJson.toString(), null);
+            process.setExamStatus(2);
+            process.setHikvisionResult(result);
+            process.setDeleteMark(DeleteMark.DELETED.getCode());
+            process.setModifyUserId(StpUtil.getLoginIdAsLong());
+            process.setModifyDate(new Date());
+            this.baseMapper.updateById(process);
+
+            FaceManagement faceManagement = faceManagementService.getOne(
+                    new QueryWrapper<FaceManagement>().lambda()
+                            .eq(FaceManagement::getUserId, process.getUserId())
+                            .eq(FaceManagement::getFileId, process.getFacePhoto())
+            );
+
+            faceManagement.setRegisterBase64(null);
+            faceManagementService.update(faceManagement);
+        }
+        return true;
+    }
 }

+ 47 - 0
src/main/java/com/xjrsoft/module/personnel/service/impl/TeacherFaceProcessServiceImpl.java

@@ -1,12 +1,23 @@
 package com.xjrsoft.module.personnel.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.google.gson.JsonObject;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.ApiUtil;
+import com.xjrsoft.module.personnel.entity.FaceManagement;
 import com.xjrsoft.module.personnel.entity.TeacherFaceProcess;
 import com.xjrsoft.module.personnel.mapper.TeacherFaceProcessMapper;
+import com.xjrsoft.module.personnel.service.IFaceManagementService;
 import com.xjrsoft.module.personnel.service.ITeacherFaceProcessService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+
 /**
 * @title: 人脸信息审核
 * @Author dzx
@@ -16,4 +27,40 @@ import org.springframework.stereotype.Service;
 @Service
 @AllArgsConstructor
 public class TeacherFaceProcessServiceImpl extends MPJBaseServiceImpl<TeacherFaceProcessMapper, TeacherFaceProcess> implements ITeacherFaceProcessService {
+    private final HikvisionDataMapper hikvisionDataMapper;
+
+    private final IFaceManagementService faceManagementService;
+
+
+    //删除人脸后,移除海康那边的人脸
+    @Override
+    public Boolean removeByIds(List<Long> ids) {
+        List<TeacherFaceProcess> list = this.baseMapper.selectBatchIds(ids);
+        ApiUtil apiUtil = new ApiUtil();
+        String apiPath = "/api/resource/v1/face/single/delete";
+        for (TeacherFaceProcess process : list) {
+            String studentHikvisionId = hikvisionDataMapper.getStudentHikvisionId(process.getUserId());
+
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("faceId", studentHikvisionId);
+
+            String result = apiUtil.doPost(apiPath, paramJson.toString(), null);
+            process.setExamStatus(2);
+            process.setHikvisionResult(result);
+            process.setDeleteMark(DeleteMark.DELETED.getCode());
+            process.setModifyUserId(StpUtil.getLoginIdAsLong());
+            process.setModifyDate(new Date());
+            this.baseMapper.updateById(process);
+
+            FaceManagement faceManagement = faceManagementService.getOne(
+                    new QueryWrapper<FaceManagement>().lambda()
+                            .eq(FaceManagement::getUserId, process.getUserId())
+                            .eq(FaceManagement::getFileId, process.getFacePhoto())
+            );
+
+            faceManagement.setRegisterBase64(null);
+            faceManagementService.update(faceManagement);
+        }
+        return true;
+    }
 }