Ver Fonte

教师考勤列表查询

dzx há 1 ano atrás
pai
commit
4eaaf8accd

+ 16 - 3
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.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -8,8 +9,11 @@ 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;
 import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.outint.entity.TeacherOutInRecord;
 import com.xjrsoft.module.outint.service.ITeacherOutInRecordService;
@@ -52,13 +56,17 @@ public class TeacherStatisticsController {
     @GetMapping(value = "/teacher-details")
     @ApiOperation(value="教师考勤")
     @SaCheckPermission("statistics:detail")
-    public RT<PageOutput<TeacherStatisticsPageVo>> teacherDetails(@Valid AttendanceStatisticDto dto){
+    public RT<PageOutput<TeacherStatisticsPageVo>> teacherDetails(@Valid TeacherDetailsDto dto){
         MPJLambdaWrapper<User> queryUser = new MPJLambdaWrapper<>();
         queryUser.disableSubLogicDel().distinct()
+                .like(StrUtil.isNotEmpty(dto.getName()), User::getName, dto.getName())
                 .selectAs(User::getName, TeacherStatisticsPageVo::getTeacherName)
                 .selectAs(User::getId, TeacherStatisticsPageVo::getUserId)
                 .selectAs(User::getMobile, TeacherStatisticsPageVo::getMobile)
-                .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId);
+                .selectAs(Department::getName, TeacherStatisticsPageVo::getDeptName)
+                .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
+                .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, User::getId)
+                .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId);
         IPage<TeacherStatisticsPageVo> voIPage = xjrUserService.selectJoinListPage(ConventPage.getPage(dto), TeacherStatisticsPageVo.class, queryUser);
 
         if(dto.getDate() != null && !"".equals(dto.getDate())){
@@ -99,7 +107,12 @@ public class TeacherStatisticsController {
                     record.setStatus(studentLeave.getLeaveType());
                 }else{
                     TeacherOutInRecord outInRecord = outInMap.get(record.getUserId());
-                    record.setStatus(outInRecord.getAttendanceStatus());
+                    if(outInRecord != null){
+                        record.setStatus(outInRecord.getAttendanceStatus());
+                    }else{
+                        record.setStatus("缺勤");
+                    }
+
                 }
             }
         }

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

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.attendance.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TeacherDetailsDto extends PageInput {
+
+    @ApiModelProperty("时间段(1:上午 2:下午)")
+    private Integer timePeriod;
+
+    @ApiModelProperty("查询时间")
+    private String date;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("证件号码")
+    private String credentialNumber;
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/vo/TeacherStatisticsPageVo.java

@@ -23,4 +23,7 @@ public class TeacherStatisticsPageVo {
 
     @ApiModelProperty("教师userId")
     private Long userId;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
 }

+ 12 - 0
src/main/resources/mapper/teacher/WfTeacherleaveMapper.xml

@@ -14,4 +14,16 @@
         OR (#{startTime} > leave_start_time and leave_end_time > #{endTime})
         )
     </select>
+
+    <select id="getLeaveList" resultType="com.xjrsoft.module.teacher.entity.WfTeacherleave">
+        SELECT * FROM wf_teacherleave t1
+                                 INNER JOIN xjr_user t2 ON t1.user_id = t2.id
+        WHERE t1.status = 1 AND t2.delete_mark = 0
+          AND (
+                (leave_start_time BETWEEN #{startTime} and #{endTime})
+                OR (leave_end_time BETWEEN #{startTime} and #{endTime})
+                OR (leave_start_time > #{startTime} and #{endTime} > leave_end_time)
+                OR (#{startTime} > leave_start_time and leave_end_time > #{endTime})
+            )
+    </select>
 </mapper>