wangliang il y a 1 an
Parent
commit
6cc74d80f0

+ 0 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/report/ReportExamStudentFinalScoreDto.java

@@ -55,8 +55,6 @@ public class ReportExamStudentFinalScoreDto implements Serializable {
         this.targetWeight = reportExamStudentFinalScoreDto.getTargetWeight();
         this.targetScore = reportExamStudentFinalScoreDto.getTargetScore();
         this.dimensionList = reportExamStudentFinalScoreDto.getDimensionList();
-        this.targetMatrixSumScore = reportExamStudentFinalScoreDto.getTargetMatrixSumScore();
-        this.matrixAvgScore = reportExamStudentFinalScoreDto.getMatrixAvgScore();
     }
 
 

+ 18 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/report/ReportExamStudentTargetDto.java

@@ -30,10 +30,10 @@ public class ReportExamStudentTargetDto implements Serializable, Comparable<Repo
     private String graduationRequirement;
 
     @ApiModelProperty(value = "目标整体权重")
-    private BigDecimal targetWeight = new BigDecimal(0);
+    private BigDecimal targetSumWeight = new BigDecimal(0);
 
     @ApiModelProperty(value = "目标整体分值")
-    private BigDecimal targetScore = new BigDecimal(0);
+    private BigDecimal targetSumScore = new BigDecimal(0);
 
     @ApiModelProperty(value = "目标达成评价值")
     private BigDecimal evaluationValue = new BigDecimal(0);
@@ -55,8 +55,8 @@ public class ReportExamStudentTargetDto implements Serializable, Comparable<Repo
         this.targetId = courseTargetWordDto.getTargetId();
         this.targetName = courseTargetWordDto.getTargetName();
         this.graduationRequirement = courseTargetWordDto.getGraduationRequirement();
-        this.targetWeight = courseTargetWordDto.getTargetWeight();
-        this.targetScore = courseTargetWordDto.getTargetScore();
+        this.targetSumWeight = courseTargetWordDto.getTargetWeight();
+        this.targetSumScore = courseTargetWordDto.getTargetScore();
         this.finalScore = finalScore;
         this.usualScore = usualScore;
     }
@@ -67,8 +67,8 @@ public class ReportExamStudentTargetDto implements Serializable, Comparable<Repo
         this.graduationRequirement = reportExamStudentTargetDto.getGraduationRequirement();
         this.evaluationValue = reportExamStudentTargetDto.getEvaluationValue();
         this.targetMatrixAvgScore = reportExamStudentTargetDto.getTargetMatrixAvgScore();
-        this.targetWeight = reportExamStudentTargetDto.getTargetWeight();
-        this.targetScore = reportExamStudentTargetDto.getTargetScore();
+        this.targetSumWeight = reportExamStudentTargetDto.getTargetSumWeight();
+        this.targetSumScore = reportExamStudentTargetDto.getTargetSumScore();
         this.finalScore = reportExamStudentTargetDto.getFinalScore();
         this.usualScore = reportExamStudentTargetDto.getUsualScore();
     }
@@ -81,14 +81,6 @@ public class ReportExamStudentTargetDto implements Serializable, Comparable<Repo
         this.targetMatrixAvgScore = targetMatrixAvgScore;
     }
 
-    public BigDecimal getTargetScore() {
-        return targetScore;
-    }
-
-    public void setTargetScore(BigDecimal targetScore) {
-        this.targetScore = targetScore;
-    }
-
     public Long getTargetId() {
         return targetId;
     }
@@ -129,12 +121,20 @@ public class ReportExamStudentTargetDto implements Serializable, Comparable<Repo
         this.graduationRequirement = graduationRequirement;
     }
 
-    public BigDecimal getTargetWeight() {
-        return targetWeight;
+    public BigDecimal getTargetSumWeight() {
+        return targetSumWeight;
+    }
+
+    public void setTargetSumWeight(BigDecimal targetSumWeight) {
+        this.targetSumWeight = targetSumWeight;
+    }
+
+    public BigDecimal getTargetSumScore() {
+        return targetSumScore;
     }
 
-    public void setTargetWeight(BigDecimal targetWeight) {
-        this.targetWeight = targetWeight;
+    public void setTargetSumScore(BigDecimal targetSumScore) {
+        this.targetSumScore = targetSumScore;
     }
 
     public BigDecimal getEvaluationValue() {

+ 81 - 55
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRExamStudentServiceImpl.java

@@ -113,69 +113,18 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                 Collections.sort(reportExamStudentDto.getTargetList());
                 trExamStudentList.add(new TRExamStudent(trBasicInfo.getId(), reportExamStudentDto));
             }
-            //加入平均分
+            //加入目标分&平均分&各课程目标平均分
             BigDecimal size = new BigDecimal(examStudentList.size());
-            //综合成绩平均分
-            List<ReportExamStudentTargetDto> targetDtoList = new ArrayList<>();
+            List<ReportExamStudentTargetDto> targetDtoList = this.targetDtoParams(reportExamStudentTargetDtoMap, size);
             Double score = new BigDecimal(examStudentList.stream().mapToDouble(ReportExamStudentDto::getScore).sum()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
             ReportExamStudentDto reportExamStudentTargetDto = new ReportExamStudentDto("目标分", "目标分", null, 100.d, targetDtoList);
             ReportExamStudentDto reportExamStudentAvgDto = new ReportExamStudentDto("平均分", "平均分", null, score, targetDtoList);
             ReportExamStudentDto reportExamStudentTargetAvgDto = new ReportExamStudentDto("各课程目标平均分", "各课程目标平均分", null, null, targetDtoList);
-            reportExamStudentTargetDtoMap.forEach((k, v) -> {
-                ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = v.getFinalScore();//课程目标考核要素的平均分
-                reportExamStudentFinalScoreDto.setMatrixAvgScore(new BigDecimal(reportExamStudentFinalScoreDto.getTargetMatrixSumScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-
-                List<DimensionDto> dimensionDtoList = reportExamStudentFinalScoreDto.getDimensionList();
-                for (DimensionDto d : dimensionDtoList) {
-                    d.setDimensionMatrixAvgScore(new BigDecimal(d.getDimensionMatrixScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-                }
-
-                v.setTargetMatrixAvgScore(reportExamStudentFinalScoreDto.getTargetMatrixSumScore());
-                ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = v.getUsualScore();
-                List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
-                for (ReportExamStudentUsualScoreObjDto r : reportExamStudentUsualScoreObjDtoList) {
-                    v.setTargetMatrixAvgScore(v.getTargetMatrixAvgScore() + r.getMatrixScore());
-                    r.setMatrixAvgScore(new BigDecimal(r.getMatrixScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-                }
-                v.setTargetMatrixAvgScore(new BigDecimal(v.getTargetMatrixAvgScore()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-
-                targetDtoList.add(v);
-            });
-            Collections.sort(targetDtoList);
 
             //目标分处理
-            List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = reportExamStudentTargetDto.getTargetList();
-            reportExamStudentTargetDtoList = reportExamStudentTargetDtoList.stream().map(ReportExamStudentTargetDto::new).collect(Collectors.toList());
-            reportExamStudentTargetDtoList = reportExamStudentTargetDtoList.stream().peek(e -> {
-                e.setTargetMatrixAvgScore(null);
-                ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = new ReportExamStudentFinalScoreDto(e.getFinalScore());
-                reportExamStudentFinalScoreDto.setTargetMatrixSumScore(null);
-                reportExamStudentFinalScoreDto.setMatrixAvgScore(null);
-                List<DimensionDto> dimensionDtoList = reportExamStudentFinalScoreDto.getDimensionList().stream().map(DimensionDto::new).collect(Collectors.toList());
-                reportExamStudentFinalScoreDto.setDimensionList(dimensionDtoList.stream().peek(s -> {
-                    s.setDimensionMatrixScore(null);
-                    s.setDimensionMatrixAvgScore(null);
-                }).collect(Collectors.toList()));
-                e.setFinalScore(reportExamStudentFinalScoreDto);
-
-                ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = new ReportExamStudentUsualScoreDto(e.getUsualScore());
-                List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList().stream().map(ReportExamStudentUsualScoreObjDto::new).collect(Collectors.toList());
-                reportExamStudentUsualScoreObjDtoList.stream().peek(k -> {
-                    k.setScore(null);
-                    k.setMatrixAvgScore(null);
-                    k.setMatrixScore(null);
-                }).collect(Collectors.toList());
-                e.setUsualScore(reportExamStudentUsualScoreDto);
-            }).collect(Collectors.toList());
-            reportExamStudentTargetDto.setTargetList(reportExamStudentTargetDtoList);
-
+            this.targetScoreHandle(reportExamStudentTargetDto);
             //各课程目标平均分处理
-            List<ReportExamStudentTargetDto> reportExamStudentTargetAvgDtoList = reportExamStudentTargetAvgDto.getTargetList();
-            reportExamStudentTargetAvgDtoList = reportExamStudentTargetAvgDtoList.stream().map(ReportExamStudentTargetDto::new).collect(Collectors.toList()).stream().peek(e -> {
-                e.setUsualScore(null);
-                e.setFinalScore(null);
-            }).collect(Collectors.toList());
-            reportExamStudentTargetAvgDto.setTargetList(reportExamStudentTargetAvgDtoList);
+            this.targetAvgScoreHandle(reportExamStudentTargetAvgDto);
 
             examStudentList.add(reportExamStudentTargetDto);
             examStudentList.add(reportExamStudentAvgDto);
@@ -188,4 +137,81 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
         }
         return examStudentList;
     }
+
+    /**
+     * 处理目标分&平均分&各课程目标平均分参数
+     *
+     * @param reportExamStudentTargetDtoMap
+     * @param size
+     * @return
+     */
+    protected List<ReportExamStudentTargetDto> targetDtoParams(Map<Long, ReportExamStudentTargetDto> reportExamStudentTargetDtoMap, BigDecimal size) {
+        List<ReportExamStudentTargetDto> targetDtoList = new ArrayList<>();
+        reportExamStudentTargetDtoMap.forEach((k, v) -> {
+            ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = v.getFinalScore();//课程目标考核要素的平均分
+            reportExamStudentFinalScoreDto.setMatrixAvgScore(new BigDecimal(reportExamStudentFinalScoreDto.getTargetMatrixSumScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+
+            List<DimensionDto> dimensionDtoList = reportExamStudentFinalScoreDto.getDimensionList();
+            for (DimensionDto d : dimensionDtoList) {
+                d.setDimensionMatrixAvgScore(new BigDecimal(d.getDimensionMatrixScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+            }
+
+            v.setTargetMatrixAvgScore(reportExamStudentFinalScoreDto.getTargetMatrixSumScore());
+            ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = v.getUsualScore();
+            List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
+            for (ReportExamStudentUsualScoreObjDto r : reportExamStudentUsualScoreObjDtoList) {
+                v.setTargetMatrixAvgScore(v.getTargetMatrixAvgScore() + r.getMatrixScore());
+                r.setMatrixAvgScore(new BigDecimal(r.getMatrixScore()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+            }
+            v.setTargetMatrixAvgScore(new BigDecimal(v.getTargetMatrixAvgScore()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+
+            targetDtoList.add(v);
+        });
+        Collections.sort(targetDtoList);
+        return targetDtoList;
+    }
+
+    /**
+     * 目标分处理
+     *
+     * @param reportExamStudentTargetDto
+     */
+    protected void targetScoreHandle(ReportExamStudentDto reportExamStudentTargetDto) {
+        List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = reportExamStudentTargetDto.getTargetList();
+        reportExamStudentTargetDtoList = reportExamStudentTargetDtoList.stream().map(ReportExamStudentTargetDto::new).collect(Collectors.toList());
+        reportExamStudentTargetDtoList = reportExamStudentTargetDtoList.stream().peek(e -> {
+            e.setTargetMatrixAvgScore(null);
+            ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = new ReportExamStudentFinalScoreDto(e.getFinalScore());
+            List<DimensionDto> dimensionDtoList = reportExamStudentFinalScoreDto.getDimensionList().stream().map(DimensionDto::new).collect(Collectors.toList());
+            reportExamStudentFinalScoreDto.setDimensionList(dimensionDtoList.stream().peek(s -> {
+                s.setDimensionMatrixScore(null);
+                s.setDimensionScore(null);
+            }).collect(Collectors.toList()));
+            e.setFinalScore(reportExamStudentFinalScoreDto);
+
+            ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = new ReportExamStudentUsualScoreDto(e.getUsualScore());
+            List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList().stream().map(ReportExamStudentUsualScoreObjDto::new).collect(Collectors.toList());
+            reportExamStudentUsualScoreObjDtoList.stream().peek(k -> {
+                k.setScore(null);
+                k.setMatrixAvgScore(null);
+                k.setMatrixScore(null);
+            }).collect(Collectors.toList());
+            e.setUsualScore(reportExamStudentUsualScoreDto);
+        }).collect(Collectors.toList());
+        reportExamStudentTargetDto.setTargetList(reportExamStudentTargetDtoList);
+    }
+
+    /**
+     * 各课程目标平均分处理
+     *
+     * @param reportExamStudentTargetAvgDto
+     */
+    protected void targetAvgScoreHandle(ReportExamStudentDto reportExamStudentTargetAvgDto) {
+        List<ReportExamStudentTargetDto> reportExamStudentTargetAvgDtoList = reportExamStudentTargetAvgDto.getTargetList();
+        reportExamStudentTargetAvgDtoList = reportExamStudentTargetAvgDtoList.stream().map(ReportExamStudentTargetDto::new).collect(Collectors.toList()).stream().peek(e -> {
+            e.setUsualScore(null);
+            e.setFinalScore(null);
+        }).collect(Collectors.toList());
+        reportExamStudentTargetAvgDto.setTargetList(reportExamStudentTargetAvgDtoList);
+    }
 }