Pārlūkot izejas kodu

课程目标达成度word报表修改

wangliang 1 gadu atpakaļ
vecāks
revīzija
4b85a4d670

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

@@ -94,22 +94,6 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      */
     public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList);
 
-    //    /**
-    //     * 构建word动态表格3-课后作业的具体考核内容、目标分值及对应的课程目标
-    //     *
-    //     * @param courseTargetWordDtoList
-    //     * @return
-    //     */
-    //    public TableRenderData buildWordTable3(List<CourseTargetWordDto> courseTargetWordDtoList);
-
-    //    /**
-    //     * 构建word动态表格4-期末考试的具体考核内容、目标分值及对应的课程目标
-    //     *
-    //     * @param courseTargetWordDtoList
-    //     * @return
-    //     */
-    //    public TableRenderData buildWordTable4(List<CourseTargetWordDto> courseTargetWordDtoList);
-
     /**
      * 构建word动态表格5-各课程目标考核样本数据详情
      *

+ 2 - 158
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -153,7 +153,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             throw ExceptionResultEnum.ERROR.exception("成绩数据异常,平时成绩与期末成绩里考生名单不一致,请检查");
         }
 
-//        Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap = new LinkedHashMap<>();//汇总考生课程目标-知识点卷面分(知识点得分用)
         Map<String, Map<Long, BigDecimal>> finalScoreExamStudentTargetMap = new LinkedHashMap<>();//汇总考生课程目标-课程目标卷面分
         Map<Long, Map<Long, DimensionDto>> targetDimensionMap = new LinkedHashMap<>();//课程目标-知识点-卷面分(word报表用)
 
@@ -184,7 +183,6 @@ 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());
                     UsualScoreWordDto usualScoreWordDto = new UsualScoreWordDto();
                     usualScoreWordDto.setUsualScoreDetailList(usualScoreDetailList);
                     BigDecimal usualScoreTargetSumScore = new BigDecimal(0);//平常作业目标总分
@@ -197,8 +195,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             reportEvaluationDtoList.add(reportEvaluationDto);
                         }//非期末考试
                         else if (courseWeightDetailDto.getEnable() && !Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
-//                            BigDecimal usualScoreRealityWeight = usualScoreWordDto.getUsualScoreTargetSumWeight().divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).multiply(courseWeightDetailDto.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
-//                            Double originalTargetScore = courseWeightDto.getTotalWeight().multiply(courseWeightDetailDto.getWeight()).divide(SystemConstant.PERCENT, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                             ReportEvaluationDto reportEvaluationDto = new ReportEvaluationDto(courseWeightDto.getCourseTargetId(), courseWeightDetailDto, new BigDecimal(0));
                             usualScoreTargetSumScore = usualScoreTargetSumScore.add(reportEvaluationDto.getTargetScore());
                             usualScoreDetailList.add(reportEvaluationDto);
@@ -234,9 +230,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             //知识点-期末考试明细分
                             List<DimensionDto> dimensionDtoList = courseTargetDto.getDimensionList();
                             for (DimensionDto dimensionDto : dimensionDtoList) {
-                                //考生知识点
-//                                this.calculateFinalScoreByDimensionExamStudent(finalScoreExamStudentDimensionMap,
-//                                        finalScoreResult, courseTargetDto, dimensionDto, score);
                                 if (i == 0) {//计算各知识点原始卷面分总和
                                     BigDecimal paperScore = paperStructDimensionResult.getScore();
                                     //目标-考生知识点去重
@@ -278,13 +271,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                         finalTargetWebMap.get(k).setDimensionScoreSum(new BigDecimal(dimensionScoreSum));
                         finalTargetWebMap.get(k).setDimensionPoint(String.join(",", dimensionDtoNameList));
                     }
-//                    Map<Long, Map<Long, DimensionDto>> mapExamStudent1 = finalScoreExamStudentDimensionMap.get(finalScoreResult.getStudentCode());
-//                    Map<Long, DimensionDto> mapExamStudent2 = mapExamStudent1.get(k);
-//                    List<DimensionDto> list = new ArrayList<>(mapExamStudent2.values());
-//                    Double score = list.stream().mapToDouble(DimensionDto::getDimensionScore).sum();
-//                    Map<Long, Double> mapDimension = finalScoreResult.getFinalScoreDimension();
-//                    mapDimension.put(k, score);
-
                     Map<Long, BigDecimal> doubleMap = finalScoreExamStudentTargetMap.get(finalScoreResult.getStudentCode());
                     Map<Long, BigDecimal> mapTarget = finalScoreResult.getFinalScoreTarget();
                     mapTarget.put(k, doubleMap.get(k));
@@ -299,7 +285,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
 
         paramsMap.put("finalScoreResultList", finalScoreResultList);
         paramsMap.put("usualScoreMap", usualScoreMap);
-//        paramsMap.put("finalScoreExamStudentDimensionMap", finalScoreExamStudentDimensionMap);
         paramsMap.put("finalScoreExamStudentTargetMap", finalScoreExamStudentTargetMap);
         paramsMap.put("examStudentList", examStudentList);
         paramsMap.put("finalScoreResultMap", finalScoreResultMap);
@@ -359,7 +344,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 for (ReportExamStudentTargetDto r : reportExamStudentTargetAvgDtoList) {
                     BigDecimal targetAvgSumScore = new BigDecimal(0);//平均分总和
                     BigDecimal targetSumScore = new BigDecimal(0);//目标分总和
-//                    BigDecimal targetEvaluationValue = new BigDecimal(0);
                     if (targetWebMap.containsKey(r.getTargetId())) {
                         CourseTargetWebDto courseTargetWebDto = targetWebMap.get(r.getTargetId());
                         CourseTargetWordDto courseTargetWordDto = targetWordMap.get(r.getTargetId());
@@ -377,9 +361,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             reportEvaluationDto.setTargetAvgScore(reportExamStudentFinalScoreDto.getMatrixAvgScore());
                             targetAvgSumScore = targetAvgSumScore.add(reportEvaluationDto.getTargetAvgScore());
                             targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
-//                            BigDecimal bigDecimal = new BigDecimal(reportExamStudentFinalScoreDto.getTargetScoreSum()).setScale(2, BigDecimal.ROUND_HALF_UP);
-//                            BigDecimal targetEvaluationValueTemp = bigDecimal.divide(reportEvaluationDto.getTargetScore(), 2, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight().divide(courseTargetWebDto.getTargetSumWeight(), 2, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
-//                            targetEvaluationValue = targetEvaluationValue.add(targetEvaluationValueTemp);
                         }
 
                         //平时作业换算
@@ -390,9 +371,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                                 reportEvaluationDto.setTargetAvgScore(reportExamStudentUsualScoreObjDto.getMatrixAvgScore());
                                 targetAvgSumScore = targetAvgSumScore.add(reportEvaluationDto.getTargetAvgScore());
                                 targetSumScore = targetSumScore.add(reportEvaluationDto.getTargetScore());
-//                            BigDecimal bigDecimal = new BigDecimal(reportExamStudentUsualScoreObjDto.getScore()).setScale(2, BigDecimal.ROUND_HALF_UP);
-//                            BigDecimal targetEvaluationValueTemp = bigDecimal.divide(reportEvaluationDto.getTargetScore(), 2, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight().divide(courseTargetWebDto.getTargetSumWeight(), 2, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
-//                            targetEvaluationValue = targetEvaluationValue.add(targetEvaluationValueTemp);
                             }
                         }
 
@@ -402,7 +380,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                         if (targetEvaluationValueMap.containsKey(r.getTargetId())) {
                             targetEvaluationValue = targetEvaluationValueMap.get(r.getTargetId()).divide(new BigDecimal(targetEvaluationValueSizeMap.get(r.getTargetId())), 4, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
                         }
-//                        BigDecimal targetEvaluationValue = new BigDecimal(targetAvgSumScore).divide(targetSumScore, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
                         courseTargetWebDto.setEvaluationValue(targetEvaluationValue);
                         if (targetEvaluationSumValue.compareTo(new BigDecimal(0)) == 0 || targetEvaluationSumValue.compareTo(targetEvaluationValue) == 1) {
                             targetEvaluationSumValue = targetEvaluationValue;
@@ -660,102 +637,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         return tableBuilder2.mergeRule(mergeCellRule2).left().create();
     }
 
-    /**
-     //     * 构建word动态表格3
-     //     *
-     //     * @param courseTargetWordDtoList
-     //     * @return
-     //     */
-//    @Override
-//    public TableRenderData buildWordTable3(List<CourseTargetWordDto> courseTargetWordDtoList) {
-//        RowRenderData header3_1 = Rows.of("序号", "项目", "考核内容及要求", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
-////        String tableFootTitle3 = "合计${usualScoreSum}分,占课程总评成绩的${usualScoreSumWeight}%";
-//        String tableFootTitle3 = "合计${usualScoreSum}分";
-//        List<CourseTargetTableBean3> courseTargetTableBean3List = new ArrayList<>();
-//        BigDecimal usualScoreSum3 = new BigDecimal(0);
-////                usualScoreTargetSumWeight3 = new BigDecimal(0);
-//        Integer seq3 = 1;
-//        for (CourseTargetWordDto courseTargetWordDto : courseTargetWordDtoList) {
-//            UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
-//            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(), new BigDecimal(SystemConstant.df.format(reportEvaluationDto.getOriginalTargetScore())), courseTargetWordDto.getTargetName());
-//                courseTargetTableBean3List.add(courseTargetTableBean3);
-//                usualScoreSum3 = usualScoreSum3.add(new BigDecimal(reportEvaluationDto.getOriginalTargetScore()));
-//            }
-////            usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.add(usualScoreWordDto.getUsualScoreTargetSumWeight());
-//        }
-////        usualScoreTargetSumWeight3 = usualScoreTargetSumWeight3.divide(new BigDecimal(courseTargetWordDtoList.size()), 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
-//        tableFootTitle3 = tableFootTitle3.replace("${usualScoreSum}", SystemConstant.df.format(usualScoreSum3));
-////        tableFootTitle3 = tableFootTitle3.replace("${usualScoreSumWeight}", SystemConstant.df.format(usualScoreTargetSumWeight3));
-//
-//        RowRenderData[] rowRenderData3 = new RowRenderData[courseTargetTableBean3List.size() + 2];
-//        for (int i = 0; i < courseTargetTableBean3List.size(); i++) {
-//            CourseTargetTableBean3 courseTargetTableBean3 = courseTargetTableBean3List.get(i);
-//            rowRenderData3[i + 1] = Rows.of(courseTargetTableBean3.getNum().toString(), courseTargetTableBean3.getProject(), courseTargetTableBean3.getContent(), SystemConstant.df.format(courseTargetTableBean3.getTarget()), courseTargetTableBean3.getCourseTarget()).rowStyle(this.getRowStyle()).create();
-//        }
-//        rowRenderData3[0] = header3_1;
-//        RowRenderData header3_foot = Rows.of(tableFootTitle3, "", "", "", "").center().create();
-//        rowRenderData3[rowRenderData3.length - 1] = header3_foot;
-//
-//        //表格合并,根据坐标
-//        MergeCellRule mergeCellRule3 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData3.length - 1, 0), MergeCellRule.Grid.of(rowRenderData3.length - 1, 4)).
-//                build();
-//
-//        Tables.TableBuilder tableBuilder3 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
-//        for (int i = 0; i < rowRenderData3.length; i++) {
-//            tableBuilder3.addRow(rowRenderData3[i]);
-//        }
-//        return tableBuilder3.mergeRule(mergeCellRule3).left().create();
-//    }
-
-//    /**
-//     * 构建word动态表格4
-//     *
-//     * @param courseTargetWordDtoList
-//     * @return
-//     */
-//    @Override
-//    public TableRenderData buildWordTable4(List<CourseTargetWordDto> courseTargetWordDtoList) {
-//        RowRenderData header4_1 = Rows.of("序号", "考核项目", "考核内容所涵盖的知识单元", "目标分值", "对应的课程目标").rowStyle(this.getHeadRowStyle()).create();
-//        List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
-//        BigDecimal finalScoreSum4 = new BigDecimal(0);
-////                finalScoreTargetSumWeight4 = new BigDecimal(0);
-//        for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
-//            CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
-////            FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
-//            finalScoreSum4 = finalScoreSum4.add(courseTargetWordDto.getTargetSumScore());
-////            finalScoreTargetSumWeight4 = finalScoreTargetSumWeight4.add(finalScoreWordDto.getFinalScoreSumWeight());
-//            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);
-////        String tableFootTitle4 = "合计${dimensionScoreSum}分,占课程总评成绩的${dimensionSumWeight}%";
-//        String tableFootTitle4 = "合计${dimensionScoreSum}分";
-//        tableFootTitle4 = tableFootTitle4.replace("${dimensionScoreSum}", SystemConstant.df.format(finalScoreSum4));
-////        tableFootTitle4 = tableFootTitle4.replace("${dimensionSumWeight}", SystemConstant.df.format(finalScoreTargetSumWeight4));
-//
-//        RowRenderData[] rowRenderData4 = new RowRenderData[courseTargetTableBean4List.size() + 2];
-//        for (int i = 0; i < courseTargetTableBean4List.size(); i++) {
-//            CourseTargetTableBean4 courseTargetTableBean4 = courseTargetTableBean4List.get(i);
-//            rowRenderData4[i + 1] = Rows.of(courseTargetTableBean4.getNum().toString(), courseTargetTableBean4.getProject(), courseTargetTableBean4.getContent(), SystemConstant.df.format(courseTargetTableBean4.getTargetScore()), courseTargetTableBean4.getCourseTarget()).rowStyle(this.getRowStyle()).create();
-//        }
-//        rowRenderData4[0] = header4_1;
-//        RowRenderData header4_foot = Rows.of(tableFootTitle4, "", "", "", "").center().create();
-//        rowRenderData4[rowRenderData4.length - 1] = header4_foot;
-//
-//        //表格合并,根据坐标
-//        MergeCellRule mergeCellRule4 = MergeCellRule.builder().map(MergeCellRule.Grid.of(rowRenderData4.length - 1, 0), MergeCellRule.Grid.of(rowRenderData4.length - 1, 4)).
-//                build();
-//
-//        Tables.TableBuilder tableBuilder4 = Tables.ofPercentWidth(tbPercentWidth, new int[]{8, 20, 37, 14, 21});
-//        for (int i = 0; i < rowRenderData4.length; i++) {
-//            tableBuilder4.addRow(rowRenderData4[i]);
-//        }
-//        return tableBuilder4.mergeRule(mergeCellRule4).left().create();
-//    }
-
     /**
      * 构建word动态表格5
      *
@@ -767,9 +648,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
     public TableRenderData buildWordTable5(TRBasicInfo trBasicInfo, CourseReportBean courseReportBean) {
         TableRenderData tableRenderDataExamStudent = null;
         List<TRExamStudent> trExamStudentList = trExamStudentService.list(new QueryWrapper<TRExamStudent>().lambda()
-                .eq(TRExamStudent::getrBasicInfoId, trBasicInfo.getId()).and(w -> w.ne(TRExamStudent::getStudentCode, "目标分")
-//                        .ne(TRExamStudent::getStudentCode, "各课程目标平均分")
-                ));
+                .eq(TRExamStudent::getrBasicInfoId, trBasicInfo.getId()).and(w -> w.ne(TRExamStudent::getStudentCode, "目标分")));
         if (!CollectionUtils.isEmpty(trExamStudentList)) {
             List<CellRenderData> examStudent_cells_1 = new ArrayList<>(), examStudent_cells_2 = new ArrayList<>();
             examStudent_cells_1.add(Cells.of("序号").center().create());
@@ -847,11 +726,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 RowRenderData examStudent_row = new RowRenderData();
                 List<CellRenderData> examStudent_cells = new ArrayList<>();
                 switch (trExamStudent.getName()) {
-//                    case "目标分":
-//                        examStudent_cells.add(Cells.of("课程目标考核要素的目标分").create());
-//                        examStudent_cells.add(Cells.of("课程目标考核要素的目标分").create());
-//                        examStudent_cells.add(Cells.of("课程目标考核要素的目标分").create());
-//                        break;
                     case "平均分":
                         examStudent_cells.add(Cells.of("平均分").create());
                         examStudent_cells.add(Cells.of("平均分").create());
@@ -870,7 +744,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 }
                 examStudent_cells.add(Cells.of(trExamStudent.getAdministrativeClass()).create());
 
-//                BigDecimal targetSumScore = new BigDecimal(0),
                 BigDecimal targetAvgScore = new BigDecimal(0);
                 if (Objects.nonNull(trExamStudent.getResultDetail())) {
                     List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudent.getResultDetail(), ReportExamStudentTargetDto.class);
@@ -879,14 +752,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
                             //平常作业
                             if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
-//                                courseReportBean.getCourseBasicBean().setUsualScoreWeight(reportExamStudentUsualScoreDto.getTargetWeight());
                                 List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
                                 for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
                                     switch (trExamStudent.getName()) {
-//                                        case "目标分":
-//                                            examStudent_cells.add(Cells.of(SystemConstant.df.format(reportExamStudentUsualScoreObjDto.getTargetScore())).create());
-//                                            targetSumScore = targetSumScore.add(reportExamStudentUsualScoreObjDto.getTargetScore());
-//                                            break;
                                         case "平均分":
                                             examStudent_cells.add(Cells.of(SystemConstant.df.format(reportExamStudentUsualScoreObjDto.getMatrixAvgScore())).create());
                                             targetAvgScore = targetAvgScore.add(reportExamStudentUsualScoreObjDto.getMatrixAvgScore());
@@ -905,10 +773,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                             if (Objects.nonNull(reportExamStudentFinalScoreDto) && Objects.equals(reportExamStudentFinalScoreDto.getEvaluation(), SystemConstant.FINAL_SCORE_STR)) {
                                 courseReportBean.getCourseBasicBean().setFinalScoreWeight(reportExamStudentFinalScoreDto.getTargetWeight());
                                 switch (trExamStudent.getName()) {
-//                                    case "目标分":
-//                                        examStudent_cells.add(Cells.of(SystemConstant.df.format(reportExamStudentFinalScoreDto.getTargetScore())).create());
-//                                        targetSumScore = targetSumScore.add(reportExamStudentFinalScoreDto.getTargetScore());
-//                                        break;
                                     case "平均分":
                                         examStudent_cells.add(Cells.of(SystemConstant.df.format(reportExamStudentFinalScoreDto.getMatrixAvgScore())).create());
                                         targetAvgScore = targetAvgScore.add(reportExamStudentFinalScoreDto.getMatrixAvgScore());
@@ -925,9 +789,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                     }
                 }
                 switch (trExamStudent.getName()) {
-//                    case "目标分":
-//                        examStudent_cells.add(Cells.of(SystemConstant.df.format(targetSumScore.setScale(2, BigDecimal.ROUND_HALF_UP))).create());
-//                        break;
                     case "平均分":
                         examStudent_cells.add(Cells.of(SystemConstant.df.format(targetAvgScore.setScale(2, BigDecimal.ROUND_HALF_UP))).create());
                         break;
@@ -958,13 +819,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             examStudent_last_row.setRowStyle(this.getRowStyle());
             rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1] = examStudent_last_row;
 
-//            String title = Objects.nonNull(trBasicInfo.getTeachingObject()) ? trBasicInfo.getTeachingObject() : "";
-//            String sumTitle = "学生共${examStudentSum}名";
-//            sumTitle = sumTitle.replace("${examStudentSum}", trExamStudentList.size() - 3 + "");
-
-//            courseReportBean.setExamStudentTitle1(title + sumTitle);
-//            courseReportBean.setExamStudentTitle2(title + "《" + courseReportBean.getCourseBasicBean().getCourseName() + "》");
-
             //表格合并,根据坐标
             MergeCellRule mergeCellRuleExamStudent = MergeCellRule.builder().build();
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)));
@@ -989,7 +843,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 4), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, cellSize - 1)));
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1].getCells().size() - 1), MergeCellRule.Grid.of(1, rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1].getCells().size() - 1)));
 
-//            Tables.TableBuilder tableBuilderExamStudent = Tables.ofPercentWidth(tbPercentWidth, new int[]{6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 16});
             Tables.TableBuilder tableBuilderExamStudent = Tables.ofPercentWidth(tbPercentWidth);
             for (int i = 0; i < rowRenderDataExamStudent.length; i++) {
                 tableBuilderExamStudent.addRow(rowRenderDataExamStudent[i]);
@@ -1159,9 +1012,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
     public ObeCourseWeightResult findCourseWeightResultRmi(Long obeCourseOutlineId) {
         ObeCourseWeightResult obeCourseWeightResult = obeCourseWeightService.findCourseWeight(obeCourseOutlineId);
         Objects.requireNonNull(obeCourseWeightResult, "未设置课程目标数据");
-//        Objects.requireNonNull(obeCourseWeightResult.getCustomRate(), "未设置平时成绩权重");
-//        Objects.requireNonNull(obeCourseWeightResult.getDefaultRate(), "未设置期末考试权重");
-
         Objects.requireNonNull(obeCourseWeightResult.getWeightSettingSign(), "课程权重变化id为空");
         Objects.requireNonNull(obeCourseWeightResult.getDimensionSign(), "知识点变化id为空");
         List<CourseWeightDto> courseWeightDtoList = obeCourseWeightResult.getSubmitForm();
@@ -1178,11 +1028,6 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 Double score = paperStructDimensionResultList.stream().filter(s -> Objects.equals(s.getCourseTargetName(), c.getCourseTargetName()))
                         .mapToDouble(s -> s.getScore().doubleValue()).sum();
                 Objects.requireNonNull(c.getTotalWeight(), "[" + c.getCourseTargetName() + "]未设置权重");
-                ////                Objects.requireNonNull(c.getTotalScore(), "[" + c.getCourseTargetName() + "]未设置目标分值");
-                //                if (new BigDecimal(score).compareTo(c.getTotalWeight()) == 1) {
-                //                    trBasicInfoService.clearReportData(examId, courseCode, paperNumber, teachCourseId, false);
-                //                    throw ExceptionResultEnum.ERROR.exception("[" + c.getCourseTargetName() + "]包含的小题总分与权重设置不一致,请到期末成绩--试卷蓝图设置里调整");
-                //                }
                 List<CourseWeightDetailDto> courseWeightDetailDtoList = c.getEvaluationList();
                 for (CourseWeightDetailDto courseWeightDetailDto : courseWeightDetailDtoList) {
                     if (Objects.equals(courseWeightDetailDto.getEvaluationName(), SystemConstant.FINAL_SCORE_STR)) {
@@ -1394,8 +1239,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 BigDecimal score = Objects.nonNull(t.getScore()) ? new BigDecimal(t.getScore()) : new BigDecimal(0);
                 CourseTargetWordDto courseTargetWordDto = targetWordMap.get(reportEvaluationDto.getTargetId());
                 UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
-                //old平时作业换算:分数/100*作业目标分
-                //new平时作业换算:分数/作业目标分
+                //卷面分/目标卷面总分*权重
                 BigDecimal matrixScore = score.divide(reportEvaluationDto.getTargetScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(reportEvaluationDto.getTargetWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
                 reportExamStudentUsualScoreObjDtoList.add(new ReportExamStudentUsualScoreObjDto(reportEvaluationDto.getTargetId(), reportEvaluationDto, score, matrixScore, usualScoreWordDto.getUsualScoreTargetSumScore()));
                 scoreListMap.put(reportEvaluationDto.getTargetId(), reportExamStudentUsualScoreObjDtoList);

+ 2 - 23
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRExamStudentServiceImpl.java

@@ -61,7 +61,6 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
     @Transactional
     public List<ReportExamStudentDto> getExamStudentReportDetail(TRBasicInfo trBasicInfo, Map<String, Object> paramsMap) {
         List<ReportExamStudentDto> examStudentList = (List<ReportExamStudentDto>) paramsMap.get("examStudentList");
-//        Map<String, Map<Long, Map<Long, DimensionDto>>> finalScoreExamStudentDimensionMap = (Map<String, Map<Long, Map<Long, DimensionDto>>>) paramsMap.get("finalScoreExamStudentDimensionMap");
         Map<String, FinalScoreResult> finalScoreResultMap = (Map<String, FinalScoreResult>) paramsMap.get("finalScoreResultMap");
         Map<String, Map<Long, BigDecimal>> finalScoreExamStudentTargetMap = (Map<String, Map<Long, BigDecimal>>) paramsMap.get("finalScoreExamStudentTargetMap");
         Map<Long, CourseTargetWordDto> targetWordMap = (Map<Long, CourseTargetWordDto>) paramsMap.get("targetWordMap");
@@ -69,7 +68,6 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
             List<TRExamStudent> trExamStudentList = new ArrayList<>(examStudentList.size());
             Map<Long, ReportExamStudentTargetDto> reportExamStudentTargetDtoMap = new LinkedHashMap<>();
             for (ReportExamStudentDto reportExamStudentDto : examStudentList) {
-//                Map<Long, Map<Long, DimensionDto>> map = finalScoreExamStudentDimensionMap.get(reportExamStudentDto.getStudentCode());
                 Map<Long, BigDecimal> map = finalScoreExamStudentTargetMap.get(reportExamStudentDto.getStudentCode());
                 FinalScoreResult finalScoreResult = finalScoreResultMap.get(reportExamStudentDto.getStudentCode());
                 ReportExamStudentUsualScoreDto reportExamStudentUsualScoreSumDto = finalScoreResult.getUsualScoreDto();
@@ -78,8 +76,6 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                     if (targetWordMap.containsKey(k)) {
                         List<ReportExamStudentUsualScoreObjDto> scoreObjDtoList = reportExamStudentUsualScoreSumDto.getScoreMap().get(k);
                         CourseTargetWordDto courseTargetWordDto = targetWordMap.get(k);
-//                            ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = new ReportExamStudentFinalScoreDto(courseTargetWordDto.getFinalScoreDto(), finalScoreResult.getFinalScoreTarget().get(k));
-//                            ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = new ReportExamStudentUsualScoreDto(courseTargetWordDto.getUsualScoreDto().getUsualScoreTargetSumWeight(), scoreObjDtoList);
 
                         ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = Objects.nonNull(courseTargetWordDto.getFinalScoreDto()) ? new ReportExamStudentFinalScoreDto(courseTargetWordDto.getFinalScoreDto(), finalScoreResult.getFinalScoreTarget().get(k)) : null;
                         ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = new ReportExamStudentUsualScoreDto(scoreObjDtoList);
@@ -89,15 +85,11 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                         if (!reportExamStudentTargetDtoMap.containsKey(k)) {
                             BigDecimal targetMatrixScore = new BigDecimal(0);
                             if (Objects.nonNull(courseTargetWordDto.getFinalScoreDto())) {
-                                //old卷面分*权重/100
-                                //new卷面分/目标分
-//                                    targetMatrixScore = new BigDecimal(v).divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                                //卷面分*权重/100
+                                //卷面分/目标卷面总分*权重
                                 targetMatrixScore = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight()).setScale(2, BigDecimal.ROUND_HALF_UP);
                                 BigDecimal targetEvaluationValue = v.divide(courseTargetWordDto.getFinalScoreDto().getFinalScoreTargetSumScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(courseTargetWordDto.getFinalScoreDto().getFinalScoreSumWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
                                 matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
                             }
-//                            targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore).setScale(2, BigDecimal.ROUND_HALF_UP);
                             targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore);
                             reportExamStudentDto.setScore(reportExamStudentDto.getScore().add(targetMatrixScore));
 
@@ -117,7 +109,6 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                                 if (Objects.nonNull(reportExamStudentFinalScoreDto)) {
                                     reportExamStudentFinalScoreTempDto = new ReportExamStudentFinalScoreDto(courseTargetWordDto.getFinalScoreDto(), targetMatrixSumScore, finalScoreResult.getFinalScoreTarget().get(k));
                                 }
-//                                ReportExamStudentTargetDto reportExamStudentTargetDto = new ReportExamStudentTargetDto(courseTargetWordDto, reportExamStudentFinalScoreTempDto, new ReportExamStudentUsualScoreDto(courseTargetWordDto.getUsualScoreDto().getUsualScoreTargetSumWeight(), scoreObjDtoList.stream().map(ReportExamStudentUsualScoreObjDto::new).collect(Collectors.toList())));
                                 reportExamStudentTargetDto = new ReportExamStudentTargetDto(courseTargetWordDto, reportExamStudentFinalScoreTempDto, new ReportExamStudentUsualScoreDto(scoreObjDtoList.stream().map(ReportExamStudentUsualScoreObjDto::new).collect(Collectors.toList())), matrixDegree.get());
                             } else {
                                 reportExamStudentTargetDto = new ReportExamStudentTargetDto(courseTargetWordDto, reportExamStudentFinalScoreDto, null, matrixDegree.get());
@@ -135,13 +126,11 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                                 matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
                                 reportExamStudentTargetDto.setMatrixDegree(matrixDegree.get());
                             }
-//                            targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore).setScale(2, BigDecimal.ROUND_HALF_UP);
                             targetMatrixSumScore = targetMatrixSumScore.add(targetMatrixScore);
                             reportExamStudentDto.setScore(reportExamStudentDto.getScore().add(targetMatrixScore));
 
                             if (Objects.nonNull(reportExamStudentFinalScoreDto)) {
                                 reportExamStudentFinalScoreDto.setTargetMatrixSumScore(targetMatrixSumScore);
-//                                reportExamStudentFinalScoreAvgDto.setTargetMatrixSumScore(reportExamStudentFinalScoreAvgDto.getTargetMatrixSumScore().add(targetMatrixSumScore).setScale(2, BigDecimal.ROUND_HALF_UP));
                                 reportExamStudentFinalScoreAvgDto.setTargetMatrixSumScore(reportExamStudentFinalScoreAvgDto.getTargetMatrixSumScore().add(targetMatrixSumScore));
                             }
                             ReportExamStudentUsualScoreDto reportExamStudentUsualScoreAvgDto = reportExamStudentTargetDto.getUsualScore();
@@ -153,7 +142,6 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
                                 for (int i = 0; i < reportExamStudentUsualScoreObjDtoList.size(); i++) {
                                     ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto = reportExamStudentUsualScoreObjDtoList.get(i);
                                     reportExamStudentDto.setScore(reportExamStudentDto.getScore().add(reportExamStudentUsualScoreObjDto.getMatrixScore()));
-//                                    BigDecimal bigDecimal = reportExamStudentUsualScoreObjDto.getScore().setScale(2, BigDecimal.ROUND_HALF_UP);
                                     BigDecimal targetEvaluationValue = reportExamStudentUsualScoreObjDto.getScore().divide(reportExamStudentUsualScoreObjDto.getTargetScore(), 4, BigDecimal.ROUND_HALF_UP).multiply(reportExamStudentUsualScoreObjDto.getTargetWeight().divide(courseTargetWordDto.getTargetSumWeight(), 4, BigDecimal.ROUND_HALF_UP)).setScale(2, BigDecimal.ROUND_HALF_UP);
                                     matrixDegree.set(matrixDegree.get().add(targetEvaluationValue));
                                     reportExamStudentUsualScoreObjAvgDtoList.get(i).setMatrixScore(reportExamStudentUsualScoreObjAvgDtoList.get(i).getMatrixScore().add(reportExamStudentUsualScoreObjDto.getMatrixScore()));
@@ -172,16 +160,7 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
             //加入目标分&平均分&各课程目标平均分
             BigDecimal size = new BigDecimal(examStudentList.size());
             List<ReportExamStudentTargetDto> targetDtoList = this.targetDtoParams(reportExamStudentTargetDtoMap, size);
-            AtomicReference<BigDecimal> targetScoreSum = new AtomicReference<>(new BigDecimal(0));
-            AtomicReference<BigDecimal> usualScoreSum = new AtomicReference<>(new BigDecimal(0));
-            targetDtoList.stream().peek(e -> {
-                targetScoreSum.set(targetScoreSum.get().add((Objects.nonNull(e.getFinalScore()) ? e.getFinalScore().getMatrixAvgScore() : new BigDecimal(0))));
-                if (Objects.nonNull(e.getUsualScore()) && !CollectionUtils.isEmpty(e.getUsualScore().getScoreList())) {
-                    usualScoreSum.set(usualScoreSum.get().add(new BigDecimal(e.getUsualScore().getScoreList().stream().mapToDouble(s -> s.getMatrixAvgScore().doubleValue()).sum())).setScale(2, BigDecimal.ROUND_HALF_UP));
-                }
-            }).collect(Collectors.toList());
-
-            BigDecimal score = targetScoreSum.get().add(usualScoreSum.get()).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal score = new BigDecimal(examStudentList.stream().mapToDouble(s -> s.getScore().doubleValue()).sum()).divide(size, 2, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
             ReportExamStudentDto reportExamStudentTargetDto = new ReportExamStudentDto("目标分", "目标分", null, SystemConstant.PERCENT, targetDtoList);
             ReportExamStudentDto reportExamStudentAvgDto = new ReportExamStudentDto("平均分", "平均分", null, score, targetDtoList);
             ReportExamStudentDto reportExamStudentTargetAvgDto = new ReportExamStudentDto("各课程目标平均分", "各课程目标平均分", null, null, targetDtoList);

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

@@ -165,10 +165,6 @@ public class TCPaperStructController {
             List<PaperStructDimensionResult> paperStructDimensionResultList = paperStructParams.getPaperStruct();
             Double score = paperStructDimensionResultList.stream().filter(s -> Objects.equals(s.getCourseTargetName(), c.getCourseTargetName())).mapToDouble(s->s.getScore().doubleValue()).sum();
             Objects.requireNonNull(c.getTotalWeight(), "[" + c.getCourseTargetName() + "]未设置权重");
-//            Objects.requireNonNull(c.getTotalScore(), "[" + c.getCourseTargetName() + "]未设置目标分值");
-//            if (new BigDecimal(score).compareTo(c.getTotalWeight()) == 1) {
-//                throw ExceptionResultEnum.ERROR.exception("[" + c.getCourseTargetName() + "]包含的小题总分与权重设置不一致,请到期末成绩--试卷蓝图设置里调整");
-//            }
             paperStructDimensionResultList.stream().filter(s -> {
                 if (Objects.equals(s.getCourseTargetName(), c.getCourseTargetName())) {
                     s.getTargetList().stream().peek(e -> e.setFinalScoreQuestionScoreSum(new BigDecimal(score))).collect(Collectors.toList());