|
@@ -26,6 +26,7 @@ import com.xjrsoft.common.enums.TimeNumberEnum;
|
|
|
import com.xjrsoft.common.enums.TimePeriodEnum;
|
|
|
import com.xjrsoft.common.enums.WeekEnum;
|
|
|
import com.xjrsoft.common.exception.MyException;
|
|
|
+import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.common.utils.excel.ExcelFillCellMergePrevColUtil;
|
|
|
import com.xjrsoft.common.utils.excel.ExcelMergeUtil;
|
|
|
import com.xjrsoft.config.TimetableConfig;
|
|
@@ -60,6 +61,7 @@ import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
|
|
|
import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
|
import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
|
|
|
+import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.apache.poi.ss.usermodel.BorderStyle;
|
|
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
|
@@ -357,65 +359,130 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
|
|
|
@Override
|
|
|
public Boolean adjustCourse(WfCourseAdjust courseAdjust){
|
|
|
- if (CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
- String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
- String[] exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
|
|
|
- for (int i = 0; i < courseIds.length; i ++){
|
|
|
- String courseId = courseIds[i];
|
|
|
- String exchangeCourseId = exchangeCourseIds[i];
|
|
|
-
|
|
|
- //调课,将双方课程的日期(schedule_date)、时段(time_period)、节次(time_number)、周(week)、星期几(1-7)(weeks)、星期中文(weeks_cn)对调
|
|
|
- CourseTable courseTable = courseTableMapper.selectById(courseId);
|
|
|
- CourseTableBak courseBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
|
|
|
- courseBak.setWfCourseAdjustId(courseAdjust.getId());
|
|
|
- courseTableBakMapper.insert(courseBak);
|
|
|
-
|
|
|
- CourseTable swapCourseTable = courseTableMapper.selectById(exchangeCourseId);
|
|
|
- CourseTableBak swapCourseBak = BeanUtil.toBean(swapCourseTable, CourseTableBak.class);
|
|
|
- swapCourseBak.setWfCourseAdjustId(courseAdjust.getId());
|
|
|
- courseTableBakMapper.insert(swapCourseBak);
|
|
|
-
|
|
|
- CourseTable courseTableBak = BeanUtil.toBean(courseTable, CourseTable.class);
|
|
|
- CourseTable swapCourseTableBak = BeanUtil.toBean(swapCourseTable, CourseTable.class);
|
|
|
-
|
|
|
- courseTable.setScheduleDate(swapCourseTableBak.getScheduleDate());
|
|
|
- courseTable.setTimePeriod(swapCourseTableBak.getTimePeriod());
|
|
|
- courseTable.setTimeNumber(swapCourseTableBak.getTimeNumber());
|
|
|
- courseTable.setWeek(swapCourseTableBak.getWeek());
|
|
|
- courseTable.setWeeks(swapCourseTableBak.getWeeks());
|
|
|
- courseTable.setWeeksCn(swapCourseTableBak.getWeeksCn());
|
|
|
- courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
- courseTableMapper.updateById(courseTable);
|
|
|
-
|
|
|
- swapCourseTable.setScheduleDate(courseTableBak.getScheduleDate());
|
|
|
- swapCourseTable.setTimePeriod(courseTableBak.getTimePeriod());
|
|
|
- swapCourseTable.setTimeNumber(courseTableBak.getTimeNumber());
|
|
|
- swapCourseTable.setWeek(courseTableBak.getWeek());
|
|
|
- swapCourseTable.setWeeks(courseTableBak.getWeeks());
|
|
|
- swapCourseTable.setWeeksCn(courseTableBak.getWeeksCn());
|
|
|
- swapCourseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
- courseTableMapper.updateById(swapCourseTable);
|
|
|
- }
|
|
|
- //提交调课接口
|
|
|
- //sendExchange(courseTableBak, swapCourseTableBak, courseAdjust);
|
|
|
- } else if (CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
- String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
- for (String courseId : courseIds) {
|
|
|
- CourseTable courseTable = courseTableMapper.selectById(courseId);
|
|
|
-
|
|
|
- CourseTableBak courseBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
|
|
|
- courseBak.setWfCourseAdjustId(courseAdjust.getId());
|
|
|
- courseTableBakMapper.insert(courseBak);
|
|
|
+ //先查询课表数据,看是否能够查询到,如果能查到
|
|
|
+ List<CourseTable> list = this.list(
|
|
|
+ new MPJLambdaWrapper<CourseTable>()
|
|
|
+ .select(CourseTable::getId)
|
|
|
+ .select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(CourseTableBak.class, CourseTableBak::getId, CourseTable::getId)
|
|
|
+ .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
+ );
|
|
|
+ if(list.isEmpty()){
|
|
|
+ list = this.list(
|
|
|
+ new MPJLambdaWrapper<CourseTable>()
|
|
|
+ .select(CourseTable::getId)
|
|
|
+ .select(CourseTable.class, x -> VoToColumnUtil.fieldsToColumns(CourseTable.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(CourseTableBak.class, CourseTableBak::getKeyInfo, CourseTable::getKeyInfo)
|
|
|
+ .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
+ );
|
|
|
+ Map<String, CourseTable> courseMap = list.stream().collect(Collectors.toMap(CourseTable::getKeyInfo, x -> x));
|
|
|
+ List<CourseTableBak> bakList = courseTableBakMapper.selectList(
|
|
|
+ new QueryWrapper<CourseTableBak>().lambda()
|
|
|
+ .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
|
|
|
+ );
|
|
|
+ Map<Long, String> bakKeyInfoMap = bakList.stream().collect(Collectors.toMap(CourseTableBak::getId, CourseTableBak::getKeyInfo));
|
|
|
+
|
|
|
+ if (CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
+ String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
+ String[] exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
|
|
|
+ for (int i = 0; i < courseIds.length; i ++){
|
|
|
+ String courseId = courseIds[i];
|
|
|
+ String exchangeCourseId = exchangeCourseIds[i];
|
|
|
+
|
|
|
+ //调课,将双方课程的日期(schedule_date)、时段(time_period)、节次(time_number)、周(week)、星期几(1-7)(weeks)、星期中文(weeks_cn)对调
|
|
|
+ CourseTable courseTable = courseMap.get(bakKeyInfoMap.get(Long.parseLong(courseId)));
|
|
|
+
|
|
|
+ CourseTable swapCourseTable = courseMap.get(bakKeyInfoMap.get(Long.parseLong(exchangeCourseId)));
|
|
|
+
|
|
|
+ CourseTable courseTableBak = BeanUtil.toBean(courseTable, CourseTable.class);
|
|
|
+ CourseTable swapCourseTableBak = BeanUtil.toBean(swapCourseTable, CourseTable.class);
|
|
|
+
|
|
|
+ courseTable.setScheduleDate(swapCourseTableBak.getScheduleDate());
|
|
|
+ courseTable.setTimePeriod(swapCourseTableBak.getTimePeriod());
|
|
|
+ courseTable.setTimeNumber(swapCourseTableBak.getTimeNumber());
|
|
|
+ courseTable.setWeek(swapCourseTableBak.getWeek());
|
|
|
+ courseTable.setWeeks(swapCourseTableBak.getWeeks());
|
|
|
+ courseTable.setWeeksCn(swapCourseTableBak.getWeeksCn());
|
|
|
+ courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTableMapper.updateById(courseTable);
|
|
|
+
|
|
|
+ swapCourseTable.setScheduleDate(courseTableBak.getScheduleDate());
|
|
|
+ swapCourseTable.setTimePeriod(courseTableBak.getTimePeriod());
|
|
|
+ swapCourseTable.setTimeNumber(courseTableBak.getTimeNumber());
|
|
|
+ swapCourseTable.setWeek(courseTableBak.getWeek());
|
|
|
+ swapCourseTable.setWeeks(courseTableBak.getWeeks());
|
|
|
+ swapCourseTable.setWeeksCn(courseTableBak.getWeeksCn());
|
|
|
+ swapCourseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTableMapper.updateById(swapCourseTable);
|
|
|
+ }
|
|
|
+ //提交调课接口
|
|
|
+ //sendExchange(courseTableBak, swapCourseTableBak, courseAdjust);
|
|
|
+ } else if (CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
+ String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
+ for (String courseId : courseIds) {
|
|
|
+ CourseTable courseTable = courseMap.get(bakKeyInfoMap.get(Long.parseLong(courseId)));
|
|
|
+
|
|
|
+ String teacherId = courseTable.getTeacherId().replace(courseAdjust.getUserId().toString(), courseAdjust.getExchangeTeacherId().toString());
|
|
|
+ courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTable.setTeacherId(teacherId);
|
|
|
+ courseTableMapper.updateById(courseTable);
|
|
|
+ }
|
|
|
|
|
|
- String teacherId = courseTable.getTeacherId().replace(courseAdjust.getUserId().toString(), courseAdjust.getExchangeTeacherId().toString());
|
|
|
- courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
- courseTable.setTeacherId(teacherId);
|
|
|
- courseTableMapper.updateById(courseTable);
|
|
|
+ //提交顶课接口
|
|
|
+ //sendSubstitute(courseTable, courseAdjust);
|
|
|
}
|
|
|
+ }else{
|
|
|
+ if (CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
+ String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
+ String[] exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
|
|
|
+ for (int i = 0; i < courseIds.length; i ++){
|
|
|
+ String courseId = courseIds[i];
|
|
|
+ String exchangeCourseId = exchangeCourseIds[i];
|
|
|
+
|
|
|
+ //调课,将双方课程的日期(schedule_date)、时段(time_period)、节次(time_number)、周(week)、星期几(1-7)(weeks)、星期中文(weeks_cn)对调
|
|
|
+ CourseTable courseTable = courseTableMapper.selectById(courseId);
|
|
|
+
|
|
|
+ CourseTable swapCourseTable = courseTableMapper.selectById(exchangeCourseId);
|
|
|
+
|
|
|
+ CourseTable courseTableBak = BeanUtil.toBean(courseTable, CourseTable.class);
|
|
|
+ CourseTable swapCourseTableBak = BeanUtil.toBean(swapCourseTable, CourseTable.class);
|
|
|
+
|
|
|
+ courseTable.setScheduleDate(swapCourseTableBak.getScheduleDate());
|
|
|
+ courseTable.setTimePeriod(swapCourseTableBak.getTimePeriod());
|
|
|
+ courseTable.setTimeNumber(swapCourseTableBak.getTimeNumber());
|
|
|
+ courseTable.setWeek(swapCourseTableBak.getWeek());
|
|
|
+ courseTable.setWeeks(swapCourseTableBak.getWeeks());
|
|
|
+ courseTable.setWeeksCn(swapCourseTableBak.getWeeksCn());
|
|
|
+ courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTableMapper.updateById(courseTable);
|
|
|
+
|
|
|
+ swapCourseTable.setScheduleDate(courseTableBak.getScheduleDate());
|
|
|
+ swapCourseTable.setTimePeriod(courseTableBak.getTimePeriod());
|
|
|
+ swapCourseTable.setTimeNumber(courseTableBak.getTimeNumber());
|
|
|
+ swapCourseTable.setWeek(courseTableBak.getWeek());
|
|
|
+ swapCourseTable.setWeeks(courseTableBak.getWeeks());
|
|
|
+ swapCourseTable.setWeeksCn(courseTableBak.getWeeksCn());
|
|
|
+ swapCourseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTableMapper.updateById(swapCourseTable);
|
|
|
+ }
|
|
|
+ //提交调课接口
|
|
|
+ //sendExchange(courseTableBak, swapCourseTableBak, courseAdjust);
|
|
|
+ } else if (CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())) {
|
|
|
+ String[] courseIds = courseAdjust.getCourseId().split(",");
|
|
|
+ for (String courseId : courseIds) {
|
|
|
+ CourseTable courseTable = courseTableMapper.selectById(courseId);
|
|
|
+
|
|
|
+ String teacherId = courseTable.getTeacherId().replace(courseAdjust.getUserId().toString(), courseAdjust.getExchangeTeacherId().toString());
|
|
|
+ courseTable.setAdjustType(courseAdjust.getAdjustType());
|
|
|
+ courseTable.setTeacherId(teacherId);
|
|
|
+ courseTableMapper.updateById(courseTable);
|
|
|
+ }
|
|
|
|
|
|
- //提交顶课接口
|
|
|
- //sendSubstitute(courseTable, courseAdjust);
|
|
|
+ //提交顶课接口
|
|
|
+ //sendSubstitute(courseTable, courseAdjust);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
|
|