From 8214c5f83ac183a575f63fc1a76e4f4f2cdac06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6?= <吴æ武慧娟> Date: Tue, 7 Jan 2020 17:29:30 +0800 Subject: [PATCH] =?UTF-8?q?=C3=A6=C2=B8ht=20=E6=B5=8B=E8=AF=84=E5=BE=97?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ht/service/PatientReportService.java | 4 ++-- .../ccsens/ht/service/QuestionService.java | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java index ba64c430..e40959c3 100644 --- a/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java +++ b/ht/src/main/java/com/ccsens/ht/service/PatientReportService.java @@ -162,9 +162,9 @@ public class PatientReportService implements IPatientReportService { List doctors = htDoctorMapper.selectByExample(doctorExample); log.info("当前用户是否为医生:{}", CollectionUtil.isNotEmpty(doctors)); if (query.getPatientId() != null) { - reportExample.createCriteria().andPatientIdEqualTo(query.getPatientId()); + reportExample.createCriteria().andPatientIdEqualTo(query.getPatientId()).andInitialImpressionIsNotNull().andInitialImpressionNotEqualTo(""); } else if (CollectionUtil.isNotEmpty(doctors)) { - reportExample.createCriteria().andDoctorIdEqualTo(doctors.get(0).getId()); + reportExample.createCriteria().andDoctorIdEqualTo(doctors.get(0).getId()).andInitialImpressionIsNotNull().andInitialImpressionNotEqualTo(""); } else { log.info("既无病人信息,有无医生信息,不允许查询"); throw new BaseException(CodeEnum.PARAM_ERROR); diff --git a/ht/src/main/java/com/ccsens/ht/service/QuestionService.java b/ht/src/main/java/com/ccsens/ht/service/QuestionService.java index 843f5162..ed2ccbe6 100644 --- a/ht/src/main/java/com/ccsens/ht/service/QuestionService.java +++ b/ht/src/main/java/com/ccsens/ht/service/QuestionService.java @@ -198,18 +198,20 @@ public class QuestionService implements IQuestionService { List scores = getHtPatientScores(score, question, report, ruleList, nameOption, idOption); if (!CollectionUtils.isEmpty(ruleList)) { + HtQuestionScoringRule rule = ruleList.get(0); if (rule.getType() == null || rule.getType().byteValue() == Constant.Ht.Rule.SMALL) { + int currentNum = getCurrentNum(scores); JSONArray ruleDetails = JSON.parseArray(rule.getDetail()); AtomicInteger patientScore = new AtomicInteger(); for (int i = 0; i < ruleDetails.size() - 1; i++) { JSONObject small = (JSONObject)ruleDetails.get(i); JSONObject next = (JSONObject)ruleDetails.get(i+1); - if (i == 0 && scores.size() <= small.getIntValue(Constant.Ht.Rule.SMALL_NUM)) { + if (i == 0 && currentNum <= small.getIntValue(Constant.Ht.Rule.SMALL_NUM)) { patientScore.set(small.getIntValue(Constant.Ht.Rule.SMALL_SCORE)); break; } - if (scores.size() > small.getIntValue(Constant.Ht.Rule.SMALL_NUM) && scores.size() <= next.getIntValue(Constant.Ht.Rule.SMALL_NUM)) { + if (currentNum > small.getIntValue(Constant.Ht.Rule.SMALL_NUM) && currentNum <= next.getIntValue(Constant.Ht.Rule.SMALL_NUM)) { patientScore.set(next.getIntValue(Constant.Ht.Rule.SMALL_SCORE)); } } @@ -244,6 +246,19 @@ public class QuestionService implements IQuestionService { return CodeEnum.SUCCESS; } + /** + * 查询试题正确个数 + * @param scores + * @return + */ + private int getCurrentNum(List scores) { + if (CollectionUtil.isEmpty(scores)) { + return 0; + } + // 分数>0, 算1道题 + return scores.stream().mapToInt(score -> score.getScore() > 0 ? 1 : 0).sum(); + } + private void optionUniq(QuestionDto.Score score) { List ids = new ArrayList<>(); Iterator iterator = score.getOptions().iterator();