From ecda68f9ffbd4e0f01d3939550906f670b1e0482 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 21 六月 2024 15:56:28 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java | 199 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 184 insertions(+), 15 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java index 7ec8061..a18eb0d 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java @@ -1,12 +1,25 @@ package com.smartor.service.impl; +import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DateUtils; -import com.smartor.domain.SvyTaskTemplate; +import com.ruoyi.common.utils.DtoConversionUtils; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.*; import com.smartor.mapper.SvyTaskTemplateMapper; +import com.smartor.mapper.SvyTaskTemplateScriptMapper; +import com.smartor.mapper.SvyTaskTemplateTargetoptionMapper; import com.smartor.service.ISvyTaskTemplateService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; import java.util.List; /** @@ -15,11 +28,17 @@ * @author ruoyi * @date 2024-06-12 */ +@Slf4j @Service -public class SvyTaskTemplateServiceImpl implements ISvyTaskTemplateService -{ +public class SvyTaskTemplateServiceImpl implements ISvyTaskTemplateService { @Autowired private SvyTaskTemplateMapper svyTaskTemplateMapper; + + @Autowired + private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper; + + @Autowired + private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; /** * 鏌ヨ浠诲姟闂嵎妯℃澘 @@ -28,8 +47,7 @@ * @return 浠诲姟闂嵎妯℃澘 */ @Override - public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid) - { + public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid) { return svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(svyid); } @@ -40,8 +58,7 @@ * @return 浠诲姟闂嵎妯℃澘 */ @Override - public List<SvyTaskTemplate> selectSvyTaskTemplateList(SvyTaskTemplate svyTaskTemplate) - { + public List<SvyTaskTemplate> selectSvyTaskTemplateList(SvyTaskTemplate svyTaskTemplate) { return svyTaskTemplateMapper.selectSvyTaskTemplateList(svyTaskTemplate); } @@ -52,8 +69,7 @@ * @return 缁撴灉 */ @Override - public int insertSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate) - { + public int insertSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate) { svyTaskTemplate.setCreateTime(DateUtils.getNowDate()); return svyTaskTemplateMapper.insertSvyTaskTemplate(svyTaskTemplate); } @@ -65,8 +81,7 @@ * @return 缁撴灉 */ @Override - public int updateSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate) - { + public int updateSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate) { svyTaskTemplate.setUpdateTime(DateUtils.getNowDate()); return svyTaskTemplateMapper.updateSvyTaskTemplate(svyTaskTemplate); } @@ -78,8 +93,7 @@ * @return 缁撴灉 */ @Override - public int deleteSvyTaskTemplateBySvyids(Long[] svyids) - { + public int deleteSvyTaskTemplateBySvyids(Long[] svyids) { return svyTaskTemplateMapper.deleteSvyTaskTemplateBySvyids(svyids); } @@ -90,8 +104,163 @@ * @return 缁撴灉 */ @Override - public int deleteSvyTaskTemplateBySvyid(Long svyid) - { + public int deleteSvyTaskTemplateBySvyid(Long svyid) { return svyTaskTemplateMapper.deleteSvyTaskTemplateBySvyid(svyid); } + + /** + * 鏂板鎴栦慨鏀归棶棰樿鎯� + * + * @param svyTaskTemplateVO + * @return + */ + @Override + public Integer saveOrUpdateTemplate(SvyTaskTemplateVO svyTaskTemplateVO) { + Integer i = null; + SvyTaskTemplate svyTaskTemplate = DtoConversionUtils.sourceToTarget(svyTaskTemplateVO, SvyTaskTemplate.class); + if (svyTaskTemplateVO.getIsoperation() != null && svyTaskTemplateVO.getIsoperation() == 1) { + //鏂板 + svyTaskTemplate.setCreateTime(new Date()); + svyTaskTemplateMapper.insertSvyTaskTemplate(svyTaskTemplate); + i = svyTaskTemplate.getId().intValue(); + } else if (svyTaskTemplateVO.getIsoperation() != null && svyTaskTemplateVO.getIsoperation() == 2) { + //淇敼 + svyTaskTemplate.setUpdateTime(new Date()); + svyTaskTemplateMapper.updateSvyTaskTemplate(svyTaskTemplate); + i = svyTaskTemplate.getId().intValue(); + } + log.info("鏂板鎴栦慨鏀归棶鍗蜂换鍔℃ā鏉胯鎯呯殑id涓猴細{}", svyTaskTemplate.getId()); + + //瀵规ā鏉胯瘽鏈拰閫夐」杩涜澶勭悊锛堣瘽鏈〃涓庢寚鏍囪〃杩涜鍚堝苟浜嗭紝锛� + if (CollectionUtils.isNotEmpty(svyTaskTemplateVO.getSvyTaskTemplateScriptVOS())) { + log.error("ivrTaskTemplateVO.getIvrTaskTemplateScriptVOList()鏄惁鏈夋暟鎹搱锛歿}", svyTaskTemplateVO.getSvyTaskTemplateScriptVOS()); + for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateVO.getSvyTaskTemplateScriptVOS()) { + if (svyTaskTemplateScriptVO.getIsoperation() != null && svyTaskTemplateScriptVO.getIsoperation() == 1 || svyTaskTemplateScriptVO.getIsoperation() == null && svyTaskTemplateScriptVO.getIsoperation() == 1) { + //鏂板 + SvyTaskTemplateScript svyTaskTemplateScript = DtoConversionUtils.sourceToTarget(svyTaskTemplateScriptVO, SvyTaskTemplateScript.class); + svyTaskTemplateScript.setTemplateID(svyTaskTemplate.getId()); + svyTaskTemplateScript.setCreateTime(new Date()); + svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(svyTaskTemplateScript); + svyTaskTemplateScript.setIsoperation(1); + //瀵归�夐」鐩繘琛屽鐞� + dealOption(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions(), svyTaskTemplateScript, svyTaskTemplate.getId()); + + } else if (svyTaskTemplateScriptVO.getIsoperation() != null && svyTaskTemplateScriptVO.getIsoperation() == 2) { + //淇敼 + SvyTaskTemplateScript svyTaskTemplateScript = DtoConversionUtils.sourceToTarget(svyTaskTemplateScriptVO, SvyTaskTemplateScript.class); + svyTaskTemplateScript.setTemplateID(svyTaskTemplate.getId()); + svyTaskTemplateScript.setUpdateTime(new Date()); + svyTaskTemplateScriptMapper.updateSvyTaskTemplateScript(svyTaskTemplateScript); + svyTaskTemplateScript.setIsoperation(2); + //瀵归�夐」鐩繘琛屽鐞� + dealOption(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions(), svyTaskTemplateScript, svyTaskTemplate.getId()); + + } else if (svyTaskTemplateScriptVO.getIsoperation() != null && svyTaskTemplateScriptVO.getIsoperation() == 3) { + //鍒犻櫎 + if (svyTaskTemplateScriptVO.getID() == null) { + log.info("鍒犻櫎澶辫触,妯℃澘璇濇湳id涓虹┖"); + } else { + svyTaskTemplateScriptVO.setUpdateTime(new Date()); + svyTaskTemplateScriptMapper.deleteSvyTaskTemplateScriptByID(svyTaskTemplateScriptVO.getID()); + } + } + } + } + + return i; + } + + + /** + * 鏌ヨ妯℃澘璇︽儏鏍规嵁鏉′欢 + */ + @Override + public SvyTaskTemplateVO selectInfoByCondition(SvyTaskTemplateVO svyTaskTemplateVO) { + log.info("selectInfoByCondition鏌ヨ妯℃澘璇︽儏鏍规嵁鏉′欢鐨勫叆鍙備负 : {}", svyTaskTemplateVO); + //鍏堟牴鎹潯浠舵煡璇㈤棶棰樿〃淇℃伅 + SvyTaskTemplate svyTaskTemplate = DtoConversionUtils.sourceToTarget(svyTaskTemplateVO, SvyTaskTemplate.class); + List<SvyTaskTemplate> svyTaskTemplates = selectSvyTaskTemplateList(svyTaskTemplate); + if (CollectionUtils.isEmpty(svyTaskTemplates)) { + log.info("妯℃澘淇℃伅鎻愪緵鐨勬潯浠�,鏌ヨ妯℃澘璇︽儏鏁版嵁涓虹┖锛歿}", svyTaskTemplates); + throw new BaseException("妯℃澘淇℃伅鎻愪緵鐨勬潯浠�,鏌ヨ妯℃澘璇︽儏鏁版嵁涓虹┖"); + } + + log.info("svyLibaTemplates鐨勬煡璇㈢粨鏋滀负:{},鏁伴噺涓� : {}", svyTaskTemplates.get(0), svyTaskTemplates.size()); + //瀹氫箟IvrLibaTemplateVO 鐢ㄤ簬杩斿弬 + SvyTaskTemplateVO templateVO = DtoConversionUtils.sourceToTarget(svyTaskTemplates.get(0), SvyTaskTemplateVO.class); + + //鏌ヨ璇濇湳 + SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); + svyTaskTemplateScript.setTemplateID(svyTaskTemplates.get(0).getId()); + List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); + List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); + + //閫氳繃璇濇湳ID鑾峰彇閫夐」 + for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) { + log.info("svyLibaTemplateScriptVO鐨勪富閿甶d涓猴細{}", svyTaskTemplateScriptVO.getID()); + SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption(); + svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getID()); + List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption); + for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption1 : svyTaskTemplateTargetoptions) { + ObjectMapper mapper = new ObjectMapper(); + if (!StringUtils.isEmpty(svyTaskTemplateTargetoption1.getDynamiccruxs())) { + try { + svyTaskTemplateTargetoption1.setDynamiccruxs(mapper.readValue(svyTaskTemplateTargetoption1.getDynamiccruxsJson(), List.class)); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + if (!StringUtils.isEmpty(svyTaskTemplateTargetoption1.getNodynamiccruxs())) { + try { + svyTaskTemplateTargetoption1.setNodynamiccruxs(mapper.readValue(svyTaskTemplateTargetoption1.getNodynamiccruxsJson(), List.class)); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + } + svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); + } + Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparing(SvyTaskTemplateScriptVO::getTargetid)); + //鏁版嵁缁勮 + templateVO.setSvyTaskTemplateScriptVOS(svyTaskTemplateScriptVOS); + return templateVO; + } + + + private void dealOption(List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions, SvyTaskTemplateScript svyTaskTemplateScript, Long tmpID) { + log.info("svyTaskTemplateScript鐨勫�间负锛歿}", svyTaskTemplateScript); + //瀵规ā鏉挎寚鏍囬�夐」杩涜澶勭悊 + if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoptions)) { + for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption : svyTaskTemplateTargetoptions) { + if (svyTaskTemplateTargetoption.getIsoperation() != null && svyTaskTemplateTargetoption.getIsoperation() == 1 || svyTaskTemplateTargetoption.getIsoperation() == null && svyTaskTemplateTargetoption.getIsoperation() == 1) { + //鏂板 + svyTaskTemplateTargetoption.setTemplateID(tmpID); + svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScript.getID()); + if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoption.getDynamiccruxs())) + svyTaskTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(svyTaskTemplateTargetoption.getDynamiccruxs())); + if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoption.getNodynamiccruxs())) + svyTaskTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(svyTaskTemplateTargetoption.getNodynamiccruxs())); + svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoption); + } else if (svyTaskTemplateTargetoption.getIsoperation() != null && svyTaskTemplateTargetoption.getIsoperation() == 2) { + //淇敼 + svyTaskTemplateTargetoption.setTemplateID(tmpID); + svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScript.getID()); + if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoption.getDynamiccruxs())) + svyTaskTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(svyTaskTemplateTargetoption.getDynamiccruxs())); + if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoption.getNodynamiccruxs())) + svyTaskTemplateTargetoption.setNodynamiccruxsJson(JSON.toJSONString(svyTaskTemplateTargetoption.getNodynamiccruxs())); + svyTaskTemplateTargetoptionMapper.updateSvyTaskTemplateTargetoption(svyTaskTemplateTargetoption); + } else if (svyTaskTemplateTargetoption.getIsoperation() != null && svyTaskTemplateTargetoption.getIsoperation() == 3) { + //鍒犻櫎 + if (svyTaskTemplateTargetoption.getId() == null) { + log.info("鍒犻櫎澶辫触,妯℃澘鎸囨爣閫夐」id涓虹┖"); + } else { + svyTaskTemplateTargetoptionMapper.deleteSvyTaskTemplateTargetoptionById(svyTaskTemplateTargetoption.getId()); + } + } + } + } + } } -- Gitblit v1.9.3