123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693 |
- package com.ym.mec.biz.service;
- import com.ym.mec.biz.dal.dao.CourseScheduleDao;
- import com.ym.mec.biz.dal.dto.*;
- import com.ym.mec.biz.dal.entity.*;
- import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
- import com.ym.mec.biz.dal.enums.AuditStatusEnum;
- import com.ym.mec.biz.dal.enums.GroupType;
- import com.ym.mec.biz.dal.enums.TeachModeEnum;
- import com.ym.mec.biz.dal.enums.YesOrNoEnum;
- import com.ym.mec.biz.dal.page.*;
- import com.ym.mec.common.entity.HttpResponseResult;
- import com.ym.mec.common.page.PageInfo;
- import com.ym.mec.common.page.QueryInfo;
- import com.ym.mec.common.service.BaseService;
- import org.springframework.web.bind.annotation.RequestBody;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- public interface CourseScheduleService extends BaseService<Long, CourseSchedule> {
- CourseScheduleDao getDao();
-
- /**
- * 查询课程信息
- * @param courseScheduleId
- * @return
- */
- CourseSchedule queryById(Long courseScheduleId);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/10
- * 根据课程ID获取当前课程的信息
- */
- TeacherAttendanceDto getCurrentCourseDetail(Long courseID);
- /**
- * @describe 根据课程编号删除课程计划及对应的学生缴费、教师课酬记录、教师签到记录
- * @author Joburgess
- * @date 2019/10/31
- * @param courseScheduleIds: 课程计划编号列表
- * @return int
- */
- void batchDeleteCourseSchedules(List<Long> courseScheduleIds);
- void batchDeleteCourseSchedulesWithoutCheck(List<CourseSchedule> courseScheduleList);
- /**
- * @describe 删除乐团下所有未上的课时
- * @author Joburgess
- * @date 2019/11/16
- * @param musicGroupId:
- * @return void
- */
- void batchDeleteMusicGroupNotStartCourse(String musicGroupId,GroupType groupType);
- void batchDeleteMusicGroup(String musicGroupId,GroupType groupType);
- /**
- * @describe 删除指定乐团下指定状态的课程
- * @author Joburgess
- * @date 2019/11/26
- * @param musicGroupId: 乐团编号
- * @param userId: 用户编号
- * @param groupType: 乐团类型
- * @return void
- */
- void batchDeleteMusicGroupCourseWithStudent(String musicGroupId, Integer userId, GroupType groupType);
- /**
- * @describe 判断该课程是否只能进行正常签到
- * @author Joburgess
- * @date 2019/11/5
- * @param startClassTime: 课程开始时间
- * @param userId: 教师编号
- * @param checkSchool: 是否判断教学点
- * @param schoolId: 学校编号
- * @return com.ym.mec.biz.dal.enums.YesOrNoEnum
- */
- YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId);
- /**
- * @describe 检测是否可以忽略正常签到时间限制
- * @author Joburgess
- * @date 2020.10.21
- * @param startClassTime: 当前课程开始时间
- * @param teacherId: 当前课程上课教师编号
- * @param schoolId:当前课程教学点编号
- * @return boolean
- */
- boolean enableIgnoreAttendanceTime(Date startClassTime, Integer teacherId, Integer schoolId);
-
- /**
- * 给班级加课
- * @param classGroupId 班级编号
- * @param coursesTimes 增加的课次
- * @param startDate 排课开始时间
- * @param startDate 排课结束时间
- * @param teachingArrangementList 教学安排(周几,几点-几点)
- * @param teachMode 教学模式
- * @param type 课程类型
- * @param schoolId 教学点
- * @param isJumpHoliday 是否跳过节假日
- * @return
- */
- boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, Date groupEndDate, Date groupStartDate, List<CourseTimeDto> teachingArrangementList,
- TeachModeEnum teachMode, CourseScheduleType type, Integer schoolId, boolean isJumpHoliday, List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaries);
-
- /**
- * 批量调整
- * @param batchInsertCoursesDto
- * @return
- */
- boolean batchUpdateCourseSchedule(BatchInsertCoursesDto batchInsertCoursesDto);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 批量插入课程计划
- */
- void batchAddCourseSchedule1(List<CourseSchedule> courseSchedules);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 批量插入课程计划
- */
- void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
- /**
- * @describe 创建乐团课课程计划
- * @author Joburgess
- * @date 2019/10/24
- * @param courseSchedules: 课程计划列表
- * @return void
- */
- void createCourseSchedules(CreateCourseScheduleDto createCourseScheduleDto);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 批量更新课程计划
- */
- void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules, String musicGroupID);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 根据日期获取当日排课信息
- */
- Map getStudentCourseSchedulesWithDate(Date classDate);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 根据日期获取当日排课信息
- */
- List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId, Date classDate, String type,Integer tenantId);
- /**
- * @describe 根据日期获取
- * @author Joburgess
- * @date 2019/12/26
- * @param userId:
- * @param classDate:
- * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
- */
- List<CourseScheduleDto> getTeacherHistoryCourseSchedulesWithDate(Integer userId, Date classDate);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 根据日期获取当日排课信息
- */
- PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 根据月份获取乐团在该月有课的日期
- */
- List<Date> getCourseScheduleDateByMonth(Long musicGroupID, Date month);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 根据学生获取乐团在该月有课的日期
- */
- List<Date> getCourseScheduleDateByStudent(Date month, Integer isAttend);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/17
- * 获取教师在该月有课的日期
- */
- List<Date> getCourseScheduleDateByTeacher(Date month, String type);
- /**
- * @describe
- * @author Joburgess
- * @date 2019/12/26
- * @param month:
- * @return java.util.List<java.util.Date>
- */
- List<Date> getHistoryCourseScheduleDateByTeacher(Integer userId,Date month);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/11
- * @params [month]
- * @return java.util.List<java.util.Date>
- * @describe 获取
- */
- List<Date> getCourseScheduleDates(Date month, String organIdList, String type, Integer transactionTeacherId);
- /**
- * @describe 课程调整
- * @author Joburgess
- * @date 2019/11/7
- * @param newCourseSchedules: 课程计划列表
- * @return void
- */
- HttpResponseResult courseAdjust(List<CourseSchedule> newCourseSchedules, Boolean allowZeroSalary);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/23
- * 课时调整
- */
- @Deprecated
- void classStartDateAdjust(List<CourseSchedule> newCourseSchedules);
- /**
- * @describe 小课课程批量调整
- * @author Joburgess
- * @date 2019/12/11
- * @param vipGroupCourseAdjustInfo: 调整信息
- * @return void
- */
- void vipCourseAdjust(VipGroupCourseAdjustInfoDto vipGroupCourseAdjustInfo);
- /**
- * @describe 课程批量调整
- * @author Joburgess
- * @date 2021/4/9 0009
- * @param batchCourseAdjustInfo:
- * @return void
- */
- HttpResponseResult batchCourseAdjust(BatchCourseAdjustDto batchCourseAdjustInfo);
- /**
- * @describe 课程顺延
- * @author Joburgess
- * @date 2020/1/2
- * @param coursePostPoneInfo:
- * @return void
- */
- void coursePostpone(CoursePostponeDto coursePostPoneInfo);
- /**
- * @describe vip课批量新增-后端处理
- * @author Joburgess
- * @date 2019/12/12
- * @param vipGroupCourseAdjustInfoDto: 加课信息
- * @return void
- */
- void batchAppendVipGroupCourses(VipGroupCourseAdjustInfoDto vipGroupCourseAdjustInfoDto);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/24
- * 课程交换
- */
- void courseSwap(Long courseScheduleId1, Long courseScheduleId2);
- /**
- * @describe 课程时间调整
- * @author Joburgess
- * @date 2020.09.09
- * @param courseSchedules:
- * @return
- */
- void courseAdjustOnlyWithClassDate(@RequestBody List<CourseSchedule> courseSchedules, Integer operatorId);
- /**
- * @describe 课程时间调整
- * @author Joburgess
- * @date 2020.09.0
- * @return void
- */
- Map<String, List<CourseSchedule>> courseAdjustOnlyWithClassDateCheck(VipGroupCourseAdjustInfoDto courseAdjustInfo);
- /**
- * @describe 单节课程冲突检测及时间校正
- * @author Joburgess
- * @date 2020.09.09
- * @param courseSchedule:
- * @return void
- */
- boolean checkSingleCourseConflict(CourseSchedule courseSchedule, List<CourseSchedule> adjustCourses, Map<String, List<CourseSchedule>> result);
- void checkCourseIsSettlement(CourseSchedule courseSchedule);
- /**
- * @describe 课程时间校正,将冲突课程的时间校正到当天空闲时间段
- * @author Joburgess
- * @date 2020.09.09
- * @param courseSchedule:
- * @param sameDayCourses:
- * @return void
- */
- boolean courseTimeRevise(CourseSchedule courseSchedule, List<CourseSchedule> sameDayCourses);
- /**
- * @describe 检测数据库不存在的课程是否存在错误
- * @author Joburgess
- * @date 2019/10/31
- * @param courseSchedules: 课程列表
- * @param postponeFlag: 如果冲突是否顺延
- * @return void
- */
- Boolean checkNewCourseSchedules(List<CourseSchedule> courseSchedules,boolean checkExistCourseSchedule,Boolean postponeFlag);
- /**
- * @describe
- * @author Joburgess
- * @date 2019/12/23
- * @param courseSchedules: 生成课程名称
- * @return void
- */
- void createCourseScheduleName(List<CourseSchedule> courseSchedules);
- /**
- * 获取乐团班级未开始的课程
- *
- * @param classGroupIds
- * @param groupType
- * @return
- */
- List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<Integer> classGroupIds, GroupType groupType);
- /**
- * @Author: Joburgess
- * @Date: 2019/9/30
- * 获取学生上课记录
- */
- Object findStudentCourseScheduleRecords(StudentCourseScheduleRecordQueryInfo queryInfo);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/3
- * @params [courseScheduleComplaints]
- * @return void
- * @describe 课程投诉
- */
- void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints);
- /**
- * @Author: Joburgess
- * @Date: 2019/10/3
- * @params [id] 申诉编号
- * @params [teacherLiabilityRatio] 老师责任比
- * @params [studentLiabilityRatio] 学生责任比
- * @params [status] 审批状态
- * @return void
- * @describe 课程投诉审核
- */
- void courseScheduleCommplaintAudit(Long id, Double teacherLiabilityRatio, Double studentLiabilityRatio, AuditStatusEnum status);
- /**
- * 更新课程至结束状态
- * @return
- */
- List<Long> updateCourseScheduleToOverStatus();
- /**
- * 更新课程至进行中状态
- * @return
- */
- List<Long> updateCourseScheduleToUnderway();
- /**
- * @describe 获取老师指定班级的排课
- * @author Joburgess
- * @date 2019/10/18
- * @param queryInfo: 参数
- * @return com.ym.mec.common.page.PageInfo
- */
- PageInfo queryTeacherClassCourseSchedule(CourseScheduleQueryInfo queryInfo);
- PageInfo queryTeacherVipClassCourseSchedule(CourseScheduleQueryInfo queryInfo);
- /**
- * @describe 获取点名详情界面头部信息
- * @author Joburgess
- * @date 2019/10/24
- * @param courseScheduleId: 课程编号
- * @return com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto
- */
- CourseAttendanceDetailHeadInfoDto findCourseAttendanceDetailHeadInfo(Long courseScheduleId);
- /**
- * @describe 检测指定乐团下所有班级是否已排课
- * @author Joburgess
- * @date 2019/10/18
- * @param musicGroupId: 乐团编号
- * @return void
- */
- void checkMusicGroupClassCourse(String musicGroupId);
- /**
- * @describe 根据课程计划编号获取当前课次
- * @author Joburgess
- * @date 2019/10/20
- * @param courseSchedules:
- * @return java.util.Map<java.lang.Integer,java.lang.Integer>
- */
- Map<Integer, Integer> findCourseScheduleCurrentTimes(List<Integer> courseSchedules);
- /**
- * 查询班级未开始的课程
- *
- * @param classGroupId
- * @return
- */
- List<CourseSchedule> findNoStartCoursesByClassGroupId(Integer classGroupId);
- /**
- * 学生上课提醒
- */
- void studentSignInRemind();
- /**
- * 老师课程提醒
- */
- void teacherCoursesScheduleRemind();
- /**
- * @describe 获取班级的课程计划
- * @author Joburgess
- * @date 2019/11/5
- * @param classGroupId: 班级编号
- * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
- */
- List<CourseSchedule> findCourseScheduleByClassGroup(Integer classGroupId);
- /**
- * @describe
- * @author Joburgess
- * @date 2019/11/14
- * @param queryInfo:
- * @return com.ym.mec.common.page.PageInfo
- */
- Object findVipGroupCourseSchedules(VipGroupQueryInfo queryInfo);
- /**
- * @describe 根据参数生成课程计划日期
- * @author Joburgess
- * @date 2019/12/23
- * @param courseGenerateDto: 排课信息
- * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
- */
- List<CourseSchedule> createCourses(CourseGenerateDto courseGenerateDto, boolean excludePastCourse);
- /**
- * @describe 终极课表获取接口
- * @author Joburgess
- * @date 2019/12/27
- * @param queryInfo: 查询条件
- * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleEndDto>
- */
- PageInfo<CourseScheduleEndDto> endFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo);
- /**
- * @describe 陪练课程调整
- * @author Joburgess
- * @date 2020/2/9
- * @param courseSchedule:
- * @return void
- */
- void practiceCourseAdjust(CourseSchedule courseSchedule);
- /**
- * 陪练课老师调整
- * @param courseScheduleId
- * @param teacherId
- */
- void practiceCourseTeacherAdjust(Long courseScheduleId,Integer teacherId);
- /**
- * 陪练课课程组老师调整
- * @param practiceGroupId
- * @param teacherId
- */
- void practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId);
- /**
- * 清空老师和学生考勤
- * @param courseScheduleIds
- */
- void cleanAttendance(String courseScheduleIds);
- /**
- * 教师端中间页课程评价数据获取
- * @param courseScheduleId
- * @return
- */
- Object teacherCourseRemarkInfo(Long courseScheduleId);
- /**
- * 教师端中间页课程评价数据提交
- * @param teacherRemarkCommitDto
- * @return
- */
- void teacherCourseRemarkCommit(TeacherRemarkCommitDto teacherRemarkCommitDto);
- /**
- * 教师端中间页网络教室头部详情
- * @param courseScheduleId
- * @return
- */
- Object teacherCourseHeadInfo(Long courseScheduleId);
- /**
- * 教师端中间页网络教室课程进度列表
- * @param courseScheduleId
- * @return
- */
- Object teacherCourseRates(Long courseScheduleId);
- /**
- * 根据课程组获取课程组老师信息
- * @param groupType
- * @param groupId
- * @return
- */
- Map<String,Object> getTeacherCourseHeadInfo(GroupType groupType,String groupId,Long courseScheduleId);
- /**
- * 根据课程组获取课表信息
- * @param groupType
- * @param groupId
- * @return
- */
- Object queryCourseInfoByGroupId(GroupType groupType, String groupId);
- /**
- * 教师课时使用记录列表
- * @return
- */
- Object teacherCourseMinutes(QueryInfo queryInfo);
- /**
- * 修改课程组有效期
- * @param practiceGroupId
- * @param coursesExpireDate
- */
- void updatePracticeGroupInDate(String practiceGroupId, Date courseStartDate, Date coursesExpireDate, Boolean onlyNormal);
- /**
- * 获取当前班级列表的所有未开始的课程
- * @param classGroupIds
- * @param teacherId
- * @param teacherRole
- * @return
- */
- List<CourseSchedule> queryNoStartCourseByTeacherId(String classGroupIds, Integer teacherId, String teacherRole);
- /**
- * 根据班级列表调整课程
- * @param classGroupIds
- * @param teacherId
- * @param targetTeacherId
- */
- HttpResponseResult classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId, Boolean allowZeroSalary);
- /**
- * 网管课批量调整
- * @param practiceGroupId
- * @param teacherId
- * @param subjectId
- * @param educationalTeacherId
- */
- void batchPracticeGroupTeacherAdjust(String practiceGroupId, Integer teacherId, Integer subjectId, Integer educationalTeacherId,Integer oldTeacherId);
- /**
- * 获取课程调整时间轴
- * @author zouxuan
- * @param courseScheduleId
- * @return
- */
- List<CourseScheduleModifyLog> queryCourseAdjustDetail(Long courseScheduleId);
- /**
- * @describe 重叠课程查找
- * @author qnc99
- * @date 2020/11/25 0025
- * @return void
- */
- void courseRepeatCheck();
- /**
- * @describe 课程合并
- * @author qnc99
- * @date 2020/11/27 0027
- * @param courseMergeInfo:
- * @return void
- */
- HttpResponseResult courseMerge(CourseMergeDto courseMergeInfo);
- /**
- * @describe 合并课程还原
- * @author Joburgess
- * @date 2021/1/21 0021
- * @param mainCourseId:
- * @param operatorId:
- * @return void
- */
- void mergeCourseSplit(Long mainCourseId, Integer operatorId);
- int endCountCourseSchedules(Map<String, Object> params);
- /**
- * @description: 校验分部线上课排课人数上线
- * @param studentNum
- * @return void
- * @author zx
- * @date 2022/1/5 15:52
- */
- void checkOnlineCategory(Integer studentNum);
- /**
- * @description: 校验分部线上课排课人数上线
- * @param courseSchedules
- * @return void
- * @author zx
- * @date 2022/1/5 15:52
- */
- void checkOnlineCategory(List<CourseSchedule> courseSchedules);
- /**
- * @description: 校验分部线上课排课人数上线
- * @param courseSchedules
- * @return void
- * @author zx
- * @date 2022/1/5 15:52
- */
- void checkOnlineCategory(List<CourseSchedule> courseSchedules,TeachModeEnum teachMode);
-
- Object queryMusicCoursePlan(Integer userId, Date startDate, Date endDate);
- /**
- * @description: 课程评价列表
- * @param queryInfo
- * @return void
- * @author zx
- * @date 2022/3/1 10:10
- */
- PageInfo<EvaluateCourseDto> courseEvaluateList(EvaluateCourseQueryInfo queryInfo);
- /**
- * @description: 学员学习标准列表
- * @param queryInfo
- * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentStandardDto>
- * @author zx
- * @date 2022/3/1 13:57
- */
- PageInfo<StudentStandardDto> studyStandardList(EvaluateCourseQueryInfo queryInfo);
- /**
- * @description: 学习标准待回访列表
- * @param queryInfo
- * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentStandardDto>
- * @author zx
- * @date 2022/3/1 18:01
- */
- PageInfo<StudentStandardDto> queryStudyStandardWaitVisit(EvaluateCourseQueryInfo queryInfo);
- /**
- * @description: 排课
- * @param groupDto
- * @return void
- * @author zx
- * @date 2022/9/23 13:57
- */
- HttpResponseResult<List<CourseSchedule>> createCourse(ClassGroupDto groupDto);
- }
|