|
@@ -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();
|
|
|
|