From fe47ff909096722ba8e9172c3e1f0f7910b16909 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期二, 21 十月 2025 14:49:18 +0800
Subject: [PATCH] 结束出院日期格式
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 50 insertions(+), 4 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
index 292ff61..599d1ef 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -4,10 +4,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.ServiceSubtask;
+import com.smartor.domain.*;
import com.smartor.domain.ServiceSubtaskDetail;
-import com.smartor.domain.ServiceSubtaskDetail;
-import com.smartor.domain.ServiceTask;
import com.smartor.mapper.ServiceSubtaskDetailMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.service.IServiceSubtaskDetailService;
@@ -17,6 +15,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -109,7 +109,8 @@
}
}
}
- Collections.sort(serviceSubtaskDetailSET, Comparator.comparingLong(ServiceSubtaskDetail::getTemplatequestionnum));
+ Collections.sort(serviceSubtaskDetailSET,
+ Comparator.comparing(ServiceSubtaskDetail::getTemplatequestionnum, Comparator.nullsLast(Long::compareTo)));
map1.put("filteredDetails", serviceSubtaskDetailSET);
map1.put("voice", "");
@@ -234,4 +235,49 @@
return serviceTaskMap;
}
+
+ /*
+ * @param targetid
+ * @return 鎸囨爣缁熻
+ */
+ @Override
+ public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid) {
+ List<ServiceSubtaskDetailTarget> serviceSubtaskDetailTargets = ServiceSubtaskDetailMapper.countPatByTarget(targetid);
+ if (CollectionUtils.isNotEmpty(serviceSubtaskDetailTargets)) {
+ Long totalCount = serviceSubtaskDetailTargets.stream().filter(target -> target.getMatchedtext() == null || target.getMatchedtext().isEmpty()).mapToLong(target -> target.getCount() != null ? target.getCount() : 0) // 纭繚 count 涓� 0 濡傛灉涓� null
+ .sum();
+
+ Long allShowCount = 0L;
+
+ // 閬嶅巻鍒楄〃锛屽皢 matchedText 涓�""璧嬪�肩粰 null
+ for (ServiceSubtaskDetailTarget target : serviceSubtaskDetailTargets) {
+ if (target.getMatchedtext() == null) {
+ target.setCount(target.getCount() != null ? target.getCount() + totalCount : totalCount); // 缁� matchedText 涓� null 鐨勫璞¤祴鍊�
+ }
+ //鍏佽null鐩稿姞锛屼笉鍏佽""鐩稿姞
+ if (target.getMatchedtext() == null || !target.getMatchedtext().isEmpty()) {
+ allShowCount = allShowCount + target.getCount();
+ }
+ }
+
+ // 浣跨敤杩唬鍣ㄥ垹闄� matchedText 涓� "" 鐨勫璞�
+ Iterator<ServiceSubtaskDetailTarget> iterator = serviceSubtaskDetailTargets.iterator();
+ while (iterator.hasNext()) {
+ ServiceSubtaskDetailTarget target = iterator.next();
+ if (target.getMatchedtext() != null && target.getMatchedtext().isEmpty()) {
+ iterator.remove(); // 鍒犻櫎 matchedText 涓� "" 鐨勫璞�
+ }
+ }
+ for (ServiceSubtaskDetailTarget target : serviceSubtaskDetailTargets) {
+ target.setTargetShowCount(allShowCount.toString());
+ BigDecimal count = new BigDecimal(target.getCount() != null ? target.getCount().toString() : "0");
+ BigDecimal allCount = new BigDecimal(allShowCount.toString());
+ if (allCount.compareTo(BigDecimal.ZERO) == 0)
+ target.setPercentage(count.divide(allCount, 2, RoundingMode.HALF_UP).toString());
+ }
+ }
+
+ return serviceSubtaskDetailTargets;
+ }
+
}
--
Gitblit v1.9.3