|
@@ -8,6 +8,7 @@ import com.deepoove.poi.data.*;
|
|
|
import com.deepoove.poi.data.style.CellStyle;
|
|
|
import com.deepoove.poi.data.style.ParagraphStyle;
|
|
|
import com.deepoove.poi.data.style.RowStyle;
|
|
|
+import com.google.common.collect.ImmutableMap;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
|
|
|
import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
@@ -693,7 +694,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
courseReportBean.setCourseTargetTable6(this.buildWordTable6(map));
|
|
|
courseReportBean.setCourseTargetColumnDiagram1(this.buildCourseTargetColumnDiagram1(map));
|
|
|
courseReportBean.setCourseTargetColumnDiagram2(this.buildCourseTargetColumnDiagram2(map));
|
|
|
- this.buildCourseTargetColumnDiagram3(finalScatterYMap, courseReportBean.getCourseBasicBean().getCourseSuggestList(), courseTargetWebDtoList);
|
|
|
+ this.buildCourseTargetColumnDiagram3(finalScatterYMap, courseReportBean.getCourseBasicBean().getCourseSuggestList(), courseTargetWebDtoList, scoreList.size());
|
|
|
}
|
|
|
return tableRenderDataExamStudent;
|
|
|
}
|
|
@@ -807,16 +808,24 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
* @param finalScatterYMap
|
|
|
* @param courseSuggestDtoList
|
|
|
* @param courseTargetWebDtoList
|
|
|
+ * @param examStudentSize
|
|
|
*/
|
|
|
@Override
|
|
|
public void buildCourseTargetColumnDiagram3(LinkedMultiValueMap<Long, Map<String, String>> finalScatterYMap,
|
|
|
List<CourseSuggestDto> courseSuggestDtoList,
|
|
|
- List<CourseTargetWebDto> courseTargetWebDtoList) {
|
|
|
+ List<CourseTargetWebDto> courseTargetWebDtoList,
|
|
|
+ int examStudentSize) {
|
|
|
Map<Long, CourseTargetWebDto> courseTargetWebDtoMap = courseTargetWebDtoList.stream().collect(Collectors.toMap(CourseTargetWebDto::getTargetId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
for (CourseSuggestDto courseSuggestDto : courseSuggestDtoList) {
|
|
|
CourseTargetWebDto courseTargetWebDto = courseTargetWebDtoMap.get(courseSuggestDto.getTargetId());
|
|
|
List<Map<String, String>> list = finalScatterYMap.get(courseSuggestDto.getTargetId());
|
|
|
- if (Objects.nonNull(courseTargetWebDto) && !CollectionUtils.isEmpty(list)) {
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ list = new ArrayList<>();
|
|
|
+ for (int i = 0; i < examStudentSize; i++) {
|
|
|
+ list.add(ImmutableMap.of((i + 1) + "", "0"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(courseTargetWebDto)) {
|
|
|
courseSuggestDto.setCourseTargetColumnDiagram3(this.buildScatterMap(list, courseTargetWebDto));
|
|
|
}
|
|
|
}
|
|
@@ -1291,12 +1300,13 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
if (!CollectionUtils.isEmpty(map)) {
|
|
|
List<CourseTargetWebDto> courseTargetWebDtoList = (List<CourseTargetWebDto>) map.get("courseTargetWebDtoList");
|
|
|
tableRenderDataExamStudent = (TableRenderData) map.get("tableRenderDataExamStudent");
|
|
|
+ List<BigDecimal> scoreList = (List<BigDecimal>) map.get("scoreList");
|
|
|
LinkedMultiValueMap<String, BigDecimal> scoreListMap = (LinkedMultiValueMap<String, BigDecimal>) map.get("scoreListMap");
|
|
|
LinkedMultiValueMap<Long, Map<String, String>> finalScatterYMap = (LinkedMultiValueMap<Long, Map<String, String>>) map.get("finalScatterYMap");
|
|
|
Map<String, Object> mapScore = this.buildXagyuScoreOtherMap(scoreListMap);
|
|
|
xagyuCourseReportBean.setXagyuCourseTargetTable2(this.buildXagyuWordTable2(mapScore));
|
|
|
xagyuCourseReportBean.setXagyuCourseTargetColumnDiagram1(this.buildCourseTargetColumnDiagram2(map));
|
|
|
- this.buildXagyuCourseTargetColumnDiagram1(finalScatterYMap, xagyuCourseReportBean.getXagyuCourseBasicBean().getCourseSuggestList(), courseTargetWebDtoList);
|
|
|
+ this.buildXagyuCourseTargetColumnDiagram1(finalScatterYMap, xagyuCourseReportBean.getXagyuCourseBasicBean().getCourseSuggestList(), courseTargetWebDtoList, scoreList.size());
|
|
|
}
|
|
|
return tableRenderDataExamStudent;
|
|
|
}
|
|
@@ -1307,14 +1317,21 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
* @param finalScatterYMap
|
|
|
* @param courseSuggestDtoList
|
|
|
* @param courseTargetWebDtoList
|
|
|
+ * @param examStudentSize
|
|
|
*/
|
|
|
@Override
|
|
|
- public void buildXagyuCourseTargetColumnDiagram1(LinkedMultiValueMap<Long, Map<String, String>> finalScatterYMap, List<XagyuCourseSuggestDto> courseSuggestDtoList, List<CourseTargetWebDto> courseTargetWebDtoList) {
|
|
|
+ public void buildXagyuCourseTargetColumnDiagram1(LinkedMultiValueMap<Long, Map<String, String>> finalScatterYMap, List<XagyuCourseSuggestDto> courseSuggestDtoList, List<CourseTargetWebDto> courseTargetWebDtoList, int examStudentSize) {
|
|
|
Map<Long, CourseTargetWebDto> courseTargetWebDtoMap = courseTargetWebDtoList.stream().collect(Collectors.toMap(CourseTargetWebDto::getTargetId, Function.identity(), (dto1, dto2) -> dto1));
|
|
|
for (XagyuCourseSuggestDto courseSuggestDto : courseSuggestDtoList) {
|
|
|
CourseTargetWebDto courseTargetWebDto = courseTargetWebDtoMap.get(courseSuggestDto.getTargetId());
|
|
|
List<Map<String, String>> list = finalScatterYMap.get(courseSuggestDto.getTargetId());
|
|
|
- if (Objects.nonNull(courseTargetWebDto) && !CollectionUtils.isEmpty(list)) {
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ list = new ArrayList<>();
|
|
|
+ for (int i = 0; i < examStudentSize; i++) {
|
|
|
+ list.add(ImmutableMap.of((i + 1) + "", "0"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(courseTargetWebDto)) {
|
|
|
courseSuggestDto.setXagyuCourseTargetColumnDiagram2(this.buildScatterMap(list, courseTargetWebDto));
|
|
|
}
|
|
|
}
|
|
@@ -1738,10 +1755,11 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
|
|
|
++index;
|
|
|
}
|
|
|
}
|
|
|
+ String evaluationValue = Objects.nonNull(courseTargetWebDto.getEvaluationValue()) ? SystemConstant.df.format(courseTargetWebDto.getEvaluationValue()) : "0";
|
|
|
ChartMultiSeriesRenderData scatterMap = Charts.ofMultiSeries(courseTargetWebDto.getTargetName(), valueXList.toArray(new String[valueXList.size()]))
|
|
|
.addSeries("Y值", titleYList.toArray(new Number[titleYList.size()]))
|
|
|
.setxAsixTitle("学生代号")
|
|
|
- .setyAsixTitle("达成值" + SystemConstant.df.format(courseTargetWebDto.getEvaluationValue()))
|
|
|
+ .setyAsixTitle("达成值" + evaluationValue)
|
|
|
.create();
|
|
|
return scatterMap;
|
|
|
}
|