Kaynağa Gözat

add: 知学知考 分析试卷-诊断规则定义

caozixuan 3 yıl önce
ebeveyn
işleme
6f211a1dd3
17 değiştirilmiş dosya ile 471 ekleme ve 16 silme
  1. 0 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeBatchParam.java
  2. 66 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeModuleKnowledgeDefineParam.java
  3. 115 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradePaperDefineParam.java
  4. 71 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/analyze/GradePaperDefineResult.java
  5. 4 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeModuleDefine.java
  6. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradePaper.java
  7. 8 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradeModuleDefineService.java
  8. 24 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradePaperService.java
  9. 58 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeModuleDefineServiceImpl.java
  10. 114 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperServiceImpl.java
  11. 1 3
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/AssignEnum.java
  12. 1 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TBPaper.java
  13. 1 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/AnalyzeForReportServiceImpl.java
  14. 1 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java
  15. 1 1
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/service/impl/TaskCalculateServiceImpl.java
  16. 1 1
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/BasicDatasourceController.java
  17. 1 1
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/CourseController.java

+ 0 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeBatchParam.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.business.bean.params.analyze;
 
-import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;

+ 66 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradeModuleKnowledgeDefineParam.java

@@ -0,0 +1,66 @@
+package com.qmth.distributed.print.business.bean.params.analyze;
+
+import com.qmth.distributed.print.business.enums.DimensionEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 分析模块定义参数
+ * @Author: CaoZixuan
+ * @Date: 2022-05-30
+ */
+public class GradeModuleKnowledgeDefineParam {
+    @ApiModelProperty(value = "二级熟练度定义")
+    private String define;
+
+    @ApiModelProperty(value = "等级")
+    private String level;
+
+    @ApiModelProperty(value = "展示用最小边界")
+    private String min;
+
+    @ApiModelProperty(value = "展示用最大边界")
+    private String max;
+
+    @ApiModelProperty(value = "取值范围(计算用)")
+    private String scope;
+
+    public String getDefine() {
+        return define;
+    }
+
+    public void setDefine(String define) {
+        this.define = define;
+    }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public String getMin() {
+        return min;
+    }
+
+    public void setMin(String min) {
+        this.min = min;
+    }
+
+    public String getMax() {
+        return max;
+    }
+
+    public void setMax(String max) {
+        this.max = max;
+    }
+
+    public String getScope() {
+        return scope;
+    }
+
+    public void setScope(String scope) {
+        this.scope = scope;
+    }
+}

+ 115 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/analyze/GradePaperDefineParam.java

@@ -0,0 +1,115 @@
+package com.qmth.distributed.print.business.bean.params.analyze;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Description: 基础分析试卷定义
+ * @Author: CaoZixuan
+ * @Date: 2022-05-30
+ */
+public class GradePaperDefineParam {
+    // 基础信息
+    @ApiModelProperty(value = "试卷编号")
+    @NotNull(message = "缺少试卷编号")
+    private String paperNumber;
+
+    @ApiModelProperty(value = "试卷类型")
+    @NotNull(message = "缺少试卷类型")
+    private String paperType;
+
+    @ApiModelProperty(value = "试卷名称")
+    @NotNull(message = "缺少试卷名称")
+    private String paperName;
+
+    // 试卷信息
+    @ApiModelProperty(value = "卷面总分")
+    @NotNull(message = "缺少卷面总分")
+    private BigDecimal totalScore;
+
+    @ApiModelProperty(value = "试卷及格分")
+    @NotNull(message = "缺少试卷及格分")
+    private BigDecimal passScore;
+
+    // 二级维度定义
+    @ApiModelProperty(value = "知识维度解释")
+    @NotNull(message = "缺少知识维度解释")
+    private String knowledgeInterpret;
+
+    @ApiModelProperty(value = "能力维度解释")
+    @NotNull(message = "缺少能力维度解释")
+    private String abilityInterpret;
+
+    @ApiModelProperty(value = "二级维度精熟度定义")
+    @NotNull(message = "缺少二级维度精熟度定义")
+    @Range(min = 1L, message = "缺少二级维度精熟度定义")
+    private List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList;
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public String getPaperName() {
+        return paperName;
+    }
+
+    public void setPaperName(String paperName) {
+        this.paperName = paperName;
+    }
+
+    public BigDecimal getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(BigDecimal totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public BigDecimal getPassScore() {
+        return passScore;
+    }
+
+    public void setPassScore(BigDecimal passScore) {
+        this.passScore = passScore;
+    }
+
+    public String getKnowledgeInterpret() {
+        return knowledgeInterpret;
+    }
+
+    public void setKnowledgeInterpret(String knowledgeInterpret) {
+        this.knowledgeInterpret = knowledgeInterpret;
+    }
+
+    public String getAbilityInterpret() {
+        return abilityInterpret;
+    }
+
+    public void setAbilityInterpret(String abilityInterpret) {
+        this.abilityInterpret = abilityInterpret;
+    }
+
+    public List<GradeModuleKnowledgeDefineParam> getGradeModuleDefineParamList() {
+        return gradeModuleKnowledgeDefineParamList;
+    }
+
+    public void setGradeModuleDefineParamList(List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList) {
+        this.gradeModuleKnowledgeDefineParamList = gradeModuleKnowledgeDefineParamList;
+    }
+}

+ 71 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/analyze/GradePaperDefineResult.java

@@ -0,0 +1,71 @@
+package com.qmth.distributed.print.business.bean.result.analyze;
+
+import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleKnowledgeDefineParam;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Description: 分析试卷定义结果
+ * @Author: CaoZixuan
+ * @Date: 2022-05-31
+ */
+public class GradePaperDefineResult {
+    // 试卷信息
+    @ApiModelProperty(value = "卷面总分")
+    private BigDecimal totalScore;
+
+    @ApiModelProperty(value = "试卷及格分")
+    private BigDecimal passScore;
+
+    // 二级维度定义
+    @ApiModelProperty(value = "知识维度解释")
+    private String knowledgeInterpret;
+
+    @ApiModelProperty(value = "能力维度解释")
+    private String abilityInterpret;
+
+    @ApiModelProperty(value = "二级维度精熟度定义")
+    private List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList;
+
+    public BigDecimal getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(BigDecimal totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public BigDecimal getPassScore() {
+        return passScore;
+    }
+
+    public void setPassScore(BigDecimal passScore) {
+        this.passScore = passScore;
+    }
+
+    public String getKnowledgeInterpret() {
+        return knowledgeInterpret;
+    }
+
+    public void setKnowledgeInterpret(String knowledgeInterpret) {
+        this.knowledgeInterpret = knowledgeInterpret;
+    }
+
+    public String getAbilityInterpret() {
+        return abilityInterpret;
+    }
+
+    public void setAbilityInterpret(String abilityInterpret) {
+        this.abilityInterpret = abilityInterpret;
+    }
+
+    public List<GradeModuleKnowledgeDefineParam> getGradeModuleKnowledgeDefineParamList() {
+        return gradeModuleKnowledgeDefineParamList;
+    }
+
+    public void setGradeModuleKnowledgeDefineParamList(List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList) {
+        this.gradeModuleKnowledgeDefineParamList = gradeModuleKnowledgeDefineParamList;
+    }
+}

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeModuleDefine.java

@@ -2,6 +2,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.DimensionEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -35,7 +36,7 @@ public class GradeModuleDefine extends BaseEntity implements Serializable {
     private String paperName;
 
     @ApiModelProperty(value = "维度模块类型")
-    private String moduleType;
+    private DimensionEnum moduleType;
 
     @ApiModelProperty(value = "解释")
     private String interpret;
@@ -90,11 +91,11 @@ public class GradeModuleDefine extends BaseEntity implements Serializable {
         this.paperName = paperName;
     }
 
-    public String getModuleType() {
+    public DimensionEnum getModuleType() {
         return moduleType;
     }
 
-    public void setModuleType(String moduleType) {
+    public void setModuleType(DimensionEnum moduleType) {
         this.moduleType = moduleType;
     }
 

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradePaper.java

@@ -1,9 +1,9 @@
 package com.qmth.distributed.print.business.entity;
 
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -52,7 +52,7 @@ public class GradePaper extends BaseEntity implements Serializable {
     private BigDecimal passScore;
 
     @ApiModelProperty(value = "赋分类型\\n1.NEED_ASSIGN_SCORE('是','需要且按照公式赋分')\\n2.NO_NEED_ASSIGN_SCORE('否','不需要赋分,标准分即为赋分')\\n3.SPECIAL_ASSIGN_SCORE('特殊赋分','特殊赋分,按照excel表进行赋分')")
-    private String scoreType;
+    private AssignEnum scoreType;
 
     public Long getSchoolId() {
         return schoolId;
@@ -126,11 +126,11 @@ public class GradePaper extends BaseEntity implements Serializable {
         this.passScore = passScore;
     }
 
-    public String getScoreType() {
+    public AssignEnum getScoreType() {
         return scoreType;
     }
 
-    public void setScoreType(String scoreType) {
+    public void setScoreType(AssignEnum scoreType) {
         this.scoreType = scoreType;
     }
 }

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradeModuleDefineService.java

@@ -1,7 +1,9 @@
 package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDefineParam;
 import com.qmth.distributed.print.business.entity.GradeModuleDefine;
+import com.qmth.teachcloud.common.entity.SysUser;
 
 import java.util.List;
 
@@ -14,6 +16,12 @@ import java.util.List;
  * @since 2022-05-20
  */
 public interface GradeModuleDefineService extends IService<GradeModuleDefine> {
+    /**
+     * 批量新增二级维度熟练度定义
+     * @param gradePaperDefineParam 分析试卷定义
+     * @param requestUser 请求用户
+     */
+    void saveGradeModuleDefineBatch(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser);
 
     List<GradeModuleDefine> findBySchoolIdAndPaperNumberAndPaperType(Long schoolId, String paperNumber, String paperType);
 }

+ 24 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradePaperService.java

@@ -2,7 +2,12 @@ package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.open.PaperConfig;
+import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDefineParam;
+import com.qmth.distributed.print.business.bean.result.analyze.GradePaperDefineResult;
 import com.qmth.distributed.print.business.entity.GradePaper;
+import com.qmth.teachcloud.common.entity.SysUser;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -14,5 +19,24 @@ import com.qmth.distributed.print.business.entity.GradePaper;
  */
 public interface GradePaperService extends IService<GradePaper> {
 
+    GradePaperDefineResult findGradePaperDefine(String paperNumber, String paperType, SysUser requestUser);
+
+    /**
+     * 新增分析试卷定义
+     *
+     * @param gradePaperDefineParam 试卷定义参数
+     * @param requestUser      请求用户
+     */
+    void saveGradePaperDefine(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser);
+
+    /**
+     * 新增基础分析试卷配置
+     *
+     * @param gradePaperDefineParam 试卷定义参数
+     * @param requestUser      请求用户
+     * @return 分析试卷id
+     */
+    Long saveGradePaper(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser);
+
     PaperConfig findBySchoolIdAndPaperNumberAndPaperType(Long schoolId, String paperNumber, String paperType);
 }

+ 58 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeModuleDefineServiceImpl.java

@@ -2,12 +2,21 @@ package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleKnowledgeDefineParam;
+import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDefineParam;
 import com.qmth.distributed.print.business.entity.GradeModuleDefine;
+import com.qmth.distributed.print.business.enums.DimensionEnum;
 import com.qmth.distributed.print.business.mapper.GradeModuleDefineMapper;
+import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeModuleDefineService;
+import com.qmth.teachcloud.common.entity.SysUser;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -19,6 +28,55 @@ import java.util.List;
  */
 @Service
 public class GradeModuleDefineServiceImpl extends ServiceImpl<GradeModuleDefineMapper, GradeModuleDefine> implements GradeModuleDefineService {
+    @Resource
+    private GradeBatchPaperService gradeBatchPaperService;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void saveGradeModuleDefineBatch(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        String paperNumber = gradePaperDefineParam.getPaperNumber();
+        String paperType = gradePaperDefineParam.getPaperType();
+        String paperName = gradePaperDefineParam.getPaperName();
+
+        String knowledgeInterpret = gradePaperDefineParam.getKnowledgeInterpret();
+        String abilityInterpret = gradePaperDefineParam.getAbilityInterpret();
+
+        List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList = gradePaperDefineParam.getGradeModuleDefineParamList();
+        // 针对知识的
+        List<GradeModuleDefine> gradeModuleDefineList = gradeModuleKnowledgeDefineParamList.stream().flatMap(e -> {
+            GradeModuleDefine gradeModuleDefine = new GradeModuleDefine();
+            gradeModuleDefine.setSchoolId(schoolId);
+            gradeModuleDefine.setPaperNumber(paperNumber);
+            gradeModuleDefine.setPaperType(paperType);
+            gradeModuleDefine.setPaperName(paperName);
+            gradeModuleDefine.setModuleType(DimensionEnum.KNOWLEDGE);
+            gradeModuleDefine.setInterpret(knowledgeInterpret);
+            gradeModuleDefine.setDefine(e.getDefine());
+            gradeModuleDefine.setLevel(e.getLevel());
+            gradeModuleDefine.setMin(e.getMin());
+            gradeModuleDefine.setMax(e.getMax());
+            gradeModuleDefine.setScope(e.getScope());
+            return Stream.of(gradeModuleDefine);
+        }).collect(Collectors.toList());
+        // 针对能力的
+        GradeModuleDefine abilityDefine = new GradeModuleDefine();
+        abilityDefine.setSchoolId(schoolId);
+        abilityDefine.setPaperNumber(paperNumber);
+        abilityDefine.setPaperType(paperType);
+        abilityDefine.setPaperName(paperName);
+        abilityDefine.setModuleType(DimensionEnum.ABILITY);
+        abilityDefine.setInterpret(abilityInterpret);
+        gradeModuleDefineList.add(abilityDefine);
+
+        gradeBatchPaperService.checkOperateAuth(schoolId,paperNumber,paperType);
+        this.remove(new QueryWrapper<GradeModuleDefine>()
+                .lambda()
+                .eq(GradeModuleDefine::getSchoolId,schoolId)
+                .eq(GradeModuleDefine::getPaperNumber,paperNumber)
+                .eq(GradeModuleDefine::getPaperType,paperType));
+        this.saveBatch(gradeModuleDefineList);
+    }
 
     @Override
     public List<GradeModuleDefine> findBySchoolIdAndPaperNumberAndPaperType(Long schoolId, String paperNumber, String paperType) {

+ 114 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperServiceImpl.java

@@ -3,10 +3,27 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.open.PaperConfig;
+import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleKnowledgeDefineParam;
+import com.qmth.distributed.print.business.bean.params.analyze.GradePaperDefineParam;
+import com.qmth.distributed.print.business.bean.result.analyze.GradePaperDefineResult;
+import com.qmth.distributed.print.business.entity.GradeModuleDefine;
 import com.qmth.distributed.print.business.entity.GradePaper;
+import com.qmth.distributed.print.business.enums.DimensionEnum;
 import com.qmth.distributed.print.business.mapper.GradePaperMapper;
+import com.qmth.distributed.print.business.service.GradeBatchPaperService;
+import com.qmth.distributed.print.business.service.GradeModuleDefineService;
 import com.qmth.distributed.print.business.service.GradePaperService;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * <p>
@@ -18,6 +35,103 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class GradePaperServiceImpl extends ServiceImpl<GradePaperMapper, GradePaper> implements GradePaperService {
+    @Resource
+    private GradeBatchPaperService gradeBatchPaperService;
+    @Resource
+    private GradeModuleDefineService gradeModuleDefineService;
+
+    @Override
+    public GradePaperDefineResult findGradePaperDefine(String paperNumber, String paperType, SysUser requestUser) {
+        Long schoolId = requestUser.getSchoolId();
+        GradePaper gradePaper = this.getOne(new QueryWrapper<GradePaper>()
+                .lambda()
+                .eq(GradePaper::getSchoolId, schoolId)
+                .eq(GradePaper::getPaperNumber, paperNumber)
+                .eq(GradePaper::getPaperType, paperType));
+
+
+        List<GradeModuleDefine> gradeModuleDefineList = gradeModuleDefineService.list(new QueryWrapper<GradeModuleDefine>()
+                .lambda()
+                .eq(GradeModuleDefine::getSchoolId, schoolId)
+                .eq(GradeModuleDefine::getPaperNumber, paperNumber)
+                .eq(GradeModuleDefine::getPaperType, paperType));
+
+        GradePaperDefineResult gradePaperDefineResult = new GradePaperDefineResult();
+        if (Objects.nonNull(gradePaper)) {
+            gradePaperDefineResult.setTotalScore(gradePaper.getTotalScore());
+            gradePaperDefineResult.setPassScore(gradePaper.getPassScore());
+        }
+        if (gradeModuleDefineList != null && gradeModuleDefineList.size() > 0) {
+            // 知识维度
+            List<GradeModuleDefine> gradeModuleKnowledgeDefineList = gradeModuleDefineList.stream()
+                    .filter(e -> DimensionEnum.KNOWLEDGE.equals(e.getModuleType()))
+                    .collect(Collectors.toList());
+            if (gradeModuleKnowledgeDefineList.size() > 0) {
+                gradePaperDefineResult.setKnowledgeInterpret(gradeModuleKnowledgeDefineList.get(0).getInterpret());
+                List<GradeModuleKnowledgeDefineParam> gradeModuleKnowledgeDefineParamList = gradeModuleKnowledgeDefineList.stream().flatMap(e -> {
+                    GradeModuleKnowledgeDefineParam cell = new GradeModuleKnowledgeDefineParam();
+                    cell.setDefine(e.getDefine());
+                    cell.setLevel(e.getLevel());
+                    cell.setScope(e.getScope());
+                    cell.setMax(e.getMax());
+                    cell.setMin(e.getMin());
+                    return Stream.of(cell);
+                }).collect(Collectors.toList());
+                gradePaperDefineResult.setGradeModuleKnowledgeDefineParamList(gradeModuleKnowledgeDefineParamList);
+            }
+            // 能力维度
+            List<GradeModuleDefine> gradeModuleAbilityDefineList = gradeModuleDefineList.stream()
+                    .filter(e -> DimensionEnum.ABILITY.equals(e.getModuleType()))
+                    .collect(Collectors.toList());
+            if (gradeModuleAbilityDefineList.size() > 0) {
+                gradePaperDefineResult.setAbilityInterpret(gradeModuleAbilityDefineList.get(0).getInterpret());
+            }
+        }
+        return gradePaperDefineResult;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void saveGradePaperDefine(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser) {
+        this.saveGradePaper(gradePaperDefineParam, requestUser);
+        gradeModuleDefineService.saveGradeModuleDefineBatch(gradePaperDefineParam, requestUser);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Long saveGradePaper(GradePaperDefineParam gradePaperDefineParam, SysUser requestUser) {
+        String paperNumber = gradePaperDefineParam.getPaperNumber();
+        String paperType = gradePaperDefineParam.getPaperType();
+        String paperName = gradePaperDefineParam.getPaperName();
+        Long schoolId = requestUser.getSchoolId();
+
+        // 判断分析课程是否有操作权限
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
+
+        BigDecimal totalScore = gradePaperDefineParam.getTotalScore();
+        BigDecimal passScore = gradePaperDefineParam.getPassScore();
+
+        GradePaper gradePaper = new GradePaper();
+        gradePaper.setSchoolId(schoolId);
+        gradePaper.setPaperNumber(paperNumber);
+        gradePaper.setPaperType(paperType);
+        gradePaper.setPaperName(paperName);
+        gradePaper.setCoefficient(BigDecimal.ZERO);
+        gradePaper.setTotalScore(totalScore);
+        gradePaper.setPassScore(passScore);
+        gradePaper.setScoreType(AssignEnum.NO_NEED_ASSIGN_SCORE);
+
+        // 删除原有的
+        this.remove(new QueryWrapper<GradePaper>()
+                .lambda()
+                .eq(GradePaper::getSchoolId, schoolId)
+                .eq(GradePaper::getPaperNumber, paperNumber)
+                .eq(GradePaper::getPaperType, paperType));
+
+        gradePaper.insertInfo(requestUser.getId());
+        this.save(gradePaper);
+        return gradePaper.getId();
+    }
 
     @Override
     public PaperConfig findBySchoolIdAndPaperNumberAndPaperType(Long schoolId, String paperNumber, String paperType) {

+ 1 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/enums/AssignEnum.java → teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/AssignEnum.java

@@ -1,8 +1,6 @@
-package com.qmth.teachcloud.report.business.enums;
+package com.qmth.teachcloud.common.enums;
 
 
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TBPaper.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

+ 1 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/AnalyzeForReportServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.SysOrgService;

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -22,7 +22,7 @@ import com.qmth.teachcloud.common.util.excel.ExcelError;
 import com.qmth.teachcloud.report.business.bean.dto.ExamStudentTypeDto;
 import com.qmth.teachcloud.report.business.bean.result.*;
 import com.qmth.teachcloud.report.business.entity.*;
-import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/service/impl/TaskCalculateServiceImpl.java

@@ -3,7 +3,7 @@ package com.qmth.teachcloud.report.business.templete.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.report.business.entity.TBPaper;
-import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import com.qmth.teachcloud.report.business.service.AnalyzeForReportService;
 import com.qmth.teachcloud.report.business.service.TBExamService;
 import com.qmth.teachcloud.report.business.service.TBPaperService;

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/BasicDatasourceController.java

@@ -25,7 +25,7 @@ import com.qmth.teachcloud.report.business.bean.dto.excel.*;
 import com.qmth.teachcloud.report.business.bean.dto.query.*;
 import com.qmth.teachcloud.report.business.bean.params.CollegeCombineParams;
 import com.qmth.teachcloud.report.business.entity.*;
-import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import com.qmth.teachcloud.report.business.enums.ExamCloudDataEnum;
 import com.qmth.teachcloud.report.business.enums.NumberTypeEnum;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/CourseController.java

@@ -18,7 +18,7 @@ import com.qmth.teachcloud.report.business.bean.result.*;
 import com.qmth.teachcloud.report.business.bean.result.inspectCourseExamTotal.InspectCourseTotalReportResult;
 import com.qmth.teachcloud.report.business.entity.TBExamCourse;
 import com.qmth.teachcloud.report.business.entity.TBPaper;
-import com.qmth.teachcloud.report.business.enums.AssignEnum;
+import com.qmth.teachcloud.common.enums.AssignEnum;
 import com.qmth.teachcloud.report.business.enums.OrderEnum;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;