소스 검색

add:课程大纲及考核方式

caozixuan 1 년 전
부모
커밋
6ce4b1fa03
53개의 변경된 파일1129개의 추가작업 그리고 1187개의 파일을 삭제
  1. 9 9
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseEvaluationParam.java
  2. 6 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseOutlineParam.java
  3. 9 9
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseTargetParam.java
  4. 9 32
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseWeightParam.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/ObeCourseEvaluationResult.java
  6. 1 23
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/ObeCourseWeightResult.java
  7. 8 55
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseDimension.java
  8. 7 42
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseEvaluation.java
  9. 54 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseOutline.java
  10. 7 42
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseTarget.java
  11. 7 41
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseWeight.java
  12. 0 27
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CourseEvaluationMapper.java
  13. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseDimensionMapper.java
  14. 27 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseEvaluationMapper.java
  15. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseOutlineMapper.java
  16. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseTargetMapper.java
  17. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseWeightMapper.java
  18. 0 49
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseEvaluationService.java
  19. 0 60
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseWeightService.java
  20. 9 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseDimensionService.java
  21. 48 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseEvaluationService.java
  22. 29 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseOutlineService.java
  23. 14 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseTargetService.java
  24. 60 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseWeightService.java
  25. 6 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TRBasicInfoService.java
  26. 0 16
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachCourseService.java
  27. 0 149
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseEvaluationServiceImpl.java
  28. 46 65
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseDimensionServiceImpl.java
  29. 146 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseEvaluationServiceImpl.java
  30. 134 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseOutlineServiceImpl.java
  31. 98 105
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseTargetServiceImpl.java
  32. 110 142
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseWeightServiceImpl.java
  33. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCPaperStructServiceImpl.java
  34. 29 24
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java
  35. 10 67
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java
  36. 42 0
      distributed-print-business/src/main/resources/db/log/caozixuan.sql
  37. 0 31
      distributed-print-business/src/main/resources/mapper/CourseWeightMapper.xml
  38. 1 1
      distributed-print-business/src/main/resources/mapper/ObeCourseDimensionMapper.xml
  39. 5 5
      distributed-print-business/src/main/resources/mapper/ObeCourseEvaluationMapper.xml
  40. 12 12
      distributed-print-business/src/main/resources/mapper/ObeCourseOutlineMapper.xml
  41. 1 1
      distributed-print-business/src/main/resources/mapper/ObeCourseTargetMapper.xml
  42. 31 0
      distributed-print-business/src/main/resources/mapper/ObeCourseWeightMapper.xml
  43. 2 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java
  44. 9 9
      distributed-print/src/main/java/com/qmth/distributed/print/api/CourseWeightController.java
  45. 3 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseDimensionController.java
  46. 16 20
      distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseEvaluationController.java
  47. 61 5
      distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseOutlineController.java
  48. 21 37
      distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseTargetController.java
  49. 7 7
      distributed-print/src/main/java/com/qmth/distributed/print/api/TCPaperStructController.java
  50. 3 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/TCUsualScoreController.java
  51. 14 12
      distributed-print/src/main/java/com/qmth/distributed/print/api/TRBasicInfoController.java
  52. 0 8
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java
  53. 1 2
      distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

+ 9 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/CourseEvaluationParam.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseEvaluationParam.java

@@ -14,17 +14,17 @@ import javax.validation.constraints.NotNull;
  * @Author: CaoZixuan
  * @Date: 2024-02-29
  */
-public class CourseEvaluationParam {
+public class ObeCourseEvaluationParam {
 
     @ApiModelProperty("课程评价方式id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
-    @ApiModelProperty("教学课程id")
+    @ApiModelProperty("课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    @NotNull(message = "缺少教学课程")
-    @Range(min = 1L, message = "缺少教学课程")
-    private Long teachCourseId;
+    @NotNull(message = "缺少课程大纲id")
+    @Range(min = 1L, message = "缺少课程大纲id")
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty("评价方式")
     @NotNull(message = "缺少评价方式")
@@ -47,12 +47,12 @@ public class CourseEvaluationParam {
         this.id = id;
     }
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public String getEvaluation() {

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseOutlineParams.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseOutlineParam.java

@@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull;
  * @Author: CaoZixuan
  * @Date: 2024-06-05
  */
-public class ObeCourseOutlineParams {
+public class ObeCourseOutlineParam {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "课程大纲id")
@@ -22,7 +22,7 @@ public class ObeCourseOutlineParams {
 
     @ApiModelProperty(value = "大纲名称")
     @NotNull(message = "课程大纲名称必填")
-    private String name;
+    private String courseOutlineName;
 
     @ApiModelProperty(value = "培养方案id")
     @NotNull(message = "缺少教学课程")
@@ -53,12 +53,12 @@ public class ObeCourseOutlineParams {
         this.id = id;
     }
 
-    public String getName() {
-        return name;
+    public String getCourseOutlineName() {
+        return courseOutlineName;
     }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setCourseOutlineName(String courseOutlineName) {
+        this.courseOutlineName = courseOutlineName;
     }
 
     public Long getCultureProgramId() {

+ 9 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/CourseTargetParam.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseTargetParam.java

@@ -15,18 +15,18 @@ import java.util.List;
  * @Author: CaoZixuan
  * @Date: 2024-02-29
  */
-public class CourseTargetParam {
+public class ObeCourseTargetParam {
 
     @ApiModelProperty("课程目标id(编辑必填)")
     @JsonSerialize(using = ToStringSerializer.class)
     @EditKey
     private Long id;
 
-    @ApiModelProperty("教学课程id")
+    @ApiModelProperty("课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    @NotNull(message = "缺少教学课程id")
-    @Range(min = 1L, message = "缺少教学课程id")
-    private Long teachCourseId;
+    @NotNull(message = "缺少课程大纲id")
+    @Range(min = 1L, message = "缺少课程大纲id")
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty("课程目标名称")
     @NotNull(message = "请输入课程目标")
@@ -47,12 +47,12 @@ public class CourseTargetParam {
         this.id = id;
     }
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public String getTargetName() {

+ 9 - 32
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/CourseWeightParam.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ObeCourseWeightParam.java

@@ -8,7 +8,6 @@ import org.hibernate.validator.constraints.Range;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -16,46 +15,24 @@ import java.util.List;
  * @Author: CaoZixuan
  * @Date: 2024-03-01
  */
-public class CourseWeightParam {
+public class ObeCourseWeightParam {
 
-    @ApiModelProperty("教学课程id")
+    @ApiModelProperty("课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    @NotNull(message = "缺少教学课程")
-    @Range(min = 1L, message = "缺少教学课程")
-    private Long teachCourseId;
-
-    @ApiModelProperty("默认占比")
-    private BigDecimal defaultRate;
-
-    @ApiModelProperty("自定义占比")
-    private BigDecimal customRate;
+    @NotNull(message = "缺少课程大纲id")
+    @Range(min = 1L, message = "缺少课程大纲id")
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty("课程权重表单")
     @NotEmpty(message = "缺少权重设置表单")
     private List<CourseWeightDto> submitForm;
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
-    }
-
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
-    }
-
-    public BigDecimal getDefaultRate() {
-        return defaultRate;
-    }
-
-    public void setDefaultRate(BigDecimal defaultRate) {
-        this.defaultRate = defaultRate;
-    }
-
-    public BigDecimal getCustomRate() {
-        return customRate;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setCustomRate(BigDecimal customRate) {
-        this.customRate = customRate;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public List<CourseWeightDto> getSubmitForm() {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/CourseEvaluationResult.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/ObeCourseEvaluationResult.java

@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @Author: CaoZixuan
  * @Date: 2024-02-29
  */
-public class CourseEvaluationResult {
+public class ObeCourseEvaluationResult {
 
     @ApiModelProperty("课程评价方式id")
     @JsonSerialize(using = ToStringSerializer.class)

+ 1 - 23
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/CourseWeightResult.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/ObeCourseWeightResult.java

@@ -13,13 +13,7 @@ import java.util.List;
  * @Author: CaoZixuan
  * @Date: 2024-03-07
  */
-public class CourseWeightResult {
-
-    @ApiModelProperty("默认占比")
-    private BigDecimal defaultRate;
-
-    @ApiModelProperty("自定义占比")
-    private BigDecimal customRate;
+public class ObeCourseWeightResult {
 
     @ApiModelProperty("权重设置标记")
     @JsonSerialize(using = ToStringSerializer.class)
@@ -32,22 +26,6 @@ public class CourseWeightResult {
     @ApiModelProperty("课程权重表单")
     private List<CourseWeightDto> submitForm;
 
-    public BigDecimal getDefaultRate() {
-        return defaultRate;
-    }
-
-    public void setDefaultRate(BigDecimal defaultRate) {
-        this.defaultRate = defaultRate;
-    }
-
-    public BigDecimal getCustomRate() {
-        return customRate;
-    }
-
-    public void setCustomRate(BigDecimal customRate) {
-        this.customRate = customRate;
-    }
-
     public Long getWeightSettingSign() {
         return weightSettingSign;
     }

+ 8 - 55
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CourseDimension.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseDimension.java

@@ -15,34 +15,19 @@ import io.swagger.annotations.ApiModelProperty;
  * @author CaoZixuan
  * @since 2024-02-27
  */
-@ApiModel(value="CourseDimension对象", description="课程知识点表")
-public class CourseDimension extends BaseEntity {
+@ApiModel(value="ObeCourseDimension对象", description="课程大纲知识点表")
+public class ObeCourseDimension extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "教学课程id")
+    @ApiModelProperty(value = "课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long teachCourseId;
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty(value = "学校id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
-    @ApiModelProperty(value = "学期id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long semesterId;
-
-    @ApiModelProperty(value = "考试id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long examId;
-
-    @ApiModelProperty(value = "课程编号")
-    private String courseCode;
-
-    @ApiModelProperty(value = "教师id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long userId;
-
     @ApiModelProperty(value = "来源")
     private CourseDimensionSourceEnum source;
 
@@ -59,12 +44,12 @@ public class CourseDimension extends BaseEntity {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long parentId;
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public Long getSchoolId() {
@@ -75,38 +60,6 @@ public class CourseDimension extends BaseEntity {
         this.schoolId = schoolId;
     }
 
-    public Long getSemesterId() {
-        return semesterId;
-    }
-
-    public void setSemesterId(Long semesterId) {
-        this.semesterId = semesterId;
-    }
-
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
     public CourseDimensionSourceEnum getSource() {
         return source;
     }

+ 7 - 42
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CourseEvaluation.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseEvaluation.java

@@ -16,29 +16,18 @@ import io.swagger.annotations.ApiModelProperty;
  * @since 2024-02-22
  */
 @ApiModel(value="CourseEvaluation对象", description="课程评价方式")
-public class CourseEvaluation extends BaseEntity {
+public class ObeCourseEvaluation extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "教学课程id")
+    @ApiModelProperty(value = "课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long teachCourseId;
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty(value = "学校id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
-    @ApiModelProperty(value = "考试id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long examId;
-
-    @ApiModelProperty(value = "课程编号")
-    private String courseCode;
-
-    @ApiModelProperty(value = "教师id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long userId;
-
     @ApiModelProperty(value = "类型(默认DEFAULT、自定义CUSTOM)")
     private CourseEvaluationTypeEnum type;
 
@@ -48,12 +37,12 @@ public class CourseEvaluation extends BaseEntity {
     @ApiModelProperty(value = "评价方式描述")
     private String evaluationDesc;
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public Long getSchoolId() {
@@ -64,30 +53,6 @@ public class CourseEvaluation extends BaseEntity {
         this.schoolId = schoolId;
     }
 
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
     public CourseEvaluationTypeEnum getType() {
         return type;
     }

+ 54 - 0
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.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 com.qmth.teachcloud.common.base.BaseEntity;
@@ -20,14 +22,22 @@ public class ObeCourseOutline extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "培养方案id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long cultureProgramId;
 
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
     @ApiModelProperty(value = "课程大纲名称")
     private String name;
 
     @ApiModelProperty(value = "修读学期id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long semesterId;
 
+    @ApiModelProperty(value = "课程id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long courseId;
 
     @ApiModelProperty(value = "考核方式")
@@ -37,8 +47,20 @@ public class ObeCourseOutline extends BaseEntity {
     private ObeCourseOutlineCourseTypeEnum courseType;
 
     @ApiModelProperty(value = "课程大纲责任人")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long userId;
 
+    @ApiModelProperty(value = "权重设置")
+    private Boolean weightSetting;
+
+    @ApiModelProperty(value = "权重设置标识")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long weightSettingSign;
+
+    @ApiModelProperty(value = "知识点标识")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dimensionSign;
+
     public Long getCultureProgramId() {
         return cultureProgramId;
     }
@@ -47,6 +69,14 @@ public class ObeCourseOutline extends BaseEntity {
         this.cultureProgramId = cultureProgramId;
     }
 
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
     public String getName() {
         return name;
     }
@@ -94,4 +124,28 @@ public class ObeCourseOutline extends BaseEntity {
     public void setUserId(Long userId) {
         this.userId = userId;
     }
+
+    public Boolean getWeightSetting() {
+        return weightSetting;
+    }
+
+    public void setWeightSetting(Boolean weightSetting) {
+        this.weightSetting = weightSetting;
+    }
+
+    public Long getWeightSettingSign() {
+        return weightSettingSign;
+    }
+
+    public void setWeightSettingSign(Long weightSettingSign) {
+        this.weightSettingSign = weightSettingSign;
+    }
+
+    public Long getDimensionSign() {
+        return dimensionSign;
+    }
+
+    public void setDimensionSign(Long dimensionSign) {
+        this.dimensionSign = dimensionSign;
+    }
 }

+ 7 - 42
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CourseTarget.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseTarget.java

@@ -17,29 +17,18 @@ import java.math.BigDecimal;
  * @since 2024-02-22
  */
 @ApiModel(value="CourseTarget对象", description="课程目标表")
-public class CourseTarget extends BaseEntity {
+public class ObeCourseTarget extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "教学课程id")
+    @ApiModelProperty(value = "课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long teachCourseId;
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty(value = "学校id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
-    @ApiModelProperty(value = "考试id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long examId;
-
-    @ApiModelProperty(value = "课程编号")
-    private String courseCode;
-
-    @ApiModelProperty(value = "教师id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long userId;
-
     @ApiModelProperty(value = "课程目标")
     private String targetName;
 
@@ -52,12 +41,12 @@ public class CourseTarget extends BaseEntity {
     @ApiModelProperty(value = "课程目标整体权重")
     private BigDecimal totalWeight;
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public Long getSchoolId() {
@@ -68,30 +57,6 @@ public class CourseTarget extends BaseEntity {
         this.schoolId = schoolId;
     }
 
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
     public String getTargetName() {
         return targetName;
     }

+ 7 - 41
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/CourseWeight.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ObeCourseWeight.java

@@ -17,27 +17,17 @@ import java.math.BigDecimal;
  * @since 2024-02-22
  */
 @ApiModel(value="CourseWeight对象", description="课程权重设置")
-public class CourseWeight extends BaseEntity {
+public class ObeCourseWeight extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "教学课程id")
+    @ApiModelProperty(value = "课程大纲id")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long teachCourseId;
+    private Long obeCourseOutlineId;
 
     @ApiModelProperty(value = "学校id")
     private Long schoolId;
 
-    @ApiModelProperty(value = "考试id")
-    private Long examId;
-
-    @ApiModelProperty(value = "课程编号")
-    private String courseCode;
-
-    @ApiModelProperty(value = "教师id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long userId;
-
     @ApiModelProperty(value = "课程目标表id")
     private Long targetId;
 
@@ -53,12 +43,12 @@ public class CourseWeight extends BaseEntity {
     @ApiModelProperty(value = "目标分值")
     private BigDecimal targetScore;
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getObeCourseOutlineId() {
+        return obeCourseOutlineId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setObeCourseOutlineId(Long obeCourseOutlineId) {
+        this.obeCourseOutlineId = obeCourseOutlineId;
     }
 
     public Long getSchoolId() {
@@ -69,30 +59,6 @@ public class CourseWeight extends BaseEntity {
         this.schoolId = schoolId;
     }
 
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
     public Long getTargetId() {
         return targetId;
     }

+ 0 - 27
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CourseEvaluationMapper.java

@@ -1,27 +0,0 @@
-package com.qmth.distributed.print.business.mapper;
-
-import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
-import com.qmth.distributed.print.business.entity.CourseEvaluation;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 课程评价方式 Mapper 接口
- * </p>
- *
- * @author CaoZixuan
- * @since 2024-02-22
- */
-public interface CourseEvaluationMapper extends BaseMapper<CourseEvaluation> {
-
-    /**
-     * 查询课程评价方式集合
-     *
-     * @param teachCourseId 教学课程id
-     * @return 课程评价方式列表
-     */
-    List<CourseEvaluationResult> findCourseEvaluationList(@Param("teachCourseId") Long teachCourseId);
-}

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CourseDimensionMapper.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseDimensionMapper.java

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.mapper;
 
-import com.qmth.distributed.print.business.entity.CourseDimension;
+import com.qmth.distributed.print.business.entity.ObeCourseDimension;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author CaoZixuan
  * @since 2024-02-27
  */
-public interface CourseDimensionMapper extends BaseMapper<CourseDimension> {
+public interface ObeCourseDimensionMapper extends BaseMapper<ObeCourseDimension> {
 
 }

+ 27 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseEvaluationMapper.java

@@ -0,0 +1,27 @@
+package com.qmth.distributed.print.business.mapper;
+
+import com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult;
+import com.qmth.distributed.print.business.entity.ObeCourseEvaluation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 课程评价方式 Mapper 接口
+ * </p>
+ *
+ * @author CaoZixuan
+ * @since 2024-02-22
+ */
+public interface ObeCourseEvaluationMapper extends BaseMapper<ObeCourseEvaluation> {
+
+    /**
+     * 查询课程评价方式集合
+     *
+     * @param obeCourseOutlineId 课程大纲id
+     * @return 课程评价方式列表
+     */
+    List<ObeCourseEvaluationResult> findCourseEvaluationList(@Param("obeCourseOutlineId") Long obeCourseOutlineId);
+}

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

@@ -20,7 +20,7 @@ import org.apache.ibatis.annotations.Param;
 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);
+            @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId,
+            @Param("courseOutlineName") String courseOutlineName, @Param("dpr") DataPermissionRule dpr);
 
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CourseTargetMapper.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseTargetMapper.java

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.mapper;
 
-import com.qmth.distributed.print.business.entity.CourseTarget;
+import com.qmth.distributed.print.business.entity.ObeCourseTarget;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-public interface CourseTargetMapper extends BaseMapper<CourseTarget> {
+public interface ObeCourseTargetMapper extends BaseMapper<ObeCourseTarget> {
 
 }

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/CourseWeightMapper.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseWeightMapper.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto;
-import com.qmth.distributed.print.business.entity.CourseWeight;
+import com.qmth.distributed.print.business.entity.ObeCourseWeight;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -15,12 +15,13 @@ import java.util.List;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-public interface CourseWeightMapper extends BaseMapper<CourseWeight> {
+public interface ObeCourseWeightMapper extends BaseMapper<ObeCourseWeight> {
 
     /**
      * 获取权重表单
-     * @param teachCourseId 教学课程id
+     *
+     * @param obeCourseOutlineId 课程大纲id
      * @return 表单
      */
-    List<CourseWeightFormDto> findCourseWeightForm(@Param("teachCourseId") Long teachCourseId);
+    List<CourseWeightFormDto> findCourseWeightForm(@Param("obeCourseOutlineId") Long obeCourseOutlineId);
 }

+ 0 - 49
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseEvaluationService.java

@@ -1,49 +0,0 @@
-package com.qmth.distributed.print.business.service;
-
-import com.qmth.distributed.print.business.bean.params.CourseEvaluationParam;
-import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
-import com.qmth.distributed.print.business.entity.CourseEvaluation;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.teachcloud.common.entity.SysUser;
-
-import java.util.List;
-
-/**
- * <p>
- * 课程评价方式 服务类
- * </p>
- *
- * @author CaoZixuan
- * @since 2024-02-22
- */
-public interface CourseEvaluationService extends IService<CourseEvaluation> {
-
-    /**
-     * 查询课程评价方式集合
-     *
-     * @param teachCourseId 教学课程id
-     * @return 课程评价方式结果
-     */
-    List<CourseEvaluationResult> findCourseEvaluationList(Long teachCourseId);
-
-    /**
-     * 保存课程评价方式
-     *
-     * @param courseEvaluationParam 课程评价方式参数
-     */
-    void saveCourseEvaluation(CourseEvaluationParam courseEvaluationParam);
-
-    /**
-     * 删除课程评价方式
-     *
-     * @param id 课程评价方式id
-     */
-    void deleteCourseEvaluation(Long id);
-
-    /**
-     * 创建默认的评价方式
-     *
-     * @param teachCourseId 教学课程id
-     */
-    void createDefaultCourseEvaluation(Long teachCourseId);
-}

+ 0 - 60
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseWeightService.java

@@ -1,60 +0,0 @@
-package com.qmth.distributed.print.business.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto;
-import com.qmth.distributed.print.business.bean.params.CourseWeightParam;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
-import com.qmth.distributed.print.business.entity.CourseWeight;
-import com.qmth.teachcloud.common.entity.SysUser;
-
-import java.util.List;
-
-/**
- * <p>
- * 课程权重设置 服务类
- * </p>
- *
- * @author CaoZixuan
- * @since 2024-02-22
- */
-public interface CourseWeightService extends IService<CourseWeight> {
-
-    /**
-     * 查询课程权重
-     *
-     * @param teachCourseId 教学课程id
-     * @return 课程权重信息
-     */
-    CourseWeightResult findCourseWeight(Long teachCourseId);
-
-    /**
-     * 查询课程权重(report)
-     *
-     * @param teachCourseId 教学课程id
-     * @return 课程权重信息
-     */
-    CourseWeightResult findCourseWeightReport(Long teachCourseId);
-
-    /**
-     * 保存课程权重
-     *
-     * @param courseWeightParam 课程权重参数
-     * @param requestUser       请求人
-     */
-    void saveCourseWeight(CourseWeightParam courseWeightParam, SysUser requestUser);
-
-    /**
-     * 删除课程权重设置
-     *
-     * @param teachCourseId 教学课程id
-     */
-    void deleteCourseWeight(Long teachCourseId);
-
-    /**
-     * 获取课程权重表单数据
-     *
-     * @param teachCourseId 教学课程id
-     * @return 课程权重表单平铺数据
-     */
-    List<CourseWeightFormDto> findCourseWeightForm(Long teachCourseId);
-}

+ 9 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseDimensionService.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseDimensionService.java

@@ -1,12 +1,10 @@
 package com.qmth.distributed.print.business.service;
 
-import com.qmth.distributed.print.business.entity.CourseDimension;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.ObeCourseDimension;
 import com.qmth.teachcloud.common.entity.SysUser;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
-
 /**
  * <p>
  * 课程知识点表 服务类
@@ -15,21 +13,21 @@ import java.io.IOException;
  * @author CaoZixuan
  * @since 2024-02-27
  */
-public interface CourseDimensionService extends IService<CourseDimension> {
+public interface ObeCourseDimensionService extends IService<ObeCourseDimension> {
 
     /**
      * 导入课程知识点
      *
-     * @param requestUser   请求人
-     * @param file          知识点excel
-     * @param teachCourseId 教学课程id
+     * @param requestUser        请求人
+     * @param file               知识点excel
+     * @param obeCourseOutlineId 课程大纲id
      */
-    void importCourseDimension(SysUser requestUser, MultipartFile file, Long teachCourseId) throws Exception;
+    void importCourseDimension(SysUser requestUser, MultipartFile file, Long obeCourseOutlineId) throws Exception;
 
     /**
      * 同步题库课程知识点属性
      *
-     * @param teachCourseId 教学课程id
+     * @param obeCourseOutlineId 课程大纲id
      */
-    void syncTikuCourseProperties(Long teachCourseId);
-}
+    void syncTikuCourseProperties(Long obeCourseOutlineId);
+}

+ 48 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseEvaluationService.java

@@ -0,0 +1,48 @@
+package com.qmth.distributed.print.business.service;
+
+import com.qmth.distributed.print.business.bean.params.ObeCourseEvaluationParam;
+import com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult;
+import com.qmth.distributed.print.business.entity.ObeCourseEvaluation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 课程评价方式 服务类
+ * </p>
+ *
+ * @author CaoZixuan
+ * @since 2024-02-22
+ */
+public interface ObeCourseEvaluationService extends IService<ObeCourseEvaluation> {
+
+    /**
+     * 查询课程评价方式集合
+     *
+     * @param obeCourseOutlineId 课程大纲id
+     * @return 课程评价方式结果
+     */
+    List<ObeCourseEvaluationResult> findCourseEvaluationList(Long obeCourseOutlineId);
+
+    /**
+     * 保存课程评价方式
+     *
+     * @param obeCourseEvaluationParam 课程评价方式参数
+     */
+    void saveCourseEvaluation(ObeCourseEvaluationParam obeCourseEvaluationParam);
+
+    /**
+     * 删除课程评价方式
+     *
+     * @param id 课程评价方式id
+     */
+    void deleteCourseEvaluation(Long id);
+
+    /**
+     * 创建默认的评价方式
+     *
+     * @param obeCourseOutlineId 课程大纲id
+     */
+    void createDefaultCourseEvaluation(Long obeCourseOutlineId);
+}

+ 29 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseOutlineService.java

@@ -2,9 +2,11 @@ package com.qmth.distributed.print.business.service;
 
 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.params.ObeCourseOutlineParam;
+import com.qmth.distributed.print.business.bean.result.CourseWeightSettingStatusResult;
 import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
 import com.qmth.distributed.print.business.entity.ObeCourseOutline;
+import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
 
 /**
  * <p>
@@ -19,28 +21,44 @@ public interface ObeCourseOutlineService extends IService<ObeCourseOutline> {
     /**
      * 课程大纲分页查询
      *
-     * @param majorId          专业id
-     * @param semesterId       学期id
-     * @param cultureProgramId 培养方式id
-     * @param courseId         课程id
-     * @param pageNumber       分页页码
-     * @param pageSize         分页容量
+     * @param professionalId    专业id
+     * @param cultureProgramId  培养方式id
+     * @param courseId          课程id
+     * @param courseOutlineName 课程大纲名称
+     * @param pageNumber        分页页码
+     * @param pageSize          分页容量
      * @return 分页数据
      */
-    IPage<ObeCourseOutlineResult> obeCourseOutlinePage(Long majorId, Long semesterId, Long cultureProgramId,
-            Long courseId, int pageNumber, int pageSize);
+    IPage<ObeCourseOutlineResult> findObeCourseOutlinePage(Long professionalId, Long cultureProgramId, Long courseId,
+            String courseOutlineName, int pageNumber, int pageSize);
 
     /**
      * 课程大纲保存
      *
      * @param obeCourseOutlineParams 课程大纲
      */
-    void obeCourseOutlineSave(ObeCourseOutlineParams obeCourseOutlineParams);
+    void saveObeCourseOutline(ObeCourseOutlineParam obeCourseOutlineParams);
 
     /**
      * 课程大纲删除
      *
      * @param id id
      */
-    void obeCourseOutlineRemove(Long id);
+    void removeObeCourseOutline(Long id);
+
+    /**
+     * 清除课程目标、评价、权重设置
+     *
+     * @param obeCourseOutlineId    课程大纲id
+     * @param courseSettingTypeEnum 课程设置类型
+     */
+    void clearCourseSetting(Long obeCourseOutlineId, CourseSettingTypeEnum courseSettingTypeEnum);
+
+    /**
+     * 查询课程权重设置状态
+     *
+     * @param obeCourseOutlineId 课程大纲id
+     * @return 课程权重设置状态
+     */
+    CourseWeightSettingStatusResult findCourseWeightSettingStatus(Long obeCourseOutlineId);
 }

+ 14 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CourseTargetService.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseTargetService.java

@@ -1,11 +1,11 @@
 package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.bean.params.CourseTargetParam;
+import com.qmth.distributed.print.business.bean.params.ObeCourseTargetParam;
 import com.qmth.distributed.print.business.bean.result.CourseDimensionTree;
 import com.qmth.distributed.print.business.bean.result.CourseTargetResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
-import com.qmth.distributed.print.business.entity.CourseTarget;
+import com.qmth.distributed.print.business.entity.ObeCourseTarget;
 import com.qmth.teachcloud.common.entity.SysUser;
 
 import java.util.List;
@@ -18,31 +18,31 @@ import java.util.List;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-public interface CourseTargetService extends IService<CourseTarget> {
+public interface ObeCourseTargetService extends IService<ObeCourseTarget> {
 
     /**
      * 查询课程目标集合
      *
-     * @param teachCourseId 教学课程id
+     * @param obeCourseOutlineId 课程大纲id
      * @return 目标集合
      */
-    List<CourseTargetResult> findCourseTargetList(Long teachCourseId);
+    List<CourseTargetResult> findCourseTargetList(Long obeCourseOutlineId);
 
     /**
      * 查询知识点树
      *
-     * @param teachCourseId 教学课程id
+     * @param obeCourseOutlineId 课程大纲id
      * @return 课程知识点树
      */
-    List<CourseDimensionTree> findDimensionTree(Long teachCourseId);
+    List<CourseDimensionTree> findDimensionTree(Long obeCourseOutlineId);
 
     /**
      * 保存课程目标
      *
-     * @param courseTargetParam 课程目标参数
-     * @param requestUser       请求人
+     * @param obeCourseTargetParam 课程目标参数
+     * @param requestUser          请求人
      */
-    void saveCourseTarget(CourseTargetParam courseTargetParam, SysUser requestUser);
+    void saveCourseTarget(ObeCourseTargetParam obeCourseTargetParam, SysUser requestUser);
 
     /**
      * 删除课程目标
@@ -54,9 +54,10 @@ public interface CourseTargetService extends IService<CourseTarget> {
     /**
      * 查询题库试卷结构(知识点)
      *
-     * @param teachCourseId 教学课程id
-     * @param paperNumber   试卷编号
+     * @param obeCourseOutlineId 课程大纲id
+     * @param paperNumber        试卷编号
+     * @param examId             考试id
      * @return 试卷结构
      */
-    List<PaperStructDimensionResult> findTikuPaperStruct(Long teachCourseId, String paperNumber);
+    List<PaperStructDimensionResult> findTikuPaperStruct(Long obeCourseOutlineId, String paperNumber, Long examId);
 }

+ 60 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCourseWeightService.java

@@ -0,0 +1,60 @@
+package com.qmth.distributed.print.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto;
+import com.qmth.distributed.print.business.bean.params.ObeCourseWeightParam;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
+import com.qmth.distributed.print.business.entity.ObeCourseWeight;
+import com.qmth.teachcloud.common.entity.SysUser;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 课程权重设置 服务类
+ * </p>
+ *
+ * @author CaoZixuan
+ * @since 2024-02-22
+ */
+public interface ObeCourseWeightService extends IService<ObeCourseWeight> {
+
+    /**
+     * 查询课程权重
+     *
+     * @param obeCourseOutlineId 教学课程id
+     * @return 课程权重信息
+     */
+    ObeCourseWeightResult findCourseWeight(Long obeCourseOutlineId);
+
+    /**
+     * 查询课程权重(report)
+     *
+     * @param obeCourseOutlineId 教学课程id
+     * @return 课程权重信息
+     */
+    ObeCourseWeightResult findCourseWeightReport(Long obeCourseOutlineId);
+
+    /**
+     * 保存课程权重
+     *
+     * @param obeCourseWeightParam 课程权重参数
+     * @param requestUser       请求人
+     */
+    void saveCourseWeight(ObeCourseWeightParam obeCourseWeightParam, SysUser requestUser);
+
+    /**
+     * 删除课程权重设置
+     *
+     * @param obeCourseOutlineId 教学课程id
+     */
+    void deleteCourseWeight(Long obeCourseOutlineId);
+
+    /**
+     * 获取课程权重表单数据
+     *
+     * @param obeCourseOutlineId 教学课程id
+     * @return 课程权重表单平铺数据
+     */
+    List<CourseWeightFormDto> findCourseWeightForm(Long obeCourseOutlineId);
+}

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TRBasicInfoService.java

@@ -6,7 +6,7 @@ import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.dto.report.CourseTargetWordDto;
 import com.qmth.distributed.print.business.bean.dto.report.ReportCourseEvaluationResultDto;
 import com.qmth.distributed.print.business.bean.dto.report.ReportScoreViewDto;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.bean.result.report.word.CourseReportBean;
 import com.qmth.distributed.print.business.entity.TRBasicInfo;
@@ -50,10 +50,10 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      *
      * @param trBasicInfo
      * @param paperStructDimensionResultList
-     * @param courseWeightResult
+     * @param obeCourseWeightResult
      * @return
      */
-    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, CourseWeightResult courseWeightResult);
+    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult);
 
     /**
      * 计算课程考核成绩评价结果
@@ -70,11 +70,11 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * @param trBasicInfo
      * @param markPaper
      * @param userId
-     * @param courseWeightResult
+     * @param obeCourseWeightResult
      * @param teachCourseId
      * @return
      */
-    public TRBasicInfo getReportView(TRBasicInfo trBasicInfo, MarkPaper markPaper, Long userId, CourseWeightResult courseWeightResult, Long teachCourseId);
+    public TRBasicInfo getReportView(TRBasicInfo trBasicInfo, MarkPaper markPaper, Long userId, ObeCourseWeightResult obeCourseWeightResult, Long teachCourseId);
 
     /**
      * 构建word动态表格1-课程目标与毕业要求指标点的对应关系
@@ -134,7 +134,7 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * @param teachCourseId
      * @return
      */
-    public CourseWeightResult findCourseWeightResultRmi(Long teachCourseId);
+    public ObeCourseWeightResult findCourseWeightResultRmi(Long teachCourseId);
 
     /**
      * 查找课程评价值

+ 0 - 16
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachCourseService.java

@@ -146,22 +146,6 @@ public interface TeachCourseService extends IService<TeachCourse> {
      */
     TeachCourse findByExamIdCourseCodeAndUserId(Long examId, String courseCode, Long userId);
 
-    /**
-     * 清除课程目标、评价、权重设置
-     *
-     * @param teachCourseId         教学课程id
-     * @param courseSettingTypeEnum 课程设置类型
-     */
-    void clearCourseSetting(Long teachCourseId, CourseSettingTypeEnum courseSettingTypeEnum);
-
-    /**
-     * 查询课程权重设置状态
-     *
-     * @param teachCourseId         教学课程id
-     * @return 课程权重设置状态
-     */
-    CourseWeightSettingStatusResult findCourseWeightSettingStatus(Long teachCourseId);
-
     /**
      * 查询班级分配情况
      *

+ 0 - 149
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseEvaluationServiceImpl.java

@@ -1,149 +0,0 @@
-package com.qmth.distributed.print.business.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.distributed.print.business.bean.params.CourseEvaluationParam;
-import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
-import com.qmth.distributed.print.business.entity.CourseEvaluation;
-import com.qmth.distributed.print.business.entity.CourseWeight;
-import com.qmth.distributed.print.business.entity.TeachCourse;
-import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
-import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
-import com.qmth.distributed.print.business.mapper.CourseEvaluationMapper;
-import com.qmth.distributed.print.business.service.CourseEvaluationService;
-import com.qmth.distributed.print.business.service.CourseWeightService;
-import com.qmth.distributed.print.business.service.TeachCourseService;
-import com.qmth.teachcloud.common.base.BaseEntity;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.util.ServletUtil;
-import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- * 课程评价方式 服务实现类
- * </p>
- *
- * @author CaoZixuan
- * @since 2024-02-22
- */
-@Service
-public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMapper, CourseEvaluation> implements CourseEvaluationService {
-
-    @Resource
-    private TeachCourseService teachCourseService;
-    @Resource
-    private CourseWeightService courseWeightService;
-
-    @Override
-    public List<CourseEvaluationResult> findCourseEvaluationList(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
-        }
-        return this.baseMapper.findCourseEvaluationList(teachCourseId);
-    }
-
-    @Transactional
-    @Override
-    public void saveCourseEvaluation(CourseEvaluationParam courseEvaluationParam) {
-        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-
-        Long id = courseEvaluationParam.getId();
-        Long teachCourseId = courseEvaluationParam.getTeachCourseId();
-        String evaluation = courseEvaluationParam.getEvaluation();
-        String evaluationDesc = courseEvaluationParam.getEvaluationDesc();
-        CourseEvaluationTypeEnum type = courseEvaluationParam.getType();
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
-        }
-        Long examId = teachCourse.getExamId();
-        String courseCode = teachCourse.getCourseCode();
-
-        if (SystemConstant.longNotNull(id)) {
-            // 编辑(只允许更改评价方式描述)
-            CourseEvaluation db = this.getById(id);
-            if (Objects.isNull(db)) {
-                throw ExceptionResultEnum.ERROR.exception("评价方式不存在");
-            }
-            if (!Objects.equals(db.getEvaluationDesc(), evaluationDesc)) {
-                db.updateInfo(requestUser.getId());
-                db.setEvaluationDesc(evaluationDesc);
-                this.updateById(db);
-
-                // 重置权重设置标识
-                teachCourseService.update(new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, teachCourseId)
-                        .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid()));
-            }
-        } else {
-            // 新增
-            if (this.count(
-                    new QueryWrapper<CourseEvaluation>().lambda().eq(CourseEvaluation::getTeachCourseId, teachCourseId)
-                            .eq(CourseEvaluation::getEvaluation, evaluation)) > 0) {
-                throw ExceptionResultEnum.ERROR.exception("评价方式重复");
-            }
-            CourseEvaluation courseEvaluation = new CourseEvaluation();
-            courseEvaluation.setTeachCourseId(teachCourseId);
-            courseEvaluation.setSchoolId(teachCourse.getSchoolId());
-            courseEvaluation.setExamId(examId);
-            courseEvaluation.setCourseCode(courseCode);
-            courseEvaluation.setUserId(teachCourse.getUserId());
-            courseEvaluation.setType(type);
-            courseEvaluation.setEvaluation(evaluation);
-            courseEvaluation.setEvaluationDesc(evaluationDesc);
-            courseEvaluation.insertInfo(requestUser.getId());
-            this.save(courseEvaluation);
-        }
-    }
-
-    @Transactional
-    @Override
-    public void deleteCourseEvaluation(Long id) {
-        CourseEvaluation courseEvaluation = this.getById(id);
-        if (Objects.nonNull(courseEvaluation)) {
-            if (CourseEvaluationTypeEnum.DEFAULT.equals(courseEvaluation.getType())) {
-                throw ExceptionResultEnum.ERROR.exception(String.format("[%s]的评价方式不能删除", CourseEvaluationTypeEnum.DEFAULT.getType()));
-            }
-            Long teachCourseId = courseEvaluation.getTeachCourseId();
-
-            // 该评价方式涉及到的权重
-            List<CourseWeight> courseWeightList = courseWeightService.list(
-                    new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId)
-                            .eq(CourseWeight::getEvaluationId, id));
-
-            if (CollectionUtils.isNotEmpty(courseWeightList)) {
-                if (courseWeightList.stream().anyMatch(CourseWeight::getEnable)) {
-                    // 该评价方式有被用到,删除所有权重设置
-                    teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_EVALUATION);
-                } else {
-                    // 该评价方式没有用到,删除权重中涉及该评价方式的记录
-                    teachCourseService.removeByIds(courseWeightList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
-                }
-            }
-            this.removeById(id);
-        }
-    }
-
-    @Transactional
-    @Override
-    public void createDefaultCourseEvaluation(Long teachCourseId) {
-        // 创建默认评价方式
-        CourseEvaluationTypeEnum type = CourseEvaluationTypeEnum.DEFAULT;
-        CourseEvaluationParam courseEvaluationParam = new CourseEvaluationParam();
-        courseEvaluationParam.setTeachCourseId(teachCourseId);
-        courseEvaluationParam.setEvaluation(type.getName());
-        courseEvaluationParam.setEvaluationDesc(type.getValue());
-        courseEvaluationParam.setType(type);
-        this.saveCourseEvaluation(courseEvaluationParam);
-    }
-}

+ 46 - 65
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseDimensionServiceImpl.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseDimensionServiceImpl.java

@@ -5,22 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.CourseDimensionImportDto;
 import com.qmth.distributed.print.business.bean.dto.CourseDimensionMd5Dto;
-import com.qmth.distributed.print.business.entity.CourseDimension;
-import com.qmth.distributed.print.business.entity.TeachCourse;
+import com.qmth.distributed.print.business.entity.ObeCourseDimension;
+import com.qmth.distributed.print.business.entity.ObeCourseOutline;
 import com.qmth.distributed.print.business.enums.CourseDimensionCodeEnum;
 import com.qmth.distributed.print.business.enums.CourseDimensionSourceEnum;
 import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
-import com.qmth.distributed.print.business.mapper.CourseDimensionMapper;
-import com.qmth.distributed.print.business.service.BasicExamService;
-import com.qmth.distributed.print.business.service.CourseDimensionService;
-import com.qmth.distributed.print.business.service.TeachCourseService;
+import com.qmth.distributed.print.business.mapper.ObeCourseDimensionMapper;
+import com.qmth.distributed.print.business.service.ObeCourseDimensionService;
+import com.qmth.distributed.print.business.service.ObeCourseOutlineService;
 import com.qmth.teachcloud.common.bean.result.ExcelResult;
 import com.qmth.teachcloud.common.bean.tiku.TikuCourseProperty;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.BasicExam;
+import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.kit.TikuUtils;
+import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
@@ -45,35 +45,28 @@ import java.util.stream.Stream;
  * @since 2024-02-27
  */
 @Service
-public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMapper, CourseDimension> implements CourseDimensionService {
+public class ObeCourseDimensionServiceImpl extends ServiceImpl<ObeCourseDimensionMapper, ObeCourseDimension> implements
+        ObeCourseDimensionService {
 
     @Resource
-    TeachCourseService teachCourseService;
+    ObeCourseOutlineService obeCourseOutlineService;
 
     @Resource
-    BasicExamService basicExamService;
+    TikuUtils tikuUtils;
 
     @Resource
-    TikuUtils tikuUtils;
+    BasicCourseService basicCourseService;
 
     @Transactional
     @Override
-    public void importCourseDimension(SysUser requestUser, MultipartFile file, Long teachCourseId) throws Exception {
+    public void importCourseDimension(SysUser requestUser, MultipartFile file, Long obeCourseOutlineId) throws Exception {
         Long requestUserId = requestUser.getId();
         Long schoolId = requestUser.getSchoolId();
 
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
-        }
-        Long examId = teachCourse.getExamId();
-        String courseCode = teachCourse.getCourseCode();
-
-        BasicExam basicExam = basicExamService.getById(examId);
-        if (Objects.isNull(basicExam)) {
-            throw ExceptionResultEnum.ERROR.exception("考试不存在");
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
-        Long semesterId = SystemConstant.convertIdToLong(basicExam.getSemesterId());
 
         ExcelResult<CourseDimensionImportDto> excelResult = ConvertUtil.analyzeExcel(file.getInputStream(),
                 CourseDimensionImportDto.class, false, 1);
@@ -108,20 +101,16 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
                 dimensionMap.put(firstDimensionName, sl);
             }
         }
-        CourseDimension temp = new CourseDimension();
-        temp.setTeachCourseId(teachCourseId);
+        ObeCourseDimension temp = new ObeCourseDimension();
+        temp.setObeCourseOutlineId(obeCourseOutlineId);
         temp.setSchoolId(schoolId);
-        temp.setSemesterId(semesterId);
-        temp.setExamId(examId);
-        temp.setCourseCode(courseCode);
-        temp.setUserId(teachCourse.getUserId());
         temp.setSource(CourseDimensionSourceEnum.IMPORT);
 
-        List<CourseDimension> willSaveDimensions = new ArrayList<>();
+        List<ObeCourseDimension> willSaveDimensions = new ArrayList<>();
 
         AtomicInteger firstNumber = new AtomicInteger(0);
         for (String firstDimensionName : dimensionMap.keySet()) {
-            CourseDimension first = new CourseDimension();
+            ObeCourseDimension first = new ObeCourseDimension();
             int index = firstNumber.incrementAndGet();
             BeanUtils.copyProperties(temp, first);
             String firstCode = CourseDimensionCodeEnum.getCodeByIndex(index);
@@ -135,7 +124,7 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
             List<String> secondDimensionList = dimensionMap.get(firstDimensionName);
             Long firstId = first.getId();
             for (int i = 0; i < secondDimensionList.size(); i++) {
-                CourseDimension second = new CourseDimension();
+                ObeCourseDimension second = new ObeCourseDimension();
                 int secondIndex = i + 1;
                 BeanUtils.copyProperties(temp, second);
                 String secondCode = firstCode + secondIndex;
@@ -147,52 +136,44 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
                 willSaveDimensions.add(second);
             }
         }
-        List<CourseDimension> dbList = this.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
+        List<ObeCourseDimension> dbList = this.list(new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId));
         String dbMd5 = this.buildCourseDimensionMd5(dbList);
         String willAddMd5 = this.buildCourseDimensionMd5(willSaveDimensions);
         if (!willAddMd5.equals(dbMd5)) {
             // 删除课程设置
-            teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_DIMENSION);
+            obeCourseOutlineService.clearCourseSetting(obeCourseOutlineId, CourseSettingTypeEnum.COURSE_DIMENSION);
             this.saveBatch(willSaveDimensions);
         }
     }
 
     @Transactional
     @Override
-    public void syncTikuCourseProperties(Long teachCourseId) {
+    public void syncTikuCourseProperties(Long obeCourseOutlineId) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long requestUserId = requestUser.getId();
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
-        Long examId = teachCourse.getExamId();
-        String courseCode = teachCourse.getCourseCode();
-        Long schoolId = teachCourse.getSchoolId();
-        BasicExam basicExam = basicExamService.getById(examId);
-        if (Objects.isNull(basicExam)) {
-            throw ExceptionResultEnum.ERROR.exception("考试不存在");
+        Long schoolId = courseOutline.getSchoolId();
+        Long courseId = courseOutline.getCourseId();
+        BasicCourse basicCourse = basicCourseService.getById(courseId);
+        if (Objects.isNull(basicCourse)) {
+            throw ExceptionResultEnum.ERROR.exception("基础课程不存在");
         }
-        Long semesterId = SystemConstant.convertIdToLong(basicExam.getSemesterId());
 
-        List<CourseDimension> courseDimensionList = this.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
+        List<ObeCourseDimension> obeCourseDimensionList = this.list(new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId));
 
-        if (courseDimensionList.stream().noneMatch(e -> CourseDimensionSourceEnum.IMPORT.equals(e.getSource()))) {
+        if (obeCourseDimensionList.stream().noneMatch(e -> CourseDimensionSourceEnum.IMPORT.equals(e.getSource()))) {
             // 表里没有导入的知识点记录,从题库获取
-            List<TikuCourseProperty> tikuDimensionList = tikuUtils.listCourseProperty(teachCourse.getSchoolId(),
-                    courseCode);
+            List<TikuCourseProperty> tikuDimensionList = tikuUtils.listCourseProperty(courseOutline.getSchoolId(),
+                    basicCourse.getCode());
             if (CollectionUtils.isNotEmpty(tikuDimensionList)) {
-                CourseDimension temp = new CourseDimension();
-                temp.setTeachCourseId(teachCourseId);
+                ObeCourseDimension temp = new ObeCourseDimension();
+                temp.setObeCourseOutlineId(obeCourseOutlineId);
                 temp.setSchoolId(schoolId);
-                temp.setSemesterId(semesterId);
-                temp.setExamId(examId);
-                temp.setCourseCode(courseCode);
-                temp.setUserId(teachCourse.getUserId());
                 temp.setSource(CourseDimensionSourceEnum.UNION_QUESTION);
-                List<CourseDimension> willAddList = new ArrayList<>();
+                List<ObeCourseDimension> willAddList = new ArrayList<>();
 
                 for (TikuCourseProperty first : tikuDimensionList) {
                     Long fParentId = first.getParentId();
@@ -203,7 +184,7 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
                     String fCode = first.getCode();
                     int fNumber = Integer.parseInt(first.getNumber());
 
-                    CourseDimension willAddFirst = new CourseDimension();
+                    ObeCourseDimension willAddFirst = new ObeCourseDimension();
                     BeanUtils.copyProperties(temp, willAddFirst);
                     willAddFirst.setCode(fCode);
                     willAddFirst.setName(fName);
@@ -219,7 +200,7 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
                         String sCode = second.getCode();
                         int sNumber = Integer.parseInt(second.getNumber());
 
-                        CourseDimension willAddSecond = new CourseDimension();
+                        ObeCourseDimension willAddSecond = new ObeCourseDimension();
                         BeanUtils.copyProperties(temp, willAddSecond);
                         willAddSecond.setCode(sCode);
                         willAddSecond.setName(sName);
@@ -231,12 +212,12 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
                 }
 
                 if (CollectionUtils.isNotEmpty(willAddList)) {
-                    String dbMd5 = this.buildCourseDimensionMd5(courseDimensionList.stream().filter(e -> CourseDimensionSourceEnum.UNION_QUESTION.equals(e.getSource()))
+                    String dbMd5 = this.buildCourseDimensionMd5(obeCourseDimensionList.stream().filter(e -> CourseDimensionSourceEnum.UNION_QUESTION.equals(e.getSource()))
                             .collect(Collectors.toList()));
                     String willAddMd5 = this.buildCourseDimensionMd5(willAddList);
                     if (!willAddMd5.equals(dbMd5)) {
                         // 如果题库知识点和之前的题库知识点不一致,删除原先的并新增
-                        teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_DIMENSION);
+                        obeCourseOutlineService.clearCourseSetting(obeCourseOutlineId, CourseSettingTypeEnum.COURSE_DIMENSION);
                         this.saveBatch(willAddList);
                     }
                 }
@@ -247,11 +228,11 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
     /**
      * 构建知识点md5
      *
-     * @param courseDimensionList 课程知识点集合
+     * @param obeCourseDimensionList 课程知识点集合
      * @return MD5
      */
-    private String buildCourseDimensionMd5(List<CourseDimension> courseDimensionList) {
-        List<CourseDimensionMd5Dto> md5List = courseDimensionList.stream().flatMap(e -> {
+    private String buildCourseDimensionMd5(List<ObeCourseDimension> obeCourseDimensionList) {
+        List<CourseDimensionMd5Dto> md5List = obeCourseDimensionList.stream().flatMap(e -> {
             CourseDimensionMd5Dto dto = new CourseDimensionMd5Dto();
             dto.setCode(e.getCode());
             dto.setName(e.getName());

+ 146 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseEvaluationServiceImpl.java

@@ -0,0 +1,146 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.params.ObeCourseEvaluationParam;
+import com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult;
+import com.qmth.distributed.print.business.entity.ObeCourseWeight;
+import com.qmth.distributed.print.business.entity.ObeCourseEvaluation;
+import com.qmth.distributed.print.business.entity.ObeCourseOutline;
+import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
+import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
+import com.qmth.distributed.print.business.mapper.ObeCourseEvaluationMapper;
+import com.qmth.distributed.print.business.service.ObeCourseWeightService;
+import com.qmth.distributed.print.business.service.ObeCourseEvaluationService;
+import com.qmth.distributed.print.business.service.ObeCourseOutlineService;
+import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 课程评价方式 服务实现类
+ * </p>
+ *
+ * @author CaoZixuan
+ * @since 2024-02-22
+ */
+@Service
+public class ObeCourseEvaluationServiceImpl extends ServiceImpl<ObeCourseEvaluationMapper, ObeCourseEvaluation> implements
+        ObeCourseEvaluationService {
+
+    @Resource
+    private ObeCourseOutlineService obeCourseOutlineService;
+
+    @Resource
+    private ObeCourseWeightService obeCourseWeightService;
+
+    @Override
+    public List<ObeCourseEvaluationResult> findCourseEvaluationList(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
+        }
+        return this.baseMapper.findCourseEvaluationList(obeCourseOutlineId);
+    }
+
+    @Transactional
+    @Override
+    public void saveCourseEvaluation(ObeCourseEvaluationParam obeCourseEvaluationParam) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+
+        Long id = obeCourseEvaluationParam.getId();
+        Long obeCourseOutlineId = obeCourseEvaluationParam.getObeCourseOutlineId();
+        String evaluation = obeCourseEvaluationParam.getEvaluation();
+        String evaluationDesc = obeCourseEvaluationParam.getEvaluationDesc();
+        CourseEvaluationTypeEnum type = obeCourseEvaluationParam.getType();
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
+        }
+
+        if (SystemConstant.longNotNull(id)) {
+            // 编辑(只允许更改评价方式描述)
+            ObeCourseEvaluation db = this.getById(id);
+            if (Objects.isNull(db)) {
+                throw ExceptionResultEnum.ERROR.exception("评价方式不存在");
+            }
+            if (!Objects.equals(db.getEvaluationDesc(), evaluationDesc)) {
+                db.updateInfo(requestUser.getId());
+                db.setEvaluationDesc(evaluationDesc);
+                this.updateById(db);
+
+                // 重置权重设置标识
+                obeCourseOutlineService.update(
+                        new UpdateWrapper<ObeCourseOutline>().lambda().eq(ObeCourseOutline::getId, obeCourseOutlineId).set(ObeCourseOutline::getWeightSettingSign, SystemConstant.getDbUuid()));
+            }
+        } else {
+            // 新增
+            if (this.count(new QueryWrapper<ObeCourseEvaluation>().lambda()
+                    .eq(ObeCourseEvaluation::getObeCourseOutlineId, obeCourseOutlineId).eq(ObeCourseEvaluation::getEvaluation, evaluation)) > 0) {
+                throw ExceptionResultEnum.ERROR.exception("评价方式重复");
+            }
+            ObeCourseEvaluation obeCourseEvaluation = new ObeCourseEvaluation();
+            obeCourseEvaluation.setObeCourseOutlineId(obeCourseOutlineId);
+            obeCourseEvaluation.setSchoolId(courseOutline.getSchoolId());
+            obeCourseEvaluation.setType(type);
+            obeCourseEvaluation.setEvaluation(evaluation);
+            obeCourseEvaluation.setEvaluationDesc(evaluationDesc);
+            obeCourseEvaluation.insertInfo(requestUser.getId());
+            this.save(obeCourseEvaluation);
+        }
+    }
+
+    @Transactional
+    @Override
+    public void deleteCourseEvaluation(Long id) {
+        ObeCourseEvaluation obeCourseEvaluation = this.getById(id);
+        if (Objects.nonNull(obeCourseEvaluation)) {
+            if (CourseEvaluationTypeEnum.DEFAULT.equals(obeCourseEvaluation.getType())) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("[%s]的评价方式不能删除", CourseEvaluationTypeEnum.DEFAULT.getType()));
+            }
+            Long obeCourseOutlineId = obeCourseEvaluation.getObeCourseOutlineId();
+
+            // 该评价方式涉及到的权重
+            List<ObeCourseWeight> obeCourseWeightList = obeCourseWeightService.list(
+                    new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, obeCourseOutlineId)
+                            .eq(ObeCourseWeight::getEvaluationId, id));
+
+            if (CollectionUtils.isNotEmpty(obeCourseWeightList)) {
+                if (obeCourseWeightList.stream().anyMatch(ObeCourseWeight::getEnable)) {
+                    // 该评价方式有被用到,删除所有权重设置
+                    obeCourseOutlineService.clearCourseSetting(obeCourseOutlineId, CourseSettingTypeEnum.COURSE_EVALUATION);
+                } else {
+                    // 该评价方式没有用到,删除权重中涉及该评价方式的记录
+                    obeCourseOutlineService.removeByIds(
+                            obeCourseWeightList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
+                }
+            }
+            this.removeById(id);
+        }
+    }
+
+    @Transactional
+    @Override
+    public void createDefaultCourseEvaluation(Long obeCourseOutlineId) {
+        // 创建默认评价方式
+        CourseEvaluationTypeEnum type = CourseEvaluationTypeEnum.DEFAULT;
+        ObeCourseEvaluationParam obeCourseEvaluationParam = new ObeCourseEvaluationParam();
+        obeCourseEvaluationParam.setObeCourseOutlineId(obeCourseOutlineId);
+        obeCourseEvaluationParam.setEvaluation(type.getName());
+        obeCourseEvaluationParam.setEvaluationDesc(type.getValue());
+        obeCourseEvaluationParam.setType(type);
+        this.saveCourseEvaluation(obeCourseEvaluationParam);
+    }
+}

+ 134 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseOutlineServiceImpl.java

@@ -1,21 +1,30 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.params.ObeCourseOutlineParam;
+import com.qmth.distributed.print.business.bean.result.CourseWeightSettingStatusResult;
 import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
-import com.qmth.distributed.print.business.entity.ObeCourseOutline;
+import com.qmth.distributed.print.business.entity.*;
+import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineCourseTypeEnum;
+import com.qmth.distributed.print.business.enums.ObeCourseOutlineEvaluationEnum;
 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.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 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 org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.Objects;
 
 /**
  * <p>
@@ -31,23 +40,137 @@ public class ObeCourseOutlineServiceImpl extends ServiceImpl<ObeCourseOutlineMap
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
-    @Override
-    public IPage<ObeCourseOutlineResult> obeCourseOutlinePage(Long majorId, Long semesterId, Long cultureProgramId, Long courseId, int pageNumber, int pageSize) {
+    @Resource
+    private ObeCourseEvaluationService obeCourseEvaluationService;
+
+    @Resource
+    private ObeCourseDimensionService obeCourseDimensionService;
 
+    @Resource
+    private ObeCourseTargetService obeCourseTargetService;
+
+    @Resource
+    private ObeCourseWeightService obeCourseWeightService;
+
+    @Override
+    public IPage<ObeCourseOutlineResult> findObeCourseOutlinePage(Long professionalId, Long cultureProgramId, Long courseId,
+            String courseOutlineName, int pageNumber, int pageSize) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        courseOutlineName = SystemConstant.translateSpecificSign(courseOutlineName);
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(requestUser.getSchoolId(),
                 requestUser.getId(), ServletUtil.getRequest().getServletPath());
-        return baseMapper.findObeCourseOutlinePage(new Page<>(pageNumber, pageSize),
-                majorId, semesterId, cultureProgramId, courseId, dpr);
+        return baseMapper.findObeCourseOutlinePage(new Page<>(pageNumber, pageSize), professionalId, cultureProgramId, courseId,
+                courseOutlineName, dpr);
+    }
+
+    @Override
+    public void saveObeCourseOutline(ObeCourseOutlineParam obeCourseOutlineParams) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        String courseOutlineName = obeCourseOutlineParams.getCourseOutlineName();
+        Long cultureProgramId = obeCourseOutlineParams.getCultureProgramId();
+        Long semesterId = obeCourseOutlineParams.getSemesterId();
+        Long courseId = obeCourseOutlineParams.getCourseId();
+        ObeCourseOutlineEvaluationEnum evaluationMode = obeCourseOutlineParams.getEvaluationMode();
+        ObeCourseOutlineCourseTypeEnum courseType = obeCourseOutlineParams.getCourseType();
+        Long id = obeCourseOutlineParams.getId();
+
+        ObeCourseOutline checkUnique = this.getOne(new QueryWrapper<ObeCourseOutline>().lambda()
+                .eq(ObeCourseOutline::getCultureProgramId, cultureProgramId)
+                .eq(ObeCourseOutline::getName, courseOutlineName).last(SystemConstant.LIMIT1));
+        if (Objects.nonNull(checkUnique)) {
+            if (!Objects.equals(checkUnique.getId(), id)) {
+                throw new RuntimeException("该课程大纲名称已存在");
+            }
+        }
+
+        ObeCourseOutline obeCourseOutline = new ObeCourseOutline();
+        obeCourseOutline.setCultureProgramId(cultureProgramId);
+        obeCourseOutline.setSemesterId(semesterId);
+        obeCourseOutline.setCourseId(courseId);
+        obeCourseOutline.setEvaluationMode(evaluationMode);
+        obeCourseOutline.setCourseType(courseType);
+        obeCourseOutline.setName(courseOutlineName);
+        obeCourseOutline.setSchoolId(requestUser.getSchoolId());
+
+        if (SystemConstant.longNotNull(id)) {
+            // 编辑
+            obeCourseOutline.setId(id);
+            obeCourseOutline.updateInfo(requestUser.getId());
+        } else {
+            // 新增
+            obeCourseOutline.setWeightSetting(false);
+            obeCourseOutline.insertInfo(requestUser.getId());
+            // 创建默认评价方式
+            obeCourseEvaluationService.createDefaultCourseEvaluation(obeCourseOutline.getId());
+        }
+        this.saveOrUpdate(obeCourseOutline);
     }
 
     @Override
-    public void obeCourseOutlineSave(ObeCourseOutlineParams obeCourseOutlineParams) {
+    public void removeObeCourseOutline(Long id) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        ObeCourseOutline obeCourseOutline = this.getById(id);
+        if (Objects.nonNull(obeCourseOutline)) {
+            if (!Objects.equals(obeCourseOutline.getUserId(), requestUser.getId())) {
+                throw ExceptionResultEnum.ERROR.exception("只有课程大纲创建人可以删除该课程");
+            }
+        }
+        // 删除知识点
+        obeCourseDimensionService.remove(
+                new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, id));
+        // 删除课程目标
+        obeCourseTargetService.remove(
+                new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCourseOutlineId, id));
+        // 删除课程评价方式
+        obeCourseEvaluationService.remove(
+                new QueryWrapper<ObeCourseEvaluation>().lambda().eq(ObeCourseEvaluation::getObeCourseOutlineId, id));
+        // 删除权重设置
+        obeCourseWeightService.remove(
+                new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, id));
 
+        // 删除教学课程
+        this.removeById(id);
     }
 
+    @Transactional
     @Override
-    public void obeCourseOutlineRemove(Long id) {
+    public void clearCourseSetting(Long obeCourseOutlineId, CourseSettingTypeEnum courseSettingTypeEnum) {
+        if (courseSettingTypeEnum == CourseSettingTypeEnum.COURSE_DIMENSION) {// 删除知识点、目标设置
+            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+            Long requestUserId = requestUser.getId();
+
+            obeCourseDimensionService.remove(new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId));
+
+            UpdateWrapper<ObeCourseTarget> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.lambda().eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseOutlineId)
+                    .set(ObeCourseTarget::getTargetContent, null).set(ObeCourseTarget::getUpdateId, requestUserId)
+                    .set(ObeCourseTarget::getUpdateTime, System.currentTimeMillis());
+            obeCourseTargetService.update(updateWrapper);
 
+            UpdateWrapper<ObeCourseOutline> obeCourseOutlineWrapper = new UpdateWrapper<>();
+            obeCourseOutlineWrapper.lambda().eq(ObeCourseOutline::getId, obeCourseOutlineId)
+                    .set(ObeCourseOutline::getWeightSettingSign, SystemConstant.getDbUuid())
+                    .set(ObeCourseOutline::getDimensionSign, SystemConstant.getDbUuid());
+            this.update(obeCourseOutlineWrapper);
+        } else {
+            // 删除权重设置
+            obeCourseWeightService.deleteCourseWeight(obeCourseOutlineId);
+        }
+    }
+
+    @Override
+    public CourseWeightSettingStatusResult findCourseWeightSettingStatus(Long obeCourseOutlineId) {
+        CourseWeightSettingStatusResult result = new CourseWeightSettingStatusResult();
+        ObeCourseOutline courseOutline = this.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+        }
+        Boolean everSettingStatus = courseOutline.getWeightSetting();
+        Boolean currenSettingStatus = obeCourseWeightService.count(new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, obeCourseOutlineId)) > 0;
+        Long userId = courseOutline.getUserId();
+        result.setEverSettingStatus(everSettingStatus);
+        result.setCurrentSettingStatus(currenSettingStatus);
+        result.setCourseCreateId(userId);
+        return result;
     }
 }

+ 98 - 105
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseTargetServiceImpl.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseTargetServiceImpl.java

@@ -10,14 +10,14 @@ import com.qmth.distributed.print.business.bean.dto.CourseDimensionDto;
 import com.qmth.distributed.print.business.bean.dto.CourseDimensionOccupiedDto;
 import com.qmth.distributed.print.business.bean.dto.report.CourseTargetWebDto;
 import com.qmth.distributed.print.business.bean.dto.report.DimensionDto;
-import com.qmth.distributed.print.business.bean.params.CourseTargetParam;
+import com.qmth.distributed.print.business.bean.params.ObeCourseTargetParam;
 import com.qmth.distributed.print.business.bean.result.CourseDimensionTree;
 import com.qmth.distributed.print.business.bean.result.CourseTargetResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.CourseDimensionSourceEnum;
 import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
-import com.qmth.distributed.print.business.mapper.CourseTargetMapper;
+import com.qmth.distributed.print.business.mapper.ObeCourseTargetMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -42,33 +42,33 @@ import java.util.stream.Stream;
  * @since 2024-02-22
  */
 @Service
-public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, CourseTarget> implements CourseTargetService {
+public class ObeCourseTargetServiceImpl extends ServiceImpl<ObeCourseTargetMapper, ObeCourseTarget> implements
+        ObeCourseTargetService {
 
     @Resource
-    private TeachCourseService teachCourseService;
+    private ObeCourseDimensionService obeCourseDimensionService;
 
     @Resource
-    private CourseDimensionService courseDimensionService;
+    private ObeCourseOutlineService obeCourseOutlineService;
 
     @Resource
     private ExamTaskPaperDataService examTaskPaperDataService;
 
     @Override
-    public List<CourseTargetResult> findCourseTargetList(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+    public List<CourseTargetResult> findCourseTargetList(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
-        List<CourseTarget> courseTargetList = this.list(
-                new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourse.getId()).orderByAsc(CourseTarget::getId));
+        List<ObeCourseTarget> obeCourseTargetList = this.list(new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCourseOutlineId, courseOutline.getId()).orderByAsc(ObeCourseTarget::getId));
 
-        List<CourseDimension> courseDimensionList = courseDimensionService.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
+        List<ObeCourseDimension> obeCourseDimensionList = obeCourseDimensionService.list(
+                new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId));
 
-        Map<Long, CourseDimension> courseDimensionMap = courseDimensionList.stream()
-                .collect(Collectors.toMap(CourseDimension::getId, e -> e));
+        Map<Long, ObeCourseDimension> courseDimensionMap = obeCourseDimensionList.stream()
+                .collect(Collectors.toMap(ObeCourseDimension::getId, e -> e));
 
-        return courseTargetList.stream().flatMap(e -> {
+        return obeCourseTargetList.stream().flatMap(e -> {
             CourseTargetResult cell = new CourseTargetResult();
             cell.setId(e.getId());
             cell.setTargetName(e.getTargetName());
@@ -80,10 +80,10 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
             if (SystemConstant.strNotNull(targetContent)) {
                 dimensionIdList.forEach(d -> {
                     CourseDimensionDto courseDimensionDto = new CourseDimensionDto();
-                    CourseDimension courseDimension = courseDimensionMap.get(d);
+                    ObeCourseDimension obeCourseDimension = courseDimensionMap.get(d);
                     courseDimensionDto.setId(d);
-                    courseDimensionDto.setCode(courseDimension.getCode());
-                    courseDimensionDto.setName(courseDimension.getName());
+                    courseDimensionDto.setCode(obeCourseDimension.getCode());
+                    courseDimensionDto.setName(obeCourseDimension.getName());
                     dimensionList.add(courseDimensionDto);
                 });
             }
@@ -93,18 +93,17 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
     }
 
     @Override
-    public List<CourseDimensionTree> findDimensionTree(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+    public List<CourseDimensionTree> findDimensionTree(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
 
         // 课程目标
-        List<CourseTarget> courseTargetList = this.list(
-                new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourse.getId()));
+        List<ObeCourseTarget> obeCourseTargetList = this.list(new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCourseOutlineId, courseOutline.getId()));
 
         // 课程目标id - 该目标包含的所有知识点id集合
-        Map<Long, List<Long>> targetDimensionMap = courseTargetList.stream()
+        Map<Long, List<Long>> targetDimensionMap = obeCourseTargetList.stream()
                 .collect(Collectors.toMap(BaseEntity::getId, v -> {
                     List<Long> dimensionList = new ArrayList<>();
                     String targetContent = v.getTargetContent();
@@ -115,22 +114,22 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
                 }));
 
         // 课程知识点
-        List<CourseDimension> courseDimensionList = courseDimensionService.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
+        List<ObeCourseDimension> obeCourseDimensionList = obeCourseDimensionService.list(
+                new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId));
 
-        List<CourseDimension> firstDimensionList = courseDimensionList.stream().filter(e -> e.getParentId() == 0).sorted(Comparator.comparingInt(CourseDimension::getNumber)).collect(Collectors.toList());
+        List<ObeCourseDimension> firstDimensionList = obeCourseDimensionList.stream().filter(e -> e.getParentId() == 0).sorted(Comparator.comparingInt(ObeCourseDimension::getNumber)).collect(Collectors.toList());
 
         List<CourseDimensionTree> treeList = new ArrayList<>();
-        for (CourseDimension first : firstDimensionList) {
+        for (ObeCourseDimension first : firstDimensionList) {
             Long id = first.getId();
             String code = first.getCode();
             String name = first.getName();
             CourseDimensionOccupiedDto occupied = this.buildCourseDimensionOccupiedDto(targetDimensionMap, id);
             List<CourseDimensionTree> children = new ArrayList<>();
 
-            List<CourseDimension> secondDimensionList = courseDimensionList.stream().filter(e -> id.equals(e.getParentId())).sorted(Comparator.comparingInt(CourseDimension::getNumber))
-                    .collect(Collectors.toList());
-            for (CourseDimension child : secondDimensionList) {
+            List<ObeCourseDimension> secondDimensionList = obeCourseDimensionList.stream().filter(e -> id.equals(e.getParentId()))
+                    .sorted(Comparator.comparingInt(ObeCourseDimension::getNumber)).collect(Collectors.toList());
+            for (ObeCourseDimension child : secondDimensionList) {
                 Long childId = child.getId();
                 String childCode = child.getCode();
                 String childName = child.getName();
@@ -148,36 +147,34 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
 
     @Transactional
     @Override
-    public void saveCourseTarget(CourseTargetParam courseTargetParam, SysUser requestUser) {
+    public void saveCourseTarget(ObeCourseTargetParam obeCourseTargetParam, SysUser requestUser) {
         Long requestUserId = requestUser.getId();
-        Long id = courseTargetParam.getId();
-        Long teachCourseId = courseTargetParam.getTeachCourseId();
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+        Long id = obeCourseTargetParam.getId();
+        Long obeCourseOutlineId = obeCourseTargetParam.getObeCourseOutlineId();
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
 
-        Long examId = teachCourse.getExamId();
-        String courseCode = teachCourse.getCourseCode();
-        String targetName = courseTargetParam.getTargetName();
-        String degreeRequirement = courseTargetParam.getDegreeRequirement();
-        List<Long> dimensionIdList = courseTargetParam.getDimensionIdList();
+        String targetName = obeCourseTargetParam.getTargetName();
+        String degreeRequirement = obeCourseTargetParam.getDegreeRequirement();
+        List<Long> dimensionIdList = obeCourseTargetParam.getDimensionIdList();
 
         // 知识点检查
-        Map<Long, CourseDimension> courseDimensionMap = courseDimensionService.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId)).stream().collect(Collectors.toMap(BaseEntity::getId,
-                v -> v));
+        Map<Long, ObeCourseDimension> courseDimensionMap = obeCourseDimensionService.list(new QueryWrapper<ObeCourseDimension>().lambda()
+                        .eq(ObeCourseDimension::getObeCourseOutlineId, obeCourseOutlineId)).stream()
+                .collect(Collectors.toMap(BaseEntity::getId, v -> v));
 
-        QueryWrapper<CourseTarget> courseTargetQueryWrapper = new QueryWrapper<>();
+        QueryWrapper<ObeCourseTarget> courseTargetQueryWrapper = new QueryWrapper<>();
         if (Objects.isNull(id)) {
-            courseTargetQueryWrapper.lambda().eq(CourseTarget::getTeachCourseId, teachCourseId);
+            courseTargetQueryWrapper.lambda().eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseOutlineId);
         } else {
-            courseTargetQueryWrapper.lambda().ne(CourseTarget::getId, id);
+            courseTargetQueryWrapper.lambda().ne(ObeCourseTarget::getId, id);
         }
-        List<CourseTarget> courseTargetResultList = this.list(courseTargetQueryWrapper);
+        List<ObeCourseTarget> obeCourseTargetResultList = this.list(courseTargetQueryWrapper);
 
         // 占用的知识点id
-        List<Long> occupiedIdList = courseTargetResultList.stream().flatMap(e -> {
+        List<Long> occupiedIdList = obeCourseTargetResultList.stream().flatMap(e -> {
             List<Long> idList = new ArrayList<>();
             String content = e.getTargetContent();
             if (SystemConstant.strNotNull(content)) {
@@ -195,86 +192,82 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
             }
         }
 
-        CourseTarget checkTargetName = this.getOne(
-                new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourseId).eq(CourseTarget::getTargetName, targetName).last(SystemConstant.LIMIT1));
+        ObeCourseTarget checkTargetName = this.getOne(new QueryWrapper<ObeCourseTarget>().lambda()
+                .eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseOutlineId).eq(ObeCourseTarget::getTargetName, targetName).last(SystemConstant.LIMIT1));
         if (Objects.nonNull(checkTargetName) && !checkTargetName.getId().equals(id)) {
             throw ExceptionResultEnum.ERROR.exception("课程目标名称重复");
         }
-        CourseTarget courseTarget = new CourseTarget();
-        courseTarget.setTeachCourseId(teachCourseId);
-        courseTarget.setSchoolId(requestUser.getSchoolId());
-        courseTarget.setExamId(examId);
-        courseTarget.setCourseCode(courseCode);
-        courseTarget.setUserId(requestUserId);
-        courseTarget.setTargetName(targetName);
-        courseTarget.setDegreeRequirement(degreeRequirement);
-        courseTarget.setTargetContent(JSON.toJSONString(dimensionIdList));
+        ObeCourseTarget obeCourseTarget = new ObeCourseTarget();
+        obeCourseTarget.setObeCourseOutlineId(obeCourseOutlineId);
+        obeCourseTarget.setSchoolId(requestUser.getSchoolId());
+        obeCourseTarget.setTargetName(targetName);
+        obeCourseTarget.setDegreeRequirement(degreeRequirement);
+        obeCourseTarget.setTargetContent(JSON.toJSONString(dimensionIdList));
 
         if (SystemConstant.longNotNull(id)) {
             // 编辑 (更新教学课程权重标识)
-            UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
-            teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId);
+            UpdateWrapper<ObeCourseOutline> teachCourseUpdateWrapper = new UpdateWrapper<>();
+            teachCourseUpdateWrapper.lambda().eq(ObeCourseOutline::getId, obeCourseOutlineId);
 
-            CourseTarget db = this.getById(id);
+            ObeCourseTarget db = this.getById(id);
             String dbContent = db.getTargetContent();
             if (SystemConstant.strNotNull(dbContent)) {
                 List<Long> dbDimensionList = JSON.parseArray(dbContent, Long.class);
                 if (!dimensionIdList.containsAll(dbDimensionList) || !dbDimensionList.containsAll(dimensionIdList)) {
                     // 关联知识点变化 重设知识点,权重md5更新
-                    teachCourseUpdateWrapper.lambda().set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid())
-                            .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
-                    teachCourseService.update(teachCourseUpdateWrapper);
+                    teachCourseUpdateWrapper.lambda().set(ObeCourseOutline::getDimensionSign, SystemConstant.getDbUuid())
+                            .set(ObeCourseOutline::getWeightSettingSign, SystemConstant.getDbUuid());
+                    obeCourseOutlineService.update(teachCourseUpdateWrapper);
                 }
             }
             // 目标描述变了 更新权重设置标识
-            if (!courseTarget.getTargetName().equals(db.getTargetName()) || !Objects.equals(courseTarget.getDegreeRequirement(),
+            if (!obeCourseTarget.getTargetName().equals(db.getTargetName()) || !Objects.equals(obeCourseTarget.getDegreeRequirement(),
                     db.getDegreeRequirement())) {
-                teachCourseUpdateWrapper.lambda().set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
-                teachCourseService.update(teachCourseUpdateWrapper);
+                teachCourseUpdateWrapper.lambda().set(ObeCourseOutline::getWeightSettingSign, SystemConstant.getDbUuid());
+                obeCourseOutlineService.update(teachCourseUpdateWrapper);
             }
 
-            courseTarget.setId(id);
-            courseTarget.updateInfo(requestUserId);
+            obeCourseTarget.setId(id);
+            obeCourseTarget.updateInfo(requestUserId);
         } else {
             // 新增 (清空权重设置)
-            teachCourseService.update(
-                    new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, courseTarget.getTeachCourseId()).set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid()));
-            teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_TARGET);
-            courseTarget.insertInfo(requestUserId);
+            obeCourseOutlineService.update(new UpdateWrapper<ObeCourseOutline>().lambda()
+                    .eq(ObeCourseOutline::getId, obeCourseTarget.getObeCourseOutlineId()).set(ObeCourseOutline::getDimensionSign, SystemConstant.getDbUuid()));
+            obeCourseOutlineService.clearCourseSetting(obeCourseOutlineId, CourseSettingTypeEnum.COURSE_TARGET);
+            obeCourseTarget.insertInfo(requestUserId);
         }
-        this.saveOrUpdate(courseTarget);
+        this.saveOrUpdate(obeCourseTarget);
     }
 
     @Transactional
     @Override
     public void deleteCourseTarget(Long id) {
-        CourseTarget courseTarget = this.getById(id);
-        if (Objects.nonNull(courseTarget)) {
-            teachCourseService.update(
-                    new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, courseTarget.getTeachCourseId()).set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid()));
-            teachCourseService.clearCourseSetting(courseTarget.getTeachCourseId(), CourseSettingTypeEnum.COURSE_TARGET);
+        ObeCourseTarget obeCourseTarget = this.getById(id);
+        if (Objects.nonNull(obeCourseTarget)) {
+            obeCourseOutlineService.update(new UpdateWrapper<ObeCourseOutline>().lambda()
+                    .eq(ObeCourseOutline::getId, obeCourseTarget.getObeCourseOutlineId()).set(ObeCourseOutline::getDimensionSign, SystemConstant.getDbUuid()));
+            obeCourseOutlineService.clearCourseSetting(obeCourseTarget.getObeCourseOutlineId(), CourseSettingTypeEnum.COURSE_TARGET);
             this.removeById(id);
         }
     }
 
     @Override
-    public List<PaperStructDimensionResult> findTikuPaperStruct(Long teachCourseId, String paperNumber) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
+    public List<PaperStructDimensionResult> findTikuPaperStruct(Long obeCourseOutlineId, String paperNumber, Long examId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
         List<PaperStructDimensionResult> result = new ArrayList<>();
 
-        List<CourseTarget> courseTargetList = this.list(
-                new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourse.getId()));
-        List<CourseDimension> courseDimensionList = courseDimensionService.list(
-                new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourse.getId())
-                        .eq(CourseDimension::getSource, CourseDimensionSourceEnum.UNION_QUESTION));
-        Map<String, CourseDimension> courseDimensionMap = courseDimensionList.stream()
-                .collect(Collectors.toMap(CourseDimension::getCode, e -> e));
+        List<ObeCourseTarget> obeCourseTargetList = this.list(new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCourseOutlineId, courseOutline.getId()));
+        List<ObeCourseDimension> obeCourseDimensionList = obeCourseDimensionService.list(
+                new QueryWrapper<ObeCourseDimension>().lambda().eq(ObeCourseDimension::getObeCourseOutlineId, courseOutline.getId())
+                        .eq(ObeCourseDimension::getSource, CourseDimensionSourceEnum.UNION_QUESTION));
+        Map<String, ObeCourseDimension> courseDimensionMap = obeCourseDimensionList.stream()
+                .collect(Collectors.toMap(ObeCourseDimension::getCode, e -> e));
 
         ExamTaskPaperData examTaskPaperData = examTaskPaperDataService.getOne(
-                new QueryWrapper<ExamTaskPaperData>().lambda().eq(ExamTaskPaperData::getExamId, teachCourse.getExamId())
+                new QueryWrapper<ExamTaskPaperData>().lambda().eq(ExamTaskPaperData::getExamId, examId)
                         .eq(ExamTaskPaperData::getPaperNumber, paperNumber).last(SystemConstant.LIMIT1));
         if (Objects.nonNull(examTaskPaperData)) {
             String paperStruct = examTaskPaperData.getPaperJson();
@@ -311,7 +304,7 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
                                             }).collect(Collectors.toList());
 
                                     List<CourseTargetWebDto> courseTargetResultList = this.buildByDimensionList(
-                                            courseTargetList, dimensionList);
+                                            obeCourseTargetList, dimensionList);
                                     if (CollectionUtils.isNotEmpty(courseTargetResultList)) {
                                         subCell.setCourseTargetName(courseTargetResultList.get(0).getTargetName());
                                     }
@@ -339,7 +332,7 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
                                         }).collect(Collectors.toList());
 
                                 List<CourseTargetWebDto> courseTargetResultList = this.buildByDimensionList(
-                                        courseTargetList, dimensionList);
+                                        obeCourseTargetList, dimensionList);
                                 if (CollectionUtils.isNotEmpty(courseTargetResultList)) {
                                     cell.setCourseTargetName(courseTargetResultList.get(0).getTargetName());
                                 }
@@ -383,18 +376,18 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
     /**
      * 根据知识点查询对应的课程目标
      *
-     * @param courseTargetDatasource 课程目标数据源
-     * @param dimensionDtoList       知识点集合
+     * @param obeCourseTargetDatasource 课程目标数据源
+     * @param dimensionDtoList          知识点集合
      * @return 结果
      */
-    private List<CourseTargetWebDto> buildByDimensionList(List<CourseTarget> courseTargetDatasource,
+    private List<CourseTargetWebDto> buildByDimensionList(List<ObeCourseTarget> obeCourseTargetDatasource,
             List<DimensionDto> dimensionDtoList) {
         List<CourseTargetWebDto> result = new ArrayList<>();
-        for (CourseTarget courseTarget : courseTargetDatasource) {
-            Long courseTargetId = courseTarget.getId();
-            String targetName = courseTarget.getTargetName();
+        for (ObeCourseTarget obeCourseTarget : obeCourseTargetDatasource) {
+            Long courseTargetId = obeCourseTarget.getId();
+            String targetName = obeCourseTarget.getTargetName();
 
-            String content = courseTarget.getTargetContent();
+            String content = obeCourseTarget.getTargetContent();
             List<Long> dimensionIdList = JSON.parseArray(content, Long.class);
             List<DimensionDto> dimensionList = dimensionDtoList.stream().filter(e -> dimensionIdList.contains(e.getDimensionId())).collect(Collectors.toList());
 

+ 110 - 142
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseWeightServiceImpl.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseWeightServiceImpl.java

@@ -7,21 +7,21 @@ import com.qmth.distributed.print.business.bean.dto.CourseDimensionDto;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDetailDto;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto;
-import com.qmth.distributed.print.business.bean.params.CourseWeightParam;
-import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
+import com.qmth.distributed.print.business.bean.params.ObeCourseWeightParam;
 import com.qmth.distributed.print.business.bean.result.CourseTargetResult;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
-import com.qmth.distributed.print.business.entity.CourseEvaluation;
-import com.qmth.distributed.print.business.entity.CourseTarget;
-import com.qmth.distributed.print.business.entity.CourseWeight;
-import com.qmth.distributed.print.business.entity.TeachCourse;
+import com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
+import com.qmth.distributed.print.business.entity.ObeCourseEvaluation;
+import com.qmth.distributed.print.business.entity.ObeCourseOutline;
+import com.qmth.distributed.print.business.entity.ObeCourseTarget;
+import com.qmth.distributed.print.business.entity.ObeCourseWeight;
 import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
 import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
-import com.qmth.distributed.print.business.mapper.CourseWeightMapper;
-import com.qmth.distributed.print.business.service.CourseEvaluationService;
-import com.qmth.distributed.print.business.service.CourseTargetService;
-import com.qmth.distributed.print.business.service.CourseWeightService;
-import com.qmth.distributed.print.business.service.TeachCourseService;
+import com.qmth.distributed.print.business.mapper.ObeCourseWeightMapper;
+import com.qmth.distributed.print.business.service.ObeCourseEvaluationService;
+import com.qmth.distributed.print.business.service.ObeCourseOutlineService;
+import com.qmth.distributed.print.business.service.ObeCourseTargetService;
+import com.qmth.distributed.print.business.service.ObeCourseWeightService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -44,32 +44,30 @@ import java.util.stream.Collectors;
  * @since 2024-02-22
  */
 @Service
-public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, CourseWeight> implements CourseWeightService {
+public class ObeCourseWeightServiceImpl extends ServiceImpl<ObeCourseWeightMapper, ObeCourseWeight> implements
+        ObeCourseWeightService {
 
     @Resource
-    private TeachCourseService teachCourseService;
+    private ObeCourseOutlineService obeCourseOutlineService;
 
     @Resource
-    private CourseTargetService courseTargetService;
+    private ObeCourseTargetService obeCourseTargetService;
 
     @Resource
-    private CourseEvaluationService courseEvaluationService;
+    private ObeCourseEvaluationService obeCourseEvaluationService;
 
     @Override
-    public CourseWeightResult findCourseWeight(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学班不存在");
+    public ObeCourseWeightResult findCourseWeight(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
 
-        BigDecimal defaultRate = teachCourse.getDefaultRate();
-        BigDecimal customRate = teachCourse.getCustomRate();
-
         // 现有目标
-        List<CourseTargetResult> courseTargetList = courseTargetService.findCourseTargetList(teachCourseId);
+        List<CourseTargetResult> courseTargetList = obeCourseTargetService.findCourseTargetList(obeCourseOutlineId);
         // 现有评价方式
-        List<CourseEvaluationResult> courseEvaluationResultList = courseEvaluationService.findCourseEvaluationList(
-                teachCourseId).stream().sorted((o1, o2) -> {
+        List<ObeCourseEvaluationResult> obeCourseEvaluationResultList = obeCourseEvaluationService.findCourseEvaluationList(
+                obeCourseOutlineId).stream().sorted((o1, o2) -> {
             if (o1.getType().getIndex() == o2.getType().getIndex()) {
                 return o1.getEvaluationId() < o2.getEvaluationId() ? -1 : 0;
             } else {
@@ -77,10 +75,9 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
             }
         }).collect(Collectors.toList());
         // 现有权重
-        List<CourseWeight> courseWeightList = this.list(
-                new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId));
+        List<ObeCourseWeight> obeCourseWeightList = this.list(new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, obeCourseOutlineId));
         // 权重map
-        Map<String, CourseWeight> courseWeightMap = courseWeightList.stream()
+        Map<String, ObeCourseWeight> courseWeightMap = obeCourseWeightList.stream()
                 .collect(Collectors.toMap(k -> k.getTargetId() + SystemConstant.HYPHEN + k.getEvaluationId(), v -> v));
 
         List<CourseWeightDto> submitForm = new ArrayList<>();
@@ -94,9 +91,9 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                 BigDecimal totalScore = new BigDecimal(0);
 
                 List<CourseWeightDetailDto> courseWeightDetailDtoList = new ArrayList<>();
-                for (CourseEvaluationResult courseEvaluationResult : courseEvaluationResultList) {
-                    Long evaluationId = courseEvaluationResult.getEvaluationId();
-                    String evaluationName = courseEvaluationResult.getEvaluation();
+                for (ObeCourseEvaluationResult obeCourseEvaluationResult : obeCourseEvaluationResultList) {
+                    Long evaluationId = obeCourseEvaluationResult.getEvaluationId();
+                    String evaluationName = obeCourseEvaluationResult.getEvaluation();
                     String key = targetId + SystemConstant.HYPHEN + evaluationId;
 
                     Boolean enable = false;
@@ -104,22 +101,22 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                     BigDecimal targetScore = BigDecimal.ZERO;
                     if (courseWeightMap.containsKey(key)) {
                         // 权重表中包含该目标评价的设置 - 获取权重表的数据
-                        CourseWeight courseWeight = courseWeightMap.get(key);
-                        enable = courseWeight.getEnable();
-                        weight = courseWeight.getWeight();
-                        targetScore = courseWeight.getTargetScore();
-                    } else if (CourseEvaluationTypeEnum.DEFAULT.equals(courseEvaluationResult.getType())) {
+                        ObeCourseWeight obeCourseWeight = courseWeightMap.get(key);
+                        enable = obeCourseWeight.getEnable();
+                        weight = obeCourseWeight.getWeight();
+                        targetScore = obeCourseWeight.getTargetScore();
+                    } else if (CourseEvaluationTypeEnum.DEFAULT.equals(obeCourseEvaluationResult.getType())) {
                         enable = true;
                         weight = new BigDecimal(100);
                     }
                     CourseWeightDetailDto detail = new CourseWeightDetailDto();
                     detail.setEvaluationId(evaluationId);
                     detail.setEvaluationName(evaluationName);
-                    detail.setEvaluationDesc(courseEvaluationResult.getEvaluationDesc());
+                    detail.setEvaluationDesc(obeCourseEvaluationResult.getEvaluationDesc());
                     detail.setEnable(enable);
                     detail.setWeight(weight);
                     detail.setTargetScore(targetScore);
-                    detail.setEvaluationType(courseEvaluationResult.getType());
+                    detail.setEvaluationType(obeCourseEvaluationResult.getType());
                     if (enable) {
                         totalScore = totalScore.add(targetScore);
                     }
@@ -139,30 +136,25 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                 submitForm.add(courseWeightDto);
             }
         }
-        CourseWeightResult result = new CourseWeightResult();
-        result.setWeightSettingSign(teachCourse.getWeightSettingSign());
-        result.setDimensionSign(teachCourse.getDimensionSign());
-        result.setDefaultRate(defaultRate);
-        result.setCustomRate(customRate);
+        ObeCourseWeightResult result = new ObeCourseWeightResult();
+        result.setWeightSettingSign(courseOutline.getWeightSettingSign());
+        result.setDimensionSign(courseOutline.getDimensionSign());
         result.setSubmitForm(submitForm);
         return result;
     }
 
     @Override
-    public CourseWeightResult findCourseWeightReport(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学班不存在");
+    public ObeCourseWeightResult findCourseWeightReport(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
+            throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
 
-        BigDecimal defaultRate = teachCourse.getDefaultRate();
-        BigDecimal customRate = teachCourse.getCustomRate();
-
         // 现有目标
-        List<CourseTargetResult> courseTargetList = courseTargetService.findCourseTargetList(teachCourseId);
+        List<CourseTargetResult> courseTargetList = obeCourseTargetService.findCourseTargetList(obeCourseOutlineId);
         // 现有评价方式
-        List<CourseEvaluationResult> courseEvaluationResultList = courseEvaluationService.findCourseEvaluationList(
-                teachCourseId).stream().sorted((o1, o2) -> {
+        List<ObeCourseEvaluationResult> obeCourseEvaluationResultList = obeCourseEvaluationService.findCourseEvaluationList(
+                obeCourseOutlineId).stream().sorted((o1, o2) -> {
             if (o1.getType().getIndex() == o2.getType().getIndex()) {
                 return o1.getEvaluationId() < o2.getEvaluationId() ? -1 : 0;
             } else {
@@ -170,10 +162,9 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
             }
         }).collect(Collectors.toList());
         // 现有权重
-        List<CourseWeight> courseWeightList = this.list(
-                new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId));
+        List<ObeCourseWeight> obeCourseWeightList = this.list(new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, obeCourseOutlineId));
         // 权重map
-        Map<String, CourseWeight> courseWeightMap = courseWeightList.stream()
+        Map<String, ObeCourseWeight> courseWeightMap = obeCourseWeightList.stream()
                 .collect(Collectors.toMap(k -> k.getTargetId() + SystemConstant.HYPHEN + k.getEvaluationId(), v -> v));
 
         List<CourseWeightDto> submitForm = new ArrayList<>();
@@ -187,28 +178,28 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                 BigDecimal totalScore = new BigDecimal(0);
 
                 List<CourseWeightDetailDto> courseWeightDetailDtoList = new ArrayList<>();
-                for (CourseEvaluationResult courseEvaluationResult : courseEvaluationResultList) {
-                    Long evaluationId = courseEvaluationResult.getEvaluationId();
-                    String evaluationName = courseEvaluationResult.getEvaluation();
+                for (ObeCourseEvaluationResult obeCourseEvaluationResult : obeCourseEvaluationResultList) {
+                    Long evaluationId = obeCourseEvaluationResult.getEvaluationId();
+                    String evaluationName = obeCourseEvaluationResult.getEvaluation();
                     String key = targetId + SystemConstant.HYPHEN + evaluationId;
                     Boolean enable;
                     BigDecimal weight;
                     BigDecimal targetScore;
                     if (courseWeightMap.containsKey(key)) {
                         // 权重表中包含该目标评价的设置 - 获取权重表的数据
-                        CourseWeight courseWeight = courseWeightMap.get(key);
-                        enable = courseWeight.getEnable();
+                        ObeCourseWeight obeCourseWeight = courseWeightMap.get(key);
+                        enable = obeCourseWeight.getEnable();
                         if (enable) {
-                            weight = courseWeight.getWeight();
-                            targetScore = courseWeight.getTargetScore();
+                            weight = obeCourseWeight.getWeight();
+                            targetScore = obeCourseWeight.getTargetScore();
                             CourseWeightDetailDto detail = new CourseWeightDetailDto();
                             detail.setEvaluationId(evaluationId);
                             detail.setEvaluationName(evaluationName);
-                            detail.setEvaluationDesc(courseEvaluationResult.getEvaluationDesc());
+                            detail.setEvaluationDesc(obeCourseEvaluationResult.getEvaluationDesc());
                             detail.setEnable(true);
                             detail.setWeight(weight);
                             detail.setTargetScore(targetScore);
-                            detail.setEvaluationType(courseEvaluationResult.getType());
+                            detail.setEvaluationType(obeCourseEvaluationResult.getType());
                             totalScore = totalScore.add(targetScore);
                             courseWeightDetailDtoList.add(detail);
                         }
@@ -227,37 +218,31 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                 submitForm.add(courseWeightDto);
             }
         }
-        CourseWeightResult result = new CourseWeightResult();
-        result.setWeightSettingSign(teachCourse.getWeightSettingSign());
-        result.setDimensionSign(teachCourse.getDimensionSign());
-        result.setDefaultRate(defaultRate);
-        result.setCustomRate(customRate);
+        ObeCourseWeightResult result = new ObeCourseWeightResult();
+        result.setWeightSettingSign(courseOutline.getWeightSettingSign());
+        result.setDimensionSign(courseOutline.getDimensionSign());
         result.setSubmitForm(submitForm);
         return result;
     }
 
     @Transactional
     @Override
-    public void saveCourseWeight(CourseWeightParam courseWeightParam, SysUser requestUser) {
+    public void saveCourseWeight(ObeCourseWeightParam obeCourseWeightParam, SysUser requestUser) {
         List<String> errorMsgList = new ArrayList<>();
         Long requestUserId = requestUser.getId();
-        Long teachCourseId = courseWeightParam.getTeachCourseId();
-        BigDecimal defaultRate = courseWeightParam.getDefaultRate();
-        BigDecimal customRate = courseWeightParam.getCustomRate();
+        Long obeCourseOutlineId = obeCourseWeightParam.getObeCourseOutlineId();
 
-        List<CourseWeightDto> submitForm = courseWeightParam.getSubmitForm();
+        List<CourseWeightDto> submitForm = obeCourseWeightParam.getSubmitForm();
 
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
             throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
         }
-        Long examId = teachCourse.getExamId();
-        String courseCode = teachCourse.getCourseCode();
 
-        teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_WEIGHT);
+        obeCourseOutlineService.clearCourseSetting(obeCourseOutlineId, CourseSettingTypeEnum.COURSE_WEIGHT);
 
-        List<CourseTarget> courseTargetList = new ArrayList<>();
-        List<CourseWeight> courseWeightList = new ArrayList<>();
+        List<ObeCourseTarget> obeCourseTargetList = new ArrayList<>();
+        List<ObeCourseWeight> obeCourseWeightList = new ArrayList<>();
 
         // 课程目标整体权重检测
         BigDecimal checkTargetTotalWeight = BigDecimal.ZERO;
@@ -267,15 +252,15 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
 
         for (CourseWeightDto courseWeightDto : submitForm) {
             Long courseTargetId = courseWeightDto.getCourseTargetId();
-            CourseTarget courseTarget = courseTargetService.getById(courseTargetId);
-            if (Objects.isNull(courseTarget)) {
+            ObeCourseTarget obeCourseTarget = obeCourseTargetService.getById(courseTargetId);
+            if (Objects.isNull(obeCourseTarget)) {
                 throw ExceptionResultEnum.ERROR.exception("课程目标不存在");
             }
 
             BigDecimal totalWeight = courseWeightDto.getTotalWeight();
-            courseTarget.setTotalWeight(totalWeight);
-            courseTarget.updateInfo(requestUserId);
-            courseTargetList.add(courseTarget);
+            obeCourseTarget.setTotalWeight(totalWeight);
+            obeCourseTarget.updateInfo(requestUserId);
+            obeCourseTargetList.add(obeCourseTarget);
             checkTargetTotalWeight = checkTargetTotalWeight.add(totalWeight);
 
             // 评价方式整体权重检测(自定义)
@@ -283,14 +268,8 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
             List<CourseWeightDetailDto> detailDtoList = courseWeightDto.getEvaluationList();
             for (CourseWeightDetailDto detail : detailDtoList) {
                 Long evaluationId = detail.getEvaluationId();
-                CourseEvaluation courseEvaluation = courseEvaluationService.getById(evaluationId);
-                BigDecimal rate = new BigDecimal(0);
-                CourseEvaluationTypeEnum evaluationType = courseEvaluation.getType();
-                if (CourseEvaluationTypeEnum.DEFAULT.equals(evaluationType)) {
-                    rate = defaultRate;
-                } else if (CourseEvaluationTypeEnum.CUSTOM.equals(evaluationType)) {
-                    rate = customRate;
-                }
+                ObeCourseEvaluation obeCourseEvaluation = obeCourseEvaluationService.getById(evaluationId);
+                CourseEvaluationTypeEnum evaluationType = obeCourseEvaluation.getType();
 
                 Boolean enable = detail.getEnable();
                 BigDecimal weight = detail.getWeight();
@@ -305,44 +284,35 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
                 }
 
                 BigDecimal denominator = new BigDecimal(100);
-                // 目标分值计算: 100 * 类型占比 * 目标占比 * 评价方式占比
+                // 目标分值计算: 100 * 目标占比 * 评价方式占比
                 BigDecimal targetScore = new BigDecimal(0);
                 if (enable) {
-                    targetScore = new BigDecimal(100).multiply(rate).divide(denominator, 2, RoundingMode.HALF_UP)
-                            .multiply(totalWeight).divide(denominator, 2, RoundingMode.HALF_UP).multiply(weight)
-                            .divide(denominator, 2, RoundingMode.HALF_UP);
+                    targetScore = new BigDecimal(100).multiply(totalWeight).divide(denominator, 2, RoundingMode.HALF_UP)
+                            .multiply(weight).divide(denominator, 2, RoundingMode.HALF_UP);
                 }
 
-                CourseWeight courseWeight = new CourseWeight();
-                courseWeight.setTeachCourseId(teachCourseId);
-                courseWeight.setSchoolId(requestUser.getSchoolId());
-                courseWeight.setExamId(examId);
-                courseWeight.setCourseCode(courseCode);
-                courseWeight.setUserId(requestUserId);
-                courseWeight.setTargetId(courseTargetId);
-                courseWeight.setEvaluationId(evaluationId);
-                courseWeight.setEnable(enable);
-                courseWeight.setWeight(weight);
-                courseWeight.setTargetScore(targetScore);
-                courseWeight.insertInfo(requestUserId);
-                courseWeightList.add(courseWeight);
+                ObeCourseWeight obeCourseWeight = new ObeCourseWeight();
+                obeCourseWeight.setObeCourseOutlineId(obeCourseOutlineId);
+                obeCourseWeight.setSchoolId(requestUser.getSchoolId());
+                obeCourseWeight.setTargetId(courseTargetId);
+                obeCourseWeight.setEvaluationId(evaluationId);
+                obeCourseWeight.setEnable(enable);
+                obeCourseWeight.setWeight(weight);
+                obeCourseWeight.setTargetScore(targetScore);
+                obeCourseWeight.insertInfo(requestUserId);
+                obeCourseWeightList.add(obeCourseWeight);
             }
             // 数据校验2:各课程目标下自定义评价方式的总权重应等于100%;
             int checkEvaluationTotalWeightCompareResult = checkEvaluationCustomTotalWeight.compareTo(new BigDecimal(100));
             if (checkEvaluationTotalWeightCompareResult > 0) {
-                errorMsgList.add(String.format("课程目标[%s]下评价方式的总权重为[%s],超过[%s]", courseTarget.getTargetName(),
+                errorMsgList.add(String.format("课程目标[%s]下评价方式的总权重为[%s],超过[%s]", obeCourseTarget.getTargetName(),
                         String.valueOf(checkEvaluationCustomTotalWeight) + '%', "100%"));
             } else if (checkEvaluationTotalWeightCompareResult < 0) {
-                errorMsgList.add(String.format("课程目标[%s]下评价方式的总权重为[%s],低于[%s]", courseTarget.getTargetName(),
+                errorMsgList.add(String.format("课程目标[%s]下评价方式的总权重为[%s],低于[%s]", obeCourseTarget.getTargetName(),
                         String.valueOf(checkEvaluationCustomTotalWeight) + '%', "100%"));
             }
         }
 
-        // 数据校验1:默认和自定义的权重合为100;
-        if (defaultRate.add(customRate).compareTo(new BigDecimal(100)) != 0) {
-            errorMsgList.add("平时成绩权重和期末成绩权重之和不为100%");
-        }
-
         // 数据校验3:目标整体权重应等于100%,用于计算课程整体达成度。
         int checkTargetTotalWeightCompareResult = checkTargetTotalWeight.compareTo(new BigDecimal(100));
         if (checkTargetTotalWeightCompareResult > 0) {
@@ -357,38 +327,36 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
         }
 
         // 更新目标整体权重
-        courseTargetService.updateBatchById(courseTargetList);
+        obeCourseTargetService.updateBatchById(obeCourseTargetList);
         // 保存课程权重设置
-        this.saveBatch(courseWeightList);
+        this.saveBatch(obeCourseWeightList);
         // 更新课程权重设置状态
-        teachCourse.setWeightSetting(true);
-        teachCourse.setWeightSettingSign(SystemConstant.getDbUuid());
-        teachCourse.setDefaultRate(defaultRate);
-        teachCourse.setCustomRate(customRate);
-        teachCourseService.updateById(teachCourse);
+        courseOutline.setWeightSetting(true);
+        courseOutline.setWeightSettingSign(SystemConstant.getDbUuid());
+        obeCourseOutlineService.updateById(courseOutline);
     }
 
     @Transactional
     @Override
-    public void deleteCourseWeight(Long teachCourseId) {
-        this.remove(new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId));
-        UpdateWrapper<CourseTarget> courseTargetUpdateWrapper = new UpdateWrapper<>();
-        courseTargetUpdateWrapper.lambda().eq(CourseTarget::getTeachCourseId, teachCourseId)
-                .set(CourseTarget::getTotalWeight, null);
-        courseTargetService.update(courseTargetUpdateWrapper);
-
-        UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
-        teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId)
-                .set(TeachCourse::getWeightSettingSign, null).set(TeachCourse::getDefaultRate, null).set(TeachCourse::getCustomRate, null);
-        teachCourseService.update(teachCourseUpdateWrapper);
+    public void deleteCourseWeight(Long obeCourseOutlineId) {
+        this.remove(new QueryWrapper<ObeCourseWeight>().lambda().eq(ObeCourseWeight::getObeCourseOutlineId, obeCourseOutlineId));
+        UpdateWrapper<ObeCourseTarget> courseTargetUpdateWrapper = new UpdateWrapper<>();
+        courseTargetUpdateWrapper.lambda().eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseOutlineId)
+                .set(ObeCourseTarget::getTotalWeight, null);
+        obeCourseTargetService.update(courseTargetUpdateWrapper);
+
+        UpdateWrapper<ObeCourseOutline> teachCourseUpdateWrapper = new UpdateWrapper<>();
+        teachCourseUpdateWrapper.lambda().eq(ObeCourseOutline::getId, obeCourseOutlineId)
+                .set(ObeCourseOutline::getWeightSettingSign, null);
+        obeCourseOutlineService.update(teachCourseUpdateWrapper);
     }
 
     @Override
-    public List<CourseWeightFormDto> findCourseWeightForm(Long teachCourseId) {
-        TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
+    public List<CourseWeightFormDto> findCourseWeightForm(Long obeCourseOutlineId) {
+        ObeCourseOutline courseOutline = obeCourseOutlineService.getById(obeCourseOutlineId);
+        if (Objects.isNull(courseOutline)) {
             throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
         }
-        return this.baseMapper.findCourseWeightForm(teachCourseId);
+        return this.baseMapper.findCourseWeightForm(obeCourseOutlineId);
     }
 }

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCPaperStructServiceImpl.java

@@ -7,7 +7,7 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.tools.excel.ExcelReader;
 import com.qmth.boot.tools.excel.enums.ExcelType;
 import com.qmth.distributed.print.business.bean.excel.PaperStructDto;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.entity.TCPaperStruct;
 import com.qmth.distributed.print.business.mapper.TCPaperStructMapper;
@@ -62,7 +62,7 @@ public class TCPaperStructServiceImpl extends ServiceImpl<TCPaperStructMapper, T
     RedisUtil redisUtil;
 
     @Resource
-    CourseTargetService courseTargetService;
+    ObeCourseTargetService obeCourseTargetService;
 
     @Resource
     MarkQuestionService markQuestionService;
@@ -209,7 +209,7 @@ public class TCPaperStructServiceImpl extends ServiceImpl<TCPaperStructMapper, T
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             StringJoiner errorData = new StringJoiner("");
             StringJoiner successData = new StringJoiner("");
-            List<PaperStructDimensionResult> paperStructDimensionResultList = courseTargetService.findTikuPaperStruct(teachCourseId, paperNumber);
+            List<PaperStructDimensionResult> paperStructDimensionResultList = obeCourseTargetService.findTikuPaperStruct(teachCourseId, paperNumber, examId);
             if (CollectionUtils.isEmpty(paperStructDimensionResultList)) {
                 throw ExceptionResultEnum.ERROR.exception("未查询到题和知识点对应关系请手动关联");
             }
@@ -253,8 +253,8 @@ public class TCPaperStructServiceImpl extends ServiceImpl<TCPaperStructMapper, T
             } else {
                 tcPaperStructService.remove(examId, courseCode, paperNumber, teachCourseId);
                 MarkPaper markPaper = printCommonService.getMarkPaper(examId, courseCode, paperNumber);
-                CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
-                tcPaperStruct = new TCPaperStruct(examId, courseCode, markPaper.getCourseName(), paperNumber, teachCourseId, JacksonUtil.parseJson(paperStructDimensionResultList), sysUser.getId(), courseWeightResult.getDimensionSign());
+                ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
+                tcPaperStruct = new TCPaperStruct(examId, courseCode, markPaper.getCourseName(), paperNumber, teachCourseId, JacksonUtil.parseJson(paperStructDimensionResultList), sysUser.getId(), obeCourseWeightResult.getDimensionSign());
                 List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndPaperType(examId, paperNumber, null);
                 if (CollectionUtils.isEmpty(markQuestionList)) {
                     throw ExceptionResultEnum.ERROR.exception("未找到试卷结构");

+ 29 - 24
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -11,7 +11,7 @@ import com.deepoove.poi.data.style.RowStyle;
 import com.google.gson.reflect.TypeToken;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.dto.report.*;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.FinalScoreResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.bean.result.report.word.CourseReportBean;
@@ -74,7 +74,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
     TRExamStudentService trExamStudentService;
 
     @Resource
-    CourseWeightService courseWeightService;
+    ObeCourseWeightService obeCourseWeightService;
 
     @Resource
     ExamStudentService examStudentService;
@@ -145,7 +145,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * @return
      */
     @Override
-    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, CourseWeightResult courseWeightResult) {
+    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult) {
         Map<String, Object> paramsMap = new HashMap<>();
         //查询考生数据
         List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getCourseCode(), trBasicInfo.getPaperNumber(), trBasicInfo.getTeachCourseId());//考生成绩
@@ -169,9 +169,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             targetWebMap = new LinkedHashMap<>();
             usualScoreMap = new LinkedHashMap<>();
 
-            List<CourseWeightDto> courseWeightDtoList = courseWeightResult.getSubmitForm();
-            weightSettingSign = courseWeightResult.getWeightSettingSign();
-            dimensionSign = courseWeightResult.getDimensionSign();
+            List<CourseWeightDto> courseWeightDtoList = obeCourseWeightResult.getSubmitForm();
+            weightSettingSign = obeCourseWeightResult.getWeightSettingSign();
+            dimensionSign = obeCourseWeightResult.getDimensionSign();
 
             for (CourseWeightDto courseWeightDto : courseWeightDtoList) {
                 List<CourseWeightDetailDto> courseWeightDetailDtoList = courseWeightDto.getEvaluationList();
@@ -184,15 +184,18 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 if (!CollectionUtils.isEmpty(courseWeightDetailDtoList)) {
                     List<ReportEvaluationDto> reportEvaluationDtoList = new ArrayList<>(courseWeightDetailDtoList.size());
                     List<ReportEvaluationDto> usualScoreDetailList = new ArrayList<>(courseWeightDetailDtoList.size());
-                    UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto(courseWeightResult.getCustomRate());
+                    // TODO: 2024/6/6 fix
+                    UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto();
                     usualScoreWordDto.setUsualScoreDetailList(usualScoreDetailList);
                     BigDecimal usualScoreTargetSumScore = new BigDecimal(0);//平常作业目标总分
                     for (CourseWeightDetailDto courseWeightDetailDto : courseWeightDetailDtoList) {
                         //期末考试
                         if (courseWeightDetailDto.getEnable() && Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
-                            FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate());
+                            // TODO: 2024/6/6 fix
+                            FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto();
                             courseTargetWordDto.setFinalScoreDto(finalScoreWordDto);
-                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate(), 0.0d, courseWeightDto.getTotalScore().doubleValue());
+                            // TODO: 2024/6/6 fix
+                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto();
                             reportEvaluationDtoList.add(reportEvaluationDto);
                         }//非期末考试
                         else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
@@ -375,13 +378,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * @param trBasicInfo
      * @param markPaper
      * @param userId
-     * @param courseWeightResult
+     * @param obeCourseWeightResult
      * @param teachCourseId
      * @return
      */
     @Override
     @Transactional
-    public TRBasicInfo getReportView(TRBasicInfo trBasicInfo, MarkPaper markPaper, Long userId, CourseWeightResult courseWeightResult, Long teachCourseId) {
+    public TRBasicInfo getReportView(TRBasicInfo trBasicInfo, MarkPaper markPaper, Long userId, ObeCourseWeightResult obeCourseWeightResult, Long teachCourseId) {
         BasicSemester basicSemester = basicSemesterService.selectByExamId(markPaper.getExamId());
         Objects.requireNonNull(basicSemester, "未找到学期信息");
 
@@ -418,7 +421,8 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             trBasicInfo.getReportResult().setCourseEvaluationSpreadInfo(reportCourseEvaluationSpreadDto);
         }
 
-        Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList, courseWeightResult);
+        Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList,
+                obeCourseWeightResult);
 
         //课程目标达成评价明细结果-考生集合
         List<ReportExamStudentDto> examStudentNewList = trExamStudentService.getExamStudentReportDetail(trBasicInfo, paramsMap);
@@ -837,18 +841,19 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * @return
      */
     @Override
-    public CourseWeightResult findCourseWeightResultRmi(Long teachCourseId) {
-        CourseWeightResult courseWeightResult = courseWeightService.findCourseWeight(teachCourseId);
-        Objects.requireNonNull(courseWeightResult, "未设置课程目标数据");
-        Objects.requireNonNull(courseWeightResult.getCustomRate(), "未设置平时成绩权重");
-        Objects.requireNonNull(courseWeightResult.getDefaultRate(), "未设置期末考试权重");
-        Objects.requireNonNull(courseWeightResult.getWeightSettingSign(), "课程权重变化id为空");
-        Objects.requireNonNull(courseWeightResult.getDimensionSign(), "知识点变化id为空");
-        List<CourseWeightDto> courseWeightDtoList = courseWeightResult.getSubmitForm();
+    public ObeCourseWeightResult findCourseWeightResultRmi(Long teachCourseId) {
+        ObeCourseWeightResult obeCourseWeightResult = obeCourseWeightService.findCourseWeight(teachCourseId);
+        Objects.requireNonNull(obeCourseWeightResult, "未设置课程目标数据");
+        // TODO: 2024/6/6 fix
+//        Objects.requireNonNull(obeCourseWeightResult.getCustomRate(), "未设置平时成绩权重");
+//        Objects.requireNonNull(obeCourseWeightResult.getDefaultRate(), "未设置期末考试权重");
+        Objects.requireNonNull(obeCourseWeightResult.getWeightSettingSign(), "课程权重变化id为空");
+        Objects.requireNonNull(obeCourseWeightResult.getDimensionSign(), "知识点变化id为空");
+        List<CourseWeightDto> courseWeightDtoList = obeCourseWeightResult.getSubmitForm();
         if (CollectionUtils.isEmpty(courseWeightDtoList)) {
             throw ExceptionResultEnum.ERROR.exception("未设置课程目标评价方式");
         }
-        return courseWeightResult;
+        return obeCourseWeightResult;
     }
 
     /**
@@ -859,9 +864,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      */
     @Override
     public List<CourseWeightDto> findCourseWeightDtoRmi(Long teachCourseId) {
-        CourseWeightResult courseWeightResult = courseWeightService.findCourseWeight(teachCourseId);
-        if (Objects.nonNull(courseWeightResult) && !CollectionUtils.isEmpty(courseWeightResult.getSubmitForm())) {
-            return courseWeightResult.getSubmitForm();
+        ObeCourseWeightResult obeCourseWeightResult = obeCourseWeightService.findCourseWeight(teachCourseId);
+        if (Objects.nonNull(obeCourseWeightResult) && !CollectionUtils.isEmpty(obeCourseWeightResult.getSubmitForm())) {
+            return obeCourseWeightResult.getSubmitForm();
         }
         return null;
     }

+ 10 - 67
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -10,11 +10,11 @@ import com.qmth.distributed.print.business.bean.params.TeachCourseParams;
 import com.qmth.distributed.print.business.bean.params.TeachCourseSelectParam;
 import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
 import com.qmth.distributed.print.business.bean.result.ClazzDistributedResult;
-import com.qmth.distributed.print.business.bean.result.CourseWeightSettingStatusResult;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
+import com.qmth.distributed.print.business.entity.TeachClazz;
+import com.qmth.distributed.print.business.entity.TeachCourse;
+import com.qmth.distributed.print.business.entity.TeachStudent;
 import com.qmth.distributed.print.business.mapper.TeachCourseMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.base.BaseEntity;
@@ -70,16 +70,16 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     private TeachClazzService teachClazzService;
 
     @Resource
-    private CourseTargetService courseTargetService;
+    private ObeCourseTargetService obeCourseTargetService;
 
     @Resource
-    private CourseEvaluationService courseEvaluationService;
+    private ObeCourseEvaluationService obeCourseEvaluationService;
 
     @Resource
-    private CourseWeightService courseWeightService;
+    private ObeCourseWeightService obeCourseWeightService;
 
     @Resource
-    private CourseDimensionService courseDimensionService;
+    private ObeCourseDimensionService obeCourseDimensionService;
 
     @Resource
     private BasicTeachClazzService basicTeachClazzService;
@@ -178,7 +178,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
                 this.save(cell);
 
                 // 创建默认评价方式
-                courseEvaluationService.createDefaultCourseEvaluation(cell.getId());
+                obeCourseEvaluationService.createDefaultCourseEvaluation(cell.getId());
             }
         }
     }
@@ -262,19 +262,6 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         }
 
         for (Long teachCourseId : idList) {
-            // 删除知识点
-            courseDimensionService.remove(
-                    new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
-            // 删除课程目标
-            courseTargetService.remove(
-                    new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourseId));
-            // 删除课程评价方式
-            courseEvaluationService.remove(new QueryWrapper<CourseEvaluation>().lambda()
-                    .eq(CourseEvaluation::getTeachCourseId, teachCourseId));
-            // 删除权重设置
-            courseWeightService.remove(
-                    new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId));
-
             // 删除教学学生
             teachStudentService.remove(
                     new QueryWrapper<TeachStudent>().lambda().eq(TeachStudent::getTeachCourseId, teachCourseId));
@@ -350,7 +337,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         this.save(tmp);
 
         // 创建默认的评价方式
-        courseEvaluationService.createDefaultCourseEvaluation(tmp.getId());
+        obeCourseEvaluationService.createDefaultCourseEvaluation(tmp.getId());
     }
 
     @Transactional
@@ -398,7 +385,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
 
                 for (TeachCourse tmp : teachCourseList) {
                     // 创建默认评价方式
-                    courseEvaluationService.createDefaultCourseEvaluation(tmp.getId());
+                    obeCourseEvaluationService.createDefaultCourseEvaluation(tmp.getId());
                 }
             }
         }
@@ -504,50 +491,6 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         return teachCourse;
     }
 
-    @Transactional
-    @Override
-    public void clearCourseSetting(Long teachCourseId, CourseSettingTypeEnum courseSettingTypeEnum) {
-        if (courseSettingTypeEnum == CourseSettingTypeEnum.COURSE_DIMENSION) {// 删除知识点、目标设置
-            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-            Long requestUserId = requestUser.getId();
-
-            courseDimensionService.remove(
-                    new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
-
-            UpdateWrapper<CourseTarget> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.lambda().eq(CourseTarget::getTeachCourseId, teachCourseId)
-                    .set(CourseTarget::getTargetContent, null).set(CourseTarget::getUpdateId, requestUserId)
-                    .set(CourseTarget::getUpdateTime, System.currentTimeMillis());
-            courseTargetService.update(updateWrapper);
-
-            UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
-            teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId)
-                    .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid())
-                    .set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid());
-            this.update(teachCourseUpdateWrapper);
-        } else {
-            // 删除权重设置
-            courseWeightService.deleteCourseWeight(teachCourseId);
-        }
-    }
-
-    @Override
-    public CourseWeightSettingStatusResult findCourseWeightSettingStatus(Long teachCourseId) {
-        CourseWeightSettingStatusResult result = new CourseWeightSettingStatusResult();
-        TeachCourse teachCourse = this.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)) {
-            throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
-        }
-        Boolean everSettingStatus = teachCourse.getWeightSetting();
-        Boolean currenSettingStatus = courseWeightService.count(
-                new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId)) > 0;
-        Long createId = teachCourse.getCreateId();
-        result.setEverSettingStatus(everSettingStatus);
-        result.setCurrentSettingStatus(currenSettingStatus);
-        result.setCourseCreateId(createId);
-        return result;
-    }
-
     @Override
     public List<ClazzDistributedResult> findClazzDistributedStatus(Long teachCourseId, String clazzName) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();

+ 42 - 0
distributed-print-business/src/main/resources/db/log/caozixuan.sql

@@ -14,3 +14,45 @@ CREATE TABLE obe_course_outline (
     update_time BIGINT(20) NULL COMMENT '更新时间',
     PRIMARY KEY (id))
 COMMENT = '课程大纲表';
+
+-- 2024-06-06
+ALTER TABLE obe_course_outline
+    ADD UNIQUE INDEX obe_course_outline_unique (culture_program_id ASC, name ASC);
+;
+
+ALTER TABLE obe_course_outline
+    ADD COLUMN weight_setting TINYINT(1) NULL COMMENT '权重设置' AFTER user_id,
+    ADD COLUMN weight_setting_sign BIGINT NULL COMMENT '课程权重设置标识' AFTER weight_setting,
+    ADD COLUMN dimension_sign BIGINT NULL COMMENT '知识点标识' AFTER weight_setting_sign;
+
+
+ALTER TABLE course_dimension
+    DROP COLUMN user_id,
+    DROP COLUMN course_code,
+    DROP COLUMN exam_id,
+    DROP COLUMN semester_id,
+    CHANGE COLUMN teach_course_id obe_course_outline_id BIGINT NOT NULL COMMENT '课程大纲id' ;
+ALTER TABLE course_dimension
+    RENAME TO  obe_course_dimension ;
+
+ALTER TABLE obe_course_outline
+    ADD COLUMN school_id BIGINT NOT NULL COMMENT '学校id' AFTER culture_program_id;
+
+ALTER TABLE course_target
+    DROP COLUMN user_id,
+    DROP COLUMN course_code,
+    DROP COLUMN exam_id,
+    CHANGE COLUMN teach_course_id obe_course_outline_id BIGINT NOT NULL COMMENT '教学课程id' , COMMENT = '课程大纲目标表' , RENAME TO  obe_course_target ;
+
+ALTER TABLE course_evaluation
+    DROP COLUMN user_id,
+    DROP COLUMN course_code,
+    DROP COLUMN exam_id,
+    CHANGE COLUMN teach_course_id obe_course_outline_id BIGINT NOT NULL COMMENT '教学课程id' , COMMENT = '课程大纲评价方式表' , RENAME TO  obe_course_evaluation ;
+
+ALTER TABLE course_weight
+    DROP COLUMN user_id,
+    DROP COLUMN course_code,
+    DROP COLUMN exam_id,
+    CHANGE COLUMN teach_course_id obe_course_outline_id BIGINT NOT NULL COMMENT '课程大纲id' , COMMENT = '课程大纲权重设置表' , RENAME TO  obe_course_weight ;
+

+ 0 - 31
distributed-print-business/src/main/resources/mapper/CourseWeightMapper.xml

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!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.CourseWeightMapper">
-
-    <select id="findCourseWeightForm"
-            resultType="com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto">
-        SELECT
-            ct.id AS targetId,
-            ct.target_name AS targetName,
-            ct.create_time AS targetCreateTime,
-            cw.target_score AS targetScore,
-            ce.id AS evaluationId,
-            ce.evaluation AS evaluation,
-            ce.evaluation_desc AS evaluationDesc,
-            ce.create_time AS evaluationCreateTime,
-            ce.type AS type
-        FROM
-            course_weight cw
-                LEFT JOIN
-            course_target ct ON cw.target_id = ct.id
-                LEFT JOIN
-            course_evaluation ce ON cw.evaluation_id = ce.id
-        <where>
-            AND cw.enable
-            <if test="teachCourseId != null">
-                AND cw.teach_course_id = #{teachCourseId}
-            </if>
-        </where>
-        ORDER BY ct.id,ce.id
-    </select>
-</mapper>

+ 1 - 1
distributed-print-business/src/main/resources/mapper/CourseTargetMapper.xml → distributed-print-business/src/main/resources/mapper/ObeCourseDimensionMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!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.CourseTargetMapper">
+<mapper namespace="com.qmth.distributed.print.business.mapper.ObeCourseDimensionMapper">
 
 </mapper>

+ 5 - 5
distributed-print-business/src/main/resources/mapper/CourseEvaluationMapper.xml → distributed-print-business/src/main/resources/mapper/ObeCourseEvaluationMapper.xml

@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!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.CourseEvaluationMapper">
+<mapper namespace="com.qmth.distributed.print.business.mapper.ObeCourseEvaluationMapper">
 
     <select id="findCourseEvaluationList"
-            resultType="com.qmth.distributed.print.business.bean.result.CourseEvaluationResult">
+            resultType="com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult">
         SELECT
             id AS evaluationId,
             evaluation,
             evaluation_desc AS evaluationDesc,
             type
         FROM
-            course_evaluation
+            obe_course_evaluation
         <where>
-            <if test="teachCourseId != null">
-                AND teach_course_id = #{teachCourseId}
+            <if test="obeCourseOutlineId != null">
+                AND obe_course_outline_id = #{obeCourseOutlineId}
             </if>
         </where>
         ORDER BY id ASC

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

@@ -12,9 +12,9 @@
             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
+            bs.name AS semesterName,
+            ocp.id AS cultureProgramId,
+            ocp.name AS cultureProgramName
         FROM
             obe_course_outline oco
                 LEFT JOIN
@@ -23,21 +23,21 @@
             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
+                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 test="professionalId != null">
+                AND ocp.professional_id = #{professionalId}
             </if>
-            <if test="cultureProgramId != null and cultureProgramId != ''">
+            <if test="cultureProgramId != null">
                 AND ocp.id = #{cultureProgramId}
             </if>
-            <if test="courseId != null and courseId != ''">
+            <if test="courseId != null">
                 AND bc.id = #{courseId}
             </if>
+            <if test="courseOutlineName != null and courseOutlineName != ''">
+                AND oco.name LIKE CONCAT('%', #{courseOutlineName}, '%')
+            </if>
             <if test="dpr != null">
                 <if test="dpr.requestUserId != null">
                     AND oco.user_id = #{dpr.requestUserId}

+ 1 - 1
distributed-print-business/src/main/resources/mapper/CourseDimensionMapper.xml → distributed-print-business/src/main/resources/mapper/ObeCourseTargetMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!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.CourseDimensionMapper">
+<mapper namespace="com.qmth.distributed.print.business.mapper.ObeCourseTargetMapper">
 
 </mapper>

+ 31 - 0
distributed-print-business/src/main/resources/mapper/ObeCourseWeightMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!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.ObeCourseWeightMapper">
+
+    <select id="findCourseWeightForm"
+            resultType="com.qmth.distributed.print.business.bean.dto.CourseWeightFormDto">
+        SELECT
+            oct.id AS targetId,
+            oct.target_name AS targetName,
+            oct.create_time AS targetCreateTime,
+            ocw.target_score AS targetScore,
+            oce.id AS evaluationId,
+            oce.evaluation AS evaluation,
+            oce.evaluation_desc AS evaluationDesc,
+            oce.create_time AS evaluationCreateTime,
+            oce.type AS type
+        FROM
+            obe_course_weight ocw
+                LEFT JOIN
+            obe_course_target oct ON ocw.target_id = oct.id
+                LEFT JOIN
+            obe_course_evaluation oce ON ocw.evaluation_id = oce.id
+        <where>
+            AND ocw.enable
+            <if test="obeCourseOutlineId != null">
+                AND ocw.obe_course_outline_id = #{obeCourseOutlineId}
+            </if>
+        </where>
+        ORDER BY oct.id,oce.id
+    </select>
+</mapper>

+ 2 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.api;
 
 
+import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.service.BasicExamService;
@@ -29,6 +30,7 @@ import java.util.List;
 @Api(tags = "考试管理controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/exam")
+@Aac
 public class BasicExamController {
     @Resource
     private BasicExamService basicExamService;

+ 9 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseWeightController.java

@@ -2,8 +2,8 @@ package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
-import com.qmth.distributed.print.business.bean.params.CourseWeightParam;
-import com.qmth.distributed.print.business.service.CourseWeightService;
+import com.qmth.distributed.print.business.bean.params.ObeCourseWeightParam;
+import com.qmth.distributed.print.business.service.ObeCourseWeightService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -26,31 +26,31 @@ import javax.validation.Valid;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-@Api(tags = "课程权重管理controller")
+@Api(tags = "课程大纲权重管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TEACH + "/course_weight")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OBE + "/course_weight")
 public class CourseWeightController {
 
     @Resource
-    private CourseWeightService courseWeightService;
+    private ObeCourseWeightService obeCourseWeightService;
 
     @ApiOperation(value = "课程权重管理-列表查询")
     @RequestMapping(value = "/find", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = CourseWeightDto.class) })
-    public Result findCourseWeightList(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId) {
-        return ResultUtil.ok(courseWeightService.findCourseWeight(SystemConstant.convertIdToLong(teachCourseId)));
+    public Result findCourseWeightList(@ApiParam(value = "教学课程id") @RequestParam(required = false) String obeCourseOutlineId) {
+        return ResultUtil.ok(obeCourseWeightService.findCourseWeight(SystemConstant.convertIdToLong(obeCourseOutlineId)));
     }
 
     @ApiOperation(value = "课程权重管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "更新成功", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.ADD)
-    public Result saveCourseWeight(@Valid @RequestBody CourseWeightParam courseWeightParam, BindingResult bindingResult) {
+    public Result saveCourseWeight(@Valid @RequestBody ObeCourseWeightParam obeCourseWeightParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        courseWeightService.saveCourseWeight(courseWeightParam, sysUser);
+        obeCourseWeightService.saveCourseWeight(obeCourseWeightParam, sysUser);
         return ResultUtil.ok();
     }
 }

+ 3 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseDimensionController.java → distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseDimensionController.java

@@ -11,9 +11,9 @@ import org.springframework.web.bind.annotation.RestController;
  * @Author: CaoZixuan
  * @Date: 2024-03-04
  */
-@Api(tags = "课程知识点管理controller")
+@Api(tags = "课程大纲知识点管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TEACH + "/course_dimension")
-public class CourseDimensionController {
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OBE + "/course_dimension")
+public class ObeCourseDimensionController {
 
 }

+ 16 - 20
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseEvaluationController.java → distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseEvaluationController.java

@@ -1,18 +1,15 @@
 package com.qmth.distributed.print.api;
 
-
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.params.CourseEvaluationParam;
-import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
+import com.qmth.distributed.print.business.bean.params.ObeCourseEvaluationParam;
+import com.qmth.distributed.print.business.bean.result.ObeCourseEvaluationResult;
 import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
-import com.qmth.distributed.print.business.service.CourseEvaluationService;
+import com.qmth.distributed.print.business.service.ObeCourseEvaluationService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
@@ -29,36 +26,35 @@ import java.util.Objects;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-@Api(tags = "评价方式管理controller")
+@Api(tags = "课程大纲评价方式管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TEACH + "/course_evaluation")
-public class CourseEvaluationController {
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OBE + "/course_evaluation")
+public class ObeCourseEvaluationController {
 
     @Resource
-    private CourseEvaluationService courseEvaluationService;
+    private ObeCourseEvaluationService obeCourseEvaluationService;
 
     @ApiOperation(value = "评价方式管理-列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
-    @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = CourseEvaluationResult.class) })
-    public Result findCourseEvaluation(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId) {
-        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(
-                courseEvaluationService.findCourseEvaluationList(SystemConstant.convertIdToLong(teachCourseId)));
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = ObeCourseEvaluationResult.class) })
+    public Result findCourseEvaluation(@ApiParam(value = "教学课程id") @RequestParam(required = false) String obeCourseOutlineId) {
+        return ResultUtil.ok(obeCourseEvaluationService.findCourseEvaluationList(SystemConstant.convertIdToLong(obeCourseOutlineId)));
     }
 
     @ApiOperation(value = "评价方式管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "更新成功", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.SAVE)
-    public Result saveCourseEvaluation(@Valid @RequestBody CourseEvaluationParam courseEvaluationParam, BindingResult bindingResult) {
+    public Result saveCourseEvaluation(@Valid @RequestBody ObeCourseEvaluationParam obeCourseEvaluationParam,
+            BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
-        if (Objects.nonNull(courseEvaluationParam)) {
+        if (Objects.nonNull(obeCourseEvaluationParam)) {
             // 设置为自定义评价方式
-            courseEvaluationParam.setType(CourseEvaluationTypeEnum.CUSTOM);
+            obeCourseEvaluationParam.setType(CourseEvaluationTypeEnum.CUSTOM);
         }
-        courseEvaluationService.saveCourseEvaluation(courseEvaluationParam);
+        obeCourseEvaluationService.saveCourseEvaluation(obeCourseEvaluationParam);
         return ResultUtil.ok();
     }
 
@@ -67,7 +63,7 @@ public class CourseEvaluationController {
     @ApiResponses({ @ApiResponse(code = 200, message = "删除成功", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.DELETE)
     public Result deleteCourseEvaluation(@ApiParam(value = "选择要删除的评价方式id", required = true) @RequestParam String id) {
-        courseEvaluationService.deleteCourseEvaluation(SystemConstant.convertIdToLong(id));
+        obeCourseEvaluationService.deleteCourseEvaluation(SystemConstant.convertIdToLong(id));
         return ResultUtil.ok();
     }
 }

+ 61 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseOutlineController.java

@@ -1,12 +1,23 @@
 package com.qmth.distributed.print.api;
 
-
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.params.ObeCourseOutlineParam;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseOutlineResult;
+import com.qmth.distributed.print.business.service.ObeCourseOutlineService;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
 
 /**
  * <p>
@@ -16,9 +27,54 @@ import org.springframework.web.bind.annotation.RestController;
  * @author CaoZixuan
  * @since 2024-06-05
  */
-@Api(tags = "obe课程大纲管理controller")
+@Api(tags = "课程大纲管理controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OBE + "/course_outline")
 public class ObeCourseOutlineController {
 
+    @Resource
+    private ObeCourseOutlineService obeCourseOutlineService;
+
+    @ApiOperation(value = "课程大纲-查询")
+    @RequestMapping(value = "/page", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = ObeCourseOutlineResult.class) })
+    public Result findObeCourseOutlinePage(@ApiParam(value = "专业id") @RequestParam(required = false) String professionalId,
+            @ApiParam(value = "培养方案id") @RequestParam(required = false) String cultureProgramId,
+            @ApiParam(value = "课程id") @RequestParam(required = false) String courseId,
+            @ApiParam(value = "课程大纲名称(模糊查询)") @RequestParam(required = false) String courseOutlineName,
+            @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+            @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+
+        return ResultUtil.ok(obeCourseOutlineService.findObeCourseOutlinePage(SystemConstant.convertIdToLong(professionalId),
+                SystemConstant.convertIdToLong(cultureProgramId), SystemConstant.convertIdToLong(courseId),
+                courseOutlineName, pageNumber, pageSize));
+    }
+
+    @ApiOperation(value = "课程大纲-保存")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "创建成功", response = EditResult.class) })
+    @OperationLogDetail(detail = "新增课程大纲,参数[{{obeCourseOutlineParam}}]", operationType = OperationTypeEnum.ADD)
+    public Result saveObeCourseOutline(@Valid @RequestBody ObeCourseOutlineParam obeCourseOutlineParam, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        obeCourseOutlineService.saveObeCourseOutline(obeCourseOutlineParam);
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "课程大纲-删除")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "删除成功", response = EditResult.class) })
+    @OperationLogDetail(operationType = OperationTypeEnum.DELETE, detail = "删除操作,课程大纲id:[{{id}}]")
+    public Result deleteObeCourseOutline(@ApiParam(value = "选择的要删除的课程大纲id", required = true) @RequestParam Long id) {
+        obeCourseOutlineService.removeObeCourseOutline(id);
+        return ResultUtil.ok();
+    }
+
+    @ApiOperation(value = "课程大纲-查询课程权重设置状态")
+    @RequestMapping(value = "/find_course_weight_setting_status", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = Result.class) })
+    public Result findCourseWeightSettingStatus(@ApiParam(value = "教学课程id", required = true) @RequestParam String obeCourseOutlineId) {
+        return ResultUtil.ok(obeCourseOutlineService.findCourseWeightSettingStatus(SystemConstant.convertIdToLong(obeCourseOutlineId)));
+    }
 }

+ 21 - 37
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseTargetController.java → distributed-print/src/main/java/com/qmth/distributed/print/api/ObeCourseTargetController.java

@@ -1,16 +1,14 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.params.CourseTargetParam;
+import com.qmth.distributed.print.business.bean.params.ObeCourseTargetParam;
 import com.qmth.distributed.print.business.bean.result.CourseDimensionTree;
 import com.qmth.distributed.print.business.bean.result.CourseTargetResult;
-import com.qmth.distributed.print.business.service.CourseDimensionService;
-import com.qmth.distributed.print.business.service.CourseTargetService;
-import com.qmth.distributed.print.business.service.TeachCourseService;
+import com.qmth.distributed.print.business.service.ObeCourseDimensionService;
+import com.qmth.distributed.print.business.service.ObeCourseTargetService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -33,45 +31,31 @@ import javax.validation.Valid;
  * @author CaoZixuan
  * @since 2024-02-22
  */
-@Api(tags = "课程目标管理controller")
+@Api(tags = "课程大纲目标管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TEACH + "/course_target")
-public class CourseTargetController {
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OBE + "/course_target")
+public class ObeCourseTargetController {
 
-    private final static Logger log = LoggerFactory.getLogger(CourseTargetController.class);
+    private final static Logger log = LoggerFactory.getLogger(ObeCourseTargetController.class);
 
     @Resource
-    private CourseTargetService courseTargetService;
+    private ObeCourseTargetService obeCourseTargetService;
 
     @Resource
-    private CourseDimensionService courseDimensionService;
-
-    @Resource
-    private TeachCourseService teachCourseService;
+    private ObeCourseDimensionService obeCourseDimensionService;
 
     @ApiOperation(value = "课程目标管理-列表查询")
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = CourseTargetResult.class) })
-    public Result findCourseTargetList(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId,
-            @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
-            @ApiParam(value = "课程编号") @RequestParam(required = false) String courseCode) {
-        if (SystemConstant.strNotNull(examId) && SystemConstant.strNotNull(courseCode)) {
-            if (SystemConstant.strNotNull(teachCourseId)) {
-                // 要么传examId和courseCode 要么传teachCourseId
-                throw ExceptionResultEnum.ERROR.exception("参数错误");
-            }
-            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-            teachCourseId = String.valueOf(teachCourseService.findByExamIdCourseCodeAndUserId(SystemConstant.convertIdToLong(examId),
-                    courseCode, requestUser.getId()).getId());
-        }
-        return ResultUtil.ok(courseTargetService.findCourseTargetList(SystemConstant.convertIdToLong(teachCourseId)));
+    public Result findCourseTargetList(@ApiParam(value = "课程大纲id") @RequestParam(required = false) String obeCourseOutlineId) {
+        return ResultUtil.ok(obeCourseTargetService.findCourseTargetList(SystemConstant.convertIdToLong(obeCourseOutlineId)));
     }
 
     @ApiOperation(value = "课程目标管理-同步题库知识点")
     @RequestMapping(value = "/dimension_sync_tiku", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = Result.class) })
-    public Result syncTikuDimension(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId) {
-        courseDimensionService.syncTikuCourseProperties(SystemConstant.convertIdToLong(teachCourseId));
+    public Result syncTikuDimension(@ApiParam(value = "教学大纲id") @RequestParam(required = false) String obeCourseOutlineId) {
+        obeCourseDimensionService.syncTikuCourseProperties(SystemConstant.convertIdToLong(obeCourseOutlineId));
         return ResultUtil.ok();
     }
 
@@ -80,35 +64,35 @@ public class CourseTargetController {
     @ApiResponses({ @ApiResponse(code = 200, message = "返回信息", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.IMPORT)
     public Result courseDimensionImportSync(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
-            @ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId) throws Exception {
+            @ApiParam(value = "教学大纲id") @RequestParam(required = false) String obeCourseOutlineId) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-        courseDimensionService.importCourseDimension(requestUser, file, SystemConstant.convertIdToLong(teachCourseId));
+        obeCourseDimensionService.importCourseDimension(requestUser, file, SystemConstant.convertIdToLong(obeCourseOutlineId));
         return ResultUtil.ok();
     }
 
     @ApiOperation(value = "课程目标管理-课程知识点树查询")
     @RequestMapping(value = "/dimension_tree", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = CourseDimensionTree.class) })
-    public Result findDimensionTree(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId) {
+    public Result findDimensionTree(@ApiParam(value = "教学大纲id") @RequestParam(required = false) String obeCourseOutlineId) {
         try {
-            courseDimensionService.syncTikuCourseProperties(SystemConstant.convertIdToLong(teachCourseId));
+            obeCourseDimensionService.syncTikuCourseProperties(SystemConstant.convertIdToLong(obeCourseOutlineId));
         } catch (Exception e) {
             log.error(e.getMessage());
         }
 
-        return ResultUtil.ok(courseTargetService.findDimensionTree(SystemConstant.convertIdToLong(teachCourseId)));
+        return ResultUtil.ok(obeCourseTargetService.findDimensionTree(SystemConstant.convertIdToLong(obeCourseOutlineId)));
     }
 
     @ApiOperation(value = "课程目标管理-新增/编辑")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "更新成功", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.SAVE)
-    public Result saveCourseTarget(@Valid @RequestBody CourseTargetParam courseTargetParam, BindingResult bindingResult) {
+    public Result saveCourseTarget(@Valid @RequestBody ObeCourseTargetParam obeCourseTargetParam, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        courseTargetService.saveCourseTarget(courseTargetParam, sysUser);
+        obeCourseTargetService.saveCourseTarget(obeCourseTargetParam, sysUser);
         return ResultUtil.ok();
     }
 
@@ -117,7 +101,7 @@ public class CourseTargetController {
     @ApiResponses({ @ApiResponse(code = 200, message = "删除成功", response = Result.class) })
     @OperationLogDetail(operationType = OperationTypeEnum.DELETE)
     public Result deleteCourseTarget(@ApiParam(value = "选择要删除的课程目标id", required = true) @RequestParam String id) {
-        courseTargetService.deleteCourseTarget(SystemConstant.convertIdToLong(id));
+        obeCourseTargetService.deleteCourseTarget(SystemConstant.convertIdToLong(id));
         return ResultUtil.ok();
     }
 }

+ 7 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/TCPaperStructController.java

@@ -8,7 +8,7 @@ import com.qmth.boot.core.rateLimit.annotation.RateLimit;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.excel.PaperStructDto;
 import com.qmth.distributed.print.business.bean.params.report.PaperStructParams;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.entity.TCPaperStruct;
@@ -146,8 +146,8 @@ public class TCPaperStructController {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         printCommonService.getLock(paperStructParams.getExamId(), paperStructParams.getCourseCode(), paperStructParams.getPaperNumber(), paperStructParams.getTeachCourseId());
-        CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(paperStructParams.getTeachCourseId());
-        for (CourseWeightDto c : courseWeightResult.getSubmitForm()) {
+        ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(paperStructParams.getTeachCourseId());
+        for (CourseWeightDto c : obeCourseWeightResult.getSubmitForm()) {
             for (PaperStructDimensionResult paperStructDimensionResult : paperStructParams.getPaperStruct()) {
                 Objects.requireNonNull(paperStructDimensionResult.getMainNumber(), "大题号为空");
                 Objects.requireNonNull(paperStructDimensionResult.getSubNumber(), "小题号为空");
@@ -174,7 +174,7 @@ public class TCPaperStructController {
         TCPaperStruct tcPaperStructDb = tcPaperStructService.queryPaperStruct(paperStructParams.getExamId(), paperStructParams.getCourseCode(), paperStructParams.getPaperNumber(), paperStructParams.getTeachCourseId());
         if (Objects.isNull(tcPaperStructDb)) {
             MarkPaper markPaper = printCommonService.getMarkPaper(paperStructParams.getExamId(), paperStructParams.getCourseCode(), paperStructParams.getPaperNumber());
-            tcPaperStructDb = new TCPaperStruct(paperStructParams.getExamId(), paperStructParams.getCourseCode(), markPaper.getCourseName(), paperStructParams.getPaperNumber(), paperStructParams.getTeachCourseId(), JacksonUtil.parseJson(paperStructParams.getPaperStruct()), sysUser.getId(), courseWeightResult.getDimensionSign());
+            tcPaperStructDb = new TCPaperStruct(paperStructParams.getExamId(), paperStructParams.getCourseCode(), markPaper.getCourseName(), paperStructParams.getPaperNumber(), paperStructParams.getTeachCourseId(), JacksonUtil.parseJson(paperStructParams.getPaperStruct()), sysUser.getId(), obeCourseWeightResult.getDimensionSign());
             tcPaperStructService.save(tcPaperStructDb);
         } else {
             TCPaperStruct tcPaperStructSource = new TCPaperStruct();
@@ -182,7 +182,7 @@ public class TCPaperStructController {
             tcPaperStructDb.updateInfo(JacksonUtil.parseJson(paperStructParams.getPaperStruct()), sysUser.getId());
             if (!tcPaperStructDb.equals(tcPaperStructSource)) {
                 trBasicInfoService.clearReportData(tcPaperStructDb.getExamId(), tcPaperStructDb.getCourseCode(), tcPaperStructDb.getPaperNumber(), paperStructParams.getTeachCourseId(), false);
-                tcPaperStructDb.setDimensionSign(courseWeightResult.getDimensionSign());
+                tcPaperStructDb.setDimensionSign(obeCourseWeightResult.getDimensionSign());
                 tcPaperStructService.updateById(tcPaperStructDb);
             }
         }
@@ -208,8 +208,8 @@ public class TCPaperStructController {
                 paperStructDimensionResultList.add(new PaperStructDimensionResult(markQuestion.getMainNumber(), markQuestion.getSubNumber(), markQuestion.getPaperNumber(), markQuestion.getTotalScore()));
             }
         } else {
-            CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
-            if (Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != courseWeightResult.getDimensionSign().longValue()) {
+            ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
+            if (Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != obeCourseWeightResult.getDimensionSign().longValue()) {
                 trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, false);
                 paperStructDimensionResultList = this.getPaperStructDimensionResult(tcPaperStruct, paperStructDimensionResultList);
             } else {

+ 3 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/TCUsualScoreController.java

@@ -7,7 +7,7 @@ import com.qmth.distributed.print.business.bean.dto.CourseWeightDetailDto;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.dto.TCUsualScoreDto;
 import com.qmth.distributed.print.business.bean.excel.ExcelField;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.ScoreResult;
 import com.qmth.distributed.print.business.entity.TCUsualScore;
@@ -92,8 +92,8 @@ public class TCUsualScoreController {
                                            @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                                            @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                            @ApiParam(value = "教学课程id", required = true) @RequestParam Long teachCourseId) throws IOException {
-        CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
-        List<CourseWeightDto> courseWeightDtoList = courseWeightResult.getSubmitForm();
+        ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
+        List<CourseWeightDto> courseWeightDtoList = obeCourseWeightResult.getSubmitForm();
 
         List<ExcelField> excelFieldList = new ArrayList<>();
         excelFieldList.addAll(new ArrayList<>(Arrays.asList(new ExcelField("studentCode", "学号", true), new ExcelField("name", "姓名", true))));

+ 14 - 12
distributed-print/src/main/java/com/qmth/distributed/print/api/TRBasicInfoController.java

@@ -15,7 +15,7 @@ import com.qmth.distributed.print.business.bean.dto.CourseWeightDetailDto;
 import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.dto.TCUsualScoreDto;
 import com.qmth.distributed.print.business.bean.dto.report.*;
-import com.qmth.distributed.print.business.bean.result.CourseWeightResult;
+import com.qmth.distributed.print.business.bean.result.ObeCourseWeightResult;
 import com.qmth.distributed.print.business.bean.result.ScoreResult;
 import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.bean.result.report.ReportChangeResult;
@@ -125,13 +125,13 @@ public class TRBasicInfoController {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         TRBasicInfo trBasicInfo = trBasicInfoService.queryBasicInfo(examId, courseCode, paperNumber, teachCourseId);
 
-        CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
-        log.info("courseWeightResult:{}", JacksonUtil.parseJson(courseWeightResult));
+        ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
+        log.info("courseWeightResult:{}", JacksonUtil.parseJson(obeCourseWeightResult));
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(examId, courseCode, paperNumber, teachCourseId);
         if (Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getPaperStructDimension())) {
             List<PaperStructDimensionResult> paperStructDimensionResultList = GsonUtil.fromJson(tcPaperStruct.getPaperStructDimension(), new TypeToken<List<PaperStructDimensionResult>>() {
             }.getType());
-            for (CourseWeightDto c : courseWeightResult.getSubmitForm()) {
+            for (CourseWeightDto c : obeCourseWeightResult.getSubmitForm()) {
                 Double score = paperStructDimensionResultList.stream().filter(s -> Objects.equals(s.getCourseTargetName(), c.getCourseTargetName())).mapToDouble(PaperStructDimensionResult::getScore).sum();
                 Objects.requireNonNull(c.getTotalWeight(), "[" + c.getCourseTargetName() + "]未设置权重");
                 Objects.requireNonNull(c.getTotalScore(), "[" + c.getCourseTargetName() + "]未设置目标分值");
@@ -144,12 +144,14 @@ public class TRBasicInfoController {
 
         MarkPaper markPaper = printCommonService.getMarkPaper(examId, courseCode, tcPaperStruct.getPaperNumber());
         if (Objects.isNull(trBasicInfo)) {
-            trBasicInfo = trBasicInfoService.getReportView(trBasicInfo, markPaper, sysUser.getId(), courseWeightResult, teachCourseId);
+            trBasicInfo = trBasicInfoService.getReportView(trBasicInfo, markPaper, sysUser.getId(),
+                    obeCourseWeightResult, teachCourseId);
         } else {
             ReportCourseEvaluationResultDto reportCourseEvaluationResultDto = Objects.nonNull(trBasicInfo.getCourseEvaluationResult()) ? JSONObject.parseObject(trBasicInfo.getCourseEvaluationResult(), ReportCourseEvaluationResultDto.class) : null;
-            if (Objects.nonNull(reportCourseEvaluationResultDto.getWeightSettingSign()) && reportCourseEvaluationResultDto.getWeightSettingSign().longValue() != courseWeightResult.getWeightSettingSign().longValue()) {
-                trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != courseWeightResult.getDimensionSign().longValue() ? true : false);
-                trBasicInfo = trBasicInfoService.getReportView(trBasicInfo, markPaper, sysUser.getId(), courseWeightResult, teachCourseId);
+            if (Objects.nonNull(reportCourseEvaluationResultDto.getWeightSettingSign()) && reportCourseEvaluationResultDto.getWeightSettingSign().longValue() != obeCourseWeightResult.getWeightSettingSign().longValue()) {
+                trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != obeCourseWeightResult.getDimensionSign().longValue() ? true : false);
+                trBasicInfo = trBasicInfoService.getReportView(trBasicInfo, markPaper, sysUser.getId(),
+                        obeCourseWeightResult, teachCourseId);
             } else {
                 ReportCourseBasicInfoDto reportCourseBasicInfoDto = new ReportCourseBasicInfoDto(trBasicInfo);
                 ReportCourseEvaluationSpreadDto reportCourseEvaluationSpreadDto = Objects.nonNull(trBasicInfo.getCourseEvaluationSpread()) ? JSONObject.parseObject(trBasicInfo.getCourseEvaluationSpread(), ReportCourseEvaluationSpreadDto.class) : null;
@@ -226,12 +228,12 @@ public class TRBasicInfoController {
             Objects.requireNonNull(trBasicInfo.getCourseEvaluationResult(), "没有课程目标信息");
             Objects.requireNonNull(trBasicInfo.getCourseEvaluationResultDetail(), "没有课程考生信息");
 
-            CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
+            ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(teachCourseId);
             TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(examId, courseCode, paperNumber, teachCourseId);
             if (Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getPaperStructDimension())) {
                 List<PaperStructDimensionResult> paperStructDimensionResultList = GsonUtil.fromJson(tcPaperStruct.getPaperStructDimension(), new TypeToken<List<PaperStructDimensionResult>>() {
                 }.getType());
-                for (CourseWeightDto c : courseWeightResult.getSubmitForm()) {
+                for (CourseWeightDto c : obeCourseWeightResult.getSubmitForm()) {
                     Double score = paperStructDimensionResultList.stream().filter(s -> Objects.equals(s.getCourseTargetName(), c.getCourseTargetName())).mapToDouble(PaperStructDimensionResult::getScore).sum();
                     Objects.requireNonNull(c.getTotalWeight(), "[" + c.getCourseTargetName() + "]未设置权重");
                     Objects.requireNonNull(c.getTotalScore(), "[" + c.getCourseTargetName() + "]未设置目标分值");
@@ -243,8 +245,8 @@ public class TRBasicInfoController {
             }
 
             ReportCourseEvaluationResultDto reportCourseEvaluationResultDto = JSONObject.parseObject(trBasicInfo.getCourseEvaluationResult(), ReportCourseEvaluationResultDto.class);
-            if (Objects.nonNull(reportCourseEvaluationResultDto.getWeightSettingSign()) && reportCourseEvaluationResultDto.getWeightSettingSign().longValue() != courseWeightResult.getWeightSettingSign().longValue()) {
-                trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != courseWeightResult.getDimensionSign().longValue() ? true : false);
+            if (Objects.nonNull(reportCourseEvaluationResultDto.getWeightSettingSign()) && reportCourseEvaluationResultDto.getWeightSettingSign().longValue() != obeCourseWeightResult.getWeightSettingSign().longValue()) {
+                trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, Objects.nonNull(tcPaperStruct) && Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != obeCourseWeightResult.getDimensionSign().longValue() ? true : false);
                 this.reportView(examId, courseCode, paperNumber, teachCourseId);
                 this.reportExport(examId, courseCode, paperNumber, teachCourseId);
             } else {

+ 0 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java

@@ -174,14 +174,6 @@ public class TeachCourseController {
         return ResultUtil.ok(teachCourseService.findUserByOrgId(orgId));
     }
 
-    @ApiOperation(value = "教学课程-查询课程权重设置状态")
-    @RequestMapping(value = "/find_course_weight_setting_status", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findCourseWeightSettingStatus(@ApiParam(value = "教学课程id", required = true) @RequestParam String teachCourseId) {
-        return ResultUtil.ok(
-                teachCourseService.findCourseWeightSettingStatus(SystemConstant.convertIdToLong(teachCourseId)));
-    }
-
     @ApiOperation(value = "教师团队管理-分配班级列表查询")
     @RequestMapping(value = "/find_clazz_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})

+ 1 - 2
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.dto.examObject.ExamObjectDto;
-import com.qmth.distributed.print.business.bean.result.report.PaperStructDimensionResult;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
@@ -63,7 +62,7 @@ public class ServiceTest {
     private ExamDetailCourseService examDetailCourseService;
 
     @Resource
-    private CourseTargetService courseTargetService;
+    private ObeCourseTargetService obeCourseTargetService;
 
     @Test
     public void printPlanTemplateDatasource() {