Browse Source

调课顶课规则调整

dzx 4 months ago
parent
commit
96fe050f41

+ 3 - 1
src/main/java/com/xjrsoft/module/courseTable/service/ICourseTableService.java

@@ -42,9 +42,11 @@ public interface ICourseTableService extends IService<CourseTable> {
      * @param courseAdjust
      * @return
      */
-    Boolean adjustCourse(WfCourseAdjust courseAdjust) throws Exception;
+    Boolean adjustCourse(WfCourseAdjust courseAdjust);
 
     ByteArrayOutputStream listScheduleWeekExportQuery(ScheduleWeekExportQueryDto dto);
 
     List<ClassOptionVo> getClassListByTeacherId(ClassOptionDto dto);
+
+
 }

+ 122 - 55
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -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;
     }
 

+ 3 - 3
src/main/java/com/xjrsoft/module/schedule/service/IWfCourseAdjustService.java

@@ -5,9 +5,9 @@ import com.xjrsoft.module.schedule.dto.WfCourseAdjustDto;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 
 /**
-* @title: 班级荣誉
-* @Author szs
-* @Date: 2023-12-06
+* @title: 调课顶课
+* @Author dzx
+* @Date: 2024年10月17日
 * @Version 1.0
 */
 

+ 28 - 24
src/main/java/com/xjrsoft/module/schedule/service/impl/WfCourseAdjustServiceImpl.java

@@ -87,34 +87,38 @@ public class WfCourseAdjustServiceImpl extends MPJBaseServiceImpl<WfCourseAdjust
 
     @Override
     public void backupsData(Long id) {
-        WfCourseAdjust courseAdjust = this.getById(id);
-        List<CourseTableBak> insertList = new ArrayList<>();
-        if(CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())){//顶课
-            String[] courseIds = courseAdjust.getCourseId().split(",");
-            List<CourseTable> list = courseTableService.listByIds(Arrays.asList(courseIds));
-            for (CourseTable courseTable : list) {
-                CourseTableBak tableBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
-                tableBak.setWfCourseAdjustId(id);
-                insertList.add(tableBak);
-            }
-        }else if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())){
-            List<String> ids = new ArrayList<>();
-            String[] courseIds = courseAdjust.getCourseId().split(",");
-            ids.addAll(Arrays.asList(courseIds));
+        try {
+            WfCourseAdjust courseAdjust = this.getById(id);
+            List<CourseTableBak> insertList = new ArrayList<>();
+            if(CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())){//顶课
+                String[] courseIds = courseAdjust.getCourseId().split(",");
+                List<CourseTable> list = courseTableService.listByIds(Arrays.asList(courseIds));
+                for (CourseTable courseTable : list) {
+                    CourseTableBak tableBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
+                    tableBak.setWfCourseAdjustId(id);
+                    insertList.add(tableBak);
+                }
+            }else if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())){
+                List<String> ids = new ArrayList<>();
+                String[] courseIds = courseAdjust.getCourseId().split(",");
+                ids.addAll(Arrays.asList(courseIds));
 
-            String[] exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
-            ids.addAll(Arrays.asList(exchangeCourseIds));
+                String[] exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
+                ids.addAll(Arrays.asList(exchangeCourseIds));
 
-            List<CourseTable> list = courseTableService.listByIds(ids);
-            for (CourseTable courseTable : list) {
-                CourseTableBak tableBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
-                tableBak.setWfCourseAdjustId(id);
-                insertList.add(tableBak);
+                List<CourseTable> list = courseTableService.listByIds(ids);
+                for (CourseTable courseTable : list) {
+                    CourseTableBak tableBak = BeanUtil.toBean(courseTable, CourseTableBak.class);
+                    tableBak.setWfCourseAdjustId(id);
+                    insertList.add(tableBak);
+                }
             }
-        }
 
-        if(!insertList.isEmpty()){
-            courseTableBakService.saveBatch(insertList);
+            if(!insertList.isEmpty()){
+                courseTableBakService.saveBatch(insertList);
+            }
+        }catch (Exception e){
+            log.error(e.getMessage());
         }
     }
 }