Joburgess hace 5 años
padre
commit
3aa96dc5e2

+ 1 - 1
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -39,7 +39,7 @@
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="SysNewsInformation" >
-		SELECT * FROM sys_news_information WHERE id_ = #{id} WHERE del_flag_=0
+		SELECT * FROM sys_news_information WHERE id_ = #{id} AND del_flag_=0
 	</select>
 	
 	<!-- 全查询 -->

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -91,4 +91,12 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
                                              @Param("date") Date date,
                                              @Param("signInStatus") Integer signInStatus);
 
+    /**
+     * @describe
+     * @author Joburgess
+     * @date 2019/11/11
+     * @param courseScheduleIds: 课程编号列表
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<TeacherAttendance> findTeacherIdByCourseSchedule(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 }

+ 16 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -123,10 +123,24 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void batchInsert(List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries) {
-        courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
+//        courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
+        List<Long> courseScheduleIds = courseScheduleTeacherSalaries.stream()
+                .map(CourseScheduleTeacherSalary::getCourseScheduleId)
+                .collect(Collectors.toList());
+        List<TeacherAttendance> teacherIdByCourseSchedule = teacherAttendanceDao.findTeacherIdByCourseSchedule(courseScheduleIds);
+        Map<Long, List<TeacherAttendance>> courseScheduleTeacherAttendanceMap = teacherIdByCourseSchedule.stream()
+                .collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
         List<TeacherAttendance> teacherAttendances=new ArrayList<>();
         courseScheduleTeacherSalaries.forEach(courseScheduleTeacherSalary -> {
-            teacherAttendances.add(new TeacherAttendance(courseScheduleTeacherSalary.getUserId(),courseScheduleTeacherSalary.getCourseScheduleId()));
+            List<TeacherAttendance> teacherAttendancesTemp=courseScheduleTeacherAttendanceMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
+
+            List<Integer> collect = new ArrayList<>();
+            if(!CollectionUtils.isEmpty(teacherAttendancesTemp)){
+                teacherAttendancesTemp.stream().map(TeacherAttendance::getTeacherId).collect(Collectors.toList());
+            }
+            if(CollectionUtils.isEmpty(collect)||!collect.contains(courseScheduleTeacherSalary.getUserId())){
+                teacherAttendances.add(new TeacherAttendance(courseScheduleTeacherSalary.getUserId(),courseScheduleTeacherSalary.getCourseScheduleId()));
+            }
         });
         teacherAttendanceDao.batchInsert(teacherAttendances);
     }

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -255,4 +255,13 @@
     <select id="queryNoSignOutListByOverMinutes" resultMap="Mapper">
         SELECT ta.teacher_id_ key_,u.real_name_ value_ FROM course_schedule cs right join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ left join sys_user u on ta.teacher_id_ = u.id_ WHERE ta.sign_out_status_ = 0 and date(cs.class_date_) = date(now()) and SUBTIME(cs.end_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
     </select>
+    <select id="findTeacherIdByCourseSchedule" resultMap="TeacherAttendance">
+        SELECT
+          *
+        FROM teacher_attendance
+        WHERE course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </select>
 </mapper>