陈昶聿
6 天以前 4383c73ce1c6f7886fbc19e0e8dfa71da8ff9283
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);
        }