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

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 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..34be16f 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);
@@ -3049,12 +3051,31 @@
 
 
         for(ServiceSubtaskScriptCount count : allCounts){
+            Map<String, ServiceSubtaskScriptCount> itemCountMap = new HashMap<>();
+            if(ObjectUtils.isNotEmpty(count.getOptions())){
+                String[] optionsArray = count.getOptions().split(",");
+                List<String> optionsList = Arrays.stream(optionsArray).map(String::valueOf).collect(Collectors.toList());
+                if(ObjectUtils.isNotEmpty(optionsList)){
+                    //濉叆绌虹櫧淇℃伅
+                    optionsList.forEach(option ->{
+                        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(option,emptyCount);
+                    });
+                }
+            }
             List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>();
             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 +3085,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);
                     }
                 }
             });
+            itemCounts = new ArrayList<>(itemCountMap.values());
             count.setDetails(itemCounts);
             result.put(count.getScriptid().toString(),count);
         }

--
Gitblit v1.9.3