陈昶聿
6 天以前 b3ba85a04a61d342f21b457bc2caad3e844bbf68
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -520,7 +520,15 @@
            }
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
                tempid = Long.valueOf(ivrTaskTemplateService.saveOrUpdateTempScript(serviceTaskVO.getIvrTaskTemplateVO()));
                tempName = ivrTaskTemplateService.selectIvrTaskTemplateByID(tempid).getTemplateName();
                log.info("IVR模板插入成功,返回的tempid={}", tempid);
                IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(tempid);
                if (ivrTaskTemplate == null) {
                    log.error("根据tempid={}查询IVR模板失败,返回null!请检查del_flag字段是否正确设置", tempid);
                    throw new BaseException("IVR模板保存成功但查询失败,请联系管理员检查数据");
                }
                tempName = ivrTaskTemplate.getTemplateName();
                log.info("IVR模板查询成功,tempName={}", tempName);
            }
            //往任务表中,新增任务
@@ -2920,6 +2928,58 @@
        return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq);
    }
    @Override
    public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();
        List<ServiceSubtaskScriptCount> allCounts = new ArrayList<>();
        List<ServiceSubtaskScriptCount> allItemCounts = new ArrayList<>();
        if(ObjectUtils.isEmpty(serviceSubtaskCountReq.getType())){
            //查询语音统计明细
            serviceSubtaskCountReq.setType("1");
            List<ServiceSubtaskScriptCount> ivyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            List<ServiceSubtaskScriptCount> ivyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
            //查询短信统计明细
            serviceSubtaskCountReq.setType("2");
            List<ServiceSubtaskScriptCount> svyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            List<ServiceSubtaskScriptCount> svyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
            allCounts.addAll(ivyCounts);
            allCounts.addAll(svyCounts);
            allItemCounts.addAll(ivyItemCounts);
            allItemCounts.addAll(svyItemCounts);
        }else {
            allCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            allItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
        }
        for(ServiceSubtaskScriptCount count : allCounts){
            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.setCompletedQuantity(count.getCompletedQuantity());
                        itemCount.setAllQuantity(count.getAllQuantity());
                        //计算选择比例
                        int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
                        int completedQuantity = itemCount.getCompletedQuantity();
                        if(ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0){
                            BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
                            itemCount.setChosenPercentage(chosenPercentage.toString());
                        }
                        itemCounts.add(itemCount);
                    }
                }
            });
            count.setDetails(itemCounts);
            result.put(count.getScriptid().toString(),count);
        }
        return result;
    }
    /**
     * @param serviceSubtask
@@ -2976,7 +3036,7 @@
        List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
        if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
            //没有随访时间则按当天来算--临时
            if (visitTime == null) {
            if (ObjectUtils.isEmpty(visitTime)) {
                visitTime = new Date();
            }