diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java index b49eeb1ad..0832aaa5e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java @@ -56,6 +56,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; +import org.omg.CORBA.ExceptionList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; @@ -643,10 +644,8 @@ public class XzRiskPredictionController { WorkerType workerType = workerTypeService.getOne(Wrappers.lambdaQuery() .eq(WorkerType::getProjectSn, projectSn) .eq(WorkerType::getTypeName, "特殊工种")); - List examTrainList = examTrainService.list(Wrappers.lambdaQuery().eq(ExamTrain::getProjectSn, projectSn) .isNotNull(ExamTrain::getExamPaperId)); - for (ProjectEnterprise projectEnterprise : parentList) { EnterpriseInfo enterpriseInfo = enterpriseInfoService.getById(projectEnterprise.getEnterpriseId()); List enterpriseIds = allList.stream().filter(a -> a.getAncestors().contains(projectEnterprise.getId().toString())).collect(Collectors.toList()) @@ -685,13 +684,14 @@ public class XzRiskPredictionController { int pass = trainRecordList.stream().filter(t -> t.getIsPass() == 1).collect(Collectors.toList()).size(); record.setPassRadio(trainRecordList.size() == 0 ? null : new BigDecimal(pass).divide(new BigDecimal(trainRecordList.size()), 2, BigDecimal.ROUND_HALF_UP)); } else { - record.setPassRadio(new BigDecimal(1)); + record.setPassRadio(null); } } } + List joinList = examTrainList.stream().filter(s -> s.getPassRadio() != null).collect(Collectors.toList()); // 教育培训 - BigDecimal passRadio = examTrainList.stream().map(e -> e.getPassRadio()).reduce(BigDecimal.ZERO, BigDecimal::add); - resultMap.put("exam", examTrainList.size() == 0 ? null : new BigDecimal(1).subtract(passRadio.divide(new BigDecimal(examTrainList.size()), 2, BigDecimal.ROUND_HALF_UP))); + BigDecimal passRadio = joinList.stream().map(e -> e.getPassRadio()).reduce(BigDecimal.ZERO, BigDecimal::add); + resultMap.put("exam", joinList.size() == 0 ? 0 : new BigDecimal(1).subtract(passRadio.divide(new BigDecimal(joinList.size()), 2, BigDecimal.ROUND_HALF_UP))); } else { resultMap.put("exam", 0); }