Crazy 7 months ago
parent
commit
75408afeb3

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

@@ -268,25 +268,26 @@ public class DeptController {
     @Operation(summary = "获取毕业达成率")
     public CommonResult<List<DeptRespVO>> getGraduationSource(DeptListReqVO reqVO) {
         List<DeptDO> list = deptService.getDeptList(reqVO);
-        UserPageReqVO req =new UserPageReqVO();
-        for (DeptDO dept :list){
-            //毕业达成率
+        UserPageReqVO req = new UserPageReqVO();
+        for (DeptDO dept : list) {
+            // 毕业达成率
             req.setDeptId(dept.getId());
-            List<AdminUserDO> studentList =adminUserService.getUserList1(req);//获取这个工作间下的学生
+            List<AdminUserDO> studentList = adminUserService.getUserList1(req); // 获取这个工作间下的学生
+            double graduationRate = 0.0; // 初始化 graduationRate
             // 计算毕业达成率
             if (studentList != null && !studentList.isEmpty()) {
                 long totalStudents = studentList.size();
                 long graduatedStudents = studentList.stream()
-                        .filter(student -> student.getIsGraduate() == 0) //
+                        .filter(student -> student.getIsGraduate() == 0) // 0 表示毕业
                         .count();
                 // 计算达成率
-                double graduationRate = (double) graduatedStudents / totalStudents * 100;  // 转换成百分比
-                dept.setGraduationRate(graduationRate);
-            } else {
-                dept.setGraduationRate(Double.valueOf(0));  // 如果没有学生,则设定为 0
+                graduationRate = (double) graduatedStudents / totalStudents * 100;  // 转换成百分比
             }
+            String graduationRateWithPercentage = String.format("%.2f%%", graduationRate);
+            dept.setGraduationRate(graduationRateWithPercentage);
         }
         return success(BeanUtils.toBean(list, DeptRespVO.class));
     }
 
+
 }

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentAttendance/StudentAttendanceController.java

@@ -83,8 +83,8 @@ public class StudentAttendanceController {
          for (AdminUserDO user : userList) {
              if (user.getUserNumber() != null) {
                  attendanceReqVO.setUserNumber(user.getUserNumber());
-                 List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceList(attendanceReqVO);
-                     //请假了不为空也不会插入未打卡
+                 List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(attendanceReqVO);
+                     //请假了result不为空也不会插入未打卡
                  if (result == null || result.isEmpty()) {
                      StudentAttendanceDO attendance = new StudentAttendanceDO();
                      attendance.setClockInStatus("1"); // 未打卡

+ 37 - 8
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@@ -481,21 +481,50 @@ public class UserController {
     }
 
     @GetMapping("/getGraduateCount")
-    @Operation(summary = "获取毕业生人数统计")
+    @Operation(summary = "获取达成毕业体条件生人数统计")
     public CommonResult<Map<String,Integer>> getGraduateCount() throws Exception {
         UserPageReqVO reqVO= new UserPageReqVO();
-        List<AdminUserDO> studnetList = userService.getUserList(reqVO.setUserType("1"));
-        List<AdminUserDO> graduateList =  userService.getUserList(reqVO.setUserType("2"));
-
-        Integer studentNum =studnetList.size();
+        List<AdminUserDO> userList = userService.getUserList1(reqVO);
+        List<AdminUserDO> studentList = new ArrayList<>();
+        List<AdminUserDO> graduateList = new ArrayList<>();
+        userList.stream().forEach(user->{
+            if (user.getIsGraduate()==0){
+                graduateList.add(user);
+            }else if (user.getIsGraduate()==1L){
+                studentList.add(user);
+            }
+        });
+        Integer studentNum =studentList.size();
         Integer graduateNum =graduateList.size();
-
         Map<String, Integer> result = new HashMap<>();
         result.put("studentNum", studentNum);
         result.put("graduateNum", graduateNum);
-
         return success(result);
-
     }
 
+        //传数组
+//    @GetMapping("/getGraduateCount")
+//    @Operation(summary = "获取达成毕业体条件生人数统计")
+//    public CommonResult<List<Map<String, Integer>>> getGraduateCount() throws Exception {
+//        UserPageReqVO reqVO= new UserPageReqVO();
+//        List<AdminUserDO> userList = userService.getUserList1(reqVO);
+//        List<AdminUserDO> studentList = new ArrayList<>();
+//        List<AdminUserDO> graduateList = new ArrayList<>();
+//        userList.stream().forEach(user->{
+//            if (user.getIsGraduate()==0){
+//                graduateList.add(user);
+//            }else if (user.getIsGraduate()==1L){
+//                studentList.add(user);
+//            }
+//        });
+//        Integer studentNum =studentList.size();
+//        Integer graduateNum =graduateList.size();
+//        List<Map<String, Integer>> result = new ArrayList<>();
+//        Map<String, Integer> Map = new HashMap<>();
+//        Map.put("studentNum", studentNum);
+//        Map.put("graduateNum", graduateNum);
+//        result.add(Map);
+//        return success(result);
+//    }
+
 }

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

@@ -84,7 +84,7 @@ public class DeptDO extends TenantBaseDO {
      * 毕业达成率
      */
     @TableField(exist = false)
-    private Double graduationRate;
+    private String graduationRate;
 
 
 }

+ 6 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java

@@ -152,6 +152,8 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
                 .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname())//昵称查询
                 .eqIfPresent(AdminUserDO::getUserType,reqVO.getUserType())//类型查询
                 .likeIfPresent(AdminUserDO::getGrade, reqVO.getGrade())//班级查询
+                .likeIfPresent(AdminUserDO::getMajor, reqVO.getMajor())//专业
+                .likeIfPresent(AdminUserDO::getMasterType, reqVO.getMasterType())//专硕
                 .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
                 .eqIfPresent(AdminUserDO::getSupervisorId,reqVO.getSupervisorId())//导师查询
                 .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
@@ -185,6 +187,8 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
                 .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname())//昵称查询
                 .likeIfPresent(AdminUserDO::getUserNumber,reqVO.getUserNumber())//学号查询
                 .likeIfPresent(AdminUserDO::getWorkPlace,reqVO.getWorkPlace())//工作地点
+                .likeIfPresent(AdminUserDO::getMajor, reqVO.getMajor())//专业
+                .likeIfPresent(AdminUserDO::getMasterType, reqVO.getMasterType())//专硕
                 .orderByDesc(AdminUserDO::getId);
         if (roleIds.contains(113L)){//如果是教师
             queryWrapper.eqIfPresent(AdminUserDO::getSupervisorId,loginId);
@@ -211,6 +215,8 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
                 .likeIfPresent(AdminUserDO::getUserNumber,reqVO.getUserNumber())//学号查询
                 .likeIfPresent(AdminUserDO::getWorkPlace,reqVO.getWorkPlace())
                 .likeIfPresent(AdminUserDO::getWorkPlace,reqVO.getWorkPlace())//工作地点
+                .likeIfPresent(AdminUserDO::getMajor, reqVO.getMajor())//专业
+                .likeIfPresent(AdminUserDO::getMasterType, reqVO.getMasterType())//专硕
                 .orderByDesc(AdminUserDO::getId);
         if (roleIds.contains(113L)){//如果是教师
             queryWrapper.eqIfPresent(AdminUserDO::getSupervisorId,loginId);

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

@@ -114,15 +114,14 @@ public class AdminUserServiceImpl implements AdminUserService {
         }
         AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class);
         user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
-
-        if ("2".equals(createReqVO.getUserType())){//是毕业生
+        if (createReqVO.getPassword()!=null) {
+            user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码
+        }
+        if (createReqVO.getUserType().equals("2")){//是毕业生
             createReqVO.setPassword(encodePassword("123456"));//设置毕业生密码
             createReqVO.setUsername("graduate" + String.valueOf((int) (Math.random() * 900000) + 100000));//毕业生账号
         }
 
-        if (createReqVO.getPassword()!=null) {
-            user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码
-        }
         userMapper.insert(user);
 
         if ("3".equals(createReqVO.getUserType())){//是导师直接添加为负责人
@@ -918,6 +917,10 @@ public class AdminUserServiceImpl implements AdminUserService {
             importUser.setUserType("2");//确定是毕业生
             // 2.2.1 判断如果不存在,在进行插入
             if (existUser == null) {
+                if (importUser.getUsername()==null&&importUser.getPassword()==null){//是毕业生
+                    importUser.setPassword(encodePassword("123456"));//设置毕业生密码
+                    importUser.setUsername("graduate" + String.valueOf((int) (Math.random() * 900000) + 100000));//毕业生账号
+                }
                 try {
                     validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
                             null , null,importUser.getSupervisor(),importUser.getUserNumber());
@@ -934,7 +937,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                 }else if (UserRoleIds.contains(113L) &&importUser.getSupervisor()!=null){
                     newUser.setSupervisorId(userMapper.getUserByNickName(importUser.getSupervisor()).getId());
                 }
-
+                System.out.println(newUser);
                 Long userId = createUser(newUser); // 执行插入用户数据
                 Set<Long> roleIds = new HashSet<>();
                 //赋予学生角色

+ 16 - 0
yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/AdminUserMapper/AdminUserMapper.xml

@@ -50,6 +50,15 @@
         <if test="reqVO.supervisorId != null">
             AND a.supervisor_id = #{reqVO.supervisorId}
         </if>
+
+        <if test="reqVo.major != null">
+            AND a.major = #{reqVO.major}
+        </if>
+
+        <if test="reqVo.masterType != null">
+            AND a.masterType = #{reqVO.masterType}
+        </if>
+
         <if test="reqVO.status != null">
             AND a.status = #{reqVO.status}
         </if>
@@ -126,6 +135,13 @@
         <if test="reqVO.supervisorId != null">
             AND a.supervisor_id = #{reqVO.supervisorId}
         </if>
+        <if test="reqVo.major != null">
+            AND a.major = #{reqVO.major}
+        </if>
+        <if test="reqVo.masterType != null">
+            AND a.masterType = #{reqVO.masterType}
+        </if>
+
         <if test="reqVO.status != null">
             AND a.status = #{reqVO.status}
         </if>