diff --git a/doc/sql/mysql/tianze-pro-update.sql b/doc/sql/mysql/tianze-pro-update.sql index 15659b79..9e1de681 100644 --- a/doc/sql/mysql/tianze-pro-update.sql +++ b/doc/sql/mysql/tianze-pro-update.sql @@ -297,6 +297,4 @@ CREATE TABLE `teacher_open_course_hands_on_simulation_tasks_file` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教师开课-课程实操-实训任务附件表'; - - - +ALTER TABLE teacher_open_course_schedule_session ADD COLUMN teacher_open_course_schedule_session_status_week_detail varchar(100) COMMENT '开课星期 多个逗号隔开 枚举WeekDetailType'; \ No newline at end of file diff --git a/httpTest/http-client.private.env.json b/httpTest/http-client.private.env.json index 64209372..4a51a20e 100644 --- a/httpTest/http-client.private.env.json +++ b/httpTest/http-client.private.env.json @@ -1,6 +1,6 @@ { "dev": { "baseURL": "http://localhost:9090/server/", - "session": "EE2876CDFFABD58025E36D581F5C0264" + "session": "62D623753A1720CFFA22B764459D8F2A" } } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java index c2661ba0..6e59ae96 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSession.java @@ -13,10 +13,13 @@ import org.beetl.sql.fetch.annotation.Fetch; import org.beetl.sql.fetch.annotation.FetchSql; import javax.validation.constraints.NotNull; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; +import static cn.hutool.core.collection.CollUtil.join; + /* * 课程开课-排课管理-课表 * gen by Spring Boot2 Admin 2022-09-11 @@ -56,6 +59,18 @@ public class TeacherOpenCourseScheduleSession extends BaseEntity{ private String schoolClassIds ; + /** + * 开课星期 多个逗号隔开 + * 例:T1,T2,T3 代表星期一,星期二,星期三 + * + * 对应 {@link TeacherOpenCourseScheduleSessionOptions.WeekDetailType} 的name + */ + private String teacherOpenCourseScheduleSessionStatusWeekDetail; + + @UpdateIgnore + @InsertIgnore + private String teacherOpenCourseScheduleSessionStatusWeekDetailText; + @FetchSql("select GROUP_CONCAT(t.class_name) from school_class t where FIND_IN_SET(t.class_id, #schoolClassIds#)") @UpdateIgnore @@ -102,4 +117,17 @@ public class TeacherOpenCourseScheduleSession extends BaseEntity{ .distinct().collect(Collectors.joining(",")); } } + + public void setTeacherOpenCourseScheduleSessionStatusWeekDetail(String teacherOpenCourseScheduleSessionStatusWeekDetail) { + this.teacherOpenCourseScheduleSessionStatusWeekDetail = teacherOpenCourseScheduleSessionStatusWeekDetail; + if (ObjectUtil.isNotEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)) { + List weekDetailList = new ArrayList<>(); + for (String weekName : teacherOpenCourseScheduleSessionStatusWeekDetail.split(",")) { + TeacherOpenCourseScheduleSessionOptions.WeekDetailType value = TeacherOpenCourseScheduleSessionOptions.WeekDetailType.valueOf(weekName); + if (value != null) { weekDetailList.add(value.getWeek()); } + } + this.setTeacherOpenCourseScheduleSessionStatusWeekDetailText(join(weekDetailList, ",")); + + } + } } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionOptions.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionOptions.java index 0544d8b8..fe2e782c 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionOptions.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseScheduleSessionOptions.java @@ -8,7 +8,6 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -import java.util.List; import java.util.Map; import java.util.Set; @@ -80,7 +79,7 @@ public class TeacherOpenCourseScheduleSessionOptions { * 开课星期 */ @NotEmpty(message = "开课星期不能为空", groups =ValidateConfig.ADD.class) - private List weekDetail; + private Set weekDetail; private Long orgId ; diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java index f5e68c15..6737544b 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseScheduleSessionService.java @@ -1,7 +1,6 @@ package com.ibeetl.jlw.service; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; @@ -42,6 +41,7 @@ import javax.validation.constraints.NotNull; import java.util.*; import java.util.stream.Collectors; +import static cn.hutool.core.collection.CollUtil.join; import static cn.hutool.core.date.DatePattern.NORM_DATE_PATTERN; import static java.util.stream.Collectors.toMap; @@ -217,6 +217,9 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService dateTimes = DateUtil.rangeToList(startTime, endTime, DateField.DAY_OF_YEAR); + // 开课星期,排序。数据直观一些 + List sortWeekDetail = options.getWeekDetail().stream().sorted().collect(Collectors.toList()); + // 课表主表保存 TeacherOpenCourseScheduleSession tocss = new TeacherOpenCourseScheduleSession(); tocss.setTeacherOpenCourseScheduleSessionAddTime(DateUtil.beginOfHour(DateUtil.date())); @@ -227,11 +230,13 @@ public class TeacherOpenCourseScheduleSessionService extends CoreBaseService sessionTagList = teacherOpenCourseScheduleSessionTagDao.getByIds(sessionTagIds); // 拷贝属性 diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseScheduleSessionQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseScheduleSessionQuery.java index ddb506e3..3d672d6b 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseScheduleSessionQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/TeacherOpenCourseScheduleSessionQuery.java @@ -4,6 +4,7 @@ import cn.jlw.validate.ValidateConfig; import com.ibeetl.admin.core.annotation.Query; import com.ibeetl.admin.core.web.query.PageParam; import com.ibeetl.jlw.entity.TeacherOpenCourseScheduleSession; +import com.ibeetl.jlw.entity.TeacherOpenCourseScheduleSessionOptions; import javax.validation.constraints.NotNull; import java.util.Date; @@ -34,6 +35,13 @@ public class TeacherOpenCourseScheduleSessionQuery extends PageParam { private String teacherOpenCourseScheduleSessionEndDate; @Query(name = "周次", display = false) private Integer teacherOpenCourseScheduleSessionWeekNum; + /** + * 开课星期 多个逗号隔开 + * 例:T1,T2,T3 代表星期一,星期二,星期三 + * + * 对应 {@link TeacherOpenCourseScheduleSessionOptions.WeekDetailType} 的name + */ + private String teacherOpenCourseScheduleSessionStatusWeekDetail; private String teacherOpenCourseScheduleSessionIdPlural; private String teacherOpenCourseScheduleSessionStatusPlural; private String teacherOpenCourseIdPlural; @@ -168,4 +176,12 @@ public class TeacherOpenCourseScheduleSessionQuery extends PageParam { public void set_given(String _given) { this._given = _given; } + + public String getTeacherOpenCourseScheduleSessionStatusWeekDetail() { + return teacherOpenCourseScheduleSessionStatusWeekDetail; + } + + public void setTeacherOpenCourseScheduleSessionStatusWeekDetail(String teacherOpenCourseScheduleSessionStatusWeekDetail) { + this.teacherOpenCourseScheduleSessionStatusWeekDetail = teacherOpenCourseScheduleSessionStatusWeekDetail; + } } \ No newline at end of file diff --git a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md index 371d4c64..b435cc09 100644 --- a/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md +++ b/web/src/main/resources/sql/jlw/teacherOpenCourseScheduleSession.md @@ -32,6 +32,9 @@ queryByCondition @} @if(!isEmpty(teacherOpenCourseIdPlural)){ and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) + @} + @if(!isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + and t.teacher_open_course_schedule_session_status_week_detail like #"%"+teacherOpenCourseScheduleSessionStatusWeekDetail+"%"# @} @if(!isEmpty(teacherId)){ and t.teacher_id =#teacherId# @@ -96,6 +99,7 @@ queryByConditionGroup t.teacher_open_course_schedule_session_start_date, t.teacher_open_course_schedule_session_end_date, t.teacher_open_course_schedule_session_week_num, + t.teacher_open_course_schedule_session_status_week_detail, t.teacher_open_course_schedule_session_add_time, t.org_id, t.user_id @@ -125,6 +129,9 @@ queryByConditionGroup @if(!isEmpty(teacherOpenCourseIdPlural)){ and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) @} + @if(!isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + and t.teacher_open_course_schedule_session_status_week_detail like #"%"+teacherOpenCourseScheduleSessionStatusWeekDetail+"%"# + @} @if(!isEmpty(teacherId)){ and t.teacher_id =#teacherId# @} @@ -163,6 +170,7 @@ queryByConditionGroup t.teacher_open_course_schedule_session_start_date, t.teacher_open_course_schedule_session_end_date, t.teacher_open_course_schedule_session_week_num, + t.teacher_open_course_schedule_session_status_week_detail, t.teacher_open_course_schedule_session_add_time, t.org_id, t.user_id @@ -198,6 +206,9 @@ queryByConditionQuery @if(!isEmpty(teacherOpenCourseId)){ and t.teacher_open_course_id =#teacherOpenCourseId# @} + @if(!isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + and t.teacher_open_course_schedule_session_status_week_detail like #"%"+teacherOpenCourseScheduleSessionStatusWeekDetail+"%"# + @} @if(!isEmpty(teacherOpenCourseIdPlural)){ and find_in_set(t.teacher_open_course_id,#teacherOpenCourseIdPlural#) @} @@ -273,6 +284,13 @@ updateGivenByIds teacher_open_course_id = null , @}else{ teacher_open_course_id = #teacherOpenCourseId# , + @} + @} + @if(contain("teacherOpenCourseScheduleSessionStatusWeekDetail",_given)){ + @if(isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + teacher_open_course_schedule_session_status_week_detail = null , + @}else{ + teacher_open_course_schedule_session_status_week_detail = #teacherOpenCourseScheduleSessionStatusWeekDetail# , @} @} @if(contain("teacherId",_given)){ @@ -369,6 +387,9 @@ getTeacherOpenCourseScheduleSessionValues @if(!isEmpty(teacherOpenCourseScheduleSessionWeekNum)){ and t.teacher_open_course_schedule_session_week_num =#teacherOpenCourseScheduleSessionWeekNum# @} + @if(!isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + and t.teacher_open_course_schedule_session_status_week_detail like #"%"+teacherOpenCourseScheduleSessionStatusWeekDetail+"%"# + @} getValuesByQuery @@ -431,4 +452,7 @@ getValuesByQuery @if(!isEmpty(teacherOpenCourseScheduleSessionWeekNum)){ and t.teacher_open_course_schedule_session_week_num =#teacherOpenCourseScheduleSessionWeekNum# @} + @if(!isEmpty(teacherOpenCourseScheduleSessionStatusWeekDetail)){ + and t.teacher_open_course_schedule_session_status_week_detail like #"%"+teacherOpenCourseScheduleSessionStatusWeekDetail+"%"# + @} \ No newline at end of file