陈昶聿
4 天以前 b44db60114b159cd438a0fe0259b9ddc94a16ba3
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -3051,23 +3051,31 @@
        for(ServiceSubtaskScriptCount count : allCounts){
            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)){
            //问卷加上空白选项
            if(ObjectUtils.isNotEmpty(count.getTemplateid())
                    && ObjectUtils.isNotEmpty(count.getSubtaskType())
                    && count.getSubtaskType().equals("2")){
                SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = new SvyTaskTemplateScriptVO();
                svyTaskTemplateScriptVO.setId(count.getScriptid());
                SvyTaskTemplateScriptVO svyTaskTemplateScriptResultVo = svyTaskTemplateScriptService.selectInfoByCondition(svyTaskTemplateScriptVO);
                if(ObjectUtils.isNotEmpty(svyTaskTemplateScriptResultVo)){
                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptResultVo.getSvyTaskTemplateTargetoptions();
                    if(ObjectUtils.isNotEmpty(svyTaskTemplateTargetoptions)){
                        //填入空白信息
                        templateScriptVOS.forEach(templateScriptVO ->{
                        svyTaskTemplateTargetoptions.forEach(targetoption ->{
                            ServiceSubtaskScriptCount emptyCount = new ServiceSubtaskScriptCount();
                            emptyCount.setScriptid(count.getScriptid());
                            emptyCount.setScriptContent(count.getScriptContent());
                            emptyCount.setScriptType(count.getScriptType());
                            emptyCount.setSubtaskType(count.getSubtaskType());
                            emptyCount.setCompletedQuantity(count.getCompletedQuantity());
                            emptyCount.setAllQuantity(count.getAllQuantity());
                            emptyCount.setCompletedPercentage(count.getCompletedPercentage());
                            emptyCount.setTemplateid(count.getTemplateid());
                            emptyCount.setChosenQuantity(0);
                            emptyCount.setChosenPercentage("0.0");
                            itemCountMap.put(templateScriptVO.getScriptResult(),emptyCount);
                            emptyCount.setOptionText(targetoption.getOptioncontent());
                            itemCountMap.put(targetoption.getOptioncontent(),emptyCount);
                        });
                    }
                }
@@ -3078,8 +3086,11 @@
                        //放入统计信息
                        itemCount.setScriptContent(count.getScriptContent());
                        itemCount.setScriptType(count.getScriptType());
                        itemCount.setSubtaskType(count.getSubtaskType());
                        itemCount.setCompletedQuantity(count.getCompletedQuantity());
                        itemCount.setAllQuantity(count.getAllQuantity());
                        itemCount.setCompletedPercentage(count.getCompletedPercentage());
                        itemCount.setTemplateid(count.getTemplateid());
                        //计算选择比例
                        int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
                        int completedQuantity = itemCount.getCompletedQuantity();
@@ -3087,7 +3098,7 @@
                            BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
                            itemCount.setChosenPercentage(chosenPercentage.toString());
                        }
                        itemCountMap.put(count.getOptionText(), itemCount);
                        itemCountMap.put(itemCount.getOptionText(), itemCount);
                    }
                }
            });