Browse Source

10.17,部门信息

Crazy 9 months ago
parent
commit
0bdf2830dc

+ 3 - 3
yudao-module-md/yudao-module-md-biz/src/main/java/Acs/UserManage.java

@@ -212,16 +212,16 @@ public class UserManage {
             parameter.put("searchID", UUID.randomUUID()); // 查询id
             parameter.put("maxResults",10);
             parameter.put("UserInfo.employeeNo",employeeNo);//查询学号对应的人
-//            System.out.println("查询条件"+parameter);
+            System.out.println("查询条件"+parameter);
 
             String template = "{\n" +
                     "  \"UserInfoSearchCond\": {\n" +
                     "    \"searchID\": \"${searchID}\",\n" +
                     "    \"searchResultPosition\": 0,\n" +
                     "    \"maxResults\": ${maxResults},\n" +
-                    "    \"UserInfo\": {\n" +
+                    "    \"EmployeeNoList\": [{\n" +
                     "      \"employeeNo\": \"${UserInfo.employeeNo}\"\n" +
-                    "    }\n" +
+                    "    }]\n" +
                     "  }\n" +
                     "}";
 

+ 48 - 14
yudao-module-md/yudao-module-md-biz/src/main/java/cn/iocoder/yudao/module/md/service/AcsService.java

@@ -18,6 +18,9 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
 import com.sun.jna.Native;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.tomcat.util.http.fileupload.FileUtils;
@@ -315,11 +318,22 @@ public class AcsService {
 //            AdminUserDO user = userService.findUserByUserNumber(importUser.getEmployeeNo());
 //            CompletableFuture<Void> addUserFuture = CompletableFuture.runAsync(() -> {
                 try {
-                    //用户名称与那users表里的相同
-//                    if (user.getNickname().equals(importUser.getName())) {
-                        UserManage.addUserInfo(lUserID, importUser.getEmployeeNo(), importUser.getName());
-                        System.out.println("添加用户成功");
-//                    }
+                    String result = getUser(importUser.getEmployeeNo());
+                    if ( result==null) {
+                        Gson gson = new Gson();
+                            JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
+                            JsonArray userInfoArray = jsonObject
+                                    .getAsJsonObject("UserInfoSearch")
+                                    .getAsJsonArray("UserInfo");
+                            if (userInfoArray!=null) {
+                                JsonObject userInfo = userInfoArray.get(0).getAsJsonObject();
+                                String empNo = userInfo.get("employeeNo").getAsString();
+                                if (empNo != null) {
+                                    UserManage.addUserInfo(lUserID, importUser.getEmployeeNo(), importUser.getName());
+                                    respVO.getCreateUsernames().add(importUser.getName());
+                                }
+                            }
+                    }
                 } catch (UnsupportedEncodingException | InterruptedException | JSONException e) {
                     throw new RuntimeException("添加用户信息失败: " + e.getMessage(), e);
                 }
@@ -414,6 +428,7 @@ public class AcsService {
         File tempDir = Files.createTempDirectory("users_images").toFile();
         List<String> successUsers =new LinkedList<>();
         List<String> failUsers =new LinkedList<>();
+        List<String> nullUsers =new LinkedList<>();
         try (InputStream inputStream = file.getInputStream();
              ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(inputStream)) {
             ZipEntry entry;
@@ -437,15 +452,31 @@ public class AcsService {
                                 bos.write(buffer, 0, len);
                             }
                         }
-
-                        String photoUrl = fileApi.createFile(Files.readAllBytes(newFile.toPath()));
-                        //给对应学号的人的照片添加
-                        String msg =addFaceByUrl( userNumber, photoUrl);
-                        //System.out.println("数据"+msg);
-                        if (msg.contains("下发人脸成功")&&msg.contains("但是有异常情况")){
-                            failUsers.add(studentName);
+                        String result =getUser(userNumber);
+                        if (result!=null){
+                            Gson gson = new Gson();
+                            JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
+
+                            JsonArray userInfoArray = jsonObject
+                                    .getAsJsonObject("UserInfoSearch")
+                                    .getAsJsonArray("UserInfo");
+                            if (userInfoArray!=null) {
+                                JsonObject userInfo = userInfoArray.get(0).getAsJsonObject();
+                                String empNo = userInfo.get("employeeNo").getAsString();
+                                if (empNo != null) {
+                                    String photoUrl = fileApi.createFile(Files.readAllBytes(newFile.toPath()));
+                                    //给对应学号的人的照片添加
+                                    String msg = addFaceByUrl(userNumber, photoUrl);
+                                    //System.out.println("数据"+msg);
+                                    if (msg.contains("下发人脸成功") && msg.contains("但是有异常情况")) {
+                                        failUsers.add(studentName);
+                                    } else {
+                                        successUsers.add(studentName);
+                                    }
+                                }
+                            }
                         }else{
-                            successUsers.add(studentName);
+                            nullUsers.add(studentName);
                         }
                         continue;
 //                    }else{
@@ -464,7 +495,10 @@ public class AcsService {
                 "}"+
                 "添加照片失败的用户{"
                 +failUsers+
-                "}";
+                "}"+
+                "不存在的用户{"+
+                nullUsers+"}";
+
     }
 
     // 检查多个图片名称格式

+ 29 - 26
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java

@@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.system.service.userAchievement.UserAchievementSer
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.var;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -98,34 +99,36 @@ public class DeptController {
     public CommonResult<DeptRespVO> getUserDept() {
         DeptDO dept = deptService.getUserDept();
         //新加的负责人用户信息
-        AdminUserDO user  =adminUserService.getUser(dept.getLeaderUserId());
-        dept.setUser(user);
-        DeptRespVO newDept =BeanUtils.toBean(dept, DeptRespVO.class);
-
-        List<AdminUserDO> allUser  =adminUserService.getDeptUser();//获取所有用户
-
-        List<AdminUserDO> student  =null;
-        List<AdminUserDO> supervisor  =null;
-        List<String> userAchievements  =null;
-        for (AdminUserDO ad :allUser){
-            if (ad.getUserType().equals("1") || ad.getUserType().equals("2")){
-                student = new ArrayList<>();
-                student.add(ad);
-            }
-            else if (ad.getUserType().equals("3")){
-                supervisor = new ArrayList<>();
-                supervisor.add(ad);
-            }
-            userAchievements = new ArrayList<>();
-            if (userAchievementService.getUserAchievementbyUserId(Math.toIntExact(ad.getId()))!=null) {
-                userAchievements.add(userAchievementService.getUserAchievementbyUserId(Math.toIntExact(ad.getId())).getDetail());
+        if (dept != null) {
+            AdminUserDO user = adminUserService.getUser(dept.getLeaderUserId());
+            dept.setUser(user);
+            DeptRespVO newDept = BeanUtils.toBean(dept, DeptRespVO.class);
+
+            List<AdminUserDO> allUser = adminUserService.getDeptUser();//获取所有用户
+
+            List<AdminUserDO> student = new ArrayList<>();
+            List<AdminUserDO> supervisor = new ArrayList<>();
+            List<String> userAchievements = new ArrayList<>();
+            for (AdminUserDO ad : allUser) {
+                if (ad.getUserType().equals("1") || ad.getUserType().equals("2")) {
+                    student.add(ad);
+                } else if (ad.getUserType().equals("3")) {
+                    supervisor.add(ad);
+                }
+                // 获取用户成就并添加到列表中
+                var userAchievement = userAchievementService.getUserAchievementbyUserId(Math.toIntExact(ad.getId()));
+                if (userAchievement != null) {
+                    userAchievements.add(userAchievement.getDetail());
+                }
             }
+            newDept.setSupervisorNum(String.valueOf(supervisor.size()));
+            newDept.setStudentNum(String.valueOf(student.size()));
+            newDept.setUserAchievements(userAchievements);
+            System.out.println(newDept);
+            return success(newDept);
+        } else {
+            return null;
         }
-        newDept.setSupervisorNum(String.valueOf(supervisor.stream().count()));
-        newDept.setStudentNum(String.valueOf(student.stream().count()));
-        newDept.setUserAchievements(userAchievements);
-        System.out.println(newDept);
-        return success(newDept);
     }
 
 }