liusheng
2024-09-18 722fa40345f1fc650eaeae4a721c3ae4106d92a8
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
@@ -34,16 +34,13 @@
    private IvrLibaTemplateTagMapper ivrLibaTemplateTagMapper;
    @Autowired
    private IvrLibaTemplateTargetMapper ivrLibaTemplateTargetMapper;
    @Autowired
    private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
    @Autowired
    private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
    @Autowired
    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
    private TemplateDeptMapper tempDetpRelevanceMapper;
    /**
     * 查询模板库
@@ -131,26 +128,26 @@
            //新增
            ivrLibaTemplate.setCreateTime(new Date());
            ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate);
            i = ivrLibaTemplate.getID().intValue();
            i = ivrLibaTemplate.getId().intValue();
        } else if (ivrLibaTemplateVO.getIsoperation() != null && ivrLibaTemplateVO.getIsoperation() == 2) {
            //修改
            ivrLibaTemplate.setUpdateTime(new Date());
            ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate);
            i = ivrLibaTemplate.getID().intValue();
            i = ivrLibaTemplate.getId().intValue();
        }
        log.info("新增或修改模板详情的id为:{}", ivrLibaTemplate.getID());
        log.info("新增或修改模板详情的id为:{}" , ivrLibaTemplate.getId());
        //对模板标签进行处理
        if (CollectionUtils.isNotEmpty(ivrLibaTemplateVO.getIvrLibaTemplateTagList())) {
            for (IvrLibaTemplateTag ivrLibaTemplateTag : ivrLibaTemplateVO.getIvrLibaTemplateTagList()) {
                if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 1) {
                    //新增
                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getId());
                    ivrLibaTemplateTag.setCreateTime(new Date());
                    ivrLibaTemplateTagMapper.insertIvrLibaTemplateTag(ivrLibaTemplateTag);
                } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 2) {
                    //修改
                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getId());
                    ivrLibaTemplateTag.setUploadTime(new Date());
                    ivrLibaTemplateTagMapper.updateIvrLibaTemplateTag(ivrLibaTemplateTag);
                } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 3) {
@@ -168,51 +165,61 @@
        //对模板话术和选项进行处理(话术表与指标表进行合并了,)
        if (CollectionUtils.isNotEmpty(ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList())) {
            for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList()) {
                if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 1) {
                    //新增
                    IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
                    ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
                    ivrLibaTemplateScript.setCreateTime(new Date());
                    ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript);
                    //对选项目进行处理
                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID());
                } else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 2) {
                    //修改
                    IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
                    ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
                    ivrLibaTemplateScript.setUpdateTime(new Date());
                    ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript);
                    //对选项目进行处理
                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID());
                } else if (ivrLibaTemplateScriptVO.getIsoperation() != null && ivrLibaTemplateScriptVO.getIsoperation() == 3) {
                    //删除
                    if (ivrLibaTemplateScriptVO.getID() == null) {
                        log.info("删除失败,模板话术id为空");
                    } else {
                        ivrLibaTemplateScriptVO.setUpdateTime(new Date());
                        ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getID());
                    }
                if (ivrLibaTemplateScriptVO.getIsoperation() != null) {
                    IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateScriptVO.getIsoperation());
//                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), ivrLibaTemplateScriptVO.getIsoperation());
                } else {
                    IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateVO.getIsoperation());
//                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), ivrLibaTemplateVO.getIsoperation());
                }
            }
        }
        //对科室进行处理
        for (TempDetpRelevance tempDetpRelevance : ivrLibaTemplateVO.getTempDetpRelevances()) {
        for (TemplateDept tempDetpRelevance : ivrLibaTemplateVO.getTempDetpRelevances()) {
            if (tempDetpRelevance.getId() == null) {
                //新增
                tempDetpRelevance.setTempid(ivrLibaTemplate.getID());
                tempDetpRelevance.setTempid(ivrLibaTemplate.getId());
                tempDetpRelevance.setType(2L);
                tempDetpRelevance.setCreateTime(new Date());
                tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
                tempDetpRelevanceMapper.insertTemplateDept(tempDetpRelevance);
            } else {
                tempDetpRelevance.setUpdateTime(new Date());
                tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance);
                tempDetpRelevanceMapper.updateTemplateDept(tempDetpRelevance);
            }
        }
        return i;
    }
    private IvrLibaTemplateScript scriptHandle(IvrLibaTemplate ivrLibaTemplate, IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO, Integer isoperation) {
        IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
        if (isoperation == 1) {
            //新增
            ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId());
            ivrLibaTemplateScript.setCreateTime(new Date());
            ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript);
            //对选项目进行处理
            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), isoperation);
        } else if (isoperation == 2) {
            //修改
            ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId());
            ivrLibaTemplateScript.setUpdateTime(new Date());
            ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript);
            //对选项目进行处理
            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), isoperation);
        } else if (isoperation == 3) {
            //删除
            if (ivrLibaTemplateScriptVO.getId() == null) {
                log.info("删除失败,模板话术id为空");
            } else {
                ivrLibaTemplateScriptVO.setUpdateTime(new Date());
                ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getId());
            }
        }
        return ivrLibaTemplateScript;
    }
    /**
@@ -222,30 +229,36 @@
     * @param ivrLibaTemplateScript
     * @param tmpID
     */
    private void dealOption(List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptionList, IvrLibaTemplateScript ivrLibaTemplateScript, Long tmpID) {
        log.info("ivrLibaTemplateScript的值为:{}", ivrLibaTemplateScript);
    private void dealOption(List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptionList, IvrLibaTemplateScript ivrLibaTemplateScript, Long tmpID, Integer isoperation) {
        log.info("ivrLibaTemplateScript的值为:{}" , ivrLibaTemplateScript);
        //对模板指标选项进行处理
        Integer lsIsoperation = isoperation;
        if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoptionList)) {
            for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption : ivrLibaTemplateTargetoptionList) {
                if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 1) {
                if (ivrLibaTemplateTargetoption.getIsoperation() != null) {
                    isoperation = ivrLibaTemplateTargetoption.getIsoperation();
                } else {
                    isoperation = lsIsoperation;
                }
                if (isoperation == 1) {
                    //新增
                    ivrLibaTemplateTargetoption.setTemplateID(tmpID);
                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId());
                    if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs()))
                        ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs()));
                    if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs()))
                        ivrLibaTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getNodynamiccruxs()));
                    ivrLibaTemplateTargetOptionMapper.insertIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption);
                } else if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 2) {
                } else if (isoperation == 2) {
                    //修改
                    ivrLibaTemplateTargetoption.setTemplateID(tmpID);
                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId());
                    if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs()))
                        ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs()));
                    if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs()))
                        ivrLibaTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getNodynamiccruxs()));
                    ivrLibaTemplateTargetOptionMapper.updateIvrLibaTemplateTargetoption(ivrLibaTemplateTargetoption);
                } else if (ivrLibaTemplateTargetoption.getIsoperation() != null && ivrLibaTemplateTargetoption.getIsoperation() == 3) {
                } else if (isoperation == 3) {
                    //删除
                    if (ivrLibaTemplateTargetoption.getId() == null) {
                        log.info("删除失败,模板指标选项id为空");
@@ -262,35 +275,33 @@
     */
    @Override
    public IvrLibaTemplateVO selectInfoByCondition(IvrLibaTemplateVO ivrLibaTemplateVO) {
        log.info("查询模板详情根据条件的入参为 : {}", ivrLibaTemplateVO);
        log.info("查询模板详情根据条件的入参为 : {}" , ivrLibaTemplateVO);
        //先根据条件查询问题表信息
        IvrLibaTemplate ivrLibaTemplate = DtoConversionUtils.sourceToTarget(ivrLibaTemplateVO, IvrLibaTemplate.class);
        List<IvrLibaTemplate> ivrLibaTemplates = selectIvrLibaTemplateList(ivrLibaTemplate);
        if (CollectionUtils.isEmpty(ivrLibaTemplates)) {
            log.info("提供的条件,查询模板详情数据为空:{}", ivrLibaTemplates);
            log.info("提供的条件,查询模板详情数据为空:{}" , ivrLibaTemplates);
            throw new BaseException("提供的条件,查询模板详情数据为空");
        }
        log.info("ivrLibaTemplates的查询结果为:{},数量为 : {}", ivrLibaTemplates.get(0), ivrLibaTemplates.size());
        //定义IvrLibaTemplateVO 用于返参
        IvrLibaTemplateVO templateVO = DtoConversionUtils.sourceToTarget(ivrLibaTemplates.get(0), IvrLibaTemplateVO.class);
        //获取tag信息
        IvrLibaTemplateTag ivrLibaTemplateTag = new IvrLibaTemplateTag();
        ivrLibaTemplateTag.setTemplateid(ivrLibaTemplates.get(0).getID());
        ivrLibaTemplateTag.setTemplateid(ivrLibaTemplates.get(0).getId());
        List<IvrLibaTemplateTag> ivrLibaTemplateTags = ivrLibaTemplateTagMapper.selectIvrLibaTemplateTagList(ivrLibaTemplateTag);
        //查询话术
        IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
        ivrLibaTemplateScript.setTemplateID(ivrLibaTemplates.get(0).getID());
        ivrLibaTemplateScript.setTemplateid(ivrLibaTemplates.get(0).getId());
        List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
        List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class);
        //通过话术ID获取选项
        for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) {
            log.info("ivrLibaTemplateScriptVO的主键id为:{}", ivrLibaTemplateScriptVO.getID());
            log.error("ivrLibaTemplateScriptVO的主键id为:{}" , ivrLibaTemplateScriptVO.getId());
            IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption();
            ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getID());
            ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId());
            List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption);
            for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption1 : ivrLibaTemplateTargetoptions) {
                ObjectMapper mapper = new ObjectMapper();
@@ -313,7 +324,7 @@
            }
            ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
        }
        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparing(IvrLibaTemplateScriptVO::getTargetid));
        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparing(IvrLibaTemplateScriptVO::getSort));
        //数据组装
        templateVO.setIvrLibaTemplateTagList(ivrLibaTemplateTags);
        templateVO.setIvrLibaTemplateScriptVOList(ivrLibaTemplateScriptVOS);