Selaa lähdekoodia

/teacher/wfHeadTeacherLeave/page 班主任事项请假列表(分页)

phoenix 1 vuosi sitten
vanhempi
commit
385be17c69

+ 1 - 7
src/main/java/com/xjrsoft/module/teacher/controller/AttendancePersonnelController.java

@@ -57,13 +57,7 @@ public class AttendancePersonnelController {
     @ApiOperation(value="考勤-人员列表(分页)")
     @SaCheckPermission("attendancepersonnel:detail")
     public RT<PageOutput<AttendancePersonnelPageVo>> page(@Valid AttendancePersonnelPageDto dto){
-
-        MPJLambdaWrapper<AttendancePersonnel> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper.select(AttendancePersonnel::getId)
-                .selectAs(XjrUser::getName, AttendancePersonnelPageVo::getUserName)
-                .leftJoin(XjrUser.class, XjrUser::getId, AttendancePersonnel::getUserId)
-                .orderByDesc(AttendancePersonnel::getId);
-        IPage<AttendanceRecordPageVo> page = attendancePersonnelService.selectJoinListPage(ConventPage.getPage(dto),AttendanceRecordPageVo.class, queryWrapper);
+        IPage<AttendancePersonnelPageVo> page = attendancePersonnelService.getListPage(dto);
         PageOutput<AttendancePersonnelPageVo> pageOutput = ConventPage.getPageOutput(page, AttendancePersonnelPageVo.class);
         return RT.ok(pageOutput);
     }

+ 5 - 6
src/main/java/com/xjrsoft/module/teacher/controller/WfHeadTeacherLeaveController.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.constant.GlobalConstant;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.xjrsoft.common.page.ConventPage;
@@ -17,6 +18,9 @@ import com.xjrsoft.module.teacher.dto.UpdateWfHeadTeacherLeaveDto;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.xjrsoft.module.teacher.entity.AttendanceRecord;
+import com.xjrsoft.module.teacher.entity.XjrUser;
+import com.xjrsoft.module.teacher.vo.AttendanceRecordPageVo;
 import org.springframework.http.ResponseEntity;
 import java.io.ByteArrayOutputStream;
 import java.util.ArrayList;
@@ -55,12 +59,7 @@ public class WfHeadTeacherLeaveController {
     @ApiOperation(value="班主任事项请假列表(分页)")
     @SaCheckPermission("wfheadteacherleave:detail")
     public RT<PageOutput<WfHeadTeacherLeavePageVo>> page(@Valid WfHeadTeacherLeavePageDto dto){
-
-        LambdaQueryWrapper<WfHeadTeacherLeave> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(WfHeadTeacherLeave::getId)
-                .select(WfHeadTeacherLeave.class,x -> VoToColumnUtil.fieldsToColumns(WfHeadTeacherLeavePageVo.class).contains(x.getProperty()));
-        IPage<WfHeadTeacherLeave> page = wfHeadTeacherLeaveService.page(ConventPage.getPage(dto), queryWrapper);
+        IPage<WfHeadTeacherLeavePageVo> page = wfHeadTeacherLeaveService.getListPage(dto);
         PageOutput<WfHeadTeacherLeavePageVo> pageOutput = ConventPage.getPageOutput(page, WfHeadTeacherLeavePageVo.class);
         return RT.ok(pageOutput);
     }

+ 5 - 1
src/main/java/com/xjrsoft/module/teacher/dto/AttendancePersonnelPageDto.java

@@ -22,5 +22,9 @@ import java.util.Date;
 @EqualsAndHashCode(callSuper = false)
 public class AttendancePersonnelPageDto extends PageInput {
 
-
+    /**
+     * 关键字
+     */
+    @ApiModelProperty("关键字")
+    private String keyword;
 }

+ 30 - 1
src/main/java/com/xjrsoft/module/teacher/dto/WfHeadTeacherLeavePageDto.java

@@ -1,5 +1,7 @@
 package com.xjrsoft.module.teacher.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -21,6 +23,33 @@ import java.util.Date;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class WfHeadTeacherLeavePageDto extends PageInput {
-
+    /**
+     * 申请人姓名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人姓名")
+    @ApiModelProperty("申请人姓名")
+    private String applicantUserIdCN;
+    /**
+     * 开始时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("开始时间")
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("结束时间")
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+    /**
+     * 替换教师姓名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("替换教师姓名")
+    @ApiModelProperty("替换教师姓名")
+    private Long substituteUserIdCN;
 
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/teacher/mapper/AttendancePersonnelMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.dto.ClassHonorsPageDto;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
 import com.xjrsoft.module.teacher.dto.SelectPersonPageDto;
 import com.xjrsoft.module.teacher.entity.AttendancePersonnel;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import com.xjrsoft.module.teacher.vo.SelectPersonPageVo;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -18,6 +20,8 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface AttendancePersonnelMapper extends MPJBaseMapper<AttendancePersonnel> {
 
+    IPage<AttendancePersonnelPageVo> getListPage(IPage<AttendancePersonnelPageDto> page,AttendancePersonnelPageDto dto);
+
     IPage<SelectPersonPageVo> selectPersonPage(IPage<SelectPersonPageDto> page, SelectPersonPageDto dto);
 
 }

+ 5 - 1
src/main/java/com/xjrsoft/module/teacher/mapper/WfHeadTeacherLeaveMapper.java

@@ -1,8 +1,12 @@
 package com.xjrsoft.module.teacher.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
+import com.xjrsoft.module.teacher.dto.WfHeadTeacherLeavePageDto;
 import com.xjrsoft.module.teacher.entity.WfHeadTeacherLeave;
+import com.xjrsoft.module.teacher.vo.WfHeadTeacherLeavePageVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -13,5 +17,5 @@ import org.apache.ibatis.annotations.Mapper;
 */
 @Mapper
 public interface WfHeadTeacherLeaveMapper extends MPJBaseMapper<WfHeadTeacherLeave> {
-
+    IPage<WfHeadTeacherLeavePageVo> getListPage(IPage<WfHeadTeacherLeavePageDto> page, WfHeadTeacherLeavePageDto dto);
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/teacher/service/IAttendancePersonnelService.java

@@ -3,8 +3,10 @@ package com.xjrsoft.module.teacher.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
 import com.xjrsoft.module.teacher.dto.SelectPersonPageDto;
 import com.xjrsoft.module.teacher.entity.AttendancePersonnel;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import com.xjrsoft.module.teacher.vo.SelectPersonPageVo;
 import lombok.Data;
 
@@ -20,6 +22,13 @@ import java.util.List;
 
 public interface IAttendancePersonnelService extends MPJBaseService<AttendancePersonnel> {
 
+    /**
+     * 考勤-人员列表(分页)
+     * @param dto
+     * @return
+     */
+    IPage<AttendancePersonnelPageVo> getListPage(AttendancePersonnelPageDto dto);
+
     /**
      * 批量添加考勤-人员
      * @param userIds

+ 9 - 0
src/main/java/com/xjrsoft/module/teacher/service/IWfHeadTeacherLeaveService.java

@@ -1,8 +1,11 @@
 package com.xjrsoft.module.teacher.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.teacher.dto.WfHeadTeacherLeavePageDto;
 import com.xjrsoft.module.teacher.entity.WfHeadTeacherLeave;
+import com.xjrsoft.module.teacher.vo.WfHeadTeacherLeavePageVo;
 import lombok.Data;
 import java.util.List;
 
@@ -14,4 +17,10 @@ import java.util.List;
 */
 
 public interface IWfHeadTeacherLeaveService extends MPJBaseService<WfHeadTeacherLeave> {
+    /**
+     * 班主任事项请假列表(分页)
+     * @param dto
+     * @return
+     */
+    IPage<WfHeadTeacherLeavePageVo> getListPage(WfHeadTeacherLeavePageDto dto);
 }

+ 8 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/AttendancePersonnelServiceImpl.java

@@ -11,12 +11,14 @@ import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.organization.entity.Post;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.entity.UserPostRelation;
+import com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto;
 import com.xjrsoft.module.teacher.dto.SelectPersonPageDto;
 import com.xjrsoft.module.teacher.entity.AttendancePersonnel;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.mapper.AttendancePersonnelMapper;
 import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
 import com.xjrsoft.module.teacher.service.IAttendancePersonnelService;
+import com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo;
 import com.xjrsoft.module.teacher.vo.SelectPersonPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -40,6 +42,12 @@ public class AttendancePersonnelServiceImpl extends MPJBaseServiceImpl<Attendanc
 
     private final AttendancePersonnelMapper attendancePersonnelMapper;
 
+    @Override
+    public IPage<AttendancePersonnelPageVo> getListPage(AttendancePersonnelPageDto dto) {
+        IPage<AttendancePersonnelPageVo> page = attendancePersonnelMapper.getListPage(ConventPage.getPage(dto),dto);
+        return page;
+    }
+
     @Override
     public Boolean addBatch(List<Long> userIds) {
         List<AttendancePersonnel> addList = new ArrayList<>();

+ 11 - 0
src/main/java/com/xjrsoft/module/teacher/service/impl/WfHeadTeacherLeaveServiceImpl.java

@@ -1,10 +1,14 @@
 package com.xjrsoft.module.teacher.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.module.teacher.dto.WfHeadTeacherLeavePageDto;
 import com.xjrsoft.module.teacher.entity.WfHeadTeacherLeave;
 import com.xjrsoft.module.teacher.mapper.WfHeadTeacherLeaveMapper;
 import com.xjrsoft.module.teacher.service.IWfHeadTeacherLeaveService;
+import com.xjrsoft.module.teacher.vo.WfHeadTeacherLeavePageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,4 +26,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 @Service
 @AllArgsConstructor
 public class WfHeadTeacherLeaveServiceImpl extends MPJBaseServiceImpl<WfHeadTeacherLeaveMapper, WfHeadTeacherLeave> implements IWfHeadTeacherLeaveService {
+
+    private final WfHeadTeacherLeaveMapper wfHeadTeacherLeaveMapper;
+
+    @Override
+    public IPage<WfHeadTeacherLeavePageVo> getListPage(WfHeadTeacherLeavePageDto dto) {
+        return wfHeadTeacherLeaveMapper.getListPage(ConventPage.getPage(dto),dto);
+    }
 }

+ 3 - 8
src/main/java/com/xjrsoft/module/teacher/vo/AttendancePersonnelPageVo.java

@@ -1,18 +1,11 @@
 package com.xjrsoft.module.teacher.vo;
 
 import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xjrsoft.common.enums.GenderEnum;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import com.xjrsoft.common.annotation.Trans;
-import com.xjrsoft.common.enums.TransType;
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
-import java.util.Date;
 
 /**
 * @title: 考勤-人员分页列表出参
@@ -30,6 +23,7 @@ public class AttendancePersonnelPageVo {
     @ExcelProperty("主键编号")
     @ApiModelProperty("主键编号")
     private String id;
+
     /**
     * 用户编号
     */
@@ -37,6 +31,7 @@ public class AttendancePersonnelPageVo {
     @ExcelProperty("用户编号")
     @ApiModelProperty("用户编号")
     private Long userId;
+
     /**
      * 用户编号
      */

+ 12 - 69
src/main/java/com/xjrsoft/module/teacher/vo/WfHeadTeacherLeavePageVo.java

@@ -31,61 +31,19 @@ public class WfHeadTeacherLeavePageVo {
     @ApiModelProperty("主键编号")
     private String id;
     /**
-    * 创建人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建人")
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
-    * 创建时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建时间")
-    @ApiModelProperty("创建时间")
-    private Date createDate;
-    /**
-    * 修改人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改人")
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改时间")
-    @ApiModelProperty("修改时间")
-    private Date modifyDate;
-    /**
-    * 删除标记
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("删除标记")
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
-    /**
-    * 有效标志
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("有效标志")
-    @ApiModelProperty("有效标志")
-    private Integer enabledMark;
-    /**
-    * 序号
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("序号")
-    @ApiModelProperty("序号")
-    private Integer sortCode;
-    /**
     * 申请人
     */
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("申请人")
     @ApiModelProperty("申请人")
     private Long applicantUserId;
+    /**
+     * 申请人姓名
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("申请人姓名")
+    @ApiModelProperty("申请人姓名")
+    private String applicantUserIdCN;
     /**
     * 请假原因(xjr_dictionary_item[leave_reason])
     */
@@ -108,13 +66,6 @@ public class WfHeadTeacherLeavePageVo {
     @ApiModelProperty("结束时间")
     private Date endTime;
     /**
-    * 是否有替班教师(1:是 0:否)
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("是否有替班教师(1:是 0:否)")
-    @ApiModelProperty("是否有替班教师(1:是 0:否)")
-    private Integer isSubstitute;
-    /**
     * 替换教师
     */
     @ContentStyle(dataFormat = 49)
@@ -122,18 +73,10 @@ public class WfHeadTeacherLeavePageVo {
     @ApiModelProperty("替换教师")
     private Long substituteUserId;
     /**
-    * 备注
-    */
+     * 替换教师姓名
+     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("备注")
-    @ApiModelProperty("备注")
-    private String remark;
-    /**
-    * 状态(1:结束 0:未结束)
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("状态(1:结束 0:未结束)")
-    @ApiModelProperty("状态(1:结束 0:未结束)")
-    private Integer status;
-
+    @ExcelProperty("替换教师姓名")
+    @ApiModelProperty("替换教师姓名")
+    private String substituteUserIdCN;
 }

+ 58 - 17
src/main/resources/mapper/teacher/AttendancePersonnelMapper.xml

@@ -3,7 +3,39 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.teacher.mapper.AttendancePersonnelMapper">
-    <select id="selectPersonPage" parameterType="com.xjrsoft.module.teacher.dto.SelectPersonPageDto" resultType="com.xjrsoft.module.teacher.vo.SelectPersonPageVo">
+    <select id="getListPage" parameterType="com.xjrsoft.module.teacher.dto.AttendancePersonnelPageDto"
+            resultType="com.xjrsoft.module.teacher.vo.AttendancePersonnelPageVo">
+        SELECT
+        t.id,
+        t1.id as userId,
+        t1.name as userName,
+        t1.user_name as jobNumber,
+        REPLACE(REPLACE(t1.gender,1,'男'),2,'女') AS gender,
+        t1.mobile as mobile,
+        t5.name as deptName,
+        t4.name as postName
+        FROM attendance_personnel t
+        LEFT JOIN xjr_user t1 ON (t1.id = t.user_id)
+        LEFT JOIN xjr_user_post_relation t2 ON (t2.user_id = t.user_id)
+        LEFT JOIN xjr_user_dept_relation t3 ON (t3.user_id = t.user_id)
+        LEFT JOIN xjr_post t4 ON (t4.id = t2.post_id)
+        LEFT JOIN xjr_department t5 ON (t5.id = t3.dept_id)
+        WHERE t1.delete_mark = 0
+        <if test="dto.keyword != null and dto.keyword != ''">
+            and (
+            t1.name LIKE CONCAT('%',#{dto.keyword},'%')
+            OR t1.gender LIKE CONCAT('%',REPLACE(REPLACE(#{dto.keyword},'男',1),'女',2),'%')
+            OR t1.mobile LIKE CONCAT('%',#{dto.keyword},'%')
+            OR t1.user_name LIKE CONCAT('%',#{dto.keyword},'%')
+            OR t4.name LIKE CONCAT('%',#{dto.keyword},'%')
+            OR t5.name LIKE CONCAT('%',#{dto.keyword},'%')
+            )
+        </if>
+        order by t.id
+    </select>
+
+    <select id="selectPersonPage" parameterType="com.xjrsoft.module.teacher.dto.SelectPersonPageDto"
+            resultType="com.xjrsoft.module.teacher.vo.SelectPersonPageVo">
         select
             t.id as userId,
             t.name as userName,
@@ -13,22 +45,31 @@
             t3.name as deptName,
             t4.name as postName
         from xjr_user t
-                 left join xjr_user_role_relation t5 on t5.user_id = t.id
-                 left join xjr_user_post_relation t1 on t1.user_id = t.id
-                 left join xjr_user_dept_relation t2 on t2.user_id = t.id
-                 left join xjr_department t3 on t3.id = t2.dept_id
-                 left join xjr_post t4 on t4.id = t1.post_id
-                 left join attendance_personnel t6 on t6.id = t.id
-        where t5.role_id = 2 and t.id not in(select user_id from attendance_personnel) and t.delete_mark = 0 and t.enabled_mark = 1
-        <if test="dto.keyword != null and dto.keyword != ''">
-            and (
-            t.name LIKE CONCAT('%',#{dto.keyword},'%')
-            OR t.gender LIKE CONCAT('%',REPLACE(REPLACE(#{dto.keyword},'男',1),'女',2),'%')
-            OR t.mobile LIKE CONCAT('%',#{dto.keyword},'%')
-            OR t3.name LIKE CONCAT('%',#{dto.keyword},'%')
-            OR t4.name LIKE CONCAT('%',#{dto.keyword},'%')
-            )
-        </if>
+            left join xjr_user_role_relation t5 on t5.user_id = t.id
+            left join xjr_user_post_relation t1 on t1.user_id = t.id
+            left join xjr_user_dept_relation t2 on t2.user_id = t.id
+            left join xjr_department t3 on t3.id = t2.dept_id
+            left join xjr_post t4 on t4.id = t1.post_id
+            left join attendance_personnel t6 on t6.id = t.id
+        where t5.role_id = 2
+            and t.id not in(select user_id from attendance_personnel)
+            and t.delete_mark = 0
+            and t.enabled_mark = 1
+            and t3.delete_mark = 0
+            and t3.enabled_mark = 1
+            and t4.delete_mark = 0
+            and t4.enabled_mark = 1
+            and t.user_name not like 'D%' and t.user_name not like 'E%'
+            <if test="dto.keyword != null and dto.keyword != ''">
+                and (
+                t.name LIKE CONCAT('%',#{dto.keyword},'%')
+                OR t.gender LIKE CONCAT('%',REPLACE(REPLACE(#{dto.keyword},'男',1),'女',2),'%')
+                OR t.mobile LIKE CONCAT('%',#{dto.keyword},'%')
+                OR t.user_name LIKE CONCAT('%',#{dto.keyword},'%')
+                OR t3.name LIKE CONCAT('%',#{dto.keyword},'%')
+                OR t4.name LIKE CONCAT('%',#{dto.keyword},'%')
+                )
+            </if>
         order by t.id
     </select>
 </mapper>

+ 36 - 0
src/main/resources/mapper/teacher/WfHeadTeacherLeaveMapper.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.teacher.mapper.WfHeadTeacherLeaveMapper">
+    <select id="getListPage" parameterType="com.xjrsoft.module.teacher.dto.WfHeadTeacherLeavePageDto"
+            resultType="com.xjrsoft.module.teacher.vo.WfHeadTeacherLeavePageVo">
+        SELECT
+        t.id,
+        t.start_time,
+        t.end_time,
+        t.applicant_user_id,
+        t.substitute_user_id,
+        t1.name as applicantUserIdCN,
+        t2.name as substituteUserIdCN,
+        t3.name as leaveReason
+        FROM wf_head_teacher_leave t
+        LEFT JOIN xjr_user t1 ON (t1.id = t.applicant_user_id)
+        LEFT JOIN xjr_user t2 ON (t2.id = t.substitute_user_id)
+        LEFT JOIN xjr_dictionary_detail t3 ON (t3.code = t.leave_reason)
+        WHERE t.delete_mark = 0
+        <if test="dto.applicantUserIdCN != null and dto.applicantUserIdCN != ''">
+            and t1.name LIKE CONCAT('%',#{dto.applicantUserIdCN},'%')
+        </if>
+        <if test="dto.startTime != null and dto.startTime != ''">
+            and t.start_time &gt; #{dto.startTime}
+        </if>
+        <if test="dto.endTime != null and dto.endTime != ''">
+            and t.end_time &lt; #{dto.endTime}
+        </if>
+        <if test="dto.substituteUserIdCN != null and dto.substituteUserIdCN != ''">
+            and t1.name LIKE CONCAT('%',#{dto.substituteUserIdCN},'%')
+        </if>
+        order by t.id
+    </select>
+</mapper>