From 4383c73ce1c6f7886fbc19e0e8dfa71da8ff9283 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 06 一月 2026 11:41:48 +0800
Subject: [PATCH] 【市一】随访满意度明细调整

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 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 8982e03..cf53baf 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -17,6 +17,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.ListUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -3027,7 +3028,8 @@
         Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();
         List<ServiceSubtaskScriptCount> allCounts = new ArrayList<>();
         List<ServiceSubtaskScriptCount> allItemCounts = new ArrayList<>();
-        if(ObjectUtils.isEmpty(serviceSubtaskCountReq.getType())){
+        String type = serviceSubtaskCountReq.getType();
+        if(ObjectUtils.isEmpty(type)){
             //鏌ヨ璇煶缁熻鏄庣粏
             serviceSubtaskCountReq.setType("1");
             List<ServiceSubtaskScriptCount> ivyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
@@ -3047,14 +3049,35 @@
             allItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
         }
 
-
         for(ServiceSubtaskScriptCount count : allCounts){
-            List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>();
+            Map<String, ServiceSubtaskScriptCount> itemCountMap = new HashMap<>();
+            if(ObjectUtils.isNotEmpty(count.getTemplateid())){
+                SvyTaskTemplateVO svyTaskTemplateVO = new SvyTaskTemplateVO();
+                svyTaskTemplateVO.setId(count.getTemplateid());
+                SvyTaskTemplateVO svyTaskTemplateResultVo = svyTaskTemplateService.selectInfoByCondition(svyTaskTemplateVO);
+                if(ObjectUtils.isNotEmpty(svyTaskTemplateResultVo)){
+                    List<SvyTaskTemplateScriptVO> templateScriptVOS = svyTaskTemplateResultVo.getSvyTaskTemplateScriptVOS();
+                    if(ObjectUtils.isNotEmpty(templateScriptVOS)){
+                        //濉叆绌虹櫧淇℃伅
+                        templateScriptVOS.forEach(templateScriptVO ->{
+                            ServiceSubtaskScriptCount emptyCount = new ServiceSubtaskScriptCount();
+                            emptyCount.setScriptContent(count.getScriptContent());
+                            emptyCount.setScriptType(count.getScriptType());
+                            emptyCount.setCompletedQuantity(count.getCompletedQuantity());
+                            emptyCount.setAllQuantity(count.getAllQuantity());
+                            emptyCount.setChosenQuantity(0);
+                            emptyCount.setChosenPercentage("0.0");
+                            itemCountMap.put(templateScriptVO.getScriptResult(),emptyCount);
+                        });
+                    }
+                }
+            }
             allItemCounts.forEach(itemCount ->{
                 if(ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())){
                     if(count.getScriptid().equals(itemCount.getScriptid())){
                         //鏀惧叆缁熻淇℃伅
                         itemCount.setScriptContent(count.getScriptContent());
+                        itemCount.setScriptType(count.getScriptType());
                         itemCount.setCompletedQuantity(count.getCompletedQuantity());
                         itemCount.setAllQuantity(count.getAllQuantity());
                         //璁$畻閫夋嫨姣斾緥
@@ -3064,10 +3087,11 @@
                             BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
                             itemCount.setChosenPercentage(chosenPercentage.toString());
                         }
-                        itemCounts.add(itemCount);
+                        itemCountMap.put(count.getOptionText(), itemCount);
                     }
                 }
             });
+            List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>(itemCountMap.values());
             count.setDetails(itemCounts);
             result.put(count.getScriptid().toString(),count);
         }

--
Gitblit v1.9.3