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