LIVE_YE 2 éve
szülő
commit
3575d1a0e8

+ 13 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/course/CourseChangeController.java

@@ -46,6 +46,18 @@ public class CourseChangeController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询调课列表(与课表一起)
+     */
+    @GetMapping("/list/class")
+    public TableDataInfo courseList(CourseChange courseChange)
+    {
+        startPage();
+        List<CourseChange> list = courseChangeService.courseList(courseChange);
+        return getDataTable(list);
+    }
+
+
     /**
      * 导出调课列表
      */
@@ -77,7 +89,7 @@ public class CourseChangeController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody CourseChange courseChange)
     {
-        return toAjax(courseChangeService.insertCourseChange(courseChange));
+        return courseChangeService.insertCourseChange(courseChange);
     }
 
     /**

+ 46 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -237,4 +237,50 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
     }
 
 
+    /***
+     * 获取所传时间的周一时间
+     * @return
+     * @throws Exception
+     */
+    public static String getTimeIntervalOne(Date date) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
+        if (1 == dayWeek) {
+            cal.add(Calendar.DAY_OF_MONTH, 0);
+        }
+        cal.setFirstDayOfWeek(Calendar.MONDAY);
+        int day = cal.get(Calendar.DAY_OF_WEEK);
+        cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
+        String imptimeBegin = sdf.format(cal.getTime());
+        return imptimeBegin ;
+    }
+
+    /***
+     * 获取所传时间的周五时间
+     * @return
+     * @throws Exception
+     */
+    public static String getTimeIntervalFive(Date date) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
+        if (1 == dayWeek) {
+            cal.add(Calendar.DAY_OF_MONTH, 0);
+        }
+        cal.setFirstDayOfWeek(Calendar.MONDAY);
+        cal.add(Calendar.DATE, 4);
+        String imptimeEnd = sdf.format(cal.getTime());
+        return imptimeEnd;
+    }
+
+    public static void main(String[] args) {
+        String fist = getTimeIntervalOne(new Date());
+        String five = getTimeIntervalFive(new Date());
+        System.out.println(fist);
+        System.out.println(five);
+    }
+
 }

+ 85 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/CourseChange.java

@@ -54,10 +54,39 @@ public class CourseChange extends BaseEntity
     @Excel(name = "调课科目")
     private String subject;
 
+    /** 调课科目是第几节课 */
+    @Excel(name = "调课科目是第几节课")
+    private String isNum;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "调课科目的上课时间(yyyy-MM-dd)", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date subjectTime;
+
+    /** 周几(调课科目的上课) */
+    @Excel(name = "周几(调课科目的上课)")
+    private String subjectWeek;
+
+    /** 被调科目老师 */
+    @Excel(name = "被调科目老师")
+    private String bePersonnel;
+
+    /** 被调科目老师Id */
+    @Excel(name = "被调科目老师Id")
+    private Long bePersonnelId;
+
     /** 被调科目 */
     @Excel(name = "被调科目")
     private String beSubject;
 
+    /** 调课科目是第几节课 */
+    @Excel(name = "调课科目是第几节课")
+    private String beIsNum;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "被调课科目的上课时间(yyyy-MM-dd)", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date beSubjectTime;
+
+
     /** 周几 */
     @Excel(name = "周几")
     private String week;
@@ -235,6 +264,62 @@ public class CourseChange extends BaseEntity
         this.schoolName = schoolName;
     }
 
+    public String getIsNum() {
+        return isNum;
+    }
+
+    public Date getSubjectTime() {
+        return subjectTime;
+    }
+
+    public String getSubjectWeek() {
+        return subjectWeek;
+    }
+
+    public String getBePersonnel() {
+        return bePersonnel;
+    }
+
+    public Long getBePersonnelId() {
+        return bePersonnelId;
+    }
+
+    public String getBeIsNum() {
+        return beIsNum;
+    }
+
+    public Date getBeSubjectTime() {
+        return beSubjectTime;
+    }
+
+    public void setIsNum(String isNum) {
+        this.isNum = isNum;
+    }
+
+    public void setSubjectTime(Date subjectTime) {
+        this.subjectTime = subjectTime;
+    }
+
+    public void setSubjectWeek(String subjectWeek) {
+        this.subjectWeek = subjectWeek;
+    }
+
+    public void setBePersonnel(String bePersonnel) {
+        this.bePersonnel = bePersonnel;
+    }
+
+    public void setBePersonnelId(Long bePersonnelId) {
+        this.bePersonnelId = bePersonnelId;
+    }
+
+    public void setBeIsNum(String beIsNum) {
+        this.beIsNum = beIsNum;
+    }
+
+    public void setBeSubjectTime(Date beSubjectTime) {
+        this.beSubjectTime = beSubjectTime;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 16 - 5
ruoyi-system/src/main/java/com/ruoyi/system/domain/CourseTable.java

@@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.util.List;
+import java.util.Set;
+
 /**
  * 课程对象 course_table
  * 
@@ -100,7 +103,18 @@ public class CourseTable extends BaseEntity
     @Excel(name = "第八节课老师")
     private String eightTeacher;
 
-    public void setId(Long id) 
+    /** 被调的课程 */
+    Set<Long> classNum;
+
+    public Set<Long> getClassNum() {
+        return classNum;
+    }
+
+    public void setClassNum(Set<Long> classNum) {
+        this.classNum = classNum;
+    }
+
+    public void setId(Long id)
     {
         this.id = id;
     }
@@ -136,10 +150,7 @@ public class CourseTable extends BaseEntity
     {
         return classId;
     }
-    public void setClassName(String className) 
-    {
-        this.className = className;
-    }
+
 
     public String getClassName() 
     {

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CourseChangeMapper.java

@@ -61,4 +61,6 @@ public interface CourseChangeMapper
     public int deleteCourseChangeByIds(Long[] ids);
 
     List<CourseChange> selectCourseChangeListByTime(@Param("monthFirst") String monthFirst, @Param("userId")Long userId, @Param("deptId")Long deptId);
+
+    List<CourseChange> selectCourseChangeListByEdit(@Param("classId")String classId, @Param("fist")String fist, @Param("five")String five);
 }

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/ICourseChangeService.java

@@ -35,7 +35,7 @@ public interface ICourseChangeService
      * @param courseChange 调课
      * @return 结果
      */
-    public int insertCourseChange(CourseChange courseChange);
+    public AjaxResult insertCourseChange(CourseChange courseChange);
 
     /**
      * 修改调课
@@ -62,4 +62,6 @@ public interface ICourseChangeService
     public int deleteCourseChangeById(Long id);
 
     AjaxResult updateCourseChangeReply(CourseChange courseChange);
+
+    List<CourseChange> courseList(CourseChange courseChange);
 }

+ 72 - 6
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CourseChangeServiceImpl.java

@@ -1,15 +1,16 @@
 package com.ruoyi.system.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.FormalTeacherClass;
-import com.ruoyi.common.core.domain.entity.SysRole;
-import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.entity.*;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.mapper.FormalParentsStudentMapper;
 import com.ruoyi.system.mapper.FormalTeacherClassMapper;
+import com.ruoyi.system.mapper.SysDeptMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.CourseChangeMapper;
@@ -28,6 +29,10 @@ public class CourseChangeServiceImpl implements ICourseChangeService {
     private CourseChangeMapper courseChangeMapper;
     @Autowired
     private FormalTeacherClassMapper formalTeacherClassMapper;
+    @Autowired
+    private FormalParentsStudentMapper formalParentsStudentMapper;
+    @Autowired
+    private SysDeptMapper deptMapper;
 
     /**
      * 查询调课
@@ -66,8 +71,40 @@ public class CourseChangeServiceImpl implements ICourseChangeService {
             List<FormalTeacherClass> formalTeacherClassList = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
             List<Long> classIds = formalTeacherClassList.stream().map(FormalTeacherClass::getClassId).collect(Collectors.toList());
             courseChange.setSubjectClassIds(classIds);
+            courseChange.setApplyId(user.getUserId());
+            courseChange.setBePersonnelId(user.getUserId());
         }
+        return courseChangeMapper.selectCourseChangeList(courseChange);
+    }
 
+    @Override
+    public List<CourseChange> courseList(CourseChange courseChange) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<SysRole> roles = user.getRoles();
+        List<Long> classIdList = new ArrayList<>();
+        for (SysRole role : roles) {
+            if ("teacher".equals(role.getRoleKey())) {
+                //查询老师班级
+                FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
+                formalTeacherClass.setTeacherId(user.getUserId());
+                List<FormalTeacherClass> formalTeacherClassList = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
+                List<Long> classIds = formalTeacherClassList.stream().map(FormalTeacherClass::getClassId).collect(Collectors.toList());
+                classIdList.addAll(classIds);
+            }
+            if("parents".equals(role.getRoleKey())){
+                FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
+                formalParentsStudent.setParentsId(user.getUserId());
+                List<FormalParentsStudent> formalParentsStudentList = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
+                List<Long> classIds = formalParentsStudentList.stream().map(FormalParentsStudent::getClassId).collect(Collectors.toList());
+                classIdList.addAll(classIds);
+            }
+            if("school".equals(role.getRoleKey())){
+                List<SysDept> depts = deptMapper.selectDeptListChildren(user.getDeptId());
+                List<Long> classIds = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
+                classIdList.addAll(classIds);
+            }
+        }
+        courseChange.setSubjectClassIds(classIdList);
         return courseChangeMapper.selectCourseChangeList(courseChange);
     }
 
@@ -78,17 +115,38 @@ public class CourseChangeServiceImpl implements ICourseChangeService {
      * @return 结果
      */
     @Override
-    public int insertCourseChange(CourseChange courseChange) {
+    public AjaxResult insertCourseChange(CourseChange courseChange) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
         FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
         formalTeacherClass.setTeacherId(user.getUserId());
         List<FormalTeacherClass> formalTeacherClassList = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
+        Boolean bl = false;
+        for (FormalTeacherClass teacherClass : formalTeacherClassList) {
+            if(courseChange.getSubjectClassId().equals(teacherClass.getClassId()) && courseChange.getSubject().equals(teacherClass.getDiscipline())){
+                bl = true;
+                break;
+            }
+        }
+        if(!bl){
+            return AjaxResult.error("请选择属于自己的课程。");
+        }
         courseChange.setSchoolId(formalTeacherClassList.get(0).getSchoolId());
         courseChange.setSchoolName(formalTeacherClassList.get(0).getSchoolName());
         courseChange.setApplyId(user.getUserId());
-        courseChange.setApplyName(user.getNickName());
+        courseChange.setApplyName(formalTeacherClassList.get(0).getTeacherName());
         courseChange.setCreateTime(DateUtils.getNowDate());
-        return courseChangeMapper.insertCourseChange(courseChange);
+        //查询被调课的老师信息
+        FormalTeacherClass formalTeacherClassBe = new FormalTeacherClass();
+        formalTeacherClassBe.setClassId(courseChange.getSubjectClassId());
+        formalTeacherClassBe.setDiscipline(courseChange.getBeSubject());
+        List<FormalTeacherClass> formalTeacherClassBeList = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClassBe);
+        if(formalTeacherClassBeList==null || formalTeacherClassBeList.size()<=0){
+            return AjaxResult.error();
+        }
+        courseChange.setBePersonnel(formalTeacherClassBeList.get(0).getTeacherName());
+        courseChange.setBePersonnelId(formalTeacherClassBeList.get(0).getTeacherId());
+        courseChangeMapper.insertCourseChange(courseChange);
+        return AjaxResult.success();
     }
 
     /**
@@ -100,6 +158,13 @@ public class CourseChangeServiceImpl implements ICourseChangeService {
     @Override
     public int updateCourseChange(CourseChange courseChange) {
         courseChange.setUpdateTime(DateUtils.getNowDate());
+        //查询被调课的老师信息
+        FormalTeacherClass formalTeacherClassBe = new FormalTeacherClass();
+        formalTeacherClassBe.setClassId(courseChange.getSubjectClassId());
+        formalTeacherClassBe.setDiscipline(courseChange.getBeSubject());
+        List<FormalTeacherClass> formalTeacherClassBeList = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClassBe);
+        courseChange.setBePersonnel(formalTeacherClassBeList.get(0).getTeacherName());
+        courseChange.setBePersonnelId(formalTeacherClassBeList.get(0).getTeacherId());
         return courseChangeMapper.updateCourseChange(courseChange);
     }
 
@@ -143,4 +208,5 @@ public class CourseChangeServiceImpl implements ICourseChangeService {
         courseChangeMapper.updateCourseChange(courseChange);
         return AjaxResult.success();
     }
+
 }

+ 157 - 69
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CourseTableServiceImpl.java

@@ -1,16 +1,14 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.CourseChange;
 import com.ruoyi.system.domain.CourseTableTime;
+import com.ruoyi.system.mapper.CourseChangeMapper;
 import com.ruoyi.system.mapper.CourseTableTimeMapper;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,13 +19,12 @@ import com.ruoyi.system.service.ICourseTableService;
 
 /**
  * 课程Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2023-05-24
  */
 @Service
-public class CourseTableServiceImpl implements ICourseTableService 
-{
+public class CourseTableServiceImpl implements ICourseTableService {
     @Autowired
     private CourseTableMapper courseTableMapper;
     @Autowired
@@ -36,142 +33,233 @@ public class CourseTableServiceImpl implements ICourseTableService
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private CourseChangeMapper courseChangeMapper;
+
     /**
      * 查询课程
-     * 
+     *
      * @param id 课程主键
      * @return 课程
      */
     @Override
-    public CourseTable selectCourseTableById(Long id)
-    {
+    public CourseTable selectCourseTableById(Long id) {
         return courseTableMapper.selectCourseTableById(id);
     }
 
     /**
      * 查询课程列表
-     * 
+     *
      * @param courseTable 课程
      * @return 课程
      */
+    @SneakyThrows
     @Override
-    public List<CourseTable> selectCourseTableList(CourseTable courseTable)
-    {
-        return courseTableMapper.selectCourseTableList(courseTable);
+    public List<CourseTable> selectCourseTableList(CourseTable courseTable) {
+        if(StringUtils.isEmpty(courseTable.getClassId()) || StringUtils.isEmpty(courseTable.getSchoolId())){
+            return new ArrayList<>();
+        }
+        List<CourseTable> courseTableList = courseTableMapper.selectCourseTableList(courseTable);
+        //获取本周一和本周五的时间
+        String fist = DateUtils.getTimeIntervalOne(new Date());
+        String five = DateUtils.getTimeIntervalFive(new Date());
+        List<CourseChange> courseChangeList = courseChangeMapper.selectCourseChangeListByEdit(courseTable.getClassId(), fist, five);
+        if (courseChangeList == null || courseChangeList.size() <=0){
+            return courseTableList;
+        }
+
+        for (CourseTable table : courseTableList) {
+            changeCourseTable(table,courseChangeList,fist,five);
+        }
+
+        return courseTableList;
     }
 
+    @SneakyThrows
+    private void changeCourseTable(CourseTable table, List<CourseChange> courseChangeList, String fist, String five) {
+        String format = "yyyy-MM-dd";
+        Set<Long> classNum = new HashSet<>();
+        for (CourseChange courseChange : courseChangeList) {
+            //调课的时间是否在本周
+            if(DateUtils.isClass(fist,five,DateUtils.dateTime(courseChange.getSubjectTime()),format)){
+                if(StringUtils.equals(courseChange.getIsNum(),table.getWeek())){
+                    classNum.add(Long.valueOf(courseChange.getIsNum()));
+                    //第几节课
+                    if(StringUtils.equals("1",courseChange.getIsNum())){
+                        table.setOneClass(courseChange.getBeSubject());
+                        table.setOneTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("2",courseChange.getIsNum())){
+                        table.setTwoClass(courseChange.getBeSubject());
+                        table.setTwoTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("3",courseChange.getIsNum())){
+                        table.setThreeClass(courseChange.getBeSubject());
+                        table.setThreeTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("4",courseChange.getIsNum())){
+                        table.setFourClass(courseChange.getBeSubject());
+                        table.setFourTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("5",courseChange.getIsNum())){
+                        table.setFiveClass(courseChange.getBeSubject());
+                        table.setFiveTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("6",courseChange.getIsNum())){
+                        table.setSixClass(courseChange.getBeSubject());
+                        table.setSixTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("7",courseChange.getIsNum())){
+                        table.setSevenClass(courseChange.getBeSubject());
+                        table.setSevenTeacher(courseChange.getBePersonnel());
+                    }else if(StringUtils.equals("8",courseChange.getIsNum())){
+                        table.setEightClass(courseChange.getBeSubject());
+                        table.setEightTeacher(courseChange.getBePersonnel());
+                    }
+                }
+            }
+            //被调课是否在本周
+            if(DateUtils.isClass(fist,five,DateUtils.dateTime(courseChange.getBeSubjectTime()),format)) {
+                if(StringUtils.equals(courseChange.getWeek(),table.getWeek())){
+                    classNum.add(Long.valueOf(courseChange.getWeek()));
+                    //第几节课
+                    if(StringUtils.equals("1",courseChange.getWeek())){
+                        table.setOneClass(courseChange.getSubject());
+                        table.setOneTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("2",courseChange.getWeek())){
+                        table.setTwoClass(courseChange.getSubject());
+                        table.setTwoTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("3",courseChange.getWeek())){
+                        table.setThreeClass(courseChange.getSubject());
+                        table.setThreeTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("4",courseChange.getWeek())){
+                        table.setFourClass(courseChange.getSubject());
+                        table.setFourTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("5",courseChange.getWeek())){
+                        table.setFiveClass(courseChange.getSubject());
+                        table.setFiveTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("6",courseChange.getWeek())){
+                        table.setSixClass(courseChange.getSubject());
+                        table.setSixTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("7",courseChange.getWeek())){
+                        table.setSevenClass(courseChange.getSubject());
+                        table.setSevenTeacher(courseChange.getApplyName());
+                    }else if(StringUtils.equals("8",courseChange.getWeek())){
+                        table.setEightClass(courseChange.getSubject());
+                        table.setEightTeacher(courseChange.getApplyName());
+                    }
+                }
+            }
+        }
+        table.setClassNum(classNum);
+    }
+
+
     /**
      * 新增课程
-     * 
+     *
      * @param courseTable 课程
      * @return 结果
      */
     @Override
-    public int insertCourseTable(CourseTable courseTable)
-    {
+    public int insertCourseTable(CourseTable courseTable) {
         courseTable.setCreateTime(DateUtils.getNowDate());
         return courseTableMapper.insertCourseTable(courseTable);
     }
 
     /**
      * 修改课程
-     * 
+     *
      * @param courseTable 课程
      * @return 结果
      */
     @Override
-    public int updateCourseTable(CourseTable courseTable)
-    {
+    public int updateCourseTable(CourseTable courseTable) {
         courseTable.setUpdateTime(DateUtils.getNowDate());
         return courseTableMapper.updateCourseTable(courseTable);
     }
 
     /**
      * 批量删除课程
-     * 
+     *
      * @param ids 需要删除的课程主键
      * @return 结果
      */
     @Override
-    public int deleteCourseTableByIds(Long[] ids)
-    {
+    public int deleteCourseTableByIds(Long[] ids) {
         return courseTableMapper.deleteCourseTableByIds(ids);
     }
 
     /**
      * 删除课程信息
-     * 
+     *
      * @param id 课程主键
      * @return 结果
      */
     @Override
-    public int deleteCourseTableById(Long id)
-    {
+    public int deleteCourseTableById(Long id) {
         return courseTableMapper.deleteCourseTableById(id);
     }
 
     @SneakyThrows
     @Override
-    public AjaxResult now(Long schoolId,Long classId) {
+    public AjaxResult now(Long schoolId, Long classId) {
         //SysUser user = SecurityUtils.getLoginUser().getUser();
-        Map<String,Object> map = new HashMap<>();
-        map.put("teacher","");
-        map.put("subject","");
+        Map<String, Object> map = new HashMap<>();
+        map.put("teacher", "");
+        map.put("subject", "");
         //家长端查询下课时间
         String key = schoolId + ":" + classId;
         //key = 学校id:班级id
         //Redis根据key键,查询对应的值
         String xiakeTime = "";
         String value = redisCache.getCacheObject(key);
-        if(StringUtils.isNotEmpty(value)){
+        if (StringUtils.isNotEmpty(value)) {
             String[] split = value.split(":");
             //下课时间
             xiakeTime = split[1];
         }
-        map.put("time",xiakeTime);
+        map.put("time", xiakeTime);
         //获取当前时间
         String nowTime = DateUtils.getTime();
         //判断当天是周几
         int dayForWeek = DateUtils.dayForWeek(nowTime);
-        if(dayForWeek==6 || dayForWeek==7){
+        if (dayForWeek == 6 || dayForWeek == 7) {
             return AjaxResult.success(map);
         }
         //获取当前账号所属学校时间表
         CourseTableTime courseTableTime = courseTableTimeMapper.selectCourseTableTimeBySchoolId(schoolId);
+        if (courseTableTime == null) {
+            return AjaxResult.success(map);
+        }
         //判断当前时间是第几节课
         int index = isClass(courseTableTime);
-        if(index == 0){
+        if (index == 0) {
             return AjaxResult.success(map);
         }
         //获取当前班级课程
-        CourseTable courseTable = courseTableMapper.selectCourseTableByClassIdAndWeek(classId,dayForWeek);
-        if(courseTable == null){
+        CourseTable courseTable = courseTableMapper.selectCourseTableByClassIdAndWeek(classId, dayForWeek);
+        if (courseTable == null) {
             return AjaxResult.success(map);
         }
-        if(index == 1){
-            map.put("teacher",courseTable.getOneTeacher());
-            map.put("subject",courseTable.getOneClass());
-        }else if(index == 2){
-            map.put("teacher",courseTable.getTwoTeacher());
-            map.put("subject",courseTable.getTwoClass());
-        }else if(index == 3){
-            map.put("teacher",courseTable.getThreeTeacher());
-            map.put("subject",courseTable.getThreeClass());
-        }else if(index == 4){
-            map.put("teacher",courseTable.getFourTeacher());
-            map.put("subject",courseTable.getFourClass());
-        }else if(index == 5){
-            map.put("teacher",courseTable.getFiveTeacher());
-            map.put("subject",courseTable.getFiveClass());
-        }else if(index == 6){
-            map.put("teacher",courseTable.getSixTeacher());
-            map.put("subject",courseTable.getSixClass());
-        }else if(index == 7){
-            map.put("teacher",courseTable.getSevenTeacher());
-            map.put("subject",courseTable.getSevenClass());
-        }else if(index == 8){
-            map.put("teacher",courseTable.getEightTeacher());
-            map.put("subject",courseTable.getEightClass());
+        if (index == 1) {
+            map.put("teacher", courseTable.getOneTeacher());
+            map.put("subject", courseTable.getOneClass());
+        } else if (index == 2) {
+            map.put("teacher", courseTable.getTwoTeacher());
+            map.put("subject", courseTable.getTwoClass());
+        } else if (index == 3) {
+            map.put("teacher", courseTable.getThreeTeacher());
+            map.put("subject", courseTable.getThreeClass());
+        } else if (index == 4) {
+            map.put("teacher", courseTable.getFourTeacher());
+            map.put("subject", courseTable.getFourClass());
+        } else if (index == 5) {
+            map.put("teacher", courseTable.getFiveTeacher());
+            map.put("subject", courseTable.getFiveClass());
+        } else if (index == 6) {
+            map.put("teacher", courseTable.getSixTeacher());
+            map.put("subject", courseTable.getSixClass());
+        } else if (index == 7) {
+            map.put("teacher", courseTable.getSevenTeacher());
+            map.put("subject", courseTable.getSevenClass());
+        } else if (index == 8) {
+            map.put("teacher", courseTable.getEightTeacher());
+            map.put("subject", courseTable.getEightClass());
         }
 
         return AjaxResult.success(map);
@@ -182,21 +270,21 @@ public class CourseTableServiceImpl implements ICourseTableService
         //获取当前时间
         String nowTime = DateUtils.getNowTime();
         int index = 0;
-        if(StringUtils.isNotEmpty(courseTableTime.getOneStartTime()) && DateUtils.isClass(courseTableTime.getOneStartTime(),courseTableTime.getOneEndTime(),nowTime,"HH:mm")){
+        if (StringUtils.isNotEmpty(courseTableTime.getOneStartTime()) && DateUtils.isClass(courseTableTime.getOneStartTime(), courseTableTime.getOneEndTime(), nowTime, "HH:mm")) {
             index = 1;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getTwoStartTime()) && DateUtils.isClass(courseTableTime.getTwoStartTime(),courseTableTime.getTwoEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getTwoStartTime()) && DateUtils.isClass(courseTableTime.getTwoStartTime(), courseTableTime.getTwoEndTime(), nowTime, "HH:mm")) {
             index = 2;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getThreeStartTime()) && DateUtils.isClass(courseTableTime.getThreeStartTime(),courseTableTime.getThreeEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getThreeStartTime()) && DateUtils.isClass(courseTableTime.getThreeStartTime(), courseTableTime.getThreeEndTime(), nowTime, "HH:mm")) {
             index = 3;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getFourStartTime()) && DateUtils.isClass(courseTableTime.getFourStartTime(),courseTableTime.getFourEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getFourStartTime()) && DateUtils.isClass(courseTableTime.getFourStartTime(), courseTableTime.getFourEndTime(), nowTime, "HH:mm")) {
             index = 4;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getFiveStartTime()) && DateUtils.isClass(courseTableTime.getFiveStartTime(),courseTableTime.getFiveEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getFiveStartTime()) && DateUtils.isClass(courseTableTime.getFiveStartTime(), courseTableTime.getFiveEndTime(), nowTime, "HH:mm")) {
             index = 5;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getSixStartTime()) && DateUtils.isClass(courseTableTime.getSixStartTime(),courseTableTime.getSixEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getSixStartTime()) && DateUtils.isClass(courseTableTime.getSixStartTime(), courseTableTime.getSixEndTime(), nowTime, "HH:mm")) {
             index = 6;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getSevenStartTime()) && DateUtils.isClass(courseTableTime.getSevenStartTime(),courseTableTime.getSevenEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getSevenStartTime()) && DateUtils.isClass(courseTableTime.getSevenStartTime(), courseTableTime.getSevenEndTime(), nowTime, "HH:mm")) {
             index = 7;
-        }else if(StringUtils.isNotEmpty(courseTableTime.getEightStartTime()) && DateUtils.isClass(courseTableTime.getEightStartTime(),courseTableTime.getEightEndTime(),nowTime,"HH:mm")){
+        } else if (StringUtils.isNotEmpty(courseTableTime.getEightStartTime()) && DateUtils.isClass(courseTableTime.getEightStartTime(), courseTableTime.getEightEndTime(), nowTime, "HH:mm")) {
             index = 8;
         }
         return index;

+ 58 - 16
ruoyi-system/src/main/resources/mapper/system/CourseChangeMapper.xml

@@ -3,18 +3,23 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.CourseChangeMapper">
-    
+
     <resultMap type="CourseChange" id="CourseChangeResult">
         <result property="id"    column="id"    />
-        <result property="schoolId"    column="school_id"    />
-        <result property="schoolName"    column="school_name"    />
         <result property="applyId"    column="apply_id"    />
         <result property="applyName"    column="apply_name"    />
         <result property="applyTime"    column="apply_time"    />
         <result property="subjectClassId"    column="subject_class_id"    />
         <result property="subjectClass"    column="subject_class"    />
         <result property="subject"    column="subject"    />
+        <result property="isNum"    column="is_num"    />
+        <result property="subjectTime"    column="subject_time"    />
+        <result property="subjectWeek"    column="subject_week"    />
+        <result property="bePersonnel"    column="be_personnel"    />
+        <result property="bePersonnelId"    column="be_personnel_id"    />
         <result property="beSubject"    column="be_subject"    />
+        <result property="beIsNum"    column="be_is_num"    />
+        <result property="beSubjectTime"    column="be_subject_time"    />
         <result property="week"    column="week"    />
         <result property="isPass"    column="is_pass"    />
         <result property="content"    column="content"    />
@@ -26,29 +31,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="auditId"    column="audit_id"    />
         <result property="auditUser"    column="audit_user"    />
         <result property="opinion"    column="opinion"    />
+        <result property="schoolId"    column="school_id"    />
+        <result property="schoolName"    column="school_name"    />
     </resultMap>
 
     <sql id="selectCourseChangeVo">
-        select id, apply_id, apply_name, apply_time, subject_class_id, subject_class, subject, be_subject, week, is_pass, content, create_by, create_time, update_by, update_time, remark, audit_id, audit_user, opinion from course_change
+        select id, apply_id, apply_name, apply_time, subject_class_id, subject_class, subject, is_num, subject_time, subject_week, be_personnel, be_personnel_id, be_subject, be_is_num, be_subject_time, week, is_pass, content, create_by, create_time, update_by, update_time, remark, audit_id, audit_user, opinion, school_id, school_name from course_change
     </sql>
 
     <select id="selectCourseChangeList" parameterType="CourseChange" resultMap="CourseChangeResult">
         <include refid="selectCourseChangeVo"/>
-        <where>  
-            <if test="applyId != null "> and apply_id = #{applyId}</if>
-            <if test="schoolName != null  and schoolName != ''"> and school_name like concat('%', #{schoolName}, '%')</if>
+        <where>
+            <if test="applyId != null "> and (apply_id = #{applyId} or be_personnel_id = #{bePersonnelId} ) </if>
             <if test="applyName != null  and applyName != ''"> and apply_name like concat('%', #{applyName}, '%')</if>
             <if test="applyTime != null "> and apply_time = #{applyTime}</if>
-            <if test="subjectClassId != null  "> and subject_class_id = #{subjectClassId}</if>
+            <if test="subjectClassId != null  and subjectClassId != ''"> and subject_class_id = #{subjectClassId}</if>
             <if test="subjectClass != null  and subjectClass != ''"> and subject_class = #{subjectClass}</if>
             <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="isNum != null  and isNum != ''"> and is_num = #{isNum}</if>
+            <if test="subjectTime != null "> and subject_time = #{subjectTime}</if>
+            <if test="subjectWeek != null  and subjectWeek != ''"> and subject_week = #{subjectWeek}</if>
+            <if test="bePersonnel != null  and bePersonnel != ''"> and be_personnel = #{bePersonnel}</if>
+<!--            <if test="bePersonnelId != null  and bePersonnelId != ''"> and be_personnel_id = #{bePersonnelId}</if>-->
             <if test="beSubject != null  and beSubject != ''"> and be_subject = #{beSubject}</if>
+            <if test="beIsNum != null  and beIsNum != ''"> and be_is_num = #{beIsNum}</if>
+            <if test="beSubjectTime != null "> and be_subject_time = #{beSubjectTime}</if>
             <if test="week != null  and week != ''"> and week = #{week}</if>
             <if test="isPass != null  and isPass != ''"> and is_pass = #{isPass}</if>
             <if test="content != null  and content != ''"> and content = #{content}</if>
             <if test="auditId != null "> and audit_id = #{auditId}</if>
             <if test="auditUser != null  and auditUser != ''"> and audit_user = #{auditUser}</if>
             <if test="opinion != null  and opinion != ''"> and opinion = #{opinion}</if>
+            <if test="schoolId != null  and schoolId != ''"> and school_id = #{schoolId}</if>
+            <if test="schoolName != null  and schoolName != ''"> and school_name like concat('%', #{schoolName}, '%')</if>
             <if test="subjectClassIds != null  and subjectClassIds.size()>0">
                 and subject_class_id in
                 <foreach collection="subjectClassIds" index="index" item="item" open="(" separator="," close=")">
@@ -72,19 +87,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and school_id = #{deptId}
         </if>
     </select>
+    <select id="selectCourseChangeListByEdit" resultMap="CourseChangeResult">
+        <include refid="selectCourseChangeVo"/>
+        where subject_class_id = #{classId}
+        and ((date_format(subject_time,'%y%m%d') &gt;= date_format(#{fist},'%y%m%d') and date_format(subject_time,'%y%m%d') &lt;= date_format(#{five},'%y%m%d'))
+                or (date_format(be_subject_time,'%y%m%d') &gt;= date_format(#{fist},'%y%m%d') and date_format(be_subject_time,'%y%m%d') &lt;= date_format(#{five},'%y%m%d')))
+    </select>
 
     <insert id="insertCourseChange" parameterType="CourseChange" useGeneratedKeys="true" keyProperty="id">
         insert into course_change
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="schoolId != null">school_id,</if>
-            <if test="schoolName != null">school_name,</if>
             <if test="applyId != null">apply_id,</if>
             <if test="applyName != null">apply_name,</if>
             <if test="applyTime != null">apply_time,</if>
             <if test="subjectClassId != null">subject_class_id,</if>
             <if test="subjectClass != null">subject_class,</if>
             <if test="subject != null">subject,</if>
+            <if test="isNum != null">is_num,</if>
+            <if test="subjectTime != null">subject_time,</if>
+            <if test="subjectWeek != null">subject_week,</if>
+            <if test="bePersonnel != null">be_personnel,</if>
+            <if test="bePersonnelId != null">be_personnel_id,</if>
             <if test="beSubject != null">be_subject,</if>
+            <if test="beIsNum != null">be_is_num,</if>
+            <if test="beSubjectTime != null">be_subject_time,</if>
             <if test="week != null">week,</if>
             <if test="isPass != null">is_pass,</if>
             <if test="content != null">content,</if>
@@ -96,17 +122,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="auditId != null">audit_id,</if>
             <if test="auditUser != null">audit_user,</if>
             <if test="opinion != null">opinion,</if>
-         </trim>
+            <if test="schoolId != null">school_id,</if>
+            <if test="schoolName != null">school_name,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="schoolId != null">#{schoolId},</if>
-            <if test="schoolName != null">#{schoolName},</if>
             <if test="applyId != null">#{applyId},</if>
             <if test="applyName != null">#{applyName},</if>
             <if test="applyTime != null">#{applyTime},</if>
             <if test="subjectClassId != null">#{subjectClassId},</if>
             <if test="subjectClass != null">#{subjectClass},</if>
             <if test="subject != null">#{subject},</if>
+            <if test="isNum != null">#{isNum},</if>
+            <if test="subjectTime != null">#{subjectTime},</if>
+            <if test="subjectWeek != null">#{subjectWeek},</if>
+            <if test="bePersonnel != null">#{bePersonnel},</if>
+            <if test="bePersonnelId != null">#{bePersonnelId},</if>
             <if test="beSubject != null">#{beSubject},</if>
+            <if test="beIsNum != null">#{beIsNum},</if>
+            <if test="beSubjectTime != null">#{beSubjectTime},</if>
             <if test="week != null">#{week},</if>
             <if test="isPass != null">#{isPass},</if>
             <if test="content != null">#{content},</if>
@@ -118,21 +151,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="auditId != null">#{auditId},</if>
             <if test="auditUser != null">#{auditUser},</if>
             <if test="opinion != null">#{opinion},</if>
-         </trim>
+            <if test="schoolId != null">#{schoolId},</if>
+            <if test="schoolName != null">#{schoolName},</if>
+        </trim>
     </insert>
 
     <update id="updateCourseChange" parameterType="CourseChange">
         update course_change
         <trim prefix="SET" suffixOverrides=",">
-            <if test="schoolId != null">school_id = #{schoolId},</if>
-            <if test="schoolName != null">school_name = #{schoolName},</if>
             <if test="applyId != null">apply_id = #{applyId},</if>
             <if test="applyName != null">apply_name = #{applyName},</if>
             <if test="applyTime != null">apply_time = #{applyTime},</if>
             <if test="subjectClassId != null">subject_class_id = #{subjectClassId},</if>
             <if test="subjectClass != null">subject_class = #{subjectClass},</if>
             <if test="subject != null">subject = #{subject},</if>
+            <if test="isNum != null">is_num = #{isNum},</if>
+            <if test="subjectTime != null">subject_time = #{subjectTime},</if>
+            <if test="subjectWeek != null">subject_week = #{subjectWeek},</if>
+            <if test="bePersonnel != null">be_personnel = #{bePersonnel},</if>
+            <if test="bePersonnelId != null">be_personnel_id = #{bePersonnelId},</if>
             <if test="beSubject != null">be_subject = #{beSubject},</if>
+            <if test="beIsNum != null">be_is_num = #{beIsNum},</if>
+            <if test="beSubjectTime != null">be_subject_time = #{beSubjectTime},</if>
             <if test="week != null">week = #{week},</if>
             <if test="isPass != null">is_pass = #{isPass},</if>
             <if test="content != null">content = #{content},</if>
@@ -144,6 +184,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="auditId != null">audit_id = #{auditId},</if>
             <if test="auditUser != null">audit_user = #{auditUser},</if>
             <if test="opinion != null">opinion = #{opinion},</if>
+            <if test="schoolId != null">school_id = #{schoolId},</if>
+            <if test="schoolName != null">school_name = #{schoolName},</if>
         </trim>
         where id = #{id}
     </update>

+ 1 - 1
ruoyi-system/src/main/resources/mapper/system/RegisterParentsStudentMapper.xml

@@ -150,6 +150,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
     <delete id="deleteRegisterParentsStudentByParentsId" parameterType="java.lang.Long">
-        delete from register_parents_student where parents_id = #{parentsId} and isPass = '3';
+        delete from register_parents_student where parents_id = #{parentsId} and is_pass = '3';
     </delete>
 </mapper>