Explorar o código

学员列表新增当月请假次数

zouxuan %!s(int64=4) %!d(string=hai) anos
pai
achega
6042100222

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Update;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
 
@@ -334,4 +335,12 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @return
      */
     int getLeaveNum(@Param("userId") Integer userId, @Param("month") String month, @Param("attendanceId") Long attendanceId);
+
+    /**
+     * 获取学员当月请假次数
+     * @param userIds
+     * @param month
+     * @return
+     */
+    List<Map<Integer, Long>> queryLeaveNum(@Param("userIds") Set<Integer> userIds, @Param("month") String month);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -102,6 +102,17 @@ public class StudentManageListDto {
 
     private String cooperationOrganName;
 
+    @ApiModelProperty(value = "当月请假次数")
+    private Long leaveNum;
+
+    public Long getLeaveNum() {
+        return leaveNum;
+    }
+
+    public void setLeaveNum(Long leaveNum) {
+        this.leaveNum = leaveNum;
+    }
+
     public Integer getCooperationOrganId() {
         return cooperationOrganId;
     }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -111,6 +111,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     private WebFeignService webFeignService;
     @Autowired
     private StudentCourseHomeworkDao studentCourseHomeworkDao;
+    @Autowired
+    private StudentAttendanceDao studentAttendanceDao;
 
     @Override
     public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
@@ -138,6 +140,9 @@ public class StudentManageServiceImpl implements StudentManageService {
         }
 
         Set<Integer> userIds = dataList.stream().map(StudentManageListDto::getUserId).collect(Collectors.toSet());
+        //获取学员当月请假次数
+        String month = DateUtil.format(new Date(), DateUtil.ISO_YEAR_MONTH_FORMAT);
+        Map<Integer, Long> leaveNumMap = MapUtil.convertIntegerMap(studentAttendanceDao.queryLeaveNum(userIds,month));
 
         List<StudentListCourseDto> studentListCourseDtoList = studentManageDao.queryStudentRemianCourse(userIds);
         Map<Integer, StudentListCourseDto> StudentListCourseDtoMap = studentListCourseDtoList.stream().collect(Collectors.toMap(StudentListCourseDto::getUserId, studentListCourseDto -> studentListCourseDto));
@@ -185,6 +190,8 @@ public class StudentManageServiceImpl implements StudentManageService {
 //            }
             //年级
             dto.setCurrentGrade(studentService.getStudentGrade(dto.getGradeType(),dto.getCurrentGradeNum()));
+            //请假次数
+            dto.setLeaveNum(leaveNumMap.get(dto.getUserId()));
         }
 
         if (queryInfo.getIsExport()) {

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -655,4 +655,14 @@
             AND sa.id_ != #{attendanceId}
         </if>
     </select>
+    <select id="queryLeaveNum" resultType="java.util.Map">
+        SELECT sa.user_id_ 'key',COUNT(sa.id_) 'value' FROM student_attendance sa
+        LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
+        WHERE sa.status_ = 'LEAVE' AND DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month}
+        AND sa.user_id_ IN
+        <foreach collection="userIds" item="userId" separator="," open="(" close=")">
+            #{userId}
+        </foreach>
+        GROUP BY sa.user_id_
+    </select>
 </mapper>

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -719,10 +719,10 @@ public class ExportController extends BaseController {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
                     "家长联系电话", "是否激活", "是否有课", "是否有网管课","网管课剩余课时","VIP课剩余课时", "课程余额(元)", "账户余额(元)",
-                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师", "是否签订协议"}, new String[]{
+                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态","当月请假次数", "服务标签", "运营标签", "指导老师", "是否签订协议"}, new String[]{
                     "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
                     "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg","noStartPracticeCourseNum","noStartVipCourseNum", "courseBalance", "balance", "musicGroupName",
-                    "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract ? '是' : '否'"}, rows);
+                    "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus","leaveNum", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract ? '是' : '否'"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();

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

@@ -74,17 +74,17 @@ public class StudentManageController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-            Employee employee = employeeDao.get(sysUser.getId());
-            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
-                queryInfo.setOrganId(employee.getOrganIdList());
-            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
-                return failed("用户所在分部异常");
-            }else {
-                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
-                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
-                    return failed("非法请求");
-                }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
             }
+        }
         queryInfo.setIsExport(false);
         return succeed(studentManageService.findStudentsByOrganId(queryInfo));
     }