From 34234354969cb9a8a36166b794f74f1d8619232d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 05 一月 2026 14:37:50 +0800
Subject: [PATCH] 【市一】随访满意度明细调整
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 0 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 50fdda2..8982e03 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2368,6 +2368,8 @@
return serviceSubtaskStatistics;
}
+
+
/**
* 鑾峰彇婊℃剰搴﹂鐩�婚噺
* type : 1-绉戝 2鐥呭尯
@@ -2928,6 +2930,98 @@
return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq);
}
+ /**
+ * 鑾峰彇闅忚缁熻姣斾緥
+ *
+ * @param serviceSubtaskCountReq
+ * @return
+ */
+ @Override
+ @Cacheable(value = "sfStatisticsJoy", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+ public List<ServiceSubtaskStatistic> getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ log.error("getSfStatisticsScript鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
+ List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
+
+ // 鏍规嵁鏉′欢杩涜鍒嗙粍
+ Map<String, List<ServiceSubtask>> collect = new HashMap<>();
+ String orgid = null;
+
+ if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) {
+ if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+
+ } else {
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getLeavehospitaldistrictname()).orElse("Unknown")));
+ }
+ } else if (serviceSubtaskCountReq.getDeptcodes() != null && serviceSubtaskCountReq.getDeptcodes().size() > 0) {
+ if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown")));
+ } else {
+ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown")));
+ }
+ }
+ //鑾峰彇闅忚缁熻
+ List<ServiceSubtaskCount> subCount = new ArrayList<>();
+ subCount = serviceSubtaskMapper.getSfStatisticsCategory(serviceSubtaskCountReq);
+ for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
+ if (CollectionUtils.isEmpty(serviceSubtaskList)) {
+ continue;
+ }
+ ServiceSubtaskStatistic statistic = getStatisticJoy(serviceSubtaskList, subCount);
+ //鍙婃椂鐜�
+ ServiceSubtask ss = new ServiceSubtask();
+ orgid = serviceSubtaskList.get(0).getOrgid();
+ ss.setOrgid(orgid);
+
+ // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇�
+ if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) {
+ ss.setDrcode(serviceSubtaskList.get(0).getDrcode());
+ } else {
+ if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
+ ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+ } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) {
+ ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode());
+ }
+ }
+
+ ss.setStarttime(serviceSubtaskCountReq.getStartTime());
+ ss.setEndtime(serviceSubtaskCountReq.getEndTime());
+ if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) {
+ ss.setEndtime(new Date());
+ }
+ Double jsRate = serviceSubtaskMapper.selectTimelyRate(ss);
+ statistic.setRate(jsRate);
+ if (ObjectUtils.isNotEmpty(statistic)) {
+ serviceSubtaskStatistics.add(statistic);
+ }
+ }
+ if (CollectionUtils.isNotEmpty(serviceSubtaskStatistics)) {
+ for (ServiceSubtaskStatistic serviceSubtaskStatistic : serviceSubtaskStatistics) {
+ //鑾峰彇婊℃剰搴﹂鐩�婚噺
+ BigDecimal mydtmzlsum = new BigDecimal(0);
+ //鑾峰彇婊℃剰搴﹂鐩~鎶ラ噺
+ BigDecimal mydtblsum = new BigDecimal(0);
+ //瀹屾垚姣斾緥
+ Double wcbl = null;
+ if(ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyAllCount())){
+ mydtblsum = new BigDecimal(serviceSubtaskStatistic.getJoyAllCount());
+ }
+
+ if(ObjectUtils.isNotEmpty(serviceSubtaskStatistic.getJoyCount())){
+ mydtmzlsum = new BigDecimal(serviceSubtaskStatistic.getJoyCount());
+ }
+ if(mydtmzlsum.intValue() != 0){
+ wcbl = mydtblsum.divide(mydtmzlsum, 2, RoundingMode.HALF_UP).doubleValue();
+ }
+ serviceSubtaskStatistic.setJoyAllCount(mydtmzlsum.intValue());
+ serviceSubtaskStatistic.setJoyCount(mydtblsum.intValue());
+ serviceSubtaskStatistic.setJoyTotal(wcbl);
+ }
+ }
+
+ return serviceSubtaskStatistics;
+ }
+
@Override
public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();
--
Gitblit v1.9.3