瀏覽代碼

调课顶课规则调整

dzx 4 月之前
父節點
當前提交
f2f6b0d605

+ 31 - 10
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -63,7 +63,6 @@ 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;
@@ -74,7 +73,6 @@ import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFTable;
 import org.apache.poi.xwpf.usermodel.XWPFTableCell;
 import org.apache.poi.xwpf.usermodel.XWPFTableRow;
-import org.camunda.bpm.engine.history.HistoricProcessInstance;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -370,7 +368,15 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                         .innerJoin(CourseTableBak.class, CourseTableBak::getId, CourseTable::getId)
                         .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
         );
-        if(!list.isEmpty()){
+        String[] courseIds = courseAdjust.getCourseId().split(",");
+        String[] exchangeCourseIds = null;
+        int courseCount = courseIds.length;
+        if (CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())) {
+            exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
+            courseCount += exchangeCourseIds.length;
+        }
+
+        if(list.isEmpty() || list.size() != courseCount){
             list = this.list(
                     new MPJLambdaWrapper<CourseTable>()
                             .select(CourseTable::getId)
@@ -386,8 +392,6 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             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];
@@ -421,7 +425,6 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                 //提交调课接口
                 //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)));
 
@@ -433,6 +436,8 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     courseTable.setAdjustType(courseAdjust.getAdjustType());
                     courseTable.setTeacherId(teacherId);
                     courseTable.setTeacherName(teacherName);
+
+                    courseTable.setKeyInfo(teacherId + "_" + courseTable.getClassId() + "_" + courseTable.getScheduleDate() + "_" + courseTable.getCourseId() + "_" + courseTable.getSiteId() + "_" + courseTable.getTimeNumber());
                     courseTableMapper.updateById(courseTable);
                 }
 
@@ -441,16 +446,18 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             }
         }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);
+                    if(courseTable == null || swapCourseTable == null){
+                        continue;
+                    }
+
+
 
                     CourseTable courseTableBak = BeanUtil.toBean(courseTable, CourseTable.class);
                     CourseTable swapCourseTableBak = BeanUtil.toBean(swapCourseTable, CourseTable.class);
@@ -462,6 +469,13 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     courseTable.setWeeks(swapCourseTableBak.getWeeks());
                     courseTable.setWeeksCn(swapCourseTableBak.getWeeksCn());
                     courseTable.setAdjustType(courseAdjust.getAdjustType());
+                    courseTable.setKeyInfo(courseTable.getTeacherId() + "_"
+                            + courseTable.getClassId() + "_"
+                            + courseTable.getScheduleDate() + "_"
+                            + courseTable.getCourseId() + "_"
+                            + courseTable.getSiteId() + "_"
+                            + courseTable.getTimeNumber()
+                    );
                     courseTableMapper.updateById(courseTable);
 
                     swapCourseTable.setScheduleDate(courseTableBak.getScheduleDate());
@@ -471,12 +485,18 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     swapCourseTable.setWeeks(courseTableBak.getWeeks());
                     swapCourseTable.setWeeksCn(courseTableBak.getWeeksCn());
                     swapCourseTable.setAdjustType(courseAdjust.getAdjustType());
+                    swapCourseTable.setKeyInfo(swapCourseTable.getTeacherId() + "_"
+                            + swapCourseTable.getClassId() + "_"
+                            + swapCourseTable.getScheduleDate() + "_"
+                            + swapCourseTable.getCourseId() + "_"
+                            + swapCourseTable.getSiteId() + "_"
+                            + swapCourseTable.getTimeNumber()
+                    );
                     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);
 
@@ -488,6 +508,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     courseTable.setAdjustType(courseAdjust.getAdjustType());
                     courseTable.setTeacherId(teacherId);
                     courseTable.setTeacherName(teacherName);
+                    courseTable.setKeyInfo(teacherId + "_" + courseTable.getClassId() + "_" + courseTable.getScheduleDate() + "_" + courseTable.getCourseId() + "_" + courseTable.getSiteId() + "_" + courseTable.getTimeNumber());
                     courseTableMapper.updateById(courseTable);
                 }
 

+ 7 - 7
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -190,13 +190,13 @@ public class ScheduleController {
     @ApiOperation(value = "可以调课的课程")
     @SaCheckPermission("schedule:detail")
     public RT<List<CourseListVo>> adjustList(CourseTableAdjustDto dto){
-//        if(dto.getAdjustDate() == null || dto.getTeacherId() == null){
-//            return RT.error("请传入调整日期和教师id");
-//        }
-//        List<CourseListVo> list = courseTableService.getAdjustList(dto);
-//        if(list.isEmpty()){
-//            return RT.error("暂无可调课程");
-//        }
+        if(dto.getAdjustDate() == null || dto.getTeacherId() == null){
+            return RT.error("请传入调整日期和教师id");
+        }
+        List<CourseListVo> list = courseTableService.getAdjustList(dto.getTeacherId().toString(), dto.getAdjustDate(), dto.getClassId(), dto.getAdjustType());
+        if(list.isEmpty()){
+            return RT.error("暂无可调课程");
+        }
         return RT.ok();
     }
 

+ 12 - 4
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -3,6 +3,7 @@ package com.xjrsoft.module.schedule.util;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.db.Entity;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -15,6 +16,8 @@ import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseLabel;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.organization.entity.Department;
+import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
+import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
 import com.xjrsoft.module.schedule.vo.StudentJianyuekbVo;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.extern.slf4j.Slf4j;
@@ -640,6 +643,7 @@ public class DataUtil {
             }
             serialNos.add(objectMap.get("jianyue_id").toString());
         }
+
         for (JsonElement jsonElement : data) {
             JsonObject asJsonObject = jsonElement.getAsJsonObject();
             JsonArray teachers = asJsonObject.get("teachers").getAsJsonArray();
@@ -654,6 +658,7 @@ public class DataUtil {
             String scheduleDate = asJsonObject.get("scheduleDate").getAsString();
             String courseClassId = coureseMap.get(asJsonObject.get("courseClassId").getAsString());
             String courseClassName = asJsonObject.get("courseClassName").getAsString();
+            String siteId = (classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString()) == null ? "0" : classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString()));
             List<String> teacherIds = new ArrayList<>();
             List<String> teacherNames = new ArrayList<>();
             List<String> teacher_serial_nos = new ArrayList<>();
@@ -676,12 +681,14 @@ public class DataUtil {
                 teacher_serial_no = teacher_serial_nos.toString().replace("[", "").replace("]", "");
             }
             String onlyKey = scheduleDate + classId + timeNumber;
+            String keyInfo = teacherId + "_" + classId + "_" + scheduleDate + "_" + courseClassId + "_" + siteId + "_" + timeNumber;
             if(oldDataMap.get(onlyKey) != null){
                 String updSql = "update course_table set teacher_serial_no = '" + teacher_serial_no + "'" +
                         ", teacher_id = '" + teacherId
                         + "', teacher_name = '" + teacherName + "', modify_date = now()" +
-                        " ,course_id = " + courseClassId + ", course_name = '" + courseClassName + "'" +
-                        " where schedule_date = '" + scheduleDate + "'and class_id = " + classId + " and time_number = " + timeNumber + ";";
+                        " ,course_id = " + courseClassId + ", course_name = '" + courseClassName
+                        + "',key_info = '" + keyInfo + "'" +
+                        " where schedule_date = '" + scheduleDate + "' and class_id = " + classId + " and time_number = " + timeNumber + ";";
                 updateSqlList.add(updSql);
                 continue;
             }
@@ -701,12 +708,13 @@ public class DataUtil {
             entity.set("weeks_cn", asJsonObject.get("dayOfWeekName").getAsString());
             entity.set("time_period", tmePeriod.get(asJsonObject.get("timeOption").getAsInt()));
             entity.set("time_number", timeNumber);
-            entity.set("site_id", (classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString()) == null ? 0 : classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString())));
+            entity.set("site_id", siteId);
             entity.set("site_name", asJsonObject.get("classRoomName").getAsString());
             entity.set("status", 1);
             entity.set("create_date", sdf.format(new Date()));
             entity.set("schedule_date", scheduleDate);
             entity.set("jianyue_id", asJsonObject.get("id").getAsString());
+            entity.set("key_info", keyInfo);
             entityList.add(entity);
         }
         if(!entityList.isEmpty()){
@@ -725,7 +733,6 @@ public class DataUtil {
      *
      */
     public void insertClassTime(JsonArray data) {
-
         Map<String, JsonObject> infoMap = new HashMap<>();
         Map<Integer, Integer> tmePeriod = ScheduleUtil.getTmePeriod();
         for (JsonElement jsonElement : data) {
@@ -798,4 +805,5 @@ public class DataUtil {
         }
     }
 
+
 }