فهرست منبع

add:课程大纲查询

caozixuan 1 سال پیش
والد
کامیت
bc7bbcba6a

+ 103 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseOutlineParams.java

@@ -0,0 +1,103 @@
+package com.qmth.distributed.print.business.bean.params;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineCourseTypeEnum;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineEvaluationEnum;
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: obe课程大纲参数
+ * @Author: CaoZixuan
+ * @Date: 2024-06-05
+ */
+public class ObeCourseOutlineParams {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "课程大纲id")
+    private Long id;
+
+    @ApiModelProperty(value = "大纲名称")
+    @NotNull(message = "课程大纲名称必填")
+    private String name;
+
+    @ApiModelProperty(value = "培养方案id")
+    @NotNull(message = "缺少教学课程")
+    @Range(min = 1L, message = "缺少教学课程")
+    private Long cultureProgramId;
+
+    @ApiModelProperty(value = "学期id")
+    @NotNull(message = "缺少学期id")
+    @Range(min = 1L, message = "缺少学期id")
+    private Long semesterId;
+
+    @ApiModelProperty(value = "课程id")
+    @NotNull(message = "缺少课程id")
+    @Range(min = 1L, message = "缺少课程id")
+    private Long courseId;
+
+    @ApiModelProperty(value = "考核方式")
+    private ObeCourseOutlineEvaluationEnum evaluationMode;
+
+    @ApiModelProperty(value = "课程类型")
+    private ObeCourseOutlineCourseTypeEnum courseType;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getCultureProgramId() {
+        return cultureProgramId;
+    }
+
+    public void setCultureProgramId(Long cultureProgramId) {
+        this.cultureProgramId = cultureProgramId;
+    }
+
+    public Long getSemesterId() {
+        return semesterId;
+    }
+
+    public void setSemesterId(Long semesterId) {
+        this.semesterId = semesterId;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public ObeCourseOutlineEvaluationEnum getEvaluationMode() {
+        return evaluationMode;
+    }
+
+    public void setEvaluationMode(ObeCourseOutlineEvaluationEnum evaluationMode) {
+        this.evaluationMode = evaluationMode;
+    }
+
+    public ObeCourseOutlineCourseTypeEnum getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(ObeCourseOutlineCourseTypeEnum courseType) {
+        this.courseType = courseType;
+    }
+}

+ 163 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/ObeCourseOutlineResult.java

@@ -0,0 +1,163 @@
+package com.qmth.distributed.print.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineCourseTypeEnum;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineEvaluationEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: obe课程大纲查询
+ * @Author: CaoZixuan
+ * @Date: 2024-06-05
+ */
+public class ObeCourseOutlineResult {
+
+    @ApiModelProperty("课程大纲id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("课程大纲名称")
+    private String outlineName;
+
+    @ApiModelProperty("课程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long courseId;
+
+    @ApiModelProperty("课程名称")
+    private String courseName;
+
+    @ApiModelProperty("学分")
+    private Integer credit;
+
+    @ApiModelProperty("考核方式")
+    private ObeCourseOutlineEvaluationEnum evaluationMode;
+
+    @ApiModelProperty("课程类型")
+    private ObeCourseOutlineCourseTypeEnum courseType;
+
+    @ApiModelProperty("学期id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long semesterId;
+
+    @ApiModelProperty("学期名称")
+    private String semesterName;
+
+    @ApiModelProperty("培养方式id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long cultureProgramId;
+
+    @ApiModelProperty("培养方式名称")
+    private String cultureProgramName;
+
+    @ApiModelProperty("负责人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("负责人名称")
+    private String userName;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getOutlineName() {
+        return outlineName;
+    }
+
+    public void setOutlineName(String outlineName) {
+        this.outlineName = outlineName;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public Integer getCredit() {
+        return credit;
+    }
+
+    public void setCredit(Integer credit) {
+        this.credit = credit;
+    }
+
+    public ObeCourseOutlineEvaluationEnum getEvaluationMode() {
+        return evaluationMode;
+    }
+
+    public void setEvaluationMode(ObeCourseOutlineEvaluationEnum evaluationMode) {
+        this.evaluationMode = evaluationMode;
+    }
+
+    public ObeCourseOutlineCourseTypeEnum getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(ObeCourseOutlineCourseTypeEnum courseType) {
+        this.courseType = courseType;
+    }
+
+    public Long getSemesterId() {
+        return semesterId;
+    }
+
+    public void setSemesterId(Long semesterId) {
+        this.semesterId = semesterId;
+    }
+
+    public String getSemesterName() {
+        return semesterName;
+    }
+
+    public void setSemesterName(String semesterName) {
+        this.semesterName = semesterName;
+    }
+
+    public Long getCultureProgramId() {
+        return cultureProgramId;
+    }
+
+    public void setCultureProgramId(Long cultureProgramId) {
+        this.cultureProgramId = cultureProgramId;
+    }
+
+    public String getCultureProgramName() {
+        return cultureProgramName;
+    }
+
+    public void setCultureProgramName(String cultureProgramName) {
+        this.cultureProgramName = cultureProgramName;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+}

+ 8 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseOutline.java

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.entity;
 
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineCourseTypeEnum;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineEvaluationEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -29,10 +31,10 @@ public class ObeCourseOutline extends BaseEntity {
     private Long courseId;
 
     @ApiModelProperty(value = "考核方式")
-    private String evaluationMode;
+    private ObeCourseOutlineEvaluationEnum evaluationMode;
 
     @ApiModelProperty(value = "课程类别")
-    private String courseType;
+    private ObeCourseOutlineCourseTypeEnum courseType;
 
     @ApiModelProperty(value = "课程大纲责任人")
     private Long userId;
@@ -69,19 +71,19 @@ public class ObeCourseOutline extends BaseEntity {
         this.courseId = courseId;
     }
 
-    public String getEvaluationMode() {
+    public ObeCourseOutlineEvaluationEnum getEvaluationMode() {
         return evaluationMode;
     }
 
-    public void setEvaluationMode(String evaluationMode) {
+    public void setEvaluationMode(ObeCourseOutlineEvaluationEnum evaluationMode) {
         this.evaluationMode = evaluationMode;
     }
 
-    public String getCourseType() {
+    public ObeCourseOutlineCourseTypeEnum getCourseType() {
         return courseType;
     }
 
-    public void setCourseType(String courseType) {
+    public void setCourseType(ObeCourseOutlineCourseTypeEnum courseType) {
         this.courseType = courseType;
     }
 

+ 24 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ObeCourseOutlineCourseTypeEnum.java

@@ -0,0 +1,24 @@
+package com.qmth.distributed.print.business.enums;
+
+/**
+ * @Description: obe课程类型
+ * @Author: CaoZixuan
+ * @Date: 2024-06-05
+ */
+public enum ObeCourseOutlineCourseTypeEnum {
+    ENGINEERING_BASIC("工程基础类课程"),
+    MAJOR_BASIC("专业基础类课程"),
+    MAJOR("专业类课程"),
+    ENGINEERING_PRACTICE_AND_GRADUATE_DESIGN("工程实践与毕业设计(论文)"),
+    OTHER("其他");
+
+    private final String name;
+
+    ObeCourseOutlineCourseTypeEnum(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 20 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ObeCourseOutlineEvaluationEnum.java

@@ -0,0 +1,20 @@
+package com.qmth.distributed.print.business.enums;
+
+/**
+ * @Description: obe课程大纲考核方式枚举
+ * @Author: CaoZixuan
+ * @Date: 2024-06-05
+ */
+public enum ObeCourseOutlineEvaluationEnum {
+    THEORY_EXAMINATION("理论考试类"), EXAMINE("考查类"), COURSE_DESIGN("课程设计类"), GRADUATE_DESIGN("毕业设计类"), OTHER("其他");
+
+    private final String name;
+
+    ObeCourseOutlineEvaluationEnum(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseOutlineMapper.java

@@ -1,7 +1,13 @@
 package com.qmth.distributed.print.business.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
+import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
 import com.qmth.distributed.print.business.entity.ObeCourseOutline;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ObeCourseOutlineMapper extends BaseMapper<ObeCourseOutline> {
 
+    IPage<ObeCourseOutlineResult> findObeCourseOutlinePage(@Param("iPage") Page<ObeCourseOutlineResult> iPage,
+            @Param("majorId") Long majorId, @Param("semesterId") Long semesterId,
+            @Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
+
 }

+ 31 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseOutlineService.java

@@ -1,7 +1,10 @@
 package com.qmth.distributed.print.business.service;
 
-import com.qmth.distributed.print.business.entity.ObeCourseOutline;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.params.ObeCourseOutlineParams;
+import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
+import com.qmth.distributed.print.business.entity.ObeCourseOutline;
 
 /**
  * <p>
@@ -13,4 +16,31 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ObeCourseOutlineService extends IService<ObeCourseOutline> {
 
+    /**
+     * 课程大纲分页查询
+     *
+     * @param majorId          专业id
+     * @param semesterId       学期id
+     * @param cultureProgramId 培养方式id
+     * @param courseId         课程id
+     * @param pageNumber       分页页码
+     * @param pageSize         分页容量
+     * @return 分页数据
+     */
+    IPage<ObeCourseOutlineResult> obeCourseOutlinePage(Long majorId, Long semesterId, Long cultureProgramId,
+            Long courseId, int pageNumber, int pageSize);
+
+    /**
+     * 课程大纲保存
+     *
+     * @param obeCourseOutlineParams 课程大纲
+     */
+    void obeCourseOutlineSave(ObeCourseOutlineParams obeCourseOutlineParams);
+
+    /**
+     * 课程大纲删除
+     *
+     * @param id id
+     */
+    void obeCourseOutlineRemove(Long id);
 }

+ 33 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseOutlineServiceImpl.java

@@ -1,10 +1,21 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.params.ObeCourseOutlineParams;
+import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
 import com.qmth.distributed.print.business.entity.ObeCourseOutline;
 import com.qmth.distributed.print.business.mapper.ObeCourseOutlineMapper;
 import com.qmth.distributed.print.business.service.ObeCourseOutlineService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -17,4 +28,26 @@ import org.springframework.stereotype.Service;
 @Service
 public class ObeCourseOutlineServiceImpl extends ServiceImpl<ObeCourseOutlineMapper, ObeCourseOutline> implements ObeCourseOutlineService {
 
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
+
+    @Override
+    public IPage<ObeCourseOutlineResult> obeCourseOutlinePage(Long majorId, Long semesterId, Long cultureProgramId, Long courseId, int pageNumber, int pageSize) {
+
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(requestUser.getSchoolId(),
+                requestUser.getId(), ServletUtil.getRequest().getServletPath());
+        return baseMapper.findObeCourseOutlinePage(new Page<>(pageNumber, pageSize),
+                majorId, semesterId, cultureProgramId, courseId, dpr);
+    }
+
+    @Override
+    public void obeCourseOutlineSave(ObeCourseOutlineParams obeCourseOutlineParams) {
+
+    }
+
+    @Override
+    public void obeCourseOutlineRemove(Long id) {
+
+    }
 }

+ 50 - 0
distributed-print-business/src/main/resources/mapper/ObeCourseOutlineMapper.xml

@@ -2,4 +2,54 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.distributed.print.business.mapper.ObeCourseOutlineMapper">
 
+    <select id="findObeCourseOutlinePage"
+            resultType="com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult">
+        SELECT
+            oco.id,
+            oco.name AS outlineName,
+            bc.id AS courseId,
+            bc.name AS courseName,
+            oco.evaluation_mode AS evaluationMode,
+            oco.course_type AS courseType,
+            bs.id AS semesterId,
+            bs.name AS semesterName
+#             ocp.id AS cultureProgramId,
+#             ocp.name AS cultureProgramName
+        FROM
+            obe_course_outline oco
+                LEFT JOIN
+            basic_course bc ON oco.course_id = bc.id
+                LEFT JOIN
+            basic_semester bs ON oco.semester_id = bs.id
+                LEFT JOIN
+            sys_user su ON oco.user_id = su.id
+#                 LEFT JOIN
+#             obe_culture_program ocp ON ocp.id = oco.culture_program_id
+        <where>
+            <if test="majorId != null and majorId != ''">
+                AND ocp.major_id = #{majorId}
+            </if>
+            <if test="semesterId != null and semesterId != ''">
+                AND bs.id = #{semesterId}
+            </if>
+            <if test="cultureProgramId != null and cultureProgramId != ''">
+                AND ocp.id = #{cultureProgramId}
+            </if>
+            <if test="courseId != null and courseId != ''">
+                AND bc.id = #{courseId}
+            </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND oco.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND su.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
+        </where>
+        ORDER BY oco.create_time DESC
+    </select>
 </mapper>