liusheng
2024-12-02 57e82dd493a25e887894afef2f0e0223f1e546bd
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateServiceImpl.java
@@ -11,6 +11,7 @@
import com.smartor.mapper.IvrTaskTemplateMapper;
import com.smartor.mapper.IvrTaskTemplateScriptMapper;
import com.smartor.mapper.IvrTaskTemplateTargetoptionMapper;
import com.smartor.mapper.TemplateDeptMapper;
import com.smartor.service.IIvrTaskTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -40,6 +41,9 @@
    @Autowired
    private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetoptionMapper;
    @Autowired
    private TemplateDeptMapper templateDeptMapper;
    /**
     * 查询随访任务随访模板库
     *
@@ -49,6 +53,44 @@
    @Override
    public IvrTaskTemplate selectIvrTaskTemplateByID(Long ID) {
        return ivrTaskTemplateMapper.selectIvrTaskTemplateByID(ID);
    }
    @Override
    public IvrTaskTemplateVO selectIvrTaskTemplateInfoByID(Long ID) {
        IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateMapper.selectIvrTaskTemplateByID(ID);
        IvrTaskTemplateVO ivrTaskTemplateVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplate, IvrTaskTemplateVO.class);
        IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript();
        ivrTaskTemplateScript.setTemplateID(ivrTaskTemplate.getId());
        List<IvrTaskTemplateScript> ivrTaskTemplateScripts = ivrTaskTemplateScriptMapper.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript);
        List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScripts, IvrTaskTemplateScriptVO.class);
        for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) {
            IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption();
            ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId());
            List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetoptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption);
            ObjectMapper mapper = new ObjectMapper();
            for (int i = 0; i < ivrTaskTemplateTargetoptions.size(); i++) {
                if (!StringUtils.isEmpty(ivrTaskTemplateTargetoptions.get(i).getNodynamiccruxsJson())) {
                    try {
                        ivrTaskTemplateTargetoptions.get(i).setNodynamiccruxs(mapper.readValue(ivrTaskTemplateTargetoptions.get(i).getNodynamiccruxsJson(), List.class));
                    } catch (JsonProcessingException e) {
                        e.printStackTrace();
                    }
                }
                if (!StringUtils.isEmpty(ivrTaskTemplateTargetoptions.get(i).getDynamiccruxsJson())) {
                    try {
                        ivrTaskTemplateTargetoptions.get(i).setDynamiccruxs(mapper.readValue(ivrTaskTemplateTargetoptions.get(i).getDynamiccruxsJson(), List.class));
                    } catch (JsonProcessingException e) {
                        e.printStackTrace();
                    }
                }
            }
            ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
        }
        ivrTaskTemplateVO.setIvrTaskTemplateScriptVOList(ivrTaskTemplateScriptVOS);
        return ivrTaskTemplateVO;
    }
    /**
@@ -78,7 +120,12 @@
    public int saveOrUpdateTempScript(IvrTaskTemplateVO ivrTaskTemplateVO) {
        Integer i = null;
        IvrTaskTemplate ivrTaskTemplate = DtoConversionUtils.sourceToTarget(ivrTaskTemplateVO, IvrTaskTemplate.class);
        if (ivrTaskTemplateVO.getIsoperation() != null && ivrTaskTemplateVO.getIsoperation() == 1) {
            //传过来的静默时间是秒,需要改成毫秒
            if (ivrTaskTemplate.getSilencetime() != null)
                ivrTaskTemplate.setSilencetime(ivrTaskTemplate.getSilencetime() * 1000);
            //新增
            ivrTaskTemplate.setCreateTime(new Date());
            insertIvrTaskTemplate(ivrTaskTemplate);
@@ -128,6 +175,16 @@
     */
    @Override
    public int deleteIvrTaskTemplateByIDs(Long[] IDs) {
        if (IDs[0] != null) {
            IvrTaskTemplate ivrTaskTemplate = selectIvrTaskTemplateByID(IDs[0]);
            if (StringUtils.isNotEmpty(ivrTaskTemplate.getLongTemp()) && ivrTaskTemplate.getLongTemp().equals("1")) {
                //如果这个模板是长期任务,则需要删除模板与部门的关联
                TemplateDept templateDept = new TemplateDept();
                templateDept.setType(21L);
                templateDept.setTempid(IDs[0]);
                templateDeptMapper.deleteTemplateDeptByTemplateId(templateDept);
            }
        }
        return ivrTaskTemplateMapper.deleteIvrTaskTemplateByIDs(IDs);
    }
@@ -174,9 +231,9 @@
        //通过话术ID获取选项
        for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) {
            log.info("ivrLibaTemplateScriptVO的主键id为:{}", ivrTaskTemplateScriptVO.getID());
            log.info("ivrLibaTemplateScriptVO的主键id为:{}", ivrTaskTemplateScriptVO.getId());
            IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption();
            ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getID());
            ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId());
            List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetoptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption);
            for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption1 : ivrTaskTemplateTargetoptions) {
                ObjectMapper mapper = new ObjectMapper();
@@ -224,11 +281,11 @@
        } else if (isoperation == 3) {
            //删除
            if (ivrTaskTemplateScriptVO.getID() == null) {
            if (ivrTaskTemplateScriptVO.getId() == null) {
                log.info("删除失败,模板话术id为空");
            } else {
                ivrTaskTemplateScriptVO.setUpdateTime(new Date());
                ivrTaskTemplateScriptMapper.deleteIvrTaskTemplateScriptByID(ivrTaskTemplateScriptVO.getID());
                ivrTaskTemplateScriptMapper.deleteIvrTaskTemplateScriptByID(ivrTaskTemplateScriptVO.getId());
            }
        }
        return ivrTaskTemplateScript;
@@ -248,7 +305,7 @@
                if (isoperation == 1) {
                    //新增
                    ivrTaskTemplateTargetoption.setTemplateID(tmpID);
                    ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScript.getID());
                    ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScript.getId());
                    if (CollectionUtils.isNotEmpty(ivrTaskTemplateTargetoption.getDynamiccruxs()))
                        ivrTaskTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrTaskTemplateTargetoption.getDynamiccruxs()));
                    if (CollectionUtils.isNotEmpty(ivrTaskTemplateTargetoption.getNodynamiccruxs()))
@@ -257,7 +314,7 @@
                } else if (isoperation == 2) {
                    //修改
                    ivrTaskTemplateTargetoption.setTemplateID(tmpID);
                    ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScript.getID());
                    ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScript.getId());
                    if (CollectionUtils.isNotEmpty(ivrTaskTemplateTargetoption.getDynamiccruxs()))
                        ivrTaskTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrTaskTemplateTargetoption.getDynamiccruxs()));
                    if (CollectionUtils.isNotEmpty(ivrTaskTemplateTargetoption.getNodynamiccruxs()))