Przeglądaj źródła

课程目标达成度修改

wangliang 1 rok temu
rodzic
commit
3d32a25ea3

+ 15 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/report/ObeSubRequirementsDto.java

@@ -23,7 +23,7 @@ import java.util.List;
 public class ObeSubRequirementsDto extends CourseTargetWebDto {
 
     @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "毕业指标点id")
+    @ApiModelProperty(value = "毕业指标点id")
     private Long id;
 
     @ApiModelProperty(value = "毕业指标点名称")
@@ -35,6 +35,10 @@ public class ObeSubRequirementsDto extends CourseTargetWebDto {
     @ApiModelProperty(value = "描述")
     private String content;
 
+    @ApiModelProperty(value = "毕业指标点id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long subRequirementId;
+
     @ApiModelProperty(value = "毕业指标点达成值")
     private BigDecimal matrixDegree = new BigDecimal(0);
 
@@ -47,6 +51,7 @@ public class ObeSubRequirementsDto extends CourseTargetWebDto {
         this.name = matrixSubRequirementDto.getName();
         this.scale = matrixSubRequirementDto.getScale();
         this.content = matrixSubRequirementDto.getContent();
+        this.subRequirementId = matrixSubRequirementDto.getSubRequirementId();
         setTargetId(courseTargetWebDto.getTargetId());
         setTargetName(courseTargetWebDto.getTargetName());
         setGraduationRequirement(courseTargetWebDto.getGraduationRequirement());
@@ -65,6 +70,15 @@ public class ObeSubRequirementsDto extends CourseTargetWebDto {
         this.name = matrixSubRequirementDto.getName();
         this.scale = matrixSubRequirementDto.getScale();
         this.content = matrixSubRequirementDto.getContent();
+        this.subRequirementId = matrixSubRequirementDto.getSubRequirementId();
+    }
+
+    public Long getSubRequirementId() {
+        return subRequirementId;
+    }
+
+    public void setSubRequirementId(Long subRequirementId) {
+        this.subRequirementId = subRequirementId;
     }
 
     public Long getId() {

+ 15 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementReportServiceImpl.java

@@ -114,22 +114,22 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
                                         obeSubRequirementsDtoList.add(obeSubRequirementsDto);
                                         if (Objects.nonNull(matrixSubRequirementDto.getScale())) {
                                             //多个课程目标关联同一个指标点
-                                            if (matrixSubRequirementIdMap.containsKey(matrixSubRequirementDto.getId())) {
-                                                List<ObeSubRequirementsDto> obeRequirementsDtoList = matrixSubRequirementIdMap.get(matrixSubRequirementDto.getId());
+                                            if (matrixSubRequirementIdMap.containsKey(matrixSubRequirementDto.getSubRequirementId())) {
+                                                List<ObeSubRequirementsDto> obeRequirementsDtoList = matrixSubRequirementIdMap.get(matrixSubRequirementDto.getSubRequirementId());
                                                 Map<Long, CourseTargetWebDto> map = obeRequirementsDtoList.stream().collect(Collectors.toMap(ObeSubRequirementsDto::getTargetId, Function.identity(), (dto1, dto2) -> dto1));
-                                                CourseWeightDto courseWeightDto = cultureProgramRequirementIdMap.get(matrixSubRequirementDto.getId());
+                                                CourseWeightDto courseWeightDto = cultureProgramRequirementIdMap.get(matrixSubRequirementDto.getSubRequirementId());
                                                 if (Objects.nonNull(courseWeightDto)) {
                                                     CourseTargetWebDto courseTargetWebDto = courseTargetWebDtoMap.get(courseWeightDto.getCourseTargetId());
                                                     if (!map.containsKey(courseTargetWebDto.getTargetId())) {
                                                         obeRequirementsDtoList.add(new ObeSubRequirementsDto(courseTargetWebDto, matrixSubRequirementDto));
                                                     }
                                                 }
-                                                matrixSubRequirementIdMap.put(matrixSubRequirementDto.getId(), obeRequirementsDtoList);
+                                                matrixSubRequirementIdMap.put(matrixSubRequirementDto.getSubRequirementId(), obeRequirementsDtoList);
                                             } else {
-                                                CourseWeightDto courseWeightDto = cultureProgramRequirementIdMap.get(matrixSubRequirementDto.getId());
+                                                CourseWeightDto courseWeightDto = cultureProgramRequirementIdMap.get(matrixSubRequirementDto.getSubRequirementId());
                                                 if (Objects.nonNull(courseWeightDto)) {
                                                     CourseTargetWebDto courseTargetWebDto = courseTargetWebDtoMap.get(courseWeightDto.getCourseTargetId());
-                                                    matrixSubRequirementIdMap.put(matrixSubRequirementDto.getId(), new ArrayList<>(Arrays.asList(new ObeSubRequirementsDto(courseTargetWebDto, matrixSubRequirementDto))));
+                                                    matrixSubRequirementIdMap.put(matrixSubRequirementDto.getSubRequirementId(), new ArrayList<>(Arrays.asList(new ObeSubRequirementsDto(courseTargetWebDto, matrixSubRequirementDto))));
                                                 }
                                             }
                                         }
@@ -140,7 +140,7 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
                         //计算各个课程的指标点达成值
                         if (!CollectionUtils.isEmpty(matrixSubRequirementIdMap)) {
                             for (Map.Entry<Long, List<ObeSubRequirementsDto>> entry : matrixSubRequirementIdMap.entrySet()) {
-                                Double evaluationValue = entry.getValue().stream().mapToDouble(x -> x.getEvaluationValue().doubleValue()).average().orElse(0.0d);
+                                Double evaluationValue = entry.getValue().stream().mapToDouble(x -> Objects.nonNull(x.getEvaluationValue()) ? x.getEvaluationValue().doubleValue() : 0.0d).average().orElse(0.0d);
                                 ObeSubRequirementsDto obeSubRequirementsDto = entry.getValue().get(0);
                                 BigDecimal bigDecimal = new BigDecimal(evaluationValue).multiply(new BigDecimal(obeSubRequirementsDto.getScale())).setScale(2, BigDecimal.ROUND_HALF_UP);
                                 entry.getValue().stream().peek(x -> x.setMatrixDegree(bigDecimal)).collect(Collectors.toList());
@@ -152,15 +152,15 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
                             for (ObeRequirementDto o : obeRequirementDtoList) {
                                 List<ObeSubRequirementsDto> obeSubRequirementsDtoList = o.getObeSubRequirements();
                                 for (ObeSubRequirementsDto obeSubRequirementsDto : obeSubRequirementsDtoList) {
-                                    if (matrixSubRequirementIdMap.containsKey(obeSubRequirementsDto.getId())) {
-                                        obeSubRequirementsDto.setMatrixDegree(matrixSubRequirementIdMap.get(obeSubRequirementsDto.getId()).get(0).getMatrixDegree());
+                                    if (matrixSubRequirementIdMap.containsKey(obeSubRequirementsDto.getSubRequirementId())) {
+                                        obeSubRequirementsDto.setMatrixDegree(matrixSubRequirementIdMap.get(obeSubRequirementsDto.getSubRequirementId()).get(0).getMatrixDegree());
                                     }
-                                    if (obeSubRequirementsDtoMap.containsKey(obeSubRequirementsDto.getId())) {
-                                        List<ObeSubRequirementsDto> obeSubRequirementsDtoListTemp = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getId());
+                                    if (obeSubRequirementsDtoMap.containsKey(obeSubRequirementsDto.getSubRequirementId())) {
+                                        List<ObeSubRequirementsDto> obeSubRequirementsDtoListTemp = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getSubRequirementId());
                                         obeSubRequirementsDtoListTemp.add(obeSubRequirementsDto);
-                                        obeSubRequirementsDtoMap.put(obeSubRequirementsDto.getId(), obeSubRequirementsDtoListTemp);
+                                        obeSubRequirementsDtoMap.put(obeSubRequirementsDto.getSubRequirementId(), obeSubRequirementsDtoListTemp);
                                     } else {
-                                        obeSubRequirementsDtoMap.put(obeSubRequirementsDto.getId(), new ArrayList<>(Arrays.asList(obeSubRequirementsDto)));
+                                        obeSubRequirementsDtoMap.put(obeSubRequirementsDto.getSubRequirementId(), new ArrayList<>(Arrays.asList(obeSubRequirementsDto)));
                                     }
                                 }
                             }
@@ -209,8 +209,8 @@ public class ObeCourseRequirementReportServiceImpl extends ServiceImpl<ObeCourse
             for (ObeRequirementDto obeRequirementDto : obeRequirementDtoList) {
                 List<ObeSubRequirementsDto> obeSubRequirementsDtoList = obeRequirementDto.getObeSubRequirements();
                 for (ObeSubRequirementsDto obeSubRequirementsDto : obeSubRequirementsDtoList) {
-                    if (obeSubRequirementsDtoMap.containsKey(obeSubRequirementsDto.getId())) {
-                        Double degree = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getId()).stream().mapToDouble(x -> x.getMatrixDegree().doubleValue()).sum();
+                    if (obeSubRequirementsDtoMap.containsKey(obeSubRequirementsDto.getSubRequirementId())) {
+                        Double degree = obeSubRequirementsDtoMap.get(obeSubRequirementsDto.getSubRequirementId()).stream().mapToDouble(x -> x.getMatrixDegree().doubleValue()).sum();
                         obeRequirementDto.setMatrixDegree(new BigDecimal(degree).setScale(2, BigDecimal.ROUND_HALF_UP));
                     }
                 }

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

@@ -402,10 +402,10 @@ public class TRBasicInfoController {
 //                            reportChangeResult.setTargetScoreChange(true);
 //                            stringJoiner.add("[").add(c.getCourseTargetName()).add("]").add("未设置目标分值").add("\r\n");
 //                        }
-                        else if (new BigDecimal(score).compareTo(c.getTotalWeight()) == 1) {
-                            reportChangeResult.setTargetScoreChange(true);
-                            stringJoiner.add("[").add(c.getCourseTargetName()).add("]").add("包含的小题总分与权重设置不一致,请到期末成绩--试卷蓝图设置里调整").add("\r\n");
-                        }
+//                        else if (new BigDecimal(score).compareTo(c.getTotalWeight()) == 1) {
+//                            reportChangeResult.setTargetScoreChange(true);
+//                            stringJoiner.add("[").add(c.getCourseTargetName()).add("]").add("包含的小题总分与权重设置不一致,请到期末成绩--试卷蓝图设置里调整").add("\r\n");
+//                        }
                     }
                     if (reportChangeResult.isTargetScoreChange()) {
                         trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, false);