Crazy 7 місяців тому
батько
коміт
bb125ac9b4

+ 224 - 16
yudao-module-md/yudao-module-md-biz/src/main/java/Acs/EventSearch.java

@@ -1,35 +1,232 @@
 package Acs;
 
 import NetSDKDemo.HCNetSDK;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.system.controller.admin.studentAttendance.vo.StudentAttendancePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.studentAttendance.vo.StudentAttendanceSaveReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.studentAttendance.StudentAttendanceDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+
 import cn.iocoder.yudao.module.system.service.studentAttendance.StudentAttendanceService;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
 import com.sun.jna.Pointer;
 
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.nio.ByteBuffer;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import cn.iocoder.yudao.module.md.service.*;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+
+import javax.annotation.Resource;
+
 
 /**
  * 事件查询模块
  */
 public final class EventSearch {
 
-    private static StudentAttendanceService studentAttendanceService;
+    static AdminUserService adminUserService =new AdminUserService() {
+        @Override
+        public Long createUser(UserSaveReqVO createReqVO) {
+            return 0L;
+        }
+
+        @Override
+        public void updateUser(UserSaveReqVO updateReqVO) {
+
+        }
+
+        @Override
+        public void updateUserLogin(Long id, String loginIp) {
+
+        }
+
+        @Override
+        public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) {
+
+        }
+
+        @Override
+        public void updateUserPassword(Long id, UserProfileUpdatePasswordReqVO reqVO) {
+
+        }
+
+        @Override
+        public String updateUserAvatar(Long id, InputStream avatarFile) throws Exception {
+            return "";
+        }
+
+        @Override
+        public void updateUserPassword(Long id, String password) {
+
+        }
+
+        @Override
+        public void updateUserStatus(Long id, Integer status) {
+
+        }
+
+        @Override
+        public void deleteUser(Long id) {
+
+        }
+
+        @Override
+        public AdminUserDO getUserByUsername(String username) {
+            return null;
+        }
+
+        @Override
+        public AdminUserDO getUserByMobile(String mobile) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getUserPage1(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getUserPage0(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getDeptTeacherPage(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getDeptStudentPage(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public List<AdminUserDO> getDeptUser() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getGraduateStudentPage(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<AdminUserDO> getGraduateStudentTPage(UserPageReqVO reqVO) {
+            return null;
+        }
+
+        @Override
+        public List<AdminUserDO> getSupervisor() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public AdminUserDO getUser(Long id) {
+            return null;
+        }
+
+        @Override
+        public List<AdminUserDO> getUserListByDeptIds(Collection<Long> deptIds) {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<AdminUserDO> getUserListByPostIds(Collection<Long> postIds) {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<AdminUserDO> getUserList(Collection<Long> ids) {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public void validateUserList(Collection<Long> ids) {
+
+        }
+
+        @Override
+        public List<AdminUserDO> getUserListByNickname(String nickname) {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport) {
+            return null;
+        }
+
+        @Override
+        public List<AdminUserDO> getUserListByStatus(Integer status) {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public boolean isPasswordMatch(String rawPassword, String encodedPassword) {
+            return false;
+        }
+
+        @Override
+        public AdminUserDO findUserByUserNumber(String userNumber) {
+            return null;
+        }
+    };
+
+    static StudentAttendanceService studentAttendanceService = new StudentAttendanceService() {
+        @Override
+        public Integer createStudentAttendance(StudentAttendanceSaveReqVO createReqVO) {
+            return 0;
+        }
+
+        @Override
+        public void updateStudentAttendance(StudentAttendanceSaveReqVO updateReqVO) {
+
+        }
+
+        @Override
+        public void deleteStudentAttendance(Integer id) {
+
+        }
+
+        @Override
+        public StudentAttendanceDO getStudentAttendance(Integer id) {
+            return null;
+        }
+
+        @Override
+        public PageResult<StudentAttendanceDO> getStudentAttendancePage(StudentAttendancePageReqVO pageReqVO) {
+            return null;
+        }
+
+        @Override
+        public PageResult<StudentAttendanceDO> getStudentAttendanceErrorPage(StudentAttendancePageReqVO pageReqVO) {
+            return null;
+        }
+    };
+
     private static List<Object> studentAttendance =new ArrayList<>();
-    private static AdminUserService adminUserService;
+
     /**
      * 门禁事件查询,基于起止时间,事件类型进行查询
      *
@@ -117,6 +314,7 @@ public final class EventSearch {
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 LocalDateTime parsedTime =null;
                 String employeeNo =null;
+
                 if ( clockInTime!=null){
                      parsedTime = LocalDateTime.parse(clockInTime, formatter);
                 }
@@ -124,21 +322,27 @@ public final class EventSearch {
                     employeeNo = String.valueOf(struAcsEventCfg.struAcsEventInfo.dwEmployeeNo);
                 }
                 StudentAttendanceDO attendance =new StudentAttendanceDO();
-//                if (employeeNo != null && !employeeNo.equals("0")) {
-//                    AdminUserDO user = adminUserService.findUserByUserNumber(employeeNo);
-//                    if (user != null) {
-//                        attendance.setStudentName(user.getNickname());
-//                        attendance.setStudentId(user.getId());
-//                    }else {
-//                        System.out.println("没有找到该用户"+employeeNo);
-//                    }
-//                }
+                if (employeeNo != null && !employeeNo.equals("0")) {
+                    AdminUserDO user = adminUserService.findUserByUserNumber(employeeNo);
+                    System.out.println("用户"+user);
+                    if (user != null) {
+                        attendance.setStudentName(user.getNickname());//昵称
+                        attendance.setStudentId(user.getId());//学生id
+                        attendance.setDeptId(user.getDeptId());//工作间id
+                        attendance.setSupervisorId(user.getSupervisorId());//导师id
+                        attendance.setClockInStatus(transformClockStatus(parsedTime));//打卡状态
+                    }else {
+                        System.out.println("没有找到该用户"+employeeNo);
+                    }
+                }
                 //插入
                 attendance.setClockInTime(parsedTime);//打卡时间
                 attendance.setUserNumber(employeeNo);//学号
 
                 //插入考勤表
-//                studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
+                //TODO没插入成功
+                Integer id =  studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
+                System.out.println(id);
                 studentAttendance.add(attendance);
 
                 //人脸图片保存
@@ -181,4 +385,8 @@ public final class EventSearch {
         return null;
     }
 
+    public static String transformClockStatus(LocalDateTime clockTimm){
+        return "0";
+    }
+
 }

+ 6 - 2
yudao-module-md/yudao-module-md-biz/src/main/java/cn/iocoder/yudao/module/md/controller/admin/AcsController.java

@@ -199,6 +199,7 @@ public class AcsController {
     /**
      * 查询历史事件
      */
+
     @GetMapping("/searchEvents")
     public CommonResult<List<Object>> searchEvents() throws UnsupportedEncodingException, InterruptedException {
 
@@ -214,7 +215,7 @@ public class AcsController {
             @Parameter(name = "imageFile", description = "压缩包文件", required = true),
             @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
     })
-   @PreAuthorize("@ss.hasPermission('system:users-info:import')")
+   @PreAuthorize("@ss.hasPermission('system:users-info-with-image:import')")
     public CommonResult<String> importData(@RequestParam("excelFile") MultipartFile excelFile,
                                                    @RequestParam("imageFile") MultipartFile imageFile,
                                                    @RequestParam(value = "updateSupport", required = false, defaultValue = "true") Boolean updateSupport) {
@@ -261,7 +262,7 @@ public class AcsController {
     }
 
 
-    //通过user表里对应人员插入再添加给考勤
+    //需有人员信息已经导入到user表
     @PostMapping("/test")
     @Operation(summary = "lsq")
     @Parameters({
@@ -279,5 +280,8 @@ public class AcsController {
             return CommonResult.error(500, "导入过程中发生错误: " + e.getMessage());
         }
     }
+
+    //人脸信息分页管理接口
+
 }
 

+ 4 - 5
yudao-module-md/yudao-module-md-biz/src/main/java/cn/iocoder/yudao/module/md/service/AcsService.java

@@ -259,8 +259,8 @@ public class AcsService {
      *
      * @return
      */
-    public  List<Object> searchEvents() throws UnsupportedEncodingException, InterruptedException {
 
+    public  List<Object> searchEvents() throws UnsupportedEncodingException, InterruptedException {
         return  EventSearch.searchAllEvent(lUserID);
     }
 
@@ -268,8 +268,7 @@ public class AcsService {
   //lsq
     @Resource
     private FileApi fileApi;
-    @Resource
-    private ConfigApi configApi;
+
     @Resource
     private AdminUserService userService;
 
@@ -394,7 +393,7 @@ public class AcsService {
     }
 
 
-    //先插入url到user表再从user表找photoUrl(需要先有用户信息)
+    //插入照片到考勤用户,成功后再插入到对应用户的photoUrl(需要先有用户信息)
     @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
     public String importImages(MultipartFile file) throws Exception {
         // 校验文件类型
@@ -439,7 +438,6 @@ public class AcsService {
                                 // 上传文件并获取 URL
                                 AdminUserDO user = userService.findUserByUserNumber(userNumber);
                                 String photoUrl = fileApi.createFile(Files.readAllBytes(newFile.toPath()));
-                                user.setPhotoUrl(photoUrl);
                                 userService.updateUser((BeanUtils.toBean(user, UserSaveReqVO.class)));
                                 //给对应学号的人的照片添加
                                 String msg = addFaceByUrl(user.getUserNumber(), photoUrl);
@@ -447,6 +445,7 @@ public class AcsService {
                                     failUsers.add(studentName);
                                 } else {
                                     successUsers.add(studentName);
+                                    user.setPhotoUrl(photoUrl);
                                 }
                             } else {
                                 nullUsers.add(studentName);

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/studentAttendance/StudentAttendanceDO.java

@@ -43,7 +43,7 @@ public class StudentAttendanceDO extends BaseDO {
     /**
      * 工作间id
      */
-    private String deptId;
+    private Long deptId;
     /**
      * 日期
      */

+ 4 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -596,7 +596,10 @@ public class AdminUserServiceImpl implements AdminUserService {
     //查学号查到学生
     @Override
     public AdminUserDO findUserByUserNumber(String userNumber){
-        return  userMapper.findUserByUserNumber(userNumber);
+        if (userNumber!=null) {
+            return userMapper.findUserByUserNumber(userNumber);
+        }
+        return null;
     }
 
 }