Jelajahi Sumber

考勤条件增加

dzx 1 tahun lalu
induk
melakukan
84cd12d59e

+ 7 - 0
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.attendance.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -16,6 +17,7 @@ import com.xjrsoft.module.outint.service.IStudentOutInRecordService;
 import com.xjrsoft.module.outint.service.ITeacherOutInRecordService;
 import com.xjrsoft.module.personnel.service.IReservationSchoolService;
 import com.xjrsoft.module.student.entity.BaseStudent;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.service.IStudentLeaveService;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
@@ -63,6 +65,7 @@ public class StatisticsController {
         //查询总人数
         MPJLambdaWrapper<XjrUser> queryWrapper = MPJWrappers.<XjrUser>lambdaJoin()
                 .disableSubLogicDel()
+                .eq(ObjectUtil.isNotNull(dto.getDeptId()), UserDeptRelation::getDeptId, dto.getDeptId())
                 .innerJoin(BaseTeacher.class,BaseTeacher::getUserId,XjrUser::getId)
                 .innerJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId);
         long allCount = xjrUserService.count(queryWrapper);
@@ -126,6 +129,10 @@ public class StatisticsController {
         //查询总人数
         MPJLambdaWrapper<XjrUser> queryWrapper = MPJWrappers.<XjrUser>lambdaJoin()
                 .disableSubLogicDel()
+                .distinct()
+                .eq(ObjectUtil.isNotNull(dto.getGradeId()), BaseStudentSchoolRoll::getGradeId, dto.getGradeId())
+                .eq(ObjectUtil.isNotNull(dto.getClassId()), BaseStudentSchoolRoll::getClassId, dto.getClassId())
+                .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
                 .innerJoin(BaseStudent.class, BaseStudent::getUserId, XjrUser::getId);
         long allCount = xjrUserService.count(queryWrapper);
         statisticsVo.setAllCount(allCount);

+ 8 - 1
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.attendance.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -144,10 +145,12 @@ public class StudentStatisticsController {
                 .like(StrUtil.isNotEmpty(dto.getName()), User::getName, dto.getName())
                 .like(StrUtil.isNotEmpty(dto.getCredentialNumber()), User::getCredentialNumber, dto.getCredentialNumber())
                 .eq(StrUtil.isNotEmpty(dto.getStduyStatus()), BaseStudentSchoolRoll::getStduyStatus, dto.getStduyStatus())
+                .eq(ObjectUtil.isNotNull(dto.getClassId()), BaseStudentSchoolRoll::getClassId, dto.getClassId())
                 .selectAs(BaseClass::getName, StudentStatisticsPageVo::getClassName)
                 .select("t3.name", StudentStatisticsPageVo::getTeacherName)
                 .selectAs(User::getName, StudentStatisticsPageVo::getStudentName)
                 .selectAs(User::getId, StudentStatisticsPageVo::getUserId)
+                .selectAs(BaseStudentSchoolRoll::getStduyStatus, StudentStatisticsPageVo::getStduyStatusCn)
                 .selectAs(DictionaryDetail::getName, StudentStatisticsPageVo::getStduyStatusCn)
                 .selectAs(User::getCredentialNumber, StudentStatisticsPageVo::getCredentialNumber)
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
@@ -189,7 +192,11 @@ public class StudentStatisticsController {
                     record.setStatus(studentLeave.getLeaveType());
                 }else{
                     StudentOutInRecord outInRecord = outInMap.get(record.getUserId());
-                    record.setStatus(outInRecord.getAttendanceStatus());
+                    if(outInRecord != null){
+                        record.setStatus(outInRecord.getAttendanceStatus());
+                    }else{
+                        record.setStatus("缺勤");
+                    }
                 }
             }
         }

+ 2 - 1
src/main/java/com/xjrsoft/module/attendance/controller/TeacherStatisticsController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.attendance.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,7 +9,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
 import com.xjrsoft.module.attendance.dto.TeacherDetailsDto;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsPageVo;
 import com.xjrsoft.module.organization.entity.Department;
@@ -59,6 +59,7 @@ public class TeacherStatisticsController {
     public RT<PageOutput<TeacherStatisticsPageVo>> teacherDetails(@Valid TeacherDetailsDto dto){
         MPJLambdaWrapper<User> queryUser = new MPJLambdaWrapper<>();
         queryUser.disableSubLogicDel().distinct()
+                .eq(ObjectUtil.isNotNull(dto.getDeptId()), UserDeptRelation::getDeptId, dto.getDeptId())
                 .like(StrUtil.isNotEmpty(dto.getName()), User::getName, dto.getName())
                 .selectAs(User::getName, TeacherStatisticsPageVo::getTeacherName)
                 .selectAs(User::getId, TeacherStatisticsPageVo::getUserId)

+ 9 - 0
src/main/java/com/xjrsoft/module/attendance/dto/AttendanceStatisticDto.java

@@ -22,4 +22,13 @@ public class AttendanceStatisticDto extends PageInput {
 
     @ApiModelProperty("查询结束时间")
     private String endTime;
+
+    @ApiModelProperty("年级id")
+    private Long gradeId;
+
+    @ApiModelProperty("班级id")
+    private Long classId;
+
+    @ApiModelProperty("部门id")
+    private Long deptId;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/dto/StudentDetailsDto.java

@@ -23,4 +23,7 @@ public class StudentDetailsDto extends PageInput {
 
     @ApiModelProperty("就读方式")
     private String stduyStatus;
+
+    @ApiModelProperty("班级id")
+    private Long classId;
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/attendance/dto/TeacherDetailsDto.java

@@ -21,4 +21,6 @@ public class TeacherDetailsDto extends PageInput {
     @ApiModelProperty("证件号码")
     private String credentialNumber;
 
+    @ApiModelProperty("部门id")
+    private Long deptId;
 }