wangliang hai 1 ano
pai
achega
4675232fae

+ 25 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/report/ReportEvaluationDto.java

@@ -46,11 +46,17 @@ public class ReportEvaluationDto implements Serializable, Comparable<ReportEvalu
     @ApiModelProperty(value = "卷面分")
     private Double score;
 
+    @ApiModelProperty(value = "原始目标分")
+    private Double originalTargetScore;
+
+    @ApiModelProperty(value = "原始目标权重")
+    private BigDecimal originalTargetWeight;
+
     public ReportEvaluationDto() {
 
     }
 
-    public ReportEvaluationDto(Long targetId, CourseWeightDetailDto courseWeightDetailDto, BigDecimal targetWeight, Double score) {
+    public ReportEvaluationDto(Long targetId, CourseWeightDetailDto courseWeightDetailDto, BigDecimal targetWeight, Double score, Double originalTargetScore) {
         this.targetId = targetId;
         this.evaluationId = courseWeightDetailDto.getEvaluationId();
         this.evaluation = courseWeightDetailDto.getEvaluationName();
@@ -58,6 +64,24 @@ public class ReportEvaluationDto implements Serializable, Comparable<ReportEvalu
         this.targetWeight = targetWeight;
         this.targetScore = courseWeightDetailDto.getTargetScore();
         this.score = score;
+        this.originalTargetWeight = courseWeightDetailDto.getWeight();
+        this.originalTargetScore = originalTargetScore;
+    }
+
+    public Double getOriginalTargetScore() {
+        return originalTargetScore;
+    }
+
+    public void setOriginalTargetScore(Double originalTargetScore) {
+        this.originalTargetScore = originalTargetScore;
+    }
+
+    public BigDecimal getOriginalTargetWeight() {
+        return originalTargetWeight;
+    }
+
+    public void setOriginalTargetWeight(BigDecimal originalTargetWeight) {
+        this.originalTargetWeight = originalTargetWeight;
     }
 
     public Double getScore() {

+ 7 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -164,12 +164,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                         if (courseWeightDetailDto.getEnable() && Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
                             FinalScoreWordDto finalScoreWordDto = new FinalScoreWordDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate());
                             courseTargetWordDto.setFinalScoreDto(finalScoreWordDto);
-                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate(), 0.0d);
+                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, courseWeightResult.getDefaultRate(), 0.0d, courseWeightDto.getTotalScore().doubleValue());
                             reportEvaluationDtoList.add(reportEvaluationDto);
                         }//非期末考试
                         else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
                             BigDecimal usualScoreRealityWeight = usualScoreWordDto.getUsualScoreTargetSumWeight().divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).multiply(courseWeightDetailDto.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
-                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, usualScoreRealityWeight, 0.0d);
+                            Double originalTargetScore = courseWeightDto.getTotalWeight().multiply(courseWeightDetailDto.getWeight()).divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                            ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, usualScoreRealityWeight, 0.0d, originalTargetScore);
                             usualScoreTargetSumScore = usualScoreTargetSumScore.add(reportEvaluationDto.getTargetScore());
                             usualScoreDetailList.add(reportEvaluationDto);
                             reportEvaluationDtoList.add(reportEvaluationDto);
@@ -493,10 +494,10 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             List<ReportEvaluationDto> reportEvaluationDtoList = usualScoreWordDto.getUsualScoreDetailList();
             for (int i = 0; i < reportEvaluationDtoList.size(); i++) {
                 ReportEvaluationDto reportEvaluationDto = reportEvaluationDtoList.get(i);
-                CourseTargetTableBean3 courseTargetTableBean3 = new CourseTargetTableBean3(seq3++, reportEvaluationDto.getEvaluation(), reportEvaluationDto.getEvaluationDesc(), reportEvaluationDto.getTargetScore(), courseTargetWordDto.getTargetName());
+                CourseTargetTableBean3 courseTargetTableBean3 = new CourseTargetTableBean3(seq3++, reportEvaluationDto.getEvaluation(), reportEvaluationDto.getEvaluationDesc(), new BigDecimal(SystemConstant.df.format(reportEvaluationDto.getOriginalTargetScore())), courseTargetWordDto.getTargetName());
                 courseTargetTableBean3List.add(courseTargetTableBean3);
+                usualScoreSum3 = usualScoreSum3.add(new BigDecimal(reportEvaluationDto.getOriginalTargetScore()));
             }
-            usualScoreSum3 = usualScoreSum3.add(usualScoreWordDto.getUsualScoreTargetSumScore());
             usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.add(usualScoreWordDto.getUsualScoreTargetSumWeight());
         }
         usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -537,9 +538,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
             CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
             FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
-            finalScoreSum4 = finalScoreSum4.add(new BigDecimal(courseTargetWordDto.getDimensionScoreSum()));
+            finalScoreSum4 = finalScoreSum4.add(courseTargetWordDto.getTargetSumScore());
             finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
-            CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4((i + 1), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getDimensionPoint(), courseTargetWordDto.getDimensionScoreSum(), courseTargetWordDto.getTargetName());
+            CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4((i + 1), courseTargetWordDto.getGraduationRequirement(), courseTargetWordDto.getDimensionPoint(), Double.parseDouble(SystemConstant.df.format(courseTargetWordDto.getTargetSumScore())), courseTargetWordDto.getTargetName());
             courseTargetTableBean4List.add(courseTargetTableBean4);
         }
         finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TCFinalScoreController.java

@@ -81,7 +81,7 @@ public class TCFinalScoreController {
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryByExamIdAndCourseCodeAndPaperNumber(examId, courseCode, paperNumber);
         List<ExcelField> excelFieldList = new ArrayList<>();
         excelFieldList.addAll(new ArrayList<>(Arrays.asList(new ExcelField("studentCode", "学号", true), new ExcelField("name", "姓名", true), new ExcelField("score", "成绩", true))));
-        if (Objects.isNull(tcPaperStruct) && Objects.isNull(tcPaperStruct.getPaperStruct())) {
+        if (Objects.isNull(tcPaperStruct) || Objects.isNull(tcPaperStruct.getPaperStruct())) {
             List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndPaperType(examId, paperNumber, null);
             if (CollectionUtils.isEmpty(markQuestionList)) {
                 throw ExceptionResultEnum.ERROR.exception("未找到试卷结构");

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

@@ -143,7 +143,7 @@ public class TCPaperStructController {
         tcFinalScoreService.getFinalScoreSyncLock(examId, courseCode, paperNumber);
         List<PaperStructDimensionResult> paperStructDimensionResultList = null;
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryByExamIdAndCourseCodeAndPaperNumber(examId, courseCode, paperNumber);
-        if (Objects.isNull(tcPaperStruct)) {
+        if (Objects.isNull(tcPaperStruct) || Objects.isNull(tcPaperStruct.getPaperStruct())) {
             List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndPaperType(examId, paperNumber, null);
             if (!CollectionUtils.isEmpty(markQuestionList)) {
                 throw ExceptionResultEnum.ERROR.exception("未找到试卷结构");
@@ -152,7 +152,7 @@ public class TCPaperStructController {
             for (MarkQuestion markQuestion : markQuestionList) {
                 paperStructDimensionResultList.add(new PaperStructDimensionResult(markQuestion.getMainNumber(), markQuestion.getSubNumber(), markQuestion.getTotalScore()));
             }
-        } else {
+        } else{
             CourseWeightResult courseWeightResult = trBasicInfoService.findCourseWeightResultRmi(examId, courseCode);
             if (Objects.nonNull(tcPaperStruct.getDimensionSign()) && tcPaperStruct.getDimensionSign().longValue() != courseWeightResult.getDimensionSign().longValue()) {
                 trBasicInfoService.clearReportData(examId, courseCode, paperNumber, false);