|
@@ -33,7 +33,6 @@ import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
-import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -44,8 +43,8 @@ import javax.validation.constraints.Min;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
+import java.util.function.Function;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -170,10 +169,6 @@ public class TRBasicInfoController {
|
|
List<CourseTargetWordDto> courseTargetWordDtoList = JSONArray.parseArray(jsonObject.get("targetWordMap").toString(), CourseTargetWordDto.class);
|
|
List<CourseTargetWordDto> courseTargetWordDtoList = JSONArray.parseArray(jsonObject.get("targetWordMap").toString(), CourseTargetWordDto.class);
|
|
List<CourseTargetWebDto> courseTargetWebDtoList = JSONArray.parseArray(jsonObject.get("targetWebMap").toString(), CourseTargetWebDto.class);
|
|
List<CourseTargetWebDto> courseTargetWebDtoList = JSONArray.parseArray(jsonObject.get("targetWebMap").toString(), CourseTargetWebDto.class);
|
|
|
|
|
|
- //targetMap
|
|
|
|
- List<CourseTargetWordDto> courseTargetValueDtoList = JSONArray.parseArray(trBasicInfo.getCourseEvaluationResultDetail(), CourseTargetWordDto.class);
|
|
|
|
-// Map<Long, CourseTargetValueDto> courseTargetValueDtoMap = courseTargetValueDtoList.stream().collect(Collectors.toMap(CourseTargetValueDto::getTargetId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
-
|
|
|
|
//table1课程目标目标与毕业要求指标点的对应关系
|
|
//table1课程目标目标与毕业要求指标点的对应关系
|
|
RowRenderData header1 = Rows.of("课程目标", "毕业要求指标点").bgColor("F2F2F2").center().create();
|
|
RowRenderData header1 = Rows.of("课程目标", "毕业要求指标点").bgColor("F2F2F2").center().create();
|
|
Tables.TableBuilder tableBuilder1 = Tables.ofPercentWidth("100%");
|
|
Tables.TableBuilder tableBuilder1 = Tables.ofPercentWidth("100%");
|
|
@@ -183,15 +178,15 @@ public class TRBasicInfoController {
|
|
header2_2List.addAll(header2_1List);
|
|
header2_2List.addAll(header2_1List);
|
|
header2_1List.add("考核/评价环节及目标分值");
|
|
header2_1List.add("考核/评价环节及目标分值");
|
|
|
|
|
|
- for (int i = 0; i < courseTargetValueDtoList.size(); i++) {
|
|
|
|
- CourseTargetWordDto courseTargetValueDto = courseTargetValueDtoList.get(i);
|
|
|
|
-// Map<String, BigDecimal> usualScoreWeightMap = courseTargetValueDto.getUsualScoreWeight();
|
|
|
|
-// usualScoreWeightMap.forEach((k1, v1) -> {
|
|
|
|
-// header2_1List.add("");
|
|
|
|
-// header2_2List.add(k1);
|
|
|
|
-// });
|
|
|
|
|
|
+ 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());
|
|
|
|
+ }
|
|
|
|
|
|
- CourseTargetTableBean1 courseTargetTableBean1 = new CourseTargetTableBean1(courseTargetValueDto.getTargetName(), courseTargetValueDto.getGraduationRequirement());
|
|
|
|
|
|
+ CourseTargetTableBean1 courseTargetTableBean1 = new CourseTargetTableBean1(courseTargetWordDto.getTargetName(), courseTargetWordDto.getGraduationRequirement());
|
|
RowRenderData row = Rows.of(courseTargetTableBean1.getName(), courseTargetTableBean1.getTarget()).rowStyle(this.getRowStyle()).create();
|
|
RowRenderData row = Rows.of(courseTargetTableBean1.getName(), courseTargetTableBean1.getTarget()).rowStyle(this.getRowStyle()).create();
|
|
tableBuilder1.addRow(row);
|
|
tableBuilder1.addRow(row);
|
|
}
|
|
}
|
|
@@ -202,46 +197,60 @@ public class TRBasicInfoController {
|
|
TableRenderData tableRenderData1 = tableBuilder1.left().create();
|
|
TableRenderData tableRenderData1 = tableBuilder1.left().create();
|
|
courseReportBean.setCourseTargetTable1(tableRenderData1);
|
|
courseReportBean.setCourseTargetTable1(tableRenderData1);
|
|
|
|
|
|
- //TODO 等待曹子轩接口table2-课程目标达成评价依据-课程目标毕业要求
|
|
|
|
RowRenderData header2_1 = Rows.of(header2_1List.toArray(new String[header2_1List.size()])).bgColor("F2F2F2").center().create();
|
|
RowRenderData header2_1 = Rows.of(header2_1List.toArray(new String[header2_1List.size()])).bgColor("F2F2F2").center().create();
|
|
RowRenderData header2_2 = Rows.of(header2_2List.toArray(new String[header2_1List.size()])).bgColor("F2F2F2").center().create();
|
|
RowRenderData header2_2 = Rows.of(header2_2List.toArray(new String[header2_1List.size()])).bgColor("F2F2F2").center().create();
|
|
|
|
|
|
- List<CourseTargetTableBean2> courseTargetTableBean2List = new ArrayList<>();
|
|
|
|
- AtomicReference<BigDecimal> bigDecimalExpressionSum = new AtomicReference<>(new BigDecimal(0));
|
|
|
|
- AtomicReference<BigDecimal> homeworkSum = new AtomicReference<>(new BigDecimal(0));
|
|
|
|
- AtomicReference<BigDecimal> testSum = new AtomicReference<>(new BigDecimal(0));
|
|
|
|
- AtomicReference<BigDecimal> examSum = new AtomicReference<>(new BigDecimal(0));
|
|
|
|
- AtomicReference<BigDecimal> targetSum2 = new AtomicReference<>(new BigDecimal(0));
|
|
|
|
- AtomicInteger atomicReference = new AtomicInteger(0);
|
|
|
|
- for (int i = 0; i < courseTargetValueDtoList.size(); i++) {
|
|
|
|
- CourseTargetWordDto courseTargetValueDto = courseTargetValueDtoList.get(i);
|
|
|
|
- CourseTargetTableBean2 courseTargetTableBean2 = new CourseTargetTableBean2(courseTargetValueDto.getTargetName(), courseTargetValueDto.getGraduationRequirement(), new BigDecimal(atomicReference.get() + 2), new BigDecimal(atomicReference.get() + 3), new BigDecimal(atomicReference.get() + 4), new BigDecimal(atomicReference.get() + 5), new BigDecimal(atomicReference.get() + 10));
|
|
|
|
- bigDecimalExpressionSum.set(bigDecimalExpressionSum.get().add(courseTargetTableBean2.getExpression()));
|
|
|
|
- homeworkSum.set(homeworkSum.get().add(courseTargetTableBean2.getHomework()));
|
|
|
|
- testSum.set(testSum.get().add(courseTargetTableBean2.getTest()));
|
|
|
|
- examSum.set(examSum.get().add(courseTargetTableBean2.getExam()));
|
|
|
|
- targetSum2.set(targetSum2.get().add(courseTargetTableBean2.getTargetSum()));
|
|
|
|
- courseTargetTableBean2List.add(courseTargetTableBean2);
|
|
|
|
- atomicReference.decrementAndGet();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- RowRenderData[] rowRenderData2 = new RowRenderData[courseTargetTableBean2List.size() + 3];
|
|
|
|
- for (int i = 0; i < courseTargetTableBean2List.size(); i++) {
|
|
|
|
- CourseTargetTableBean2 courseTargetTableBean2 = courseTargetTableBean2List.get(i);
|
|
|
|
- rowRenderData2[i + 2] = Rows.of(courseTargetTableBean2.getName(), courseTargetTableBean2.getTarget(), courseTargetTableBean2.getExpression().toString(), courseTargetTableBean2.getHomework().toString(), courseTargetTableBean2.getTest().toString(), courseTargetTableBean2.getExam().toString(), courseTargetTableBean2.getTargetSum().toString()).rowStyle(this.getRowStyle()).create();
|
|
|
|
-// rowRenderData[i + 2] = Rows.of(this.getCell(courseTargetTableBean2.getName()), this.getCell(courseTargetTableBean2.getTarget()), this.getCell(courseTargetTableBean2.getExpression().toString()), this.getCell(courseTargetTableBean2.getHomework().toString()), this.getCell(courseTargetTableBean2.getTest().toString()), this.getCell(courseTargetTableBean2.getExam().toString()), this.getCell(courseTargetTableBean2.getTargetSum().toString())).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(targetScore.toString());
|
|
|
|
+ sumScore = sumScore.add(targetScore);
|
|
|
|
+ } else {
|
|
|
|
+ rowData.add("0");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ rowData.add(sumScore.toString());
|
|
|
|
+ targetSum = targetSum.add(sumScore);
|
|
|
|
+ rowRenderData2SumMap.put("目标分值统计", targetSum);
|
|
|
|
+ rowRenderData2[i + 2] = Rows.of(rowData.toArray(new String[header2_2List.size()])).rowStyle(this.getRowStyle()).create();
|
|
}
|
|
}
|
|
rowRenderData2[0] = header2_1;
|
|
rowRenderData2[0] = header2_1;
|
|
rowRenderData2[1] = header2_2;
|
|
rowRenderData2[1] = header2_2;
|
|
|
|
|
|
- RowRenderData header2_foot = Rows.of("合计", "", bigDecimalExpressionSum.toString(), homeworkSum.toString(), testSum.toString(), examSum.toString(), targetSum2.toString()).rowStyle(this.getRowStyle()).create();
|
|
|
|
|
|
+ List<String> header2FootList = new ArrayList<>(header2_2List.size());
|
|
|
|
+ header2FootList.add("合计");
|
|
|
|
+ header2FootList.add("");
|
|
|
|
+ for (int y = 2; y < header2_2List.size(); y++) {
|
|
|
|
+ header2FootList.add(rowRenderData2SumMap.get(header2_2List.get(y)).toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ RowRenderData header2_foot = Rows.of(header2FootList.toArray(new String[header2_2List.size()])).rowStyle(this.getRowStyle()).create();
|
|
rowRenderData2[rowRenderData2.length - 1] = header2_foot;
|
|
rowRenderData2[rowRenderData2.length - 1] = header2_foot;
|
|
|
|
|
|
// 表格合并,根据坐标
|
|
// 表格合并,根据坐标
|
|
MergeCellRule mergeCellRule2 = MergeCellRule.builder().map(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)).
|
|
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, 1), MergeCellRule.Grid.of(1, 1)).
|
|
- map(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(0, 5)).
|
|
|
|
- map(MergeCellRule.Grid.of(0, 6), MergeCellRule.Grid.of(1, 6)).
|
|
|
|
|
|
+ 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(rowRenderData2.length - 1, 0), MergeCellRule.Grid.of(rowRenderData2.length - 1, 1)).
|
|
map(MergeCellRule.Grid.of(rowRenderData2.length - 1, 0), MergeCellRule.Grid.of(rowRenderData2.length - 1, 1)).
|
|
build();
|
|
build();
|
|
|
|
|
|
@@ -294,15 +303,15 @@ public class TRBasicInfoController {
|
|
List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
List<CourseTargetTableBean4> courseTargetTableBean4List = new ArrayList<>();
|
|
BigDecimal sum4 = new BigDecimal(0);
|
|
BigDecimal sum4 = new BigDecimal(0);
|
|
Integer seq4 = 0;
|
|
Integer seq4 = 0;
|
|
- for (int i = 0; i < courseTargetValueDtoList.size(); i++) {
|
|
|
|
- CourseTargetWordDto courseTargetValueDto = courseTargetValueDtoList.get(i);
|
|
|
|
-// List<DimensionDto> dimensionDtoList = courseTargetValueDto.getDimensionList();
|
|
|
|
-// for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
|
|
-// sum4 = sum4.add(new BigDecimal(dimensionDto.getDimensionScore()));
|
|
|
|
-// seq4 = seq4 + 1;
|
|
|
|
-// CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4(seq4, courseTargetValueDto.getGraduationRequirement(), dimensionDto.getDimensionName(), dimensionDto.getDimensionScore(), courseTargetValueDto.getTargetName());
|
|
|
|
-// courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
-// }
|
|
|
|
|
|
+ for (int i = 0; i < courseTargetWordDtoList.size(); i++) {
|
|
|
|
+ CourseTargetWordDto courseTargetWordDto = courseTargetWordDtoList.get(i);
|
|
|
|
+ List<DimensionDto> dimensionDtoList = courseTargetWordDto.getFinalScoreDto().getDimensionList();
|
|
|
|
+ for (DimensionDto dimensionDto : dimensionDtoList) {
|
|
|
|
+ sum4 = sum4.add(new BigDecimal(dimensionDto.getDimensionScore()));
|
|
|
|
+ seq4 = seq4 + 1;
|
|
|
|
+ CourseTargetTableBean4 courseTargetTableBean4 = new CourseTargetTableBean4(seq4, courseTargetWordDto.getGraduationRequirement(), dimensionDto.getDimensionName(), dimensionDto.getDimensionScore(), courseTargetWordDto.getTargetName());
|
|
|
|
+ courseTargetTableBean4List.add(courseTargetTableBean4);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
String tableFootTitle4 = "合计${sum}分,占课程总评成绩的70%";
|
|
String tableFootTitle4 = "合计${sum}分,占课程总评成绩的70%";
|
|
tableFootTitle4 = tableFootTitle4.replace("${sum}", sum4.toString());
|
|
tableFootTitle4 = tableFootTitle4.replace("${sum}", sum4.toString());
|
|
@@ -331,216 +340,216 @@ public class TRBasicInfoController {
|
|
courseReportBean.setCourseTargetTable4(tableRenderData4);
|
|
courseReportBean.setCourseTargetTable4(tableRenderData4);
|
|
|
|
|
|
//examstudent-课程目标达成评价依据-考生
|
|
//examstudent-课程目标达成评价依据-考生
|
|
- List<TRExamStudent> trExamStudentList = trExamStudentService.list(new QueryWrapper<TRExamStudent>().lambda().eq(TRExamStudent::getrBasicInfoId, trBasicInfo.getId()));
|
|
|
|
- if (!CollectionUtils.isEmpty(trExamStudentList)) {
|
|
|
|
-// List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getCourseCode(), trBasicInfo.getPaperNumber());//考生成绩
|
|
|
|
-// Map<String, FinalScoreResult> finalScoreResultMap = finalScoreResultList.stream().collect(Collectors.toMap(FinalScoreResult::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
-
|
|
|
|
- List<CellRenderData> examStudent_cells_1 = new ArrayList<>(), examStudent_cells_2 = new ArrayList<>(), examStudent_cells_3 = new ArrayList<>(), examStudent_cells_4 = new ArrayList<>(), examStudent_cells_5 = new ArrayList<>();
|
|
|
|
- examStudent_cells_1.add(Cells.of("序号").center().create());
|
|
|
|
- examStudent_cells_1.add(Cells.of("学号").center().create());
|
|
|
|
- examStudent_cells_1.add(Cells.of("姓名").center().create());
|
|
|
|
- examStudent_cells_1.add(Cells.of("行政班级").center().create());
|
|
|
|
- examStudent_cells_2.addAll(examStudent_cells_1);
|
|
|
|
-
|
|
|
|
- examStudent_cells_3.add(Cells.of("课程目标考核要素的目标分").center().create());
|
|
|
|
- examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
-
|
|
|
|
- examStudent_cells_4.add(Cells.of("课程目标考核要素的平均分").center().create());
|
|
|
|
- examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
-
|
|
|
|
- examStudent_cells_5.add(Cells.of("各课程目标平均分").center().create());
|
|
|
|
- examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
- examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
-
|
|
|
|
- List<ExamStudentTableBean> examStudentTableBeanList = new ArrayList<>();
|
|
|
|
- int seq5 = 0;
|
|
|
|
- Map<Long, Integer> targetUsualScoreSizeMap = new HashMap<>();
|
|
|
|
- trExamStudentList.remove(trExamStudentList.size() - 1);
|
|
|
|
- TRExamStudent trExamStudentTemp = trExamStudentList.get(0);
|
|
|
|
-
|
|
|
|
- //首行
|
|
|
|
- if (Objects.nonNull(trExamStudentTemp.getResultDetail())) {
|
|
|
|
- List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudentTemp.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
|
|
- for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
|
|
- examStudent_cells_1.add(Cells.of(reportExamStudentTargetDto.getTargetName()).center().create());
|
|
|
|
- ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
|
|
- //平常作业
|
|
|
|
- if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
|
|
- List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
|
|
- for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
|
|
- if (!targetUsualScoreSizeMap.containsKey(reportExamStudentTargetDto.getTargetId())) {
|
|
|
|
- targetUsualScoreSizeMap.put(reportExamStudentTargetDto.getTargetId(), 1);
|
|
|
|
- } else {
|
|
|
|
- Integer size = targetUsualScoreSizeMap.get(reportExamStudentTargetDto.getTargetId());
|
|
|
|
- targetUsualScoreSizeMap.put(reportExamStudentTargetDto.getTargetId(), size++);
|
|
|
|
- }
|
|
|
|
- examStudent_cells_1.add(Cells.of("").center().create());
|
|
|
|
- //报错暂时去掉,记得恢复
|
|
|
|
-// examStudent_cells_2.add(Cells.of(reportExamStudentUsualScoreObjDto.getName()).center().create());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //期末考试
|
|
|
|
- ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
|
|
- if (Objects.nonNull(reportExamStudentFinalScoreDto) && !CollectionUtils.isEmpty(reportExamStudentFinalScoreDto.getDimensionList())) {
|
|
|
|
- examStudent_cells_2.add(Cells.of("期末考试").center().create());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- examStudent_cells_1.add(Cells.of("综合成绩").center().create());
|
|
|
|
- examStudent_cells_2.add(Cells.of("综合成绩").center().create());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < trExamStudentList.size(); i++) {
|
|
|
|
- TRExamStudent trExamStudent = trExamStudentList.get(i);
|
|
|
|
- LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> scoreMap = new LinkedMultiValueMap<>();
|
|
|
|
- if (Objects.nonNull(trExamStudent.getResultDetail())) {
|
|
|
|
- List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudent.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
|
|
- for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
|
|
- if (Objects.nonNull(reportExamStudentTargetDto)) {
|
|
|
|
- ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
|
|
- //平常作业
|
|
|
|
- if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
|
|
- List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
|
|
- for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
|
|
-// scoreMap.add(reportExamStudentTargetDto.getTargetId(), Collections.singletonMap(reportExamStudentUsualScoreObjDto.getName(), new ExamStudentScoreBean(reportExamStudentUsualScoreObjDto.getScore())));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //期末考试
|
|
|
|
- ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
|
|
- if (Objects.nonNull(reportExamStudentFinalScoreDto) && !CollectionUtils.isEmpty(reportExamStudentFinalScoreDto.getDimensionList())) {
|
|
|
|
- Double sumScore = reportExamStudentFinalScoreDto.getDimensionList().stream().mapToDouble(DimensionDto::getDimensionScore).sum();
|
|
|
|
- scoreMap.add(reportExamStudentTargetDto.getTargetId(), Collections.singletonMap("期末考试", new ExamStudentScoreBean(sumScore)));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- seq5 = seq5 + 1;
|
|
|
|
- examStudentTableBeanList.add(new ExamStudentTableBean(seq5, trExamStudent.getStudentCode(), trExamStudent.getName(), trExamStudent.getAdministrativeClass(), scoreMap, 0.0d));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- String title = trBasicInfo.getTeachingObject();
|
|
|
|
- String sumTitle = "学生共${sum}名";
|
|
|
|
- sumTitle = sumTitle.replace("${sum}", trExamStudentList.size() + "");
|
|
|
|
-
|
|
|
|
- courseReportBean.setExamStudentTitle1(title + sumTitle);
|
|
|
|
- courseReportBean.setExamStudentTitle2(title + "《" + courseReportBean.getCourseBasicBean().getCourseName() + "》");
|
|
|
|
-
|
|
|
|
- RowRenderData[] rowRenderDataExamStudent = new RowRenderData[trExamStudentList.size() + 5];
|
|
|
|
-
|
|
|
|
- RowRenderData examStudent_header_1 = new RowRenderData();
|
|
|
|
- examStudent_header_1.setCells(examStudent_cells_1);
|
|
|
|
- examStudent_header_1.setRowStyle(this.getHeadRowStyle());
|
|
|
|
-
|
|
|
|
- RowRenderData examStudent_header_2 = new RowRenderData();
|
|
|
|
- examStudent_header_2.setCells(examStudent_cells_2);
|
|
|
|
- examStudent_header_2.setRowStyle(this.getHeadRowStyle());
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < examStudentTableBeanList.size(); i++) {
|
|
|
|
- ExamStudentTableBean e = examStudentTableBeanList.get(i);
|
|
|
|
- RowRenderData examStudent_row = new RowRenderData();
|
|
|
|
- List<CellRenderData> examStudent_cells = new ArrayList<>();
|
|
|
|
- examStudent_cells.add(Cells.of(e.getNum().toString()).create());
|
|
|
|
- examStudent_cells.add(Cells.of(e.getStudentCode()).create());
|
|
|
|
- examStudent_cells.add(Cells.of(e.getName()).create());
|
|
|
|
- examStudent_cells.add(Cells.of(e.getAdministrativeClass()).create());
|
|
|
|
-
|
|
|
|
- String key = null;
|
|
|
|
- LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> map = e.getMap();
|
|
|
|
- for (Map.Entry<Long, List<Map<String, ExamStudentScoreBean>>> entry : map.entrySet()) {
|
|
|
|
- List<Map<String, ExamStudentScoreBean>> list = entry.getValue();
|
|
|
|
- BigDecimal courseSumAvg = new BigDecimal(0);
|
|
|
|
- for (int y = 0; y < list.size(); y++) {
|
|
|
|
- Map<String, ExamStudentScoreBean> m = list.get(y);
|
|
|
|
- for (Map.Entry<String, ExamStudentScoreBean> entry1 : m.entrySet()) {
|
|
|
|
- courseSumAvg = courseSumAvg.add(new BigDecimal(entry1.getValue().getScore()));
|
|
|
|
- entry1.getValue().setAllScore(new BigDecimal(new Random().nextInt(10) + 1).doubleValue());
|
|
|
|
- key = entry1.getKey();
|
|
|
|
- examStudent_cells.add(Cells.of(entry1.getValue().getScore().toString()).create());
|
|
|
|
- }
|
|
|
|
- if (y == list.size() - 1) {
|
|
|
|
- courseSumAvg = courseSumAvg.divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP)
|
|
|
|
- .setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- list.get(y).get(key).setAvgAllScore(courseSumAvg.doubleValue());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (i == examStudentTableBeanList.size() - 1) {
|
|
|
|
- LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> map1 = e.getMap();
|
|
|
|
- for (Map.Entry<Long, List<Map<String, ExamStudentScoreBean>>> entry1 : map1.entrySet()) {
|
|
|
|
- List<Map<String, ExamStudentScoreBean>> list1 = entry1.getValue();
|
|
|
|
- for (int k = 0; k < list1.size(); k++) {
|
|
|
|
- Map<String, ExamStudentScoreBean> m = list1.get(k);
|
|
|
|
- for (Map.Entry<String, ExamStudentScoreBean> entry2 : m.entrySet()) {
|
|
|
|
- examStudent_cells_3.add(Cells.of(entry2.getValue().getTargetAllAvgScore().toString()).create());
|
|
|
|
- examStudent_cells_4.add(Cells.of(entry2.getValue().getAllScore().toString()).create());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- examStudent_cells_5.add(Cells.of(list1.get(list1.size() - 1).get(key).getAvgAllScore().toString()).create());
|
|
|
|
- for (int k = 1; k < list1.size(); k++) {
|
|
|
|
- examStudent_cells_5.add(Cells.of("").create());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- examStudent_cells_3.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
- examStudent_cells_4.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
- examStudent_cells_5.add(Cells.of("").create());
|
|
|
|
- }
|
|
|
|
- examStudent_cells.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
- examStudent_row.setCells(examStudent_cells);
|
|
|
|
- examStudent_row.setRowStyle(this.getRowStyle());
|
|
|
|
- rowRenderDataExamStudent[i + 2] = examStudent_row;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- rowRenderDataExamStudent[0] = examStudent_header_1;
|
|
|
|
- rowRenderDataExamStudent[1] = examStudent_header_2;
|
|
|
|
- RowRenderData examStudent_row3 = new RowRenderData();
|
|
|
|
- examStudent_row3.setCells(examStudent_cells_3);
|
|
|
|
- examStudent_row3.setRowStyle(this.getRowStyle());
|
|
|
|
- RowRenderData examStudent_row4 = new RowRenderData();
|
|
|
|
- examStudent_row4.setCells(examStudent_cells_4);
|
|
|
|
- examStudent_row4.setRowStyle(this.getRowStyle());
|
|
|
|
- RowRenderData examStudent_row5 = new RowRenderData();
|
|
|
|
- examStudent_row5.setCells(examStudent_cells_5);
|
|
|
|
- examStudent_row5.setRowStyle(this.getRowStyle());
|
|
|
|
-
|
|
|
|
- rowRenderDataExamStudent[rowRenderDataExamStudent.length - 3] = examStudent_row3;
|
|
|
|
- rowRenderDataExamStudent[rowRenderDataExamStudent.length - 2] = examStudent_row4;
|
|
|
|
- rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1] = examStudent_row5;
|
|
|
|
-
|
|
|
|
- // 表格合并,根据坐标
|
|
|
|
- MergeCellRule mergeCellRuleExamStudent = MergeCellRule.builder().build();
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 1), MergeCellRule.Grid.of(1, 1)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(1, 2)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 3), MergeCellRule.Grid.of(1, 3)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 3, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 3, 3)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, 3)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 3)));
|
|
|
|
-
|
|
|
|
- //动态扩展列
|
|
|
|
- AtomicInteger initNum = new AtomicInteger(4);
|
|
|
|
- targetUsualScoreSizeMap.forEach((k, v) -> {
|
|
|
|
- int increaseNum = 1;
|
|
|
|
- while (increaseNum <= v) {
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, initNum.get()), MergeCellRule.Grid.of(0, initNum.get() + increaseNum)));
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, initNum.get()), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, initNum.get() + increaseNum)));
|
|
|
|
- increaseNum++;
|
|
|
|
- }
|
|
|
|
- initNum.set(initNum.get() + increaseNum);
|
|
|
|
- });
|
|
|
|
- mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, initNum.get()), MergeCellRule.Grid.of(1, initNum.get())));
|
|
|
|
-
|
|
|
|
- Tables.TableBuilder tableBuilderExamStudent = Tables.ofPercentWidth("100%");
|
|
|
|
- for (int i = 0; i < rowRenderDataExamStudent.length; i++) {
|
|
|
|
- tableBuilderExamStudent.addRow(rowRenderDataExamStudent[i]);
|
|
|
|
- }
|
|
|
|
- TableRenderData tableRenderDataExamStudent = tableBuilderExamStudent.mergeRule(mergeCellRuleExamStudent).left().create();
|
|
|
|
- courseReportBean.setExamStudentTable1(tableRenderDataExamStudent);
|
|
|
|
- }
|
|
|
|
|
|
+// List<TRExamStudent> trExamStudentList = trExamStudentService.list(new QueryWrapper<TRExamStudent>().lambda().eq(TRExamStudent::getrBasicInfoId, trBasicInfo.getId()));
|
|
|
|
+// if (!CollectionUtils.isEmpty(trExamStudentList)) {
|
|
|
|
+//// List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getCourseCode(), trBasicInfo.getPaperNumber());//考生成绩
|
|
|
|
+//// Map<String, FinalScoreResult> finalScoreResultMap = finalScoreResultList.stream().collect(Collectors.toMap(FinalScoreResult::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
|
+//
|
|
|
|
+// List<CellRenderData> examStudent_cells_1 = new ArrayList<>(), examStudent_cells_2 = new ArrayList<>(), examStudent_cells_3 = new ArrayList<>(), examStudent_cells_4 = new ArrayList<>(), examStudent_cells_5 = new ArrayList<>();
|
|
|
|
+// examStudent_cells_1.add(Cells.of("序号").center().create());
|
|
|
|
+// examStudent_cells_1.add(Cells.of("学号").center().create());
|
|
|
|
+// examStudent_cells_1.add(Cells.of("姓名").center().create());
|
|
|
|
+// examStudent_cells_1.add(Cells.of("行政班级").center().create());
|
|
|
|
+// examStudent_cells_2.addAll(examStudent_cells_1);
|
|
|
|
+//
|
|
|
|
+// examStudent_cells_3.add(Cells.of("课程目标考核要素的目标分").center().create());
|
|
|
|
+// examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_3.add(Cells.of("").center().create());
|
|
|
|
+//
|
|
|
|
+// examStudent_cells_4.add(Cells.of("课程目标考核要素的平均分").center().create());
|
|
|
|
+// examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_4.add(Cells.of("").center().create());
|
|
|
|
+//
|
|
|
|
+// examStudent_cells_5.add(Cells.of("各课程目标平均分").center().create());
|
|
|
|
+// examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
+// examStudent_cells_5.add(Cells.of("").center().create());
|
|
|
|
+//
|
|
|
|
+// List<ExamStudentTableBean> examStudentTableBeanList = new ArrayList<>();
|
|
|
|
+// int seq5 = 0;
|
|
|
|
+// Map<Long, Integer> targetUsualScoreSizeMap = new HashMap<>();
|
|
|
|
+// trExamStudentList.remove(trExamStudentList.size() - 1);
|
|
|
|
+// TRExamStudent trExamStudentTemp = trExamStudentList.get(0);
|
|
|
|
+//
|
|
|
|
+// //首行
|
|
|
|
+// if (Objects.nonNull(trExamStudentTemp.getResultDetail())) {
|
|
|
|
+// List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudentTemp.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
|
|
+// for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
|
|
+// examStudent_cells_1.add(Cells.of(reportExamStudentTargetDto.getTargetName()).center().create());
|
|
|
|
+// ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
|
|
+// //平常作业
|
|
|
|
+// if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
|
|
+// List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
|
|
+// for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
|
|
+// if (!targetUsualScoreSizeMap.containsKey(reportExamStudentTargetDto.getTargetId())) {
|
|
|
|
+// targetUsualScoreSizeMap.put(reportExamStudentTargetDto.getTargetId(), 1);
|
|
|
|
+// } else {
|
|
|
|
+// Integer size = targetUsualScoreSizeMap.get(reportExamStudentTargetDto.getTargetId());
|
|
|
|
+// targetUsualScoreSizeMap.put(reportExamStudentTargetDto.getTargetId(), size++);
|
|
|
|
+// }
|
|
|
|
+// examStudent_cells_1.add(Cells.of("").center().create());
|
|
|
|
+// //报错暂时去掉,记得恢复
|
|
|
|
+//// examStudent_cells_2.add(Cells.of(reportExamStudentUsualScoreObjDto.getName()).center().create());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// //期末考试
|
|
|
|
+// ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
|
|
+// if (Objects.nonNull(reportExamStudentFinalScoreDto) && !CollectionUtils.isEmpty(reportExamStudentFinalScoreDto.getDimensionList())) {
|
|
|
|
+// examStudent_cells_2.add(Cells.of("期末考试").center().create());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// examStudent_cells_1.add(Cells.of("综合成绩").center().create());
|
|
|
|
+// examStudent_cells_2.add(Cells.of("综合成绩").center().create());
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < trExamStudentList.size(); i++) {
|
|
|
|
+// TRExamStudent trExamStudent = trExamStudentList.get(i);
|
|
|
|
+// LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> scoreMap = new LinkedMultiValueMap<>();
|
|
|
|
+// if (Objects.nonNull(trExamStudent.getResultDetail())) {
|
|
|
|
+// List<ReportExamStudentTargetDto> reportExamStudentTargetDtoList = JSONArray.parseArray(trExamStudent.getResultDetail(), ReportExamStudentTargetDto.class);
|
|
|
|
+// for (ReportExamStudentTargetDto reportExamStudentTargetDto : reportExamStudentTargetDtoList) {
|
|
|
|
+// if (Objects.nonNull(reportExamStudentTargetDto)) {
|
|
|
|
+// ReportExamStudentUsualScoreDto reportExamStudentUsualScoreDto = reportExamStudentTargetDto.getUsualScore();
|
|
|
|
+// //平常作业
|
|
|
|
+// if (Objects.nonNull(reportExamStudentUsualScoreDto) && !CollectionUtils.isEmpty(reportExamStudentUsualScoreDto.getScoreList())) {
|
|
|
|
+// List<ReportExamStudentUsualScoreObjDto> reportExamStudentUsualScoreObjDtoList = reportExamStudentUsualScoreDto.getScoreList();
|
|
|
|
+// for (ReportExamStudentUsualScoreObjDto reportExamStudentUsualScoreObjDto : reportExamStudentUsualScoreObjDtoList) {
|
|
|
|
+//// scoreMap.add(reportExamStudentTargetDto.getTargetId(), Collections.singletonMap(reportExamStudentUsualScoreObjDto.getName(), new ExamStudentScoreBean(reportExamStudentUsualScoreObjDto.getScore())));
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// //期末考试
|
|
|
|
+// ReportExamStudentFinalScoreDto reportExamStudentFinalScoreDto = reportExamStudentTargetDto.getFinalScore();
|
|
|
|
+// if (Objects.nonNull(reportExamStudentFinalScoreDto) && !CollectionUtils.isEmpty(reportExamStudentFinalScoreDto.getDimensionList())) {
|
|
|
|
+// Double sumScore = reportExamStudentFinalScoreDto.getDimensionList().stream().mapToDouble(DimensionDto::getDimensionScore).sum();
|
|
|
|
+// scoreMap.add(reportExamStudentTargetDto.getTargetId(), Collections.singletonMap("期末考试", new ExamStudentScoreBean(sumScore)));
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// seq5 = seq5 + 1;
|
|
|
|
+// examStudentTableBeanList.add(new ExamStudentTableBean(seq5, trExamStudent.getStudentCode(), trExamStudent.getName(), trExamStudent.getAdministrativeClass(), scoreMap, 0.0d));
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// String title = trBasicInfo.getTeachingObject();
|
|
|
|
+// String sumTitle = "学生共${sum}名";
|
|
|
|
+// sumTitle = sumTitle.replace("${sum}", trExamStudentList.size() + "");
|
|
|
|
+//
|
|
|
|
+// courseReportBean.setExamStudentTitle1(title + sumTitle);
|
|
|
|
+// courseReportBean.setExamStudentTitle2(title + "《" + courseReportBean.getCourseBasicBean().getCourseName() + "》");
|
|
|
|
+//
|
|
|
|
+// RowRenderData[] rowRenderDataExamStudent = new RowRenderData[trExamStudentList.size() + 5];
|
|
|
|
+//
|
|
|
|
+// RowRenderData examStudent_header_1 = new RowRenderData();
|
|
|
|
+// examStudent_header_1.setCells(examStudent_cells_1);
|
|
|
|
+// examStudent_header_1.setRowStyle(this.getHeadRowStyle());
|
|
|
|
+//
|
|
|
|
+// RowRenderData examStudent_header_2 = new RowRenderData();
|
|
|
|
+// examStudent_header_2.setCells(examStudent_cells_2);
|
|
|
|
+// examStudent_header_2.setRowStyle(this.getHeadRowStyle());
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < examStudentTableBeanList.size(); i++) {
|
|
|
|
+// ExamStudentTableBean e = examStudentTableBeanList.get(i);
|
|
|
|
+// RowRenderData examStudent_row = new RowRenderData();
|
|
|
|
+// List<CellRenderData> examStudent_cells = new ArrayList<>();
|
|
|
|
+// examStudent_cells.add(Cells.of(e.getNum().toString()).create());
|
|
|
|
+// examStudent_cells.add(Cells.of(e.getStudentCode()).create());
|
|
|
|
+// examStudent_cells.add(Cells.of(e.getName()).create());
|
|
|
|
+// examStudent_cells.add(Cells.of(e.getAdministrativeClass()).create());
|
|
|
|
+//
|
|
|
|
+// String key = null;
|
|
|
|
+// LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> map = e.getMap();
|
|
|
|
+// for (Map.Entry<Long, List<Map<String, ExamStudentScoreBean>>> entry : map.entrySet()) {
|
|
|
|
+// List<Map<String, ExamStudentScoreBean>> list = entry.getValue();
|
|
|
|
+// BigDecimal courseSumAvg = new BigDecimal(0);
|
|
|
|
+// for (int y = 0; y < list.size(); y++) {
|
|
|
|
+// Map<String, ExamStudentScoreBean> m = list.get(y);
|
|
|
|
+// for (Map.Entry<String, ExamStudentScoreBean> entry1 : m.entrySet()) {
|
|
|
|
+// courseSumAvg = courseSumAvg.add(new BigDecimal(entry1.getValue().getScore()));
|
|
|
|
+// entry1.getValue().setAllScore(new BigDecimal(new Random().nextInt(10) + 1).doubleValue());
|
|
|
|
+// key = entry1.getKey();
|
|
|
|
+// examStudent_cells.add(Cells.of(entry1.getValue().getScore().toString()).create());
|
|
|
|
+// }
|
|
|
|
+// if (y == list.size() - 1) {
|
|
|
|
+// courseSumAvg = courseSumAvg.divide(new BigDecimal(list.size()), 2, BigDecimal.ROUND_HALF_UP)
|
|
|
|
+// .setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+// list.get(y).get(key).setAvgAllScore(courseSumAvg.doubleValue());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// if (i == examStudentTableBeanList.size() - 1) {
|
|
|
|
+// LinkedMultiValueMap<Long, Map<String, ExamStudentScoreBean>> map1 = e.getMap();
|
|
|
|
+// for (Map.Entry<Long, List<Map<String, ExamStudentScoreBean>>> entry1 : map1.entrySet()) {
|
|
|
|
+// List<Map<String, ExamStudentScoreBean>> list1 = entry1.getValue();
|
|
|
|
+// for (int k = 0; k < list1.size(); k++) {
|
|
|
|
+// Map<String, ExamStudentScoreBean> m = list1.get(k);
|
|
|
|
+// for (Map.Entry<String, ExamStudentScoreBean> entry2 : m.entrySet()) {
|
|
|
|
+// examStudent_cells_3.add(Cells.of(entry2.getValue().getTargetAllAvgScore().toString()).create());
|
|
|
|
+// examStudent_cells_4.add(Cells.of(entry2.getValue().getAllScore().toString()).create());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// examStudent_cells_5.add(Cells.of(list1.get(list1.size() - 1).get(key).getAvgAllScore().toString()).create());
|
|
|
|
+// for (int k = 1; k < list1.size(); k++) {
|
|
|
|
+// examStudent_cells_5.add(Cells.of("").create());
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// examStudent_cells_3.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
+// examStudent_cells_4.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
+// examStudent_cells_5.add(Cells.of("").create());
|
|
|
|
+// }
|
|
|
|
+// examStudent_cells.add(Cells.of(e.getSumScore().toString()).create());
|
|
|
|
+// examStudent_row.setCells(examStudent_cells);
|
|
|
|
+// examStudent_row.setRowStyle(this.getRowStyle());
|
|
|
|
+// rowRenderDataExamStudent[i + 2] = examStudent_row;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// rowRenderDataExamStudent[0] = examStudent_header_1;
|
|
|
|
+// rowRenderDataExamStudent[1] = examStudent_header_2;
|
|
|
|
+// RowRenderData examStudent_row3 = new RowRenderData();
|
|
|
|
+// examStudent_row3.setCells(examStudent_cells_3);
|
|
|
|
+// examStudent_row3.setRowStyle(this.getRowStyle());
|
|
|
|
+// RowRenderData examStudent_row4 = new RowRenderData();
|
|
|
|
+// examStudent_row4.setCells(examStudent_cells_4);
|
|
|
|
+// examStudent_row4.setRowStyle(this.getRowStyle());
|
|
|
|
+// RowRenderData examStudent_row5 = new RowRenderData();
|
|
|
|
+// examStudent_row5.setCells(examStudent_cells_5);
|
|
|
|
+// examStudent_row5.setRowStyle(this.getRowStyle());
|
|
|
|
+//
|
|
|
|
+// rowRenderDataExamStudent[rowRenderDataExamStudent.length - 3] = examStudent_row3;
|
|
|
|
+// rowRenderDataExamStudent[rowRenderDataExamStudent.length - 2] = examStudent_row4;
|
|
|
|
+// rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1] = examStudent_row5;
|
|
|
|
+//
|
|
|
|
+// // 表格合并,根据坐标
|
|
|
|
+// MergeCellRule mergeCellRuleExamStudent = MergeCellRule.builder().build();
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 0), MergeCellRule.Grid.of(1, 0)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 1), MergeCellRule.Grid.of(1, 1)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 2), MergeCellRule.Grid.of(1, 2)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, 3), MergeCellRule.Grid.of(1, 3)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 3, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 3, 3)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, 3)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 3)));
|
|
|
|
+//
|
|
|
|
+// //动态扩展列
|
|
|
|
+// AtomicInteger initNum = new AtomicInteger(4);
|
|
|
|
+// targetUsualScoreSizeMap.forEach((k, v) -> {
|
|
|
|
+// int increaseNum = 1;
|
|
|
|
+// while (increaseNum <= v) {
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, initNum.get()), MergeCellRule.Grid.of(0, initNum.get() + increaseNum)));
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, initNum.get()), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, initNum.get() + increaseNum)));
|
|
|
|
+// increaseNum++;
|
|
|
|
+// }
|
|
|
|
+// initNum.set(initNum.get() + increaseNum);
|
|
|
|
+// });
|
|
|
|
+// mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, initNum.get()), MergeCellRule.Grid.of(1, initNum.get())));
|
|
|
|
+//
|
|
|
|
+// Tables.TableBuilder tableBuilderExamStudent = Tables.ofPercentWidth("100%");
|
|
|
|
+// for (int i = 0; i < rowRenderDataExamStudent.length; i++) {
|
|
|
|
+// tableBuilderExamStudent.addRow(rowRenderDataExamStudent[i]);
|
|
|
|
+// }
|
|
|
|
+// TableRenderData tableRenderDataExamStudent = tableBuilderExamStudent.mergeRule(mergeCellRuleExamStudent).left().create();
|
|
|
|
+// courseReportBean.setExamStudentTable1(tableRenderDataExamStudent);
|
|
|
|
+// }
|
|
|
|
|
|
XWPFTemplate template = XWPFTemplate.compile("/Users/king/git/teachcloud-server/distributed-print/src/main/resources/static/course_degree_report.docx").render(courseReportBean);
|
|
XWPFTemplate template = XWPFTemplate.compile("/Users/king/git/teachcloud-server/distributed-print/src/main/resources/static/course_degree_report.docx").render(courseReportBean);
|
|
template.writeToFile("/Users/king/Downloads/demo_course_degree_report.docx");
|
|
template.writeToFile("/Users/king/Downloads/demo_course_degree_report.docx");
|