From 569e8be78cc357147a403daa1af8dfe6dd7d5308 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 18 八月 2026 18:22:10 +0800
Subject: [PATCH] 1.处理药品宣教的问题 2.处理南华满意度的功能 3.处理随访导出的问题 4.处理南华短信的问题
---
smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java | 74 ++++++++++++++++++++++++++-----------
1 files changed, 52 insertions(+), 22 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java
index f1802b9..8fd54d1 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatSatisfactionServiceImpl.java
@@ -220,9 +220,9 @@
patSatisfactionDetailEntity.setScriptContent(ivrLibaTemplateScript.getScriptContent());
patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size());
patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0);
- patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount));
- patSatisfactionDetailEntity.setMaxScore(maxScore(ivrLibaTemplateTargetoptions));
- patSatisfactionDetailEntity.setMinScore(minScore(ivrLibaTemplateTargetoptions));
+ patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount)));
+ patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore(ivrLibaTemplateTargetoptions)));
+ patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore(ivrLibaTemplateTargetoptions)));
patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size());
patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats);
patSatisfactionDetailEntities.add(patSatisfactionDetailEntity);
@@ -292,13 +292,23 @@
patSatisfactionDetailEntity.setScriptContent(svyLibTemplateScript.getScriptContent());
patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size());
patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0);
- patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount));
+ patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount)));
- OptionalDouble maxOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max();
- patSatisfactionDetailEntity.setMaxScore(maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0);
+ Double maxScore = svyLibTemplateTargetoptions.stream()
+ .map(dto -> dto.getScore())
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .max()
+ .orElse(0.0);
+ patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore));
- OptionalDouble minOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min();
- patSatisfactionDetailEntity.setMinScore(minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0);
+ Double minScore = svyLibTemplateTargetoptions.stream()
+ .map(dto -> dto.getScore())
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .min()
+ .orElse(0.0);
+ patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore));
patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size());
patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats);
@@ -397,9 +407,9 @@
patSatisfactionDetailEntity.setScriptContent(ivrLibaTemplateScript.getScriptContent());
patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size());
patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0);
- patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount));
- patSatisfactionDetailEntity.setMaxScore(maxScore(ivrLibaTemplateTargetoptions));
- patSatisfactionDetailEntity.setMinScore(minScore(ivrLibaTemplateTargetoptions));
+ patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount)));
+ patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore(ivrLibaTemplateTargetoptions)));
+ patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore(ivrLibaTemplateTargetoptions)));
patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size());
patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats);
patSatisfactionDetailEntities.add(patSatisfactionDetailEntity);
@@ -467,13 +477,23 @@
patSatisfactionDetailEntity.setScriptContent(svyLibTemplateScript.getScriptContent());
patSatisfactionDetailEntity.setAnswerPerson(CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size());
patSatisfactionDetailEntity.setNoAnswerPerson(CollectionUtils.isNotEmpty(fillCount) && CollectionUtils.isNotEmpty(subids) ? (subids.size() - fillCount.size()) : CollectionUtils.isNotEmpty(subids) ? subids.size() : 0);
- patSatisfactionDetailEntity.setAverageScore(averageScore(fillCount));
-
- OptionalDouble maxOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max();
- patSatisfactionDetailEntity.setMaxScore(maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0);
-
- OptionalDouble minOpt = svyLibTemplateTargetoptions.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min();
- patSatisfactionDetailEntity.setMinScore(minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0);
+ patSatisfactionDetailEntity.setAverageScore(String.valueOf(averageScore(fillCount)));
+
+ Double maxScore = svyLibTemplateTargetoptions.stream()
+ .map(dto -> dto.getScore())
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .max()
+ .orElse(0.0);
+ patSatisfactionDetailEntity.setMaxScore(String.valueOf(maxScore));
+
+ Double minScore = svyLibTemplateTargetoptions.stream()
+ .map(dto -> dto.getScore())
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .min()
+ .orElse(0.0);
+ patSatisfactionDetailEntity.setMinScore(String.valueOf(minScore));
patSatisfactionDetailEntity.setAnswerRate(CollectionUtils.isEmpty(subids) ? 0 : CollectionUtils.isEmpty(fillCount) ? 0 : fillCount.size() * 1.0 / subids.size());
patSatisfactionDetailEntity.setMatchedtextStats(matchedtextStats);
@@ -766,8 +786,13 @@
*/
private Double maxScore(List<IvrLibaTemplateTargetoption> options) {
if (CollectionUtils.isEmpty(options)) return 0.0;
- OptionalDouble maxOpt = options.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).max();
- return maxOpt.isPresent() ? new BigDecimal(maxOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0;
+ Double maxScore = options.stream()
+ .map(IvrLibaTemplateTargetoption::getScore)
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .max()
+ .orElse(0.0);
+ return maxScore;
}
/**
@@ -778,8 +803,13 @@
*/
private Double minScore(List<IvrLibaTemplateTargetoption> options) {
if (CollectionUtils.isEmpty(options)) return 0.0;
- OptionalDouble minOpt = options.stream().filter(dto -> dto.getScore() != null).mapToDouble(dto -> dto.getScore().doubleValue()).min();
- return minOpt.isPresent() ? new BigDecimal(minOpt.getAsDouble()).setScale(1, RoundingMode.HALF_UP).doubleValue() : 0.0;
+ Double minScore = options.stream()
+ .map(IvrLibaTemplateTargetoption::getScore)
+ .filter(scoreStr -> scoreStr != null && !scoreStr.isEmpty())
+ .mapToDouble(Double::parseDouble)
+ .min()
+ .orElse(0.0);
+ return minScore;
}
/**
--
Gitblit v1.9.3