From 6cb6d9ed6df1c50557f6b4b9f2c888261244df05 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 25 五月 2026 15:33:23 +0800
Subject: [PATCH] 【丽水】getSfStatisticsCount 优化
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 28 +++++++++++++++-------------
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 1 +
2 files changed, 16 insertions(+), 13 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 0006752..2bc4f4a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -3568,7 +3568,7 @@
return serviceSubtaskStatistic;
}
- private ServiceSubtaskStatistic getStatisticCategory(List<ServiceSubtask> serviceSubtaskList, ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ private ServiceSubtaskStatistic getStatisticCategory(List<ServiceSubtask> serviceSubtaskList, ServiceSubtaskCountReq serviceSubtaskCountReq, List<ServiceSubtaskCount> subCounts) {
ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
//鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮
DecimalFormat percentFormat = new DecimalFormat("##.##%");
@@ -3586,17 +3586,9 @@
serviceSubtaskStatistic.setJoyAllCount(0);
//鑾峰彇闅忚缁熻
- List<Long> subTaskIds = new ArrayList<>();
- if (ObjectUtils.isNotEmpty(serviceSubtaskList)) {
- subTaskIds = serviceSubtaskList.stream().map(ServiceSubtask::getId) // 鎻愬彇瀛楁
- .filter(Objects::nonNull) // 杩囨护 null 鍊�
- .filter(id -> ObjectUtils.isNotEmpty(id)) // 杩囨护绌哄瓧绗︿覆锛堝彲閫夛級
- .distinct() // 鍘婚噸
- .collect(Collectors.toList()); // 鏀堕泦鍒� List
- serviceSubtaskCountReq.setSubTaskIds(subTaskIds);
+ if (subCounts == null) {
+ subCounts = new ArrayList<>();
}
- List<ServiceSubtaskCount> subCounts = new ArrayList<>();
- subCounts = serviceSubtaskMapper.getSfStatisticsCategory(serviceSubtaskCountReq);
//鏃犻渶闅忚璇︽儏
List<ServiceSubtask> nonFollowUpInfo = new ArrayList<>();
@@ -3960,7 +3952,7 @@
* @return
*/
@Override
-// @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+ @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
public List<ServiceSubtaskStatistic> getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq) {
log.info("getSfStatisticsScript鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
@@ -4001,12 +3993,22 @@
}
//鑾峰彇鍙婃椂鐜囩粺璁″悎闆�
Map<String, Map<String, Object>> jsRates = getSsRateForSfStatistics(serviceSubtaskCountReq, collect);
+ //涓�娆℃�ф煡璇㈡墍鏈夊垎缁勭殑棰樼洰缁熻锛岄伩鍏嶆瘡涓垎缁勪竴娆QL锛圢+1锛�
+ List<Long> allSubTaskIds = rawData.stream().map(ServiceSubtask::getId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ List<ServiceSubtaskCount> subCounts = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(allSubTaskIds)) {
+ serviceSubtaskCountReq.setSubTaskIds(allSubTaskIds);
+ subCounts = serviceSubtaskMapper.getSfStatisticsCategory(serviceSubtaskCountReq);
+ }
for (String collectKey : collect.keySet()) {
List<ServiceSubtask> serviceSubtaskList = collect.get(collectKey);
if (CollectionUtils.isEmpty(serviceSubtaskList)) {
continue;
}
- ServiceSubtaskStatistic statistic = getStatisticCategory(serviceSubtaskList, serviceSubtaskCountReq);
+ ServiceSubtaskStatistic statistic = getStatisticCategory(serviceSubtaskList, serviceSubtaskCountReq, subCounts);
if (ObjectUtils.isNotEmpty(jsRates)) {
Map<String, Object> jsRateMap = jsRates.get(collectKey);
BigDecimal jsRate = new BigDecimal("0");
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index c2d76e0..4eb5221 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -1182,6 +1182,7 @@
<if test="sendname != null">sendname = #{sendname},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="sex != null">sex = #{sex},</if>
+ <if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="sendstate != null ">sendstate = #{sendstate},</if>
<if test="age != null">age = #{age},</if>
<if test="sfzh != null">sfzh = #{sfzh},</if>
--
Gitblit v1.9.3