Selaa lähdekoodia

修改word动态表格1和2

wangliang 1 vuosi sitten
vanhempi
commit
6cfaa5c28f

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

@@ -2,7 +2,6 @@ package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.deepoove.poi.data.TableRenderData;
-import com.qmth.distributed.print.business.bean.dto.report.CourseTargetWebDto;
 import com.qmth.distributed.print.business.bean.dto.report.CourseTargetWordDto;
 import com.qmth.distributed.print.business.bean.dto.report.ReportCourseEvaluationResultDto;
 import com.qmth.distributed.print.business.bean.dto.report.ReportScoreViewDto;
@@ -66,27 +65,17 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * 构建word动态表格1-课程目标与毕业要求指标点的对应关系
      *
      * @param courseTargetWordDtoList
-     * @param header2_1List
-     * @param header2_2List
      * @return
      */
-    public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList,
-                                           List<String> header2_1List,
-                                           List<String> header2_2List);
+    public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList);
 
     /**
      * 构建word动态表格2-课程目标达成考核/评价环节及目标分值
      *
      * @param courseTargetWordDtoList
-     * @param courseTargetWebDtoList
-     * @param header2_1List
-     * @param header2_2List
      * @return
      */
-    public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList,
-                                           List<CourseTargetWebDto> courseTargetWebDtoList,
-                                           List<String> header2_1List,
-                                           List<String> header2_2List);
+    public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList);
 
     /**
      * 构建word动态表格3-课后作业的具体考核内容、目标分值及对应的课程目标

+ 16 - 64
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -400,14 +400,10 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * 构建word动态表格1
      *
      * @param courseTargetWordDtoList
-     * @param header2_1List
-     * @param header2_2List
      * @return
      */
     @Override
-    public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList,
-                                           List<String> header2_1List,
-                                           List<String> header2_2List) {
+    public TableRenderData buildWordTable1(List<CourseTargetWordDto> courseTargetWordDtoList) {
         //table1课程目标目标与毕业要求指标点的对应关系
         RowRenderData header1 = Rows.of("课程目标", "毕业要求指标点").bgColor(tbBgColor).center().create();
         Tables.TableBuilder tableBuilder1 = Tables.ofPercentWidth(tbPercentWidth);
@@ -415,17 +411,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
 
         for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
             CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
-            List<ReportEvaluationDto> reportEvaluationDtoList = courseTargetWordDto.getUsualScoreDto().getUsualScoreDetailList();
-            for (ReportEvaluationDto r : reportEvaluationDtoList) {
-                header2_1List.add("");
-                header2_2List.add(r.getEvaluation());
-            }
             RowRenderData row = Rows.of(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement()).rowStyle(this.getRowStyle()).create();
             tableBuilder1.addRow(row);
         }
-        header2_1List.add("目标分值统计");
-        header2_2List.add(SystemConstant.FINAL_SCORE_STR);
-        header2_2List.add("目标分值统计");
         return tableBuilder1.left().create();
     }
 
@@ -433,70 +421,34 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * 构建word动态表格2
      *
      * @param courseTargetWordDtoList
-     * @param courseTargetWebDtoList
-     * @param header2_1List
-     * @param header2_2List
      * @return
      */
     @Override
-    public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList,
-                                           List<CourseTargetWebDto> courseTargetWebDtoList,
-                                           List<String> header2_1List,
-                                           List<String> header2_2List) {
-        RowRenderData header2_1 = Rows.of(header2_1List.toArray(new String[header2_1List.size()])).bgColor(tbBgColor).center().create();
-        RowRenderData header2_2 = Rows.of(header2_2List.toArray(new String[header2_1List.size()])).bgColor(tbBgColor).center().create();
-
+    public TableRenderData buildWordTable2(List<CourseTargetWordDto> courseTargetWordDtoList) {
+        RowRenderData header2_1 = Rows.of("课程目标", "支撑毕业要求", "考核/评价环节及目标分值", "", "目标分值统计").bgColor(tbBgColor).center().create();
+        RowRenderData header2_2 = Rows.of("课程目标", "支撑毕业要求", "平时成绩", "期末考试", "目标分值统计").bgColor(tbBgColor).center().create();
         RowRenderData[] rowRenderData2 = new RowRenderData[courseTargetWordDtoList.size() + 3];
-        Map<String, BigDecimal> rowRenderData2SumMap = new LinkedHashMap<>();
-        BigDecimal targetSum = new BigDecimal(0);
-        for (int i = 0; i < courseTargetWebDtoList.size(); i++) {
-            CourseTargetWebDto courseTargetWebDto = courseTargetWebDtoList.get(i);
-            List<ReportEvaluationDto> reportEvaluationDtoList = courseTargetWebDto.getEvaluationList();
-            Map<String, ReportEvaluationDto> reportEvaluationDtoMap = reportEvaluationDtoList.stream().collect(Collectors.toMap(ReportEvaluationDto::getEvaluation, Function.identity(), (dto1, dto2) -> dto1));
-            List<String> rowData = new ArrayList<>();
-            BigDecimal sumScore = new BigDecimal(0);
-            rowData.add(header2_2List.get(0));
-            rowData.add(header2_2List.get(1));
-            for (int y = 2; y < header2_2List.size() - 1; y++) {
-                String key = header2_2List.get(y);
-                if (!rowRenderData2SumMap.containsKey(key) && Objects.nonNull(reportEvaluationDtoMap.get(key))) {
-                    rowRenderData2SumMap.put(key, reportEvaluationDtoMap.get(key).getTargetScore());
-                } else if (Objects.nonNull(reportEvaluationDtoMap.get(key))) {
-                    BigDecimal bigDecimal = rowRenderData2SumMap.get(key);
-                    bigDecimal = bigDecimal.add(reportEvaluationDtoMap.get(key).getTargetScore());
-                    rowRenderData2SumMap.put(key, bigDecimal);
-                }
-                if (reportEvaluationDtoMap.containsKey(key)) {
-                    BigDecimal targetScore = reportEvaluationDtoMap.get(key).getTargetScore();
-                    rowData.add(SystemConstant.df.format(targetScore));
-                    sumScore = sumScore.add(targetScore);
-                } else {
-                    rowData.add("0");
-                }
-            }
-            rowData.add(SystemConstant.df.format(sumScore));
-            targetSum = targetSum.add(sumScore);
-            rowRenderData2SumMap.put("目标分值统计", targetSum);
-            rowRenderData2[i + 2] = Rows.of(rowData.toArray(new String[header2_2List.size()])).rowStyle(this.getRowStyle()).create();
+        BigDecimal usualScoreTargetSum = new BigDecimal(0), finalScoreTargetSum = new BigDecimal(0);
+        for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
+            CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
+            FinalScoreWordDto finalScoreWordDto = courseTargetWordDto.getFinalScoreDto();
+            finalScoreTargetSum = finalScoreTargetSum.add(finalScoreWordDto.getFinalScoreTargetSumScore());
+
+            UsualScoreWordDto usualScoreWordDto = courseTargetWordDto.getUsualScoreDto();
+            usualScoreTargetSum = usualScoreTargetSum.add(usualScoreWordDto.getUsualScoreTargetSumScore());
+            rowRenderData2[i + 2] = Rows.of(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement(), SystemConstant.df.format(finalScoreWordDto.getFinalScoreTargetSumScore()), SystemConstant.df.format(usualScoreWordDto.getUsualScoreTargetSumScore()), SystemConstant.df.format(finalScoreWordDto.getFinalScoreTargetSumScore().add(usualScoreWordDto.getUsualScoreTargetSumScore()))).rowStyle(this.getRowStyle()).create();
         }
         rowRenderData2[0] = header2_1;
         rowRenderData2[1] = header2_2;
 
-        List<String> header2FootList = new ArrayList<>(header2_2List.size());
-        header2FootList.add("合计");
-        header2FootList.add("");
-        for (int y = 2; y < header2_2List.size(); y++) {
-            header2FootList.add(SystemConstant.df.format(rowRenderData2SumMap.get(header2_2List.get(y))));
-        }
-
-        RowRenderData header2_foot = Rows.of(header2FootList.toArray(new String[header2_2List.size()])).rowStyle(this.getRowStyle()).create();
+        RowRenderData header2_foot = Rows.of("合计", "", SystemConstant.df.format(usualScoreTargetSum), SystemConstant.df.format(finalScoreTargetSum), SystemConstant.df.format(usualScoreTargetSum.add(finalScoreTargetSum))).rowStyle(this.getRowStyle()).create();
         rowRenderData2[rowRenderData2.length - 1] = header2_foot;
 
         // 表格合并,根据坐标
         MergeCellRule mergeCellRule2 = MergeCellRule.builder().map(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)).
                 map(MergeCellRule.Grid.of(0, 1), MergeCellRule.Grid.of(1, 1)).
-                map(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(0, header2FootList.size() - 2)).
-                map(MergeCellRule.Grid.of(0, header2FootList.size() - 1), MergeCellRule.Grid.of(1, header2FootList.size() - 1)).
+                map(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(0, 3)).
+                map(MergeCellRule.Grid.of(0, 4), MergeCellRule.Grid.of(1, 4)).
                 map(MergeCellRule.Grid.of(rowRenderData2.length - 1, 0), MergeCellRule.Grid.of(rowRenderData2.length - 1, 1)).
                 build();
 

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

@@ -213,13 +213,10 @@ public class TRBasicInfoController {
 
 
                 //table1-课程目标目标与毕业要求指标点的对应关系
-                List<String> header2_1List = new ArrayList<>(Arrays.asList("课程目标", "支撑毕业要求")), header2_2List = new ArrayList<>();
-                header2_2List.addAll(header2_1List);
-                header2_1List.add("考核/评价环节及目标分值");
-                courseReportBean.setCourseTargetTable1(trBasicInfoService.buildWordTable1(courseTargetWordDtoList, header2_1List, header2_2List));
+                courseReportBean.setCourseTargetTable1(trBasicInfoService.buildWordTable1(courseTargetWordDtoList));
 
                 //table2-课程目标达成评价依据
-                courseReportBean.setCourseTargetTable2(trBasicInfoService.buildWordTable2(courseTargetWordDtoList, courseTargetWebDtoList, header2_1List, header2_2List));
+                courseReportBean.setCourseTargetTable2(trBasicInfoService.buildWordTable2(courseTargetWordDtoList));
 
                 //table3-课程课后作业考核/评价内容及目标分值
                 courseReportBean.setCourseTargetTable3(trBasicInfoService.buildWordTable3(courseTargetWordDtoList));