Browse Source

1、课酬确认相关

Joburgess 5 năm trước cách đây
mục cha
commit
7b88ce7783

+ 19 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -1,20 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Delete;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
 import com.ym.mec.biz.dal.dto.StudentAttendanceResponse;
 import com.ym.mec.biz.dal.dto.StudentAttendanceStatusCountDto;
 import com.ym.mec.biz.dal.dto.StudentPersonalAttendanceDto;
 import com.ym.mec.biz.dal.dto.StudentStatusCountUtilEntity;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
 
@@ -150,6 +150,17 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
     List<Map<Integer,Integer>> countStudentAttendancesByCourses(@Param("courseScheduleIds") List courseScheduleIds);
 
     /**
+     * @describe 统计课程里对应状态的学生数量
+     * @author Joburgess
+     * @date 2020/4/18
+     * @param courseScheduleIds:
+     * @param status:
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<Map<Integer, Integer>> countStudentAttendancesByCoursesAndStatus(@Param("courseScheduleIds") List courseScheduleIds,
+                                                                          @Param("status") StudentAttendanceStatusEnum status);
+
+    /**
      * @describe 根据课程获取最后的点名时间
      * @author Joburgess
      * @date 2019/10/24

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -651,12 +651,22 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
-		List dataList = null;
+		List<VipGroupCourseSchduleRecordDto> dataList = null;
 		int count = vipGroupDao.countTeachingRecord(params);
 		if (count > 0) {
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = vipGroupDao.findTeachingRecord(params);
+			List<Long> courseScheduleIds = dataList.stream().map(VipGroupCourseSchduleRecordDto::getId).collect(Collectors.toList());
+			List<Map<Integer, Integer>> maps = studentAttendanceDao.countStudentAttendancesByCoursesAndStatus(courseScheduleIds, StudentAttendanceStatusEnum.NORMAL);
+			if(!CollectionUtils.isEmpty(maps)){
+				Map<Long, Long> courseStudentNumMap= MapUtil.convertIntegerMap(maps);
+				for (VipGroupCourseSchduleRecordDto vipGroupCourseSchduleRecordDto : dataList) {
+					if(Objects.nonNull(courseStudentNumMap.get(vipGroupCourseSchduleRecordDto.getId()))){
+						vipGroupCourseSchduleRecordDto.setAttendanceNum(courseStudentNumMap.get(vipGroupCourseSchduleRecordDto.getId()).intValue());
+					}
+				}
+			}
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

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

@@ -433,6 +433,21 @@
         GROUP BY
             course_schedule_id_
     </select>
+    <select id="countStudentAttendancesByCoursesAndStatus" resultType="java.util.Map">
+        SELECT
+        course_schedule_id_ AS 'key',
+        COUNT( id_ ) AS 'value'
+        FROM
+        student_attendance
+        WHERE
+        status_=#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+        GROUP BY
+        course_schedule_id_
+    </select>
     <select id="countCourseLeaveStudentNumWithFourHoursAgo" resultType="java.util.Map">
         SELECT
             sa.course_schedule_id_ AS 'key',

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -606,7 +606,7 @@
             CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
             cs.status_,
             cs.teach_mode_,
-            cs.student_num_,s.name_ school_name_,
+            s.name_ school_name_,
             csts.actual_salary_ IS NOT NULL is_salary_,
             cs.schoole_id_,
             IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,