Ver código fonte

1、解决课表查询报错
2、增加课表可调整课程查询
3、增加预检查接口

dzx 1 ano atrás
pai
commit
d56ec7a88a

+ 4 - 0
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -2,8 +2,10 @@ package com.xjrsoft.module.courseTable.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.vo.CourseDetailVo;
+import com.xjrsoft.module.schedule.vo.CourseListVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,4 +22,6 @@ import java.util.List;
 @Mapper
 public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
     List<CourseDetailVo> getList(@Param("dto") CourseTableDto dto);
+
+    List<CourseListVo> getAdjustList(@Param("dto") CourseTableAdjustDto dto);
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/courseTable/service/ICourseTableService.java

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xjrsoft.module.courseTable.dto.ClassListDto;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.courseTable.vo.ClassListVo;
+import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
+import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
 
 import java.io.IOException;
@@ -26,4 +28,6 @@ public interface ICourseTableService extends IService<CourseTable> {
     List<ClassListVo> classList(ClassListDto dto);
 
     CourseTableVo getList(CourseTableDto dto);
+
+    List<CourseListVo> getAdjustList(CourseTableAdjustDto dto);
 }

+ 19 - 0
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -29,8 +29,10 @@ import com.xjrsoft.module.courseTable.mapper.ClassTimeMapper;
 import com.xjrsoft.module.courseTable.mapper.CourseTableMapper;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.courseTable.vo.ClassListVo;
+import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.vo.CourseDetailVo;
+import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
@@ -46,6 +48,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.time.DayOfWeek;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDateTime;
@@ -220,6 +223,22 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         return tableVo;
     }
 
+    /**
+     * 调课顶课查询
+     * @param dto
+     * @return
+     */
+    @Override
+    public List<CourseListVo> getAdjustList(CourseTableAdjustDto dto) {
+
+        if(dto.getAdjustDate() != null){
+            DayOfWeek dayOfWeek = dto.getAdjustDate().getDayOfWeek();
+            dto.setWeek(dayOfWeek.getValue());
+        }
+
+        return courseTableMapper.getAdjustList(dto);
+    }
+
     /**
      * 获取节次
      *

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

@@ -14,13 +14,14 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.DatasourceUtil;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
-import com.xjrsoft.module.evaluate.dto.EvaluateResultSaveDto;
+import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
 import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
 import com.xjrsoft.module.schedule.service.IJianyueDataService;
 import com.xjrsoft.module.schedule.util.DataUtil;
+import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.service.impl.IBaseStudentSchoolRollService;
@@ -30,14 +31,11 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.sql.DataSource;
-import javax.validation.Valid;
 import java.time.DayOfWeek;
 import java.time.LocalDateTime;
 import java.util.Date;
@@ -180,10 +178,31 @@ public class ScheduleController {
     }
 
 
-    @GetMapping
-    @ApiOperation(value = "调课顶课OA课表查询")
+    @GetMapping(value = "/adjust-list")
+    @ApiOperation(value = "可以调课的课程")
     @SaCheckPermission("evaluateobject:detail")
-    public RT<List<CourseTableVo>> courseInfoDay(EvaluateResultSaveDto dto){
-        return RT.ok();
+    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("暂无可调课程");
+        }
+        return RT.ok(list);
+    }
+
+    @GetMapping(value = "/pre-check")
+    @ApiOperation(value = "预检查")
+    @SaCheckPermission("evaluateobject:detail")
+    public RT<List<CourseListVo>> preCheck(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("暂无可调课程");
+        }
+        return RT.ok(list);
     }
 }

+ 5 - 3
src/main/java/com/xjrsoft/module/schedule/dto/CourseTableAdjustDto.java

@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.time.LocalDateTime;
 
 
 /**
@@ -18,9 +18,11 @@ public class CourseTableAdjustDto implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty("教id")
+    @ApiModelProperty("教id")
     private Long teacherId;
     @ApiModelProperty("调整日期")
-    private Date adjustDate;
+    private LocalDateTime adjustDate;
+    @ApiModelProperty("周几(后台自动计算)")
+    private Integer week;
 
 }

+ 28 - 0
src/main/java/com/xjrsoft/module/schedule/dto/CourseTablePreCheckDto.java

@@ -0,0 +1,28 @@
+package com.xjrsoft.module.schedule.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 寝室
+* @Author dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Data
+public class CourseTablePreCheckDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("教师id")
+    private Long teacherId;
+    @ApiModelProperty("调整日期")
+    private LocalDateTime adjustDate;
+    @ApiModelProperty("周几(后台自动计算)")
+    private Integer week;
+
+}

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

@@ -490,7 +490,7 @@ public class DataUtil {
                 + classMap.get(asJsonObject.get("classSerialNo").getAsString()) + ","
                 + "'" + asJsonObject.get("className").getAsString() + "',"
                 + asJsonObject.get("dayOfWeek").getAsInt() + ","
-                + "'" + week.get(asJsonObject.get("dayOfWeek").getAsInt()) + "',"
+                + "'" + asJsonObject.get("dayOfWeekName").getAsString() + "',"
                 + tmePeriod.get(asJsonObject.get("timeOption").getAsInt()) + ","
                 + timeNumber + ","
                 + (classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString()) == null ? 0 : classroomMap.get(asJsonObject.get("classRoomSerialNo").getAsString())) + ","

+ 30 - 0
src/main/java/com/xjrsoft/module/schedule/vo/CourseListVo.java

@@ -0,0 +1,30 @@
+package com.xjrsoft.module.schedule.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author dzx
+ * @date 2024/1/29
+ */
+@Data
+public class CourseListVo {
+
+    @ApiModelProperty("课程名称")
+    private String courseName;
+
+    @ApiModelProperty("班级名称(课表类型为teacher时使用)")
+    private String className;
+
+    @ApiModelProperty("教室名称(课表类型为class时使用)")
+    private String classroomName;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private String timePeriod;
+
+    @ApiModelProperty("节次")
+    private String timeNumber;
+
+    @ApiModelProperty("主键编号")
+    private String id;
+}

+ 9 - 2
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -9,6 +9,7 @@
         LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
         LEFT JOIN base_office_build t4 ON t3.office_build_id = t4.id
         LEFT JOIN base_class t5 ON t1.class_id = t5.id
+        LEFT JOIN base_class_major_set t7 ON t7.class_id = t5.id
         LEFT JOIN base_grade t6 ON t5.grade_id = t6.id
         where t1.status = 1
         <if test="dto.semesterId != null">
@@ -31,9 +32,15 @@
                 and t5.id = #{dto.classId}
             </if>
             <if test="dto.majorSetId != null">
-                and t5.major_set_id = #{dto.majorSetId}
+                and t7.major_set_id = #{dto.majorSetId}
             </if>
         </if>
     </select>
-
+    <select id="getAdjustList" parameterType="com.xjrsoft.module.schedule.dto.CourseTableAdjustDto" resultType="com.xjrsoft.module.schedule.vo.CourseListVo">
+        SELECT t1.time_period,t1.time_number,t1.course_name,t2.name AS class_name,t3.name AS classroom_name,t1.id FROM course_table t1
+        LEFT JOIN base_class t2 ON t1.class_id = t2.id
+        LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
+        WHERE t1.status = 1 AND t1.teacher_id = #{dto.teacherId}
+        AND t1.weeks = #{dto.week}
+    </select>
 </mapper>

+ 30 - 0
src/main/resources/sqlScript/20240125_sql.sql

@@ -237,5 +237,35 @@ CREATE TABLE quota_formula_rule_attribute
 
 -- -------------------------------------------------------------------考核-----------------------------------------------------------------
 
+-- -------------------------------------------------------------------评价-----------------------------------------------------------------
+-- -------------------------------
+-- 参评人提交记录表
+-- -------------------------------
+CREATE TABLE `evaluate_submit_record`(
+`id` BIGINT NOT NULL,
+`evaluate_manage_id` BIGINT COMMENT '评价管理编号',
+`evaluate_executer_id` BIGINT COMMENT '参评人编号',
+`create_date` DATETIME COMMENT '提交时间',
+`evaluated_object` VARCHAR(30) COMMENT '被评对象(teacher:老师,class:班级,student:学生)',
+`evaluated_object_id` BIGINT COMMENT '被评对象编号',
+PRIMARY KEY (`id`)
+) ENGINE=INNODB CHARSET=utf8mb4
+COMMENT='参评人提交记录表';
+
+DROP PROCEDURE IF EXISTS createCom;
+DELIMITER $$
+CREATE
+    PROCEDURE createCom()
+BEGIN
+    IF NOT EXISTS(SELECT 1 FROM information_schema.columns  WHERE table_name='evaluate_result' AND COLUMN_NAME = 'submit_record_id') THEN
+        ALTER TABLE `evaluate_result`
+            ADD COLUMN `submit_record_id` BIGINT NULL   COMMENT '提交记录主键编号(evaluate_submit_record)' AFTER `opinion`;
+
+    END IF;
+END$$
+DELIMITER ;
+CALL createCom;
+DROP PROCEDURE createCom;
+-- -------------------------------------------------------------------评价-----------------------------------------------------------------