فهرست منبع

首页学员异常考勤处理

zouxuan 4 سال پیش
والد
کامیت
e290febe9f

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.OrganVipGroupCategoryCourseNumDto;
 import com.ym.mec.biz.dal.dto.StudentErrorLeaveDto;
+import com.ym.mec.biz.dal.dto.StudentLeaveCourseDto;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
 import com.ym.mec.biz.dal.enums.*;
@@ -292,4 +293,8 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     int countStudentErrorLeave1(Map<String, Object> params);
 
     List<StudentErrorLeaveDto> queryStudentErrorLeave(Map<String, Object> params);
+
+    int countStudentLeaveCourseList(Map<String, Object> params);
+
+    List<StudentLeaveCourseDto> queryStudentLeaveCourseList(Map<String, Object> params);
 }

+ 163 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentLeaveCourseDto.java

@@ -0,0 +1,163 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.GroupType;
+
+public class StudentLeaveCourseDto {
+
+    private Long courseScheduleId;
+
+    private String courseName;
+
+    private GroupType groupType;
+
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+
+    private Integer actualTeacherId;
+
+    private String teacherName;
+
+    private String classDate;
+
+    private String startClassTime;
+
+    private String endClassTime;
+
+    private Integer leaveVisitFlag;
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public CourseSchedule.CourseScheduleType getCourseScheduleType() {
+        return courseScheduleType;
+    }
+
+    public void setCourseScheduleType(CourseSchedule.CourseScheduleType courseScheduleType) {
+        this.courseScheduleType = courseScheduleType;
+    }
+
+    public Integer getActualTeacherId() {
+        return actualTeacherId;
+    }
+
+    public void setActualTeacherId(Integer actualTeacherId) {
+        this.actualTeacherId = actualTeacherId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public String getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(String endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+
+    public Integer getLeaveVisitFlag() {
+        return leaveVisitFlag;
+    }
+
+    public void setLeaveVisitFlag(Integer leaveVisitFlag) {
+        this.leaveVisitFlag = leaveVisitFlag;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getTotalNum() {
+        return totalNum;
+    }
+
+    public void setTotalNum(Integer totalNum) {
+        this.totalNum = totalNum;
+    }
+
+    public Integer getCurrentNum() {
+        return currentNum;
+    }
+
+    public void setCurrentNum(Integer currentNum) {
+        this.currentNum = currentNum;
+    }
+}

+ 48 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentErrorLeaveQueryInfo.java

@@ -0,0 +1,48 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class StudentErrorLeaveQueryInfo extends QueryInfo {
+    private Integer userId;
+
+    private String organId;
+
+    @ApiModelProperty(value = "是否回访")
+    private Integer leaveVisitFlag;
+
+    @ApiModelProperty(value = "学员编号")
+    private String courseType;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
+    public Integer getLeaveVisitFlag() {
+        return leaveVisitFlag;
+    }
+
+    public void setLeaveVisitFlag(Integer leaveVisitFlag) {
+        this.leaveVisitFlag = leaveVisitFlag;
+    }
+
+    public String getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(String courseType) {
+        this.courseType = courseType;
+    }
+}

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -207,5 +207,7 @@ public interface StudentManageService {
      */
     List<StudentSubTotalCourseTimesDto> queryStudentSubTotalCourseTimes(String musicGroupId);
 
-    Object queryStudentErrorLeaveList(StudentManageQueryInfo queryInfo);
+    PageInfo<StudentErrorLeaveDto> queryStudentErrorLeaveList(StudentErrorLeaveQueryInfo queryInfo);
+
+    PageInfo<StudentLeaveCourseDto> queryStudentLeaveCourseList(StudentErrorLeaveQueryInfo queryInfo);
 }

+ 17 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -853,7 +853,7 @@ public class StudentManageServiceImpl implements StudentManageService {
     }
 
     @Override
-    public Object queryStudentErrorLeaveList(StudentManageQueryInfo queryInfo) {
+    public PageInfo<StudentErrorLeaveDto> queryStudentErrorLeaveList(StudentErrorLeaveQueryInfo queryInfo) {
         //学员请假异常提醒(获取前两个月的)
         Date date = new Date();
         PageInfo<StudentErrorLeaveDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
@@ -881,4 +881,20 @@ public class StudentManageServiceImpl implements StudentManageService {
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<StudentLeaveCourseDto> queryStudentLeaveCourseList(StudentErrorLeaveQueryInfo queryInfo) {
+        PageInfo<StudentLeaveCourseDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        params.put("offset", pageInfo.getOffset());
+        int count = indexBaseMonthDataDao.countStudentLeaveCourseList(params);
+        List<StudentLeaveCourseDto> dataList = new ArrayList<>();
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            dataList = indexBaseMonthDataDao.queryStudentLeaveCourseList(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 44 - 0
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -1461,4 +1461,48 @@
 		WHERE DATE_FORMAT(c.class_date_ ,'%Y-%m') = #{currentMonth}
 		<include refid="global.limit"/>
 	</select>
+	<select id="countStudentLeaveCourseList" resultType="java.lang.Integer">
+		SELECT COUNT(sa.id_)
+		FROM student_attendance sa
+		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
+		LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
+		<include refid="queryStudentLeaveCourseListSql"/>
+	</select>
+	<sql id="queryStudentLeaveCourseListSql">
+		<where>
+			sa.user_id_ = #{userId} AND sa.status_ = 'LEAVE'
+			<if test="search != null and search != ''">
+				AND (cs.id_ = #{search} OR cs.actual_teacher_id_ = #{search} OR su.real_name_ LIKE CONCAT('%',#{search},'%'))
+			</if>
+			<if test="leaveVisitFlag != null">
+				AND sa.leave_visit_flag_ = #{leaveVisitFlag}
+			</if>
+			<if test="courseType != null">
+				AND cs.type_ = #{courseType}
+			</if>
+		</where>
+	</sql>
+	<resultMap id="StudentLeaveCourseDto" type="com.ym.mec.biz.dal.dto.StudentLeaveCourseDto">
+		<result property="leaveVisitFlag" column="leave_visit_flag_"/>
+		<result property="classDate" column="class_date_"/>
+		<result property="startClassTime" column="start_class_time_"/>
+		<result property="endClassTime" column="end_class_time_"/>
+		<result property="teacherName" column="teacher_name_"/>
+		<result property="actualTeacherId" column="actual_teacher_id_"/>
+		<result property="courseScheduleId" column="course_schedule_id_"/>
+		<result property="groupType" column="group_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result property="courseScheduleType" column="type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result property="courseName" column="name_"/>
+	</resultMap>
+	<select id="queryStudentLeaveCourseList" resultType="com.ym.mec.biz.dal.dto.StudentLeaveCourseDto">
+		SELECT sa.leave_visit_flag_,cs.class_date_,cs.start_class_time_,
+		       cs.end_class_time_,su.real_name_ teacher_name_,cs.actual_teacher_id_,
+		       sa.course_schedule_id_,cs.group_type_,cs.type_,cs.name_
+		FROM student_attendance sa
+		 LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
+		 LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
+		<include refid="queryStudentLeaveCourseListSql"/>
+		ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+		<include refid="global.limit"/>
+	</select>
 </mapper>

+ 9 - 9
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.page.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -27,14 +28,6 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.dal.page.StudentManageVipClassQueryInfo;
-import com.ym.mec.biz.dal.page.StudentOperatingQueryInfo;
-import com.ym.mec.biz.dal.page.StudentSignQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
 import com.ym.mec.biz.service.StudentCourseHomeworkService;
 import com.ym.mec.biz.service.StudentManageService;
@@ -70,7 +63,7 @@ public class StudentManageController extends BaseController {
     @ApiOperation(value = "获取学生请假异常列表")
     @GetMapping("/queryStudentErrorLeaveList")
     @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentErrorLeaveList')")
-    public Object queryStudentErrorLeaveList(StudentManageQueryInfo queryInfo){
+    public Object queryStudentErrorLeaveList(StudentErrorLeaveQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
@@ -89,6 +82,13 @@ public class StudentManageController extends BaseController {
         return succeed(studentManageService.queryStudentErrorLeaveList(queryInfo));
     }
 
+    @ApiOperation(value = "获取学生请假课程列表")
+    @GetMapping("/queryStudentLeaveCourseList")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentLeaveCourseList')")
+    public Object queryStudentLeaveCourseList(StudentErrorLeaveQueryInfo queryInfo){
+        return succeed(studentManageService.queryStudentLeaveCourseList(queryInfo));
+    }
+
     @ApiOperation(value = "获取学生列表")
     @GetMapping("/queryStudentList")
     @PreAuthorize("@pcs.hasPermissions('studentManage/queryStudentList')")