From 6d51501ca93f5bf46759f851988650477cf32e6c Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 12 六月 2024 18:02:45 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java                      |  161 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java                 |    3 
 smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java                    |  238 ++
 smartor/src/main/java/com/smartor/service/impl/AIRobotPhoneCallBackServiceImpl.java              |   25 
 ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java                           |   97 
 smartor/src/main/resources/mapper/smartor/SvyTaskMapper.xml                                      |  226 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java                |   98 
 smartor/src/main/java/com/smartor/mapper/SvyTaskMapper.java                                      |   64 
 smartor/src/main/java/com/smartor/domain/SvyLibScript.java                                       |   25 
 smartor/src/main/java/com/smartor/domain/SvyTopic.java                                           |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java        |   34 
 smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java                          |   65 
 smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java                    |   58 
 smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml                                |  176 +
 ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java                                      |   12 
 smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml                          |  246 ++
 smartor/src/main/java/com/smartor/domain/IvrTask.java                                            |    2 
 smartor/src/main/java/com/smartor/common/SendService.java                                        |    2 
 smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java                                |   30 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java                                    |  138 
 smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java                                     |    1 
 smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java                              |   18 
 smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java                       |   62 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java           |  123 +
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java                                  |    6 
 smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java                                 |   18 
 smartor/src/main/java/com/smartor/mapper/SvyTaskSingleMapper.java                                |   63 
 smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml                       |   36 
 smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java                         |   71 
 smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml                              |  128 
 smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java                |   98 
 smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java                       |   70 
 smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java                     |   97 
 smartor/src/main/java/com/smartor/service/ISvyTaskService.java                                   |   62 
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java                           |  137 
 smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java                               |    4 
 smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java                      |   64 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java               |    7 
 smartor/src/main/java/com/smartor/domain/SendTaskVO.java                                         |    2 
 smartor/src/main/java/com/smartor/service/ISvyTaskSingleService.java                             |   62 
 smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java                          |    8 
 smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml                          |   32 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java                           |    8 
 smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java                                |   64 
 smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml                           |   36 
 smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java                     |   97 
 smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java                   |   97 
 smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java                       |   64 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java          |   98 
 smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java                                    |    6 
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java                     |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TestLsController.java                 |   19 
 smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java            |  169 +
 smartor/src/main/java/com/smartor/service/impl/IvrTaskServiceImpl.java                           |   17 
 smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java              |  174 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskController.java                |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java     |   36 
 smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml                                 |  102 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java |  112 
 smartor/src/main/java/com/smartor/service/ISvyTopicService.java                                  |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java    |   98 
 smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java                           |   62 
 smartor/src/main/java/com/smartor/domain/SvyTask.java                                            |  256 ++
 smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml                                     |    2 
 smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java                           |   64 
 smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java                            |   71 
 ruoyi-admin/pom.xml                                                                              |    5 
 smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java                              |   63 
 smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java                           |   97 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java                             |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RedisConfiguration.java                      |   29 
 smartor/src/main/java/com/smartor/domain/SvyTaskScript.java                                      |  183 +
 smartor/src/main/java/com/smartor/domain/SvyTaskSingle.java                                      |  447 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java        |   98 
 smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml                               |   32 
 smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java                             |   62 
 smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java                             |    6 
 /dev/null                                                                                        |   96 
 smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java                                 |    6 
 smartor/src/main/resources/mapper/smartor/SvyTaskSingleMapper.xml                                |  432 +++
 smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java                                    |    4 
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java                   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java         |   50 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java                                     |   14 
 smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java                               |   64 
 ruoyi-admin/src/main/resources/application-druid.yml                                             |   14 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java   |   38 
 smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java                        |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java          |   98 
 smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java               |   97 
 smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java                                |  282 ++
 smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml                          |   36 
 92 files changed, 6,104 insertions(+), 750 deletions(-)

diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 95b56e5..c0a1b9c 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -130,11 +130,6 @@
             <artifactId>nls-sdk-common</artifactId>
             <version>2.1.6</version>
         </dependency>
-        <!-- rabbitmq 渚濊禆-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-amqp</artifactId>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
similarity index 66%
rename from ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java
rename to ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index 58c5b8c..337498b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RabbitMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -3,32 +3,25 @@
 import com.alibaba.fastjson2.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.rabbitmq.client.Channel;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.enums.ServiceFromEnum;
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.web.task.PhoneTask;
 import com.smartor.common.SendService;
-import com.smartor.config.PhoneUtils;
-import com.smartor.config.RabbitMqCallPhoneConfig;
 import com.smartor.config.RobotPhoneUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.IvrTaskMapper;
 import com.smartor.mapper.IvrTaskSingleMapper;
 import com.smartor.service.IIvrTaskTemplateService;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.Message;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
-import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
-import org.springframework.amqp.rabbit.connection.ConnectionFactory;
-import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
+import org.springframework.data.redis.connection.Message;
+import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
 import org.springframework.stereotype.Component;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -38,7 +31,7 @@
 
 @Slf4j
 @Component//鐩戝惉姝ら槦鍒�
-public class RabbitMqReceiver {
+public class RedisMqReceiver extends KeyExpirationEventMessageListener {
 
     @Value("${phonePath}")
     private String phonePath;
@@ -59,56 +52,51 @@
 
     private static RedisCache redisCache;
 
-    private static RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig;
-
     private static RobotPhoneUtils robotPhoneUtils;
 
 
     // 鍒涘缓鍥哄畾澶у皬鐨勭嚎绋嬫睜
     private static final ExecutorService executorService = Executors.newFixedThreadPool(10);
 
+    public RedisMqReceiver(RedisMessageListenerContainer listenerContainer) {
+        super(listenerContainer);
+    }
+
+
     @Autowired
     public void setIIvrTaskTemplateService(IIvrTaskTemplateService ivrTaskTemplateService) {
-        RabbitMqReceiver.ivrTaskTemplateService = ivrTaskTemplateService;
+        RedisMqReceiver.ivrTaskTemplateService = ivrTaskTemplateService;
     }
 
     @Autowired
     public void setRobotPhoneUtilsService(RobotPhoneUtils robotPhoneUtils) {
-        RabbitMqReceiver.robotPhoneUtils = robotPhoneUtils;
+        RedisMqReceiver.robotPhoneUtils = robotPhoneUtils;
     }
 
     @Autowired
     public void setSendService(SendService sendService) {
-        RabbitMqReceiver.sendService = sendService;
-    }
-
-    @Autowired
-    public void setRabbitMqCallPhoneConfig(RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig) {
-        RabbitMqReceiver.rabbitMqCallPhoneConfig = rabbitMqCallPhoneConfig;
+        RedisMqReceiver.sendService = sendService;
     }
 
     @Autowired
     public void setIvrTaskcallMapper(IvrTaskSingleMapper ivrTaskcallMapper) {
-        RabbitMqReceiver.ivrTaskcallMapper = ivrTaskcallMapper;
+        RedisMqReceiver.ivrTaskcallMapper = ivrTaskcallMapper;
     }
 
     @Autowired
     public void setIvrTaskMapper(IvrTaskMapper ivrTaskMapper) {
-        RabbitMqReceiver.ivrTaskMapper = ivrTaskMapper;
+        RedisMqReceiver.ivrTaskMapper = ivrTaskMapper;
     }
 
     @Autowired
     public void setRedisCache(RedisCache redisCache) {
-        RabbitMqReceiver.redisCache = redisCache;
+        RedisMqReceiver.redisCache = redisCache;
     }
 
-    /**
-     * 浠诲姟闅忚
-     * concurrency = "50"  骞跺彂鏁颁负50
-     */
-    @RabbitListener(queues = "task_queue", concurrency = "50")
-    public void phoneVisit(String content, Message message, Channel channel) throws IOException {
-        System.out.println("娑堟伅杩涙潵浜�----------------");
+    @Override
+    public void onMessage(Message message, byte[] pattern) {
+        log.info("鐩戝惉Redis key杩囨湡锛宬ey锛歿}锛宑hannel锛歿}", message.toString(), new String(pattern));
+        String content = message.toString();
         IvrTaskcallMQ ivrTaskcallMQ = null;
         try {
             ObjectMapper mapper = new ObjectMapper();
@@ -125,13 +113,13 @@
             IvrTask ivrTask1 = ivrTaskMapper.selectIvrTaskByTaskid(ivrTaskcallMQ.getTaskid());
             if (ivrTask1.getStopState() != ivrTaskcallMQ.getStopState()) {
                 //灏嗘秷鎭粠闃熷垪涓墧闄�
-                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
                 return;
             }
 
             if (StringUtils.isNotEmpty(ivrTaskcallMQ.getPreachform())) {
                 //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖
                 String[] split = ivrTaskcallMQ.getPreachform().split(",");
+                System.out.println("split鐨勫�间负锛�" + split);
                 for (String serviceFrom : split) {
                     String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
                     //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡
@@ -153,7 +141,7 @@
                                 break;
                             }
                             //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽
-                            executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, rabbitMqCallPhoneConfig, message, sendService, phonePath, robotPhoneUtils));
+                            executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils));
                         }
                     } else if (descByCode.equals("澶氬獟浣�")) {
                         //澶氬獟浣�
@@ -193,13 +181,12 @@
                         }
                     }
                     //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
-                    channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
                 }
             }
         } catch (Exception e) {
             Integer integer = redisCache.getCacheObject(ivrTaskcallMQ.getTaskid().toString());
             if (integer != null && integer == 2) {
-                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+                //灏嗘秷鎭粠闃熷垪涓垹闄�
             } else if (integer == null) {
                 redisCache.setCacheObject(ivrTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES);
             } else {
@@ -208,53 +195,45 @@
 
             log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!==============");
             log.error(e.getMessage());
-            channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
+            redisCache.setCacheObject(message.toString(), message.toString(), 60, TimeUnit.SECONDS);
         }
 
     }
 
-    /**
-     * 鏈哄櫒浜虹涓�鍙ヨ瘽璇煶
-     * concurrency = "50"  骞跺彂鏁颁负50
-     */
-    @RabbitListener(queues = "ob_queue", concurrency = "50")
-    public void obVisit(String content, Message message, Channel channel) throws IOException {
-        try {
-            IvrTaskcallPhoneMQ ivrTaskcallMQ = null;
-            ObjectMapper mapper = new ObjectMapper();
-            ivrTaskcallMQ = mapper.readValue(content, IvrTaskcallPhoneMQ.class);
-            //鍒ゆ柇鎮h�呮槸鍚﹀凡缁忔帴鐢佃瘽
-            String str = redisCache.getCacheObject(ivrTaskcallMQ.getUuid() + "state_id");
-            System.out.println("-----------------" + str);
-            if (StringUtils.isNotEmpty(str) && str.equals("0")) {
-                //鎮h�呭凡缁忔帴鍚簡鐢佃瘽
-                new PhoneUtils().ttsPlayback(ivrTaskcallMQ.getScript(), ivrTaskcallMQ.getUuid());
-            } else if (StringUtils.isNotEmpty(str) && str.equals("-10")) {
-                //杩欎釜璇存槑,宸茬粡鎵撲簡鎸囧畾閬嶆暟杩樻槸娌℃湁浜烘帴锛屽彲浠ュ皢娑堟伅浠庨槦鍒椾腑绉婚櫎浜�
-                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
-                return;
-            } else {
-                //杩涜闃熷垪灏鹃儴锛岃繘琛屼笅涓�娆℃牎楠�
-//                channel.basicRecover(false);
-                channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
-                System.out.println("++++++++++++++++++++++" + str);
-                return;
-            }
-            //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
-            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
-        } catch (Exception e) {
-            log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!==============");
-            log.error(e.getMessage());
-            channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
-        }
-    }
+//    /**
+//     * 鏈哄櫒浜虹涓�鍙ヨ瘽璇煶
+//     * concurrency = "50"  骞跺彂鏁颁负50
+//     */
+//    @RabbitListener(queues = "ob_queue", concurrency = "50")
+//    public void obVisit(String content, Message message, Channel channel) throws IOException {
+//        try {
+//            IvrTaskcallPhoneMQ ivrTaskcallMQ = null;
+//            ObjectMapper mapper = new ObjectMapper();
+//            ivrTaskcallMQ = mapper.readValue(content, IvrTaskcallPhoneMQ.class);
+//            //鍒ゆ柇鎮h�呮槸鍚﹀凡缁忔帴鐢佃瘽
+//            String str = redisCache.getCacheObject(ivrTaskcallMQ.getUuid() + "state_id");
+//            System.out.println("-----------------" + str);
+//            if (StringUtils.isNotEmpty(str) && str.equals("0")) {
+//                //鎮h�呭凡缁忔帴鍚簡鐢佃瘽
+//                new PhoneUtils().ttsPlayback(ivrTaskcallMQ.getScript(), ivrTaskcallMQ.getUuid());
+//            } else if (StringUtils.isNotEmpty(str) && str.equals("-10")) {
+//                //杩欎釜璇存槑,宸茬粡鎵撲簡鎸囧畾閬嶆暟杩樻槸娌℃湁浜烘帴锛屽彲浠ュ皢娑堟伅浠庨槦鍒椾腑绉婚櫎浜�
+//                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+//                return;
+//            } else {
+//                //杩涜闃熷垪灏鹃儴锛岃繘琛屼笅涓�娆℃牎楠�
+////                channel.basicRecover(false);
+//                channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
+//                System.out.println("++++++++++++++++++++++" + str);
+//                return;
+//            }
+//            //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
+//            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+//        } catch (Exception e) {
+//            log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!==============");
+//            log.error(e.getMessage());
+//            channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
+//        }
+//    }
 
-
-    @Bean
-    public SimpleRabbitListenerContainerFactory jsonContainerFactory(ConnectionFactory connectionFactory) {
-        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
-        factory.setConnectionFactory(connectionFactory);
-        factory.setMessageConverter(new Jackson2JsonMessageConverter());
-        return factory;
-    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
index 2506350..7250e3e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
@@ -1,7 +1,6 @@
 package com.ruoyi.web.controller.smartor;
 
 import com.alibaba.fastjson2.JSON;
-import com.github.pagehelper.util.StringUtil;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -11,7 +10,6 @@
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.smartor.config.PhoneUtils;
-import com.smartor.config.RabbitMqCallPhoneConfig;
 import com.smartor.domain.IvrLibaTemplate;
 import com.smartor.domain.IvrLibaTemplateVO;
 import com.smartor.domain.Test1Vo;
@@ -47,8 +45,6 @@
     @Autowired
     private PhoneUtils phoneUtils;
 
-    @Autowired
-    private RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig;
 
     /**
      * 鏌ヨ妯℃澘搴撳垪琛�
@@ -143,21 +139,21 @@
         return success(ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO));
     }
 
-
-    /**
-     * 寮�濮嬫墽琛�(娴嬭瘯鐢�)
-     */
-    @PostMapping("/queryRabbitmq")
-    public AjaxResult queryRabbitmq(@RequestBody Test1Vo test1Vo) {
-
-        log.info("-------------鍚姩鍜ㄨ搴旂瓟瓒呮椂鎻愰啋寤惰繜闃熷垪-------------");
-        String data = JSON.toJSONString(test1Vo.getTestVo());
-        String substring = data.substring(1, data.length() - 1);
-        rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", substring, test1Vo.getTimes());
-
-        log.info("-------------寤惰繜闃熷垪{}ms鍚庢墽琛�.-------------", test1Vo.getTimes());
-        return success();
-    }
+//
+//    /**
+//     * 寮�濮嬫墽琛�(娴嬭瘯鐢�)
+//     */
+//    @PostMapping("/queryRabbitmq")
+//    public AjaxResult queryRabbitmq(@RequestBody Test1Vo test1Vo) {
+//
+//        log.info("-------------鍚姩鍜ㄨ搴旂瓟瓒呮椂鎻愰啋寤惰繜闃熷垪-------------");
+//        String data = JSON.toJSONString(test1Vo.getTestVo());
+//        String substring = data.substring(1, data.length() - 1);
+//        rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", substring, test1Vo.getTimes());
+//
+//        log.info("-------------寤惰繜闃熷垪{}ms鍚庢墽琛�.-------------", test1Vo.getTimes());
+//        return success();
+//    }
 
     @GetMapping("/tts")
     public AjaxResult tts(@RequestParam("fileText") String fileText, @RequestParam("uuid") String uuid) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskController.java
index c82c985..550f14d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskController.java
@@ -1,9 +1,7 @@
 package com.ruoyi.web.controller.smartor;
 
 import com.github.pagehelper.ISelect;
-import com.github.pagehelper.PageInfo;
 import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java
index ff53755..b07c281 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java
@@ -6,6 +6,7 @@
 import com.google.zxing.common.BitMatrix;
 import com.google.zxing.qrcode.QRCodeWriter;
 import com.smartor.domain.Question;
+import com.smartor.domain.SvyLibTemplate;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
@@ -48,7 +49,7 @@
     public String generateStaticHtml(@PathVariable("reqid") String reqid, @PathVariable("userid") String userid) throws IOException, TemplateException {
         // 鍒涘缓Freemarker閰嶇疆
         Configuration configuration = new Configuration(Configuration.VERSION_2_3_31);
-        configuration.setClassForTemplateLoading(SvyLibTitleController.class, "/template");
+        configuration.setClassForTemplateLoading(SvyLibTemplateController.class, "/template");
         configuration.setDefaultEncoding("UTF-8");
 
         try {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java
similarity index 62%
rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicCategoryController.java
rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java
index e45d6af..5d02877 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicCategoryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java
@@ -6,9 +6,9 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.smartor.domain.SvyLibTopicCategory;
-import com.smartor.domain.SvyLibTopicCategoryVO;
-import com.smartor.service.ISvyLibTopicCategoryService;
+import com.smartor.domain.SvyLibScriptCategory;
+import com.smartor.domain.SvyLibScriptCategoryVO;
+import com.smartor.service.ISvyLibScriptCategoryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +26,10 @@
  */
 @Api(description = "闂嵎棰樺簱鍒嗙被")
 @RestController
-@RequestMapping("/smartor/svyLibTopicCategory")
-public class SvyLibTopicCategoryController extends BaseController {
+@RequestMapping("/smartor/svyLibScriptCategory")
+public class SvyLibScriptCategoryController extends BaseController {
     @Autowired
-    private ISvyLibTopicCategoryService svyLibTopicCategoryService;
+    private ISvyLibScriptCategoryService svyLibScriptCategoryService;
 
     /**
      * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
@@ -37,9 +37,9 @@
     @ApiOperation("鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃")
     @PreAuthorize("@ss.hasPermi('smartor:category:list')")
     @PostMapping("/list")
-    public TableDataInfo list(@RequestBody SvyLibTopicCategory svyLibTopicCategory) {
+    public TableDataInfo list(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
         startPage();
-        List<SvyLibTopicCategoryVO> list = svyLibTopicCategoryService.selectSvyLibTopicCategoryList(svyLibTopicCategory);
+        List<SvyLibScriptCategoryVO> list = svyLibScriptCategoryService.selectSvyLibScriptCategoryList(svyLibScriptCategory);
         return getDataTable(list);
     }
 
@@ -49,9 +49,9 @@
     @PreAuthorize("@ss.hasPermi('smartor:category:export')")
     @Log(title = "闂嵎棰樼洰鍒嗙被", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, SvyLibTopicCategory svyLibTopicCategory) {
-        List<SvyLibTopicCategoryVO> list = svyLibTopicCategoryService.selectSvyLibTopicCategoryList(svyLibTopicCategory);
-        ExcelUtil<SvyLibTopicCategoryVO> util = new ExcelUtil<SvyLibTopicCategoryVO>(SvyLibTopicCategoryVO.class);
+    public void export(HttpServletResponse response, SvyLibScriptCategory svyLibScriptCategory) {
+        List<SvyLibScriptCategoryVO> list = svyLibScriptCategoryService.selectSvyLibScriptCategoryList(svyLibScriptCategory);
+        ExcelUtil<SvyLibScriptCategoryVO> util = new ExcelUtil<SvyLibScriptCategoryVO>(SvyLibScriptCategoryVO.class);
         util.exportExcel(response, list, "闂嵎棰樼洰鍒嗙被鏁版嵁");
     }
 
@@ -62,7 +62,7 @@
     @PreAuthorize("@ss.hasPermi('smartor:category:query')")
     @GetMapping(value = "/getInfo/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return success(svyLibTopicCategoryService.selectSvyLibTopicCategoryById(id));
+        return success(svyLibScriptCategoryService.selectSvyLibScriptCategoryById(id));
     }
 
 //    /**
@@ -71,8 +71,8 @@
 //    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
 //    @Log(title = "闂嵎棰樼洰鍒嗙被", businessType = BusinessType.INSERT)
 //    @PostMapping("/add")
-//    public AjaxResult add(@RequestBody SvyLibTopicCategory svyLibTopicCategory) {
-//        return toAjax(svyLibTopicCategoryService.insertSvyLibTopicCategory(svyLibTopicCategory));
+//    public AjaxResult add(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
+//        return toAjax(svyLibScriptCategoryService.insertSvyLibScriptCategory(svyLibScriptCategory));
 //    }
 
     /**
@@ -81,8 +81,8 @@
     @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
     @Log(title = "闂嵎棰樼洰鍒嗙被", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SvyLibTopicCategory svyLibTopicCategory) {
-        return toAjax(svyLibTopicCategoryService.updateSvyLibTopicCategory(svyLibTopicCategory));
+    public AjaxResult edit(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
+        return toAjax(svyLibScriptCategoryService.updateSvyLibScriptCategory(svyLibScriptCategory));
     }
 
     /**
@@ -93,7 +93,7 @@
     @Log(title = "闂嵎棰樼洰鍒嗙被", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
-        return toAjax(svyLibTopicCategoryService.deleteSvyLibTopicCategoryByIds(ids));
+        return toAjax(svyLibScriptCategoryService.deleteSvyLibScriptCategoryByIds(ids));
     }
 
     /**
@@ -103,7 +103,7 @@
     @Log(title = "闂嵎棰樼洰鍒嗙被鏍�", businessType = BusinessType.INSERT)
     @ApiOperation("闂嵎棰樼洰鍒嗙被鏍�")
     @PostMapping("/addtree")
-    public AjaxResult addtree(@RequestBody SvyLibTopicCategoryVO svyLibTopicCategoryVO) {
-        return toAjax(svyLibTopicCategoryService.insertSvyLibTopicCategoryTree(svyLibTopicCategoryVO));
+    public AjaxResult addtree(@RequestBody SvyLibScriptCategoryVO svyLibScriptCategoryVO) {
+        return toAjax(svyLibScriptCategoryService.insertSvyLibScriptCategoryTree(svyLibScriptCategoryVO));
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java
new file mode 100644
index 0000000..b61aa07
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java
@@ -0,0 +1,123 @@
+package com.ruoyi.web.controller.smartor;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.PageUtils;
+import com.smartor.domain.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.service.ISvyLibScriptService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 闂嵎棰樼洰Controller
+ *
+ * @author ruoyi
+ * @date 2023-03-03
+ */
+@Api(description = "闂嵎棰樼洰")
+@RestController
+@RequestMapping("/smartor/svyscript")
+public class SvyLibScriptController extends BaseController {
+    @Autowired
+    private ISvyLibScriptService svyLibScriptService;
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒楄〃
+     */
+    @ApiOperation("鏌ヨ闂嵎棰樼洰鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('smartor:svyScript:list')")
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody SvyLibScript svyLibScript) {
+        PageUtils.startPageByPost(svyLibScript.getPageNum(), svyLibScript.getPageSize());
+        List<SvyLibScript> list = svyLibScriptService.selectSvyLibScriptList(svyLibScript);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭闂嵎棰樼洰鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:svyScript:export')")
+    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.EXPORT)
+    @ApiOperation("瀵煎嚭闂嵎棰樼洰鍒楄〃")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyLibScript svyLibScript) {
+        List<SvyLibScript> list = svyLibScriptService.selectSvyLibScriptList(svyLibScript);
+        ExcelUtil<SvyLibScript> util = new ExcelUtil<SvyLibScript>(SvyLibScript.class);
+        util.exportExcel(response, list, "闂嵎棰樼洰鏁版嵁");
+    }
+
+//    /**
+//     * 鑾峰彇闂嵎棰樼洰璇︾粏淇℃伅
+//     */
+//    @ApiOperation("鑾峰彇闂嵎棰樼洰璇︾粏淇℃伅")
+//    @PreAuthorize("@ss.hasPermi('smartor:svyScript:query')")
+//    @GetMapping(value = "/getInfo/{Scriptid}")
+//    public AjaxResult getInfo(@PathVariable("Scriptid") Long Scriptid) {
+//        return success(svyLibScriptService.selectSvyLibScriptByScriptid(Scriptid));
+//    }
+
+    /**
+     * 鏂板闂嵎棰樼洰
+     */
+    @ApiOperation("鏂板闂嵎棰樼洰")
+    @PreAuthorize("@ss.hasPermi('smartor:svyScript:add')")
+    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody SvyLibScript svyLibScript) {
+        return toAjax(svyLibScriptService.insertSvyLibScript(svyLibScript));
+    }
+
+    /**
+     * 鏂板鎴栦慨鏀归棶鍗疯鎯呬俊鎭�
+     */
+    @ApiOperation("鏂板鎴栦慨鏀归棶鍗疯鎯呬俊鎭�")
+    @PreAuthorize("@ss.hasPermi('system:script:list')")
+    @PostMapping("/saveOrUpdateScript")
+    public AjaxResult saveOrUpdateScript(@RequestBody SvyLibScript svyLibScript) {
+        if (ObjectUtils.isEmpty(svyLibScript)) {
+            throw new BaseException("鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
+        }
+        return success(svyLibScriptService.saveOrUpdateScript(svyLibScript));
+    }
+
+    /**
+     * 淇敼闂嵎棰樼洰
+     */
+    @ApiOperation("淇敼闂嵎棰樼洰")
+    @PreAuthorize("@ss.hasPermi('smartor:svyScript:edit')")
+    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody SvyLibScript svyLibScript) {
+        return toAjax(svyLibScriptService.updateSvyLibScript(svyLibScript));
+    }
+
+    /**
+     * 鍒犻櫎闂嵎棰樼洰
+     */
+    @ApiOperation("鍒犻櫎闂嵎棰樼洰")
+    @PreAuthorize("@ss.hasPermi('smartor:svyScript:remove')")
+    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.DELETE)
+    @GetMapping("/remove/{scriptids}")
+    public AjaxResult remove(@PathVariable Long[] scriptids) {
+        return toAjax(svyLibScriptService.deleteSvyLibScriptByScriptids(scriptids));
+    }
+
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicoptionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java
similarity index 64%
rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicoptionController.java
rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java
index 25852b8..0e4a749 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicoptionController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java
@@ -6,8 +6,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,33 +14,33 @@
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
-import com.smartor.domain.SvyLibTopicoption;
-import com.smartor.service.ISvyLibTopicoptionService;
+import com.smartor.domain.SvyLibScriptOption;
+import com.smartor.service.ISvyLibScriptOptionService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 闂嵎闂閫夐」Controller
- * 
+ *
  * @author ruoyi
  * @date 2023-03-02
  */
 @RestController
-@RequestMapping("/smartor/svytopicoption")
-public class SvyLibTopicoptionController extends BaseController
+@RequestMapping("/smartor/svytscroption")
+public class SvyLibScriptOptionController extends BaseController
 {
     @Autowired
-    private ISvyLibTopicoptionService svyLibTopicoptionService;
+    private ISvyLibScriptOptionService svyLibTopicoptionService;
 
     /**
      * 鏌ヨ闂嵎闂閫夐」鍒楄〃
      */
     @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:list')")
    @PostMapping("/list")
-    public TableDataInfo list(@RequestBody SvyLibTopicoption svyLibTopicoption)
+    public TableDataInfo list(@RequestBody SvyLibScriptOption svyLibTopicoption)
     {
         startPage();
-        List<SvyLibTopicoption> list = svyLibTopicoptionService.selectSvyLibTopicoptionList(svyLibTopicoption);
+        List<SvyLibScriptOption> list = svyLibTopicoptionService.selectSvyLibScriptOptionList(svyLibTopicoption);
         return getDataTable(list);
     }
 
@@ -52,10 +50,10 @@
     @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:export')")
     @Log(title = "闂嵎闂閫夐」", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, SvyLibTopicoption svyLibTopicoption)
+    public void export(HttpServletResponse response, SvyLibScriptOption svyLibTopicoption)
     {
-        List<SvyLibTopicoption> list = svyLibTopicoptionService.selectSvyLibTopicoptionList(svyLibTopicoption);
-        ExcelUtil<SvyLibTopicoption> util = new ExcelUtil<SvyLibTopicoption>(SvyLibTopicoption.class);
+        List<SvyLibScriptOption> list = svyLibTopicoptionService.selectSvyLibScriptOptionList(svyLibTopicoption);
+        ExcelUtil<SvyLibScriptOption> util = new ExcelUtil<SvyLibScriptOption>(SvyLibScriptOption.class);
         util.exportExcel(response, list, "闂嵎闂閫夐」鏁版嵁");
     }
 
@@ -66,7 +64,7 @@
     @GetMapping(value = "/{optionid}")
     public AjaxResult getInfo(@PathVariable("optionid") Long optionid)
     {
-        return success(svyLibTopicoptionService.selectSvyLibTopicoptionByOptionid(optionid));
+        return success(svyLibTopicoptionService.selectSvyLibScriptOptionByOptionid(optionid));
     }
 
     /**
@@ -75,9 +73,9 @@
     @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:add')")
     @Log(title = "闂嵎闂閫夐」", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody SvyLibTopicoption svyLibTopicoption)
+    public AjaxResult add(@RequestBody SvyLibScriptOption svyLibTopicoption)
     {
-        return toAjax(svyLibTopicoptionService.insertSvyLibTopicoption(svyLibTopicoption));
+        return toAjax(svyLibTopicoptionService.insertSvyLibScriptOption(svyLibTopicoption));
     }
 
     /**
@@ -86,9 +84,9 @@
     @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:edit')")
     @Log(title = "闂嵎闂閫夐」", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SvyLibTopicoption svyLibTopicoption)
+    public AjaxResult edit(@RequestBody SvyLibScriptOption svyLibTopicoption)
     {
-        return toAjax(svyLibTopicoptionService.updateSvyLibTopicoption(svyLibTopicoption));
+        return toAjax(svyLibTopicoptionService.updateSvyLibScriptOption(svyLibTopicoption));
     }
 
     /**
@@ -99,6 +97,6 @@
 	@GetMapping("/remove/{optionids}")
     public AjaxResult remove(@PathVariable Long[] optionids)
     {
-        return toAjax(svyLibTopicoptionService.deleteSvyLibTopicoptionByOptionids(optionids));
+        return toAjax(svyLibTopicoptionService.deleteSvyLibScriptOptionByOptionids(optionids));
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java
new file mode 100644
index 0000000..4d92358
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java
@@ -0,0 +1,112 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyLibTemplateCategory;
+import com.smartor.domain.SvyLibTemplateCategoryVO;
+import com.smartor.service.ISvyLibTemplateCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 闂嵎妯℃澘鍒嗙被Controller
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+@Api(description = "闂嵎妯℃澘鍒嗙被")
+@RestController
+@RequestMapping("/smartor/svyLibTemplateCategory")
+public class SvyLibTemplateCategoryController extends BaseController {
+    @Autowired
+    private ISvyLibTemplateCategoryService svyLibTemplateCategoryService;
+
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
+     */
+    @ApiOperation("鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('smartor:category:list')")
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
+        startPage();
+        List<SvyLibTemplateCategoryVO> list = svyLibTemplateCategoryService.selectSvyLibTemplateCategoryList(svyLibTemplateCategory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭闂嵎妯℃澘鍒嗙被鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:category:export')")
+    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyLibTemplateCategory svyLibTemplateCategory) {
+        List<SvyLibTemplateCategoryVO> list = svyLibTemplateCategoryService.selectSvyLibTemplateCategoryList(svyLibTemplateCategory);
+        ExcelUtil<SvyLibTemplateCategoryVO> util = new ExcelUtil<SvyLibTemplateCategoryVO>(SvyLibTemplateCategoryVO.class);
+        util.exportExcel(response, list, "闂嵎妯℃澘鍒嗙被鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇闂嵎妯℃澘鍒嗙被璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇闂嵎妯℃澘鍒嗙被璇︾粏淇℃伅")
+    @PreAuthorize("@ss.hasPermi('smartor:category:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(svyLibTemplateCategoryService.selectSvyLibTemplateCategoryById(id));
+    }
+
+//    /**
+//     * 鏂板闂嵎妯℃澘鍒嗙被
+//     */
+//    @ApiOperation("鏂板闂嵎妯℃澘鍒嗙被")
+//    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
+//    @Log(Template = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.INSERT)
+//    @PostMapping("/add")
+//    public AjaxResult add(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
+//        return toAjax(svyLibTemplateCategoryService.insertSvyLibTemplateCategory(svyLibTemplateCategory));
+//    }
+
+    /**
+     * 淇敼闂嵎妯℃澘鍒嗙被
+     */
+    @ApiOperation("淇敼闂嵎妯℃澘鍒嗙被")
+    @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
+    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
+        return toAjax(svyLibTemplateCategoryService.updateSvyLibTemplateCategory(svyLibTemplateCategory));
+    }
+
+    /**
+     * 鍒犻櫎闂嵎妯℃澘鍒嗙被
+     */
+    @ApiOperation("鍒犻櫎闂嵎妯℃澘鍒嗙被")
+    @PreAuthorize("@ss.hasPermi('smartor:category:remove')")
+    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.DELETE)
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(svyLibTemplateCategoryService.deleteSvyLibTemplateCategoryByIds(ids));
+    }
+
+
+    /**
+     * 闂嵎妯℃澘鍒嗙被鏍�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
+    @Log(title = "闂嵎妯℃澘鍒嗙被鏍�", businessType = BusinessType.INSERT)
+    @ApiOperation("闂嵎妯℃澘鍒嗙被鏍�")
+    @PostMapping("/addtree")
+    public AjaxResult addtree(@RequestBody SvyLibTemplateCategoryVO svyLibTemplateCategoryVO) {
+        return toAjax(svyLibTemplateCategoryService.insertSvyLibTemplateCategoryTree(svyLibTemplateCategoryVO));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java
similarity index 65%
rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java
rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java
index 0b32d96..aad703f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java
@@ -8,9 +8,9 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.exception.base.BaseException;
-import com.smartor.domain.SvyLibTitle;
-import com.smartor.domain.SvyLibTitleReq;
-import com.smartor.service.ISvyLibTitleService;
+import com.smartor.domain.SvyLibTemplate;
+import com.smartor.domain.SvyLibTemplateReq;
+import com.smartor.service.ISvyLibTemplateService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ObjectUtils;
@@ -28,19 +28,19 @@
  */
 @Api(description = "闂嵎妯℃澘")
 @RestController
-@RequestMapping("/smartor/svytitle")
-public class SvyLibTitleController extends BaseController {
+@RequestMapping("/smartor/svyTemplate")
+public class SvyLibTemplateController extends BaseController {
     @Autowired
-    private ISvyLibTitleService svyLibTitleService;
+    private ISvyLibTemplateService svyLibTemplateService;
 
     /**
      * 鏌ヨ闂嵎鍒楄〃
      */
     @ApiOperation("鏌ヨ闂嵎鍒楄〃璇︽儏")
-    @PostMapping("/selectSvyLibTitlelist")
-    public TableDataInfo selectSvyLibTitlelist(@RequestBody SvyLibTitleReq svyLibTitleReq) {
+    @PostMapping("/selectSvyLibTemplatelist")
+    public TableDataInfo selectSvyLibTemplatelist(@RequestBody SvyLibTemplateReq svyLibTemplateReq) {
         startPage();
-        List<SvyLibTitle> list = svyLibTitleService.selectSvyLibTitleList(svyLibTitleReq);
+        List<SvyLibTemplate> list = svyLibTemplateService.selectSvyLibTemplateList(svyLibTemplateReq);
         return getDataTable(list);
     }
 
@@ -49,19 +49,19 @@
 //     * 鑾峰彇闂嵎璇︾粏淇℃伅(鍗曡〃)
 //     */
 //    @ApiOperation("鑾峰彇闂嵎璇︾粏淇℃伅")
-//    @PreAuthorize("@ss.hasPermi('smartor:svytitle:query')")
+//    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:query')")
 //    @GetMapping(value = "/{svyid}")
 //    public AjaxResult getInfo(@PathVariable("svyid") Long svyid) {
-//        return success(svyLibTitleService.selectSvyLibTitleBySvyid(svyid));
+//        return success(svyLibTemplateService.selectSvyLibTemplateBySvyid(svyid));
 //    }
 
     /**
      * 鏂板闂嵎
      */
     @ApiOperation("鏂板闂嵎")
-    @PostMapping("/addSvyLibTitle")
-    public AjaxResult addSvyLibTitle(@RequestBody SvyLibTitle svyLibTitle) {
-        return toAjax(svyLibTitleService.insertSvyLibTitle(svyLibTitle));
+    @PostMapping("/addSvyLibTemplate")
+    public AjaxResult addSvyLibTemplate(@RequestBody SvyLibTemplate svyLibTemplate) {
+        return toAjax(svyLibTemplateService.insertSvyLibTemplate(svyLibTemplate));
     }
 
     /**
@@ -69,41 +69,41 @@
      */
     @ApiOperation("鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭�")
     @PreAuthorize("@ss.hasPermi('system:script:list')")
-    @PostMapping("/saveOrUpdateTitle")
-    public AjaxResult saveOrUpdateTitle(@RequestBody SvyLibTitle svyLibTitle) {
-        if (ObjectUtils.isEmpty(svyLibTitle)) {
+    @PostMapping("/saveOrUpdateTemplate")
+    public AjaxResult saveOrUpdateTemplate(@RequestBody SvyLibTemplate svyLibTemplate) {
+        if (ObjectUtils.isEmpty(svyLibTemplate)) {
             throw new BaseException("鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
-        return success(svyLibTitleService.saveOrUpdateTitle(svyLibTitle));
+        return success(svyLibTemplateService.saveOrUpdateTemplate(svyLibTemplate));
     }
 
     /**
      * 淇敼闂嵎
      */
     @ApiOperation("淇敼闂嵎")
-    @PreAuthorize("@ss.hasPermi('smartor:svytitle:edit')")
+    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:edit')")
     @Log(title = "闂嵎", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SvyLibTitle svyLibTitle) {
-        return toAjax(svyLibTitleService.updateSvyLibTitle(svyLibTitle));
+    public AjaxResult edit(@RequestBody SvyLibTemplate svyLibTemplate) {
+        return toAjax(svyLibTemplateService.updateSvyLibTemplate(svyLibTemplate));
     }
 
     /**
      * 鍒犻櫎闂嵎
      */
     @ApiOperation("鍒犻櫎闂嵎")
-    @PreAuthorize("@ss.hasPermi('smartor:svytitle:remove')")
+    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
     @Log(title = "闂嵎", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{svyids}")
     public AjaxResult remove(@PathVariable Long[] svyids) {
-        return toAjax(svyLibTitleService.deleteSvyLibTitleBySvyids(svyids));
+        return toAjax(svyLibTemplateService.deleteSvyLibTemplateBySvyids(svyids));
     }
 
     /**
      * 鍙戦�佺煭淇�
      */
     @ApiOperation("鍙戦�佺煭淇�")
-    @PreAuthorize("@ss.hasPermi('smartor:svytitle:remove')")
+    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
     @Log(title = "闂嵎", businessType = BusinessType.DELETE)
     @PostMapping("/sendMessage")
     public AjaxResult sendMessage(@PathVariable Long[] svyids) {
@@ -123,7 +123,7 @@
 //        } catch (Exception e) {
 //            System.err.println("鍙戦�佺煭淇″け璐ワ細" + e.getMessage());
 //        }
-        return toAjax(svyLibTitleService.deleteSvyLibTitleBySvyids(svyids));
+        return toAjax(svyLibTemplateService.deleteSvyLibTemplateBySvyids(svyids));
     }
 
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleCategoryController.java
deleted file mode 100644
index f6d457a..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTitleCategoryController.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.ruoyi.web.controller.smartor;
-
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.smartor.domain.SvyLibTitleCategory;
-import com.smartor.domain.SvyLibTitleCategoryVO;
-import com.smartor.service.ISvyLibTitleCategoryService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * 闂嵎妯℃澘鍒嗙被Controller
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-@Api(description = "闂嵎妯℃澘鍒嗙被")
-@RestController
-@RequestMapping("/smartor/svyLibTitleCategory")
-public class SvyLibTitleCategoryController extends BaseController {
-    @Autowired
-    private ISvyLibTitleCategoryService svyLibTitleCategoryService;
-
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
-     */
-    @ApiOperation("鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('smartor:category:list')")
-    @PostMapping("/list")
-    public TableDataInfo list(@RequestBody SvyLibTitleCategory svyLibTitleCategory) {
-        startPage();
-        List<SvyLibTitleCategoryVO> list = svyLibTitleCategoryService.selectSvyLibTitleCategoryList(svyLibTitleCategory);
-        return getDataTable(list);
-    }
-
-    /**
-     * 瀵煎嚭闂嵎妯℃澘鍒嗙被鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:category:export')")
-    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SvyLibTitleCategory svyLibTitleCategory) {
-        List<SvyLibTitleCategoryVO> list = svyLibTitleCategoryService.selectSvyLibTitleCategoryList(svyLibTitleCategory);
-        ExcelUtil<SvyLibTitleCategoryVO> util = new ExcelUtil<SvyLibTitleCategoryVO>(SvyLibTitleCategoryVO.class);
-        util.exportExcel(response, list, "闂嵎妯℃澘鍒嗙被鏁版嵁");
-    }
-
-    /**
-     * 鑾峰彇闂嵎妯℃澘鍒嗙被璇︾粏淇℃伅
-     */
-    @ApiOperation("鑾峰彇闂嵎妯℃澘鍒嗙被璇︾粏淇℃伅")
-    @PreAuthorize("@ss.hasPermi('smartor:category:query')")
-    @GetMapping(value = "/getInfo/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return success(svyLibTitleCategoryService.selectSvyLibTitleCategoryById(id));
-    }
-
-//    /**
-//     * 鏂板闂嵎妯℃澘鍒嗙被
-//     */
-//    @ApiOperation("鏂板闂嵎妯℃澘鍒嗙被")
-//    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
-//    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.INSERT)
-//    @PostMapping("/add")
-//    public AjaxResult add(@RequestBody SvyLibTitleCategory svyLibTitleCategory) {
-//        return toAjax(svyLibTitleCategoryService.insertSvyLibTitleCategory(svyLibTitleCategory));
-//    }
-
-    /**
-     * 淇敼闂嵎妯℃澘鍒嗙被
-     */
-    @ApiOperation("淇敼闂嵎妯℃澘鍒嗙被")
-    @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
-    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SvyLibTitleCategory svyLibTitleCategory) {
-        return toAjax(svyLibTitleCategoryService.updateSvyLibTitleCategory(svyLibTitleCategory));
-    }
-
-    /**
-     * 鍒犻櫎闂嵎妯℃澘鍒嗙被
-     */
-    @ApiOperation("鍒犻櫎闂嵎妯℃澘鍒嗙被")
-    @PreAuthorize("@ss.hasPermi('smartor:category:remove')")
-    @Log(title = "闂嵎妯℃澘鍒嗙被", businessType = BusinessType.DELETE)
-    @GetMapping("/remove/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids) {
-        return toAjax(svyLibTitleCategoryService.deleteSvyLibTitleCategoryByIds(ids));
-    }
-
-
-    /**
-     * 闂嵎妯℃澘鍒嗙被鏍�
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
-    @Log(title = "闂嵎妯℃澘鍒嗙被鏍�", businessType = BusinessType.INSERT)
-    @ApiOperation("闂嵎妯℃澘鍒嗙被鏍�")
-    @PostMapping("/addtree")
-    public AjaxResult addtree(@RequestBody SvyLibTitleCategoryVO svyLibTitleCategoryVO) {
-        return toAjax(svyLibTitleCategoryService.insertSvyLibTitleCategoryTree(svyLibTitleCategoryVO));
-    }
-}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java
deleted file mode 100644
index 7a8f5b8..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTopicController.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.ruoyi.web.controller.smartor;
-
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.PageUtils;
-import com.smartor.domain.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.smartor.service.ISvyLibTopicService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * 闂嵎棰樼洰Controller
- *
- * @author ruoyi
- * @date 2023-03-03
- */
-@Api(description = "闂嵎棰樼洰")
-@RestController
-@RequestMapping("/smartor/svytopic")
-public class SvyLibTopicController extends BaseController {
-    @Autowired
-    private ISvyLibTopicService svyLibTopicService;
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒楄〃
-     */
-    @ApiOperation("鏌ヨ闂嵎棰樼洰鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('smartor:svytopic:list')")
-    @PostMapping("/list")
-    public TableDataInfo list(@RequestBody SvyLibTopic svyLibTopic) {
-        PageUtils.startPageByPost(svyLibTopic.getPageNum(), svyLibTopic.getPageSize());
-        List<SvyLibTopic> list = svyLibTopicService.selectSvyLibTopicList(svyLibTopic);
-        return getDataTable(list);
-    }
-
-    /**
-     * 瀵煎嚭闂嵎棰樼洰鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:svytopic:export')")
-    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.EXPORT)
-    @ApiOperation("瀵煎嚭闂嵎棰樼洰鍒楄〃")
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SvyLibTopic svyLibTopic) {
-        List<SvyLibTopic> list = svyLibTopicService.selectSvyLibTopicList(svyLibTopic);
-        ExcelUtil<SvyLibTopic> util = new ExcelUtil<SvyLibTopic>(SvyLibTopic.class);
-        util.exportExcel(response, list, "闂嵎棰樼洰鏁版嵁");
-    }
-
-//    /**
-//     * 鑾峰彇闂嵎棰樼洰璇︾粏淇℃伅
-//     */
-//    @ApiOperation("鑾峰彇闂嵎棰樼洰璇︾粏淇℃伅")
-//    @PreAuthorize("@ss.hasPermi('smartor:svytopic:query')")
-//    @GetMapping(value = "/getInfo/{topicid}")
-//    public AjaxResult getInfo(@PathVariable("topicid") Long topicid) {
-//        return success(svyLibTopicService.selectSvyLibTopicByTopicid(topicid));
-//    }
-
-    /**
-     * 鏂板闂嵎棰樼洰
-     */
-    @ApiOperation("鏂板闂嵎棰樼洰")
-    @PreAuthorize("@ss.hasPermi('smartor:svytopic:add')")
-    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.INSERT)
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody SvyLibTopic svyLibTopic) {
-        return toAjax(svyLibTopicService.insertSvyLibTopic(svyLibTopic));
-    }
-
-    /**
-     * 鏂板鎴栦慨鏀归棶鍗疯鎯呬俊鎭�
-     */
-    @ApiOperation("鏂板鎴栦慨鏀归棶鍗疯鎯呬俊鎭�")
-    @PreAuthorize("@ss.hasPermi('system:script:list')")
-    @PostMapping("/saveOrUpdateTopic")
-    public AjaxResult saveOrUpdateTopic(@RequestBody SvyLibTopic svyLibTopic) {
-        if (ObjectUtils.isEmpty(svyLibTopic)) {
-            throw new BaseException("鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
-        }
-        return success(svyLibTopicService.saveOrUpdateTopic(svyLibTopic));
-    }
-
-    /**
-     * 淇敼闂嵎棰樼洰
-     */
-    @ApiOperation("淇敼闂嵎棰樼洰")
-    @PreAuthorize("@ss.hasPermi('smartor:svytopic:edit')")
-    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody SvyLibTopic svyLibTopic) {
-        return toAjax(svyLibTopicService.updateSvyLibTopic(svyLibTopic));
-    }
-
-    /**
-     * 鍒犻櫎闂嵎棰樼洰
-     */
-    @ApiOperation("鍒犻櫎闂嵎棰樼洰")
-    @PreAuthorize("@ss.hasPermi('smartor:svytopic:remove')")
-    @Log(title = "闂嵎棰樼洰", businessType = BusinessType.DELETE)
-    @GetMapping("/remove/{topicids}")
-    public AjaxResult remove(@PathVariable Long[] topicids) {
-        return toAjax(svyLibTopicService.deleteSvyLibTopicByTopicids(topicids));
-    }
-
-
-}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java
new file mode 100644
index 0000000..355329f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyTask;
+import com.smartor.service.ISvyTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 缁煎悎闂嵎浠诲姟锛堜换鍔★級Controller
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@RestController
+@RequestMapping("/smartor/svytask")
+public class SvyTaskController extends BaseController
+{
+    @Autowired
+    private ISvyTaskService svyTaskService;
+
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SvyTask svyTask)
+    {
+        startPage();
+        List<SvyTask> list = svyTaskService.selectSvyTaskList(svyTask);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭缁煎悎闂嵎浠诲姟锛堜换鍔★級鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:export')")
+    @Log(title = "缁煎悎闂嵎浠诲姟锛堜换鍔★級", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyTask svyTask)
+    {
+        List<SvyTask> list = svyTaskService.selectSvyTaskList(svyTask);
+        ExcelUtil<SvyTask> util = new ExcelUtil<SvyTask>(SvyTask.class);
+        util.exportExcel(response, list, "缁煎悎闂嵎浠诲姟锛堜换鍔★級鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇缁煎悎闂嵎浠诲姟锛堜换鍔★級璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:query')")
+    @GetMapping(value = "/{taskid}")
+    public AjaxResult getInfo(@PathVariable("taskid") Long taskid)
+    {
+        return success(svyTaskService.selectSvyTaskByTaskid(taskid));
+    }
+
+    /**
+     * 鏂板缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:add')")
+    @Log(title = "缁煎悎闂嵎浠诲姟锛堜换鍔★級", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SvyTask svyTask)
+    {
+        return toAjax(svyTaskService.insertSvyTask(svyTask));
+    }
+
+    /**
+     * 淇敼缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:edit')")
+    @Log(title = "缁煎悎闂嵎浠诲姟锛堜换鍔★級", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SvyTask svyTask)
+    {
+        return toAjax(svyTaskService.updateSvyTask(svyTask));
+    }
+
+    /**
+     * 鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    @PreAuthorize("@ss.hasPermi('system:task:remove')")
+    @Log(title = "缁煎悎闂嵎浠诲姟锛堜换鍔★級", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{taskids}")
+    public AjaxResult remove(@PathVariable Long[] taskids)
+    {
+        return toAjax(svyTaskService.deleteSvyTaskByTaskids(taskids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java
new file mode 100644
index 0000000..4dd7aa2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyTaskScript;
+import com.smartor.service.ISvyTaskScriptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎棰樼洰Controller
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@RestController
+@RequestMapping("/smartor/svyTaskScript")
+public class SvyTaskScriptController extends BaseController
+{
+    @Autowired
+    private ISvyTaskScriptService svyTaskScriptService;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SvyTaskScript svyTaskScript)
+    {
+        startPage();
+        List<SvyTaskScript> list = svyTaskScriptService.selectSvyTaskScriptList(svyTaskScript);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭浠诲姟闂嵎棰樼洰鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:export')")
+    @Log(title = "浠诲姟闂嵎棰樼洰", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyTaskScript svyTaskScript)
+    {
+        List<SvyTaskScript> list = svyTaskScriptService.selectSvyTaskScriptList(svyTaskScript);
+        ExcelUtil<SvyTaskScript> util = new ExcelUtil<SvyTaskScript>(SvyTaskScript.class);
+        util.exportExcel(response, list, "浠诲姟闂嵎棰樼洰鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇浠诲姟闂嵎棰樼洰璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(svyTaskScriptService.selectSvyTaskScriptById(id));
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎棰樼洰
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:add')")
+    @Log(title = "浠诲姟闂嵎棰樼洰", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SvyTaskScript svyTaskScript)
+    {
+        return toAjax(svyTaskScriptService.insertSvyTaskScript(svyTaskScript));
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎棰樼洰
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:edit')")
+    @Log(title = "浠诲姟闂嵎棰樼洰", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SvyTaskScript svyTaskScript)
+    {
+        return toAjax(svyTaskScriptService.updateSvyTaskScript(svyTaskScript));
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎棰樼洰
+     */
+    @PreAuthorize("@ss.hasPermi('system:script:remove')")
+    @Log(title = "浠诲姟闂嵎棰樼洰", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(svyTaskScriptService.deleteSvyTaskScriptByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java
new file mode 100644
index 0000000..151ab2d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyTaskScriptoption;
+import com.smartor.service.ISvyTaskScriptoptionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Controller
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@RestController
+@RequestMapping("/smartor/svyscriptoption")
+public class SvyTaskScriptoptionController extends BaseController
+{
+    @Autowired
+    private ISvyTaskScriptoptionService svyTaskScriptoptionService;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SvyTaskScriptoption svyTaskScriptoption)
+    {
+        startPage();
+        List<SvyTaskScriptoption> list = svyTaskScriptoptionService.selectSvyTaskScriptoptionList(svyTaskScriptoption);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭浠诲姟闂嵎闂閫夐」鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:export')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyTaskScriptoption svyTaskScriptoption)
+    {
+        List<SvyTaskScriptoption> list = svyTaskScriptoptionService.selectSvyTaskScriptoptionList(svyTaskScriptoption);
+        ExcelUtil<SvyTaskScriptoption> util = new ExcelUtil<SvyTaskScriptoption>(SvyTaskScriptoption.class);
+        util.exportExcel(response, list, "浠诲姟闂嵎闂閫夐」鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇浠诲姟闂嵎闂閫夐」璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(svyTaskScriptoptionService.selectSvyTaskScriptoptionById(id));
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:add')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SvyTaskScriptoption svyTaskScriptoption)
+    {
+        return toAjax(svyTaskScriptoptionService.insertSvyTaskScriptoption(svyTaskScriptoption));
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:edit')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SvyTaskScriptoption svyTaskScriptoption)
+    {
+        return toAjax(svyTaskScriptoptionService.updateSvyTaskScriptoption(svyTaskScriptoption));
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:scriptoption:remove')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(svyTaskScriptoptionService.deleteSvyTaskScriptoptionByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java
new file mode 100644
index 0000000..fbb660e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyTaskSingle;
+import com.smartor.service.ISvyTaskSingleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鍗曚竴浠诲姟锛堥棶鍗凤級Controller
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@RestController
+@RequestMapping("/smartor/svysingle")
+public class SvyTaskSingleController extends BaseController
+{
+    @Autowired
+    private ISvyTaskSingleService svyTaskSingleService;
+
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SvyTaskSingle svyTaskSingle)
+    {
+        startPage();
+        List<SvyTaskSingle> list = svyTaskSingleService.selectSvyTaskSingleList(svyTaskSingle);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鍗曚竴浠诲姟锛堥棶鍗凤級鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:export')")
+    @Log(title = "鍗曚竴浠诲姟锛堥棶鍗凤級", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyTaskSingle svyTaskSingle)
+    {
+        List<SvyTaskSingle> list = svyTaskSingleService.selectSvyTaskSingleList(svyTaskSingle);
+        ExcelUtil<SvyTaskSingle> util = new ExcelUtil<SvyTaskSingle>(SvyTaskSingle.class);
+        util.exportExcel(response, list, "鍗曚竴浠诲姟锛堥棶鍗凤級鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鍗曚竴浠诲姟锛堥棶鍗凤級璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(svyTaskSingleService.selectSvyTaskSingleById(id));
+    }
+
+    /**
+     * 鏂板鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:add')")
+    @Log(title = "鍗曚竴浠诲姟锛堥棶鍗凤級", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SvyTaskSingle svyTaskSingle)
+    {
+        return toAjax(svyTaskSingleService.insertSvyTaskSingle(svyTaskSingle));
+    }
+
+    /**
+     * 淇敼鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:edit')")
+    @Log(title = "鍗曚竴浠诲姟锛堥棶鍗凤級", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SvyTaskSingle svyTaskSingle)
+    {
+        return toAjax(svyTaskSingleService.updateSvyTaskSingle(svyTaskSingle));
+    }
+
+    /**
+     * 鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    @PreAuthorize("@ss.hasPermi('system:single:remove')")
+    @Log(title = "鍗曚竴浠诲姟锛堥棶鍗凤級", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(svyTaskSingleService.deleteSvyTaskSingleByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java
new file mode 100644
index 0000000..a26084d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.smartor;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.smartor.domain.SvyTaskTemplate;
+import com.smartor.service.ISvyTaskTemplateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎妯℃澘Controller
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@RestController
+@RequestMapping("/smartor/svytemplate")
+public class SvyTaskTemplateController extends BaseController
+{
+    @Autowired
+    private ISvyTaskTemplateService svyTaskTemplateService;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SvyTaskTemplate svyTaskTemplate)
+    {
+        startPage();
+        List<SvyTaskTemplate> list = svyTaskTemplateService.selectSvyTaskTemplateList(svyTaskTemplate);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭浠诲姟闂嵎妯℃澘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:export')")
+    @Log(title = "浠诲姟闂嵎妯℃澘", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SvyTaskTemplate svyTaskTemplate)
+    {
+        List<SvyTaskTemplate> list = svyTaskTemplateService.selectSvyTaskTemplateList(svyTaskTemplate);
+        ExcelUtil<SvyTaskTemplate> util = new ExcelUtil<SvyTaskTemplate>(SvyTaskTemplate.class);
+        util.exportExcel(response, list, "浠诲姟闂嵎妯℃澘鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇浠诲姟闂嵎妯℃澘璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:query')")
+    @GetMapping(value = "/{svyid}")
+    public AjaxResult getInfo(@PathVariable("svyid") Long svyid)
+    {
+        return success(svyTaskTemplateService.selectSvyTaskTemplateBySvyid(svyid));
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:add')")
+    @Log(title = "浠诲姟闂嵎妯℃澘", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SvyTaskTemplate svyTaskTemplate)
+    {
+        return toAjax(svyTaskTemplateService.insertSvyTaskTemplate(svyTaskTemplate));
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:edit')")
+    @Log(title = "浠诲姟闂嵎妯℃澘", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SvyTaskTemplate svyTaskTemplate)
+    {
+        return toAjax(svyTaskTemplateService.updateSvyTaskTemplate(svyTaskTemplate));
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('system:template:remove')")
+    @Log(title = "浠诲姟闂嵎妯℃澘", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{svyids}")
+    public AjaxResult remove(@PathVariable Long[] svyids)
+    {
+        return toAjax(svyTaskTemplateService.deleteSvyTaskTemplateBySvyids(svyids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java
index fbc0e9b..8689c8b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java
@@ -8,7 +8,8 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.smartor.domain.SvyLibTopicRes;
+import com.smartor.domain.SvyLibScript;
+import com.smartor.domain.SvyLibScriptRes;
 import com.smartor.domain.SvyTopic;
 import com.smartor.domain.SvyTopicReq;
 import com.smartor.service.ISvyTopicService;
@@ -39,7 +40,7 @@
      * 鏌ヨ棰樼洰鍒楄〃
      */
     @PreAuthorize("@ss.hasPermi('system:topic:list')")
-   @PostMapping("/list")
+    @PostMapping("/list")
     public TableDataInfo list(@RequestBody SvyTopic svyTopic) {
         startPage();
         List<SvyTopic> list = svyTopicService.selectSvyTopicList(svyTopic);
@@ -116,7 +117,7 @@
     @ApiOperation("瀵煎叆棰樼洰妯℃澘")
     @PostMapping("/importTopicTemplate")
     public void importTopicTemplate(HttpServletResponse response) {
-        ExcelUtil<SvyLibTopicRes> util = new ExcelUtil<SvyLibTopicRes>(SvyLibTopicRes.class);
+        ExcelUtil<SvyLibScriptRes> util = new ExcelUtil<SvyLibScriptRes>(SvyLibScriptRes.class);
         util.importTemplateExcel(response, "瀵煎叆棰樼洰");
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TestLsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TestLsController.java
index faa1ea6..455b3f7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TestLsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TestLsController.java
@@ -1,27 +1,16 @@
 package com.ruoyi.web.controller.smartor;
 
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.smartor.domain.ServiceThirdData;
-import com.smartor.domain.SvyLibTopicRes;
-import com.smartor.domain.SvyTopic;
-import com.smartor.domain.SvyTopicReq;
 import com.smartor.service.IServiceThirdDataService;
-import com.smartor.service.ISvyTopicService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RedisConfiguration.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RedisConfiguration.java
new file mode 100644
index 0000000..c1cb8f8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/RedisConfiguration.java
@@ -0,0 +1,29 @@
+package com.ruoyi.web.core.config;
+
+import com.ruoyi.web.component.RedisMqReceiver;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+
+@Configuration
+public class RedisConfiguration {
+    @Autowired
+    private RedisConnectionFactory redisConnectionFactory;
+
+//    绗竴涓狜Bean鏄垱寤轰竴涓柊鐨凴edis娑堟伅鐩戝惉瀹瑰櫒锛岀劧鍚庢寚瀹歊edis杩炴帴銆傜浜屼釜@Bean鏄粰鎴戜滑鍐欑殑鐩戝惉绫绘寚瀹氫竴涓猂edis娑堟伅鐩戝惉瀹瑰櫒锛屽嵆绗竴涓狜Bean鐨勫唴瀹�
+
+    @Bean
+    public RedisMessageListenerContainer redisMessageListenerContainer() {
+        RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
+        redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
+        return redisMessageListenerContainer;
+    }
+
+    @Bean
+    public RedisMqReceiver keyExpiredListener() {
+        return new RedisMqReceiver(this.redisMessageListenerContainer());
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java b/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
index f95bb97..8a6a3c8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
@@ -7,16 +7,12 @@
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.smartor.common.SendService;
 import com.smartor.config.PhoneUtils;
-import com.smartor.config.RabbitMqCallPhoneConfig;
 import com.smartor.config.RobotPhoneUtils;
 import com.smartor.domain.*;
 import com.smartor.domain.robot.RobotData;
 import com.smartor.domain.robot.RobotDataConfig;
 import com.smartor.domain.robot.RobotIdlenumVO;
 import com.smartor.domain.robot.RobotScritpTemplateVO;
-import org.springframework.amqp.core.Message;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.stereotype.Component;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -26,20 +22,16 @@
     private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVO;
     private RedisCache redisCache;
     private IvrTaskTemplateVO ivrTaskTemplateVO;
-    private RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig;
-    private Message message;
     private SendService sendService;
     private String phonePath;
     private RobotPhoneUtils robotPhoneUtils;
 
 
-    public PhoneTask(IvrTaskSingle ivrTaskSingle, IvrTaskTemplateVO ivrTaskTemplateVO, RedisCache redisCache, RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig, Message message, SendService sendService, String phonePath, RobotPhoneUtils robotPhoneUtils) {
+    public PhoneTask(IvrTaskSingle ivrTaskSingle, IvrTaskTemplateVO ivrTaskTemplateVO, RedisCache redisCache, SendService sendService, String phonePath, RobotPhoneUtils robotPhoneUtils) {
         this.ivrTaskSingle = DtoConversionUtils.sourceToTarget(ivrTaskSingle, IvrTaskSingle.class);
         this.ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplateVO.getIvrTaskTemplateScriptVOList(), IvrTaskTemplateScriptVO.class);
         this.ivrTaskTemplateVO = DtoConversionUtils.sourceToTarget(ivrTaskTemplateVO, IvrTaskTemplateVO.class);
         this.redisCache = redisCache;
-        this.rabbitMqCallPhoneConfig = rabbitMqCallPhoneConfig;
-        this.message = message;
         this.sendService = sendService;
         this.phonePath = phonePath;
         this.robotPhoneUtils = robotPhoneUtils;
@@ -105,7 +97,7 @@
                 Map<String, String> obMap = objectMapper.readValue(ob, Map.class);
                 Thread.sleep(1000);
                 redisCache.setCacheObject(uuid + "state_id", "0", 10, TimeUnit.MINUTES);
-                rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.ob1", data, 0L);
+//                rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.ob1", data, 0L);
 //杩欓噷鍏堟敞閲婏紝state_id,鐢佃瘽閭h竟锛屽彧鑳借繑鍥�6锛屼笉鑳借繑鍥�0锛岃繕闇�瑕佺數璇濋偅杈硅繘琛屼慨鏀癸紝閭h竟淇敼涔嬪悗锛屼笂闈袱琛屽彲鍒犻櫎锛屽皢涓嬮潰鐨勮В寮�娉ㄩ噴
 //            if (obMap.get("state_id").equals("0")) {
 //                // 璇存槑鎵撻�氫簡
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index b03af05..5014de8 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -1,19 +1,5 @@
 # 鏁版嵁婧愰厤缃�
 spring:
-  rabbitmq:
-    #    host: 116.62.18.175
-    host: 192.168.2.8
-    password: guest
-    port: 5672
-    username: guest
-    virtual-host: /
-    # 寮�鍚秷鎭彂閫佺‘璁�
-    publisher-confirms: true
-    publisher-returns: true
-    listener:
-      simple:
-        acknowledge-mode: manual
-
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     #    driverClassName: com.mysql.cj.jdbc.Driver
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
index 44e80d8..bd8c5e1 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
@@ -6,6 +6,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.BoundSetOperations;
 import org.springframework.data.redis.core.HashOperations;
@@ -18,59 +19,54 @@
  *
  * @author ruoyi
  **/
-@SuppressWarnings(value = { "unchecked", "rawtypes" })
+@SuppressWarnings(value = {"unchecked", "rawtypes"})
 @Component
-public class RedisCache
-{
+public class RedisCache {
     @Autowired
     public RedisTemplate redisTemplate;
 
     /**
      * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
      *
-     * @param key 缂撳瓨鐨勯敭鍊�
+     * @param key   缂撳瓨鐨勯敭鍊�
      * @param value 缂撳瓨鐨勫��
      */
-    public <T> void setCacheObject(final String key, final T value)
-    {
+    public <T> void setCacheObject(final String key, final T value) {
         redisTemplate.opsForValue().set(key, value);
     }
 
     /**
      * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
      *
-     * @param key 缂撳瓨鐨勯敭鍊�
-     * @param value 缂撳瓨鐨勫��
-     * @param timeout 鏃堕棿
+     * @param key      缂撳瓨鐨勯敭鍊�
+     * @param value    缂撳瓨鐨勫��
+     * @param timeout  鏃堕棿
      * @param timeUnit 鏃堕棿棰楃矑搴�
      */
-    public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit)
-    {
+    public <T> void setCacheObject(final String key, final T value, final long timeout, final TimeUnit timeUnit) {
         redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
     }
 
     /**
      * 璁剧疆鏈夋晥鏃堕棿
      *
-     * @param key Redis閿�
+     * @param key     Redis閿�
      * @param timeout 瓒呮椂鏃堕棿
      * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
      */
-    public boolean expire(final String key, final long timeout)
-    {
+    public boolean expire(final String key, final long timeout) {
         return expire(key, timeout, TimeUnit.SECONDS);
     }
 
     /**
      * 璁剧疆鏈夋晥鏃堕棿
      *
-     * @param key Redis閿�
+     * @param key     Redis閿�
      * @param timeout 瓒呮椂鏃堕棿
-     * @param unit 鏃堕棿鍗曚綅
+     * @param unit    鏃堕棿鍗曚綅
      * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
      */
-    public boolean expire(final String key, final long timeout, final TimeUnit unit)
-    {
+    public boolean expire(final String key, final long timeout, final TimeUnit unit) {
         return redisTemplate.expire(key, timeout, unit);
     }
 
@@ -80,8 +76,7 @@
      * @param key Redis閿�
      * @return 鏈夋晥鏃堕棿
      */
-    public long getExpire(final String key)
-    {
+    public long getExpire(final String key) {
         return redisTemplate.getExpire(key);
     }
 
@@ -91,8 +86,7 @@
      * @param key 閿�
      * @return true 瀛樺湪 false涓嶅瓨鍦�
      */
-    public Boolean hasKey(String key)
-    {
+    public Boolean hasKey(String key) {
         return redisTemplate.hasKey(key);
     }
 
@@ -102,8 +96,7 @@
      * @param key 缂撳瓨閿��
      * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
      */
-    public <T> T getCacheObject(final String key)
-    {
+    public <T> T getCacheObject(final String key) {
         ValueOperations<String, T> operation = redisTemplate.opsForValue();
         return operation.get(key);
     }
@@ -113,8 +106,7 @@
      *
      * @param key
      */
-    public boolean deleteObject(final String key)
-    {
+    public boolean deleteObject(final String key) {
         return redisTemplate.delete(key);
     }
 
@@ -124,20 +116,18 @@
      * @param collection 澶氫釜瀵硅薄
      * @return
      */
-    public boolean deleteObject(final Collection collection)
-    {
+    public boolean deleteObject(final Collection collection) {
         return redisTemplate.delete(collection) > 0;
     }
 
     /**
      * 缂撳瓨List鏁版嵁
      *
-     * @param key 缂撳瓨鐨勯敭鍊�
+     * @param key      缂撳瓨鐨勯敭鍊�
      * @param dataList 寰呯紦瀛樼殑List鏁版嵁
      * @return 缂撳瓨鐨勫璞�
      */
-    public <T> long setCacheList(final String key, final List<T> dataList)
-    {
+    public <T> long setCacheList(final String key, final List<T> dataList) {
         Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
         return count == null ? 0 : count;
     }
@@ -148,24 +138,21 @@
      * @param key 缂撳瓨鐨勯敭鍊�
      * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
      */
-    public <T> List<T> getCacheList(final String key)
-    {
+    public <T> List<T> getCacheList(final String key) {
         return redisTemplate.opsForList().range(key, 0, -1);
     }
 
     /**
      * 缂撳瓨Set
      *
-     * @param key 缂撳瓨閿��
+     * @param key     缂撳瓨閿��
      * @param dataSet 缂撳瓨鐨勬暟鎹�
      * @return 缂撳瓨鏁版嵁鐨勫璞�
      */
-    public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet)
-    {
+    public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {
         BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
         Iterator<T> it = dataSet.iterator();
-        while (it.hasNext())
-        {
+        while (it.hasNext()) {
             setOperation.add(it.next());
         }
         return setOperation;
@@ -177,8 +164,7 @@
      * @param key
      * @return
      */
-    public <T> Set<T> getCacheSet(final String key)
-    {
+    public <T> Set<T> getCacheSet(final String key) {
         return redisTemplate.opsForSet().members(key);
     }
 
@@ -188,8 +174,7 @@
      * @param key
      * @param dataMap
      */
-    public <T> void setCacheMap(final String key, final Map<String, T> dataMap)
-    {
+    public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
         if (dataMap != null) {
             redisTemplate.opsForHash().putAll(key, dataMap);
         }
@@ -201,32 +186,29 @@
      * @param key
      * @return
      */
-    public <T> Map<String, T> getCacheMap(final String key)
-    {
+    public <T> Map<String, T> getCacheMap(final String key) {
         return redisTemplate.opsForHash().entries(key);
     }
 
     /**
      * 寰�Hash涓瓨鍏ユ暟鎹�
      *
-     * @param key Redis閿�
-     * @param hKey Hash閿�
+     * @param key   Redis閿�
+     * @param hKey  Hash閿�
      * @param value 鍊�
      */
-    public <T> void setCacheMapValue(final String key, final String hKey, final T value)
-    {
+    public <T> void setCacheMapValue(final String key, final String hKey, final T value) {
         redisTemplate.opsForHash().put(key, hKey, value);
     }
 
     /**
      * 鑾峰彇Hash涓殑鏁版嵁
      *
-     * @param key Redis閿�
+     * @param key  Redis閿�
      * @param hKey Hash閿�
      * @return Hash涓殑瀵硅薄
      */
-    public <T> T getCacheMapValue(final String key, final String hKey)
-    {
+    public <T> T getCacheMapValue(final String key, final String hKey) {
         HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
         return opsForHash.get(key, hKey);
     }
@@ -234,24 +216,22 @@
     /**
      * 鑾峰彇澶氫釜Hash涓殑鏁版嵁
      *
-     * @param key Redis閿�
+     * @param key   Redis閿�
      * @param hKeys Hash閿泦鍚�
      * @return Hash瀵硅薄闆嗗悎
      */
-    public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys)
-    {
+    public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {
         return redisTemplate.opsForHash().multiGet(key, hKeys);
     }
 
     /**
      * 鍒犻櫎Hash涓殑鏌愭潯鏁版嵁
      *
-     * @param key Redis閿�
+     * @param key  Redis閿�
      * @param hKey Hash閿�
      * @return 鏄惁鎴愬姛
      */
-    public boolean deleteCacheMapValue(final String key, final String hKey)
-    {
+    public boolean deleteCacheMapValue(final String key, final String hKey) {
         return redisTemplate.opsForHash().delete(key, hKey) > 0;
     }
 
@@ -261,8 +241,7 @@
      * @param pattern 瀛楃涓插墠缂�
      * @return 瀵硅薄鍒楄〃
      */
-    public Collection<String> keys(final String pattern)
-    {
+    public Collection<String> keys(final String pattern) {
         return redisTemplate.keys(pattern);
     }
 }
diff --git a/smartor/src/main/java/com/smartor/common/SendService.java b/smartor/src/main/java/com/smartor/common/SendService.java
index 23ca618..cf51509 100644
--- a/smartor/src/main/java/com/smartor/common/SendService.java
+++ b/smartor/src/main/java/com/smartor/common/SendService.java
@@ -55,7 +55,7 @@
                 WeChatSendVo weChatSendVo = new WeChatSendVo();
                 weChatSendVo.setUrl(sendMagParam.getUrl());
                 weChatSendVo.setTemplateId(sendMagParam.getTmpCode());
-                ObjectMapper objectMapper=new ObjectMapper();
+                ObjectMapper objectMapper = new ObjectMapper();
                 Map map = null;
                 try {
                     map = objectMapper.readValue(sendMagParam.getContent(), Map.class);
diff --git a/smartor/src/main/java/com/smartor/config/RabbitMQAckConfig.java b/smartor/src/main/java/com/smartor/config/RabbitMQAckConfig.java
deleted file mode 100644
index 0aac228..0000000
--- a/smartor/src/main/java/com/smartor/config/RabbitMQAckConfig.java
+++ /dev/null
@@ -1,48 +0,0 @@
-//package com.smartor.config;
-//
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.amqp.core.Message;
-//import org.springframework.amqp.rabbit.connection.CorrelationData;
-//import org.springframework.amqp.rabbit.core.RabbitTemplate;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Component;
-//
-//import javax.annotation.PostConstruct;
-//
-//@Slf4j
-//@Component
-//public class RabbitMQAckConfig implements RabbitTemplate.ConfirmCallback,RabbitTemplate.ReturnCallback {
-//
-//
-//    @Autowired
-//    private RabbitTemplate rabbitTemplate;
-//
-//    @PostConstruct
-//    public void init(){
-//        rabbitTemplate.setConfirmCallback(this);
-//        rabbitTemplate.setReturnCallback(this);
-//    }
-//
-//
-//    //鍒ゆ柇鏄惁鍒拌揪浜ゆ崲鏈�
-//    @Override
-//    public void confirm(CorrelationData correlationData, boolean ack, String cause) {
-//        if (ack){
-//            log.info("娑堟伅鍒颁簡浜ゆ崲鏈�");
-//            System.out.println("娑堟伅鍒颁簡浜ゆ崲鏈� -------------");
-//        }else {
-//            log.info("娑堟伅娌℃湁鍒拌揪浜ゆ崲鏈�");
-//            System.out.println("娑堟伅娌℃湁鍒颁氦鎹㈡満----------------- ");
-//        }
-//    }
-//
-//    //鍒ゆ柇鏄惁鍒拌揪闃熷垪
-//    @Override
-//    public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
-//        System.out.println("message娑堟伅 = " + new String(message.getBody()));
-//        System.out.println("replyCode搴旂瓟鐮� = " + replyCode);
-//        System.out.println("replyText鎻忚堪 = " + replyText);
-//        System.out.println("exchange浜ゆ崲鏈� = " + exchange);
-//        System.out.println("routingKey璺敱key = " + routingKey);
-//    }
-//}
diff --git a/smartor/src/main/java/com/smartor/config/RabbitMqCallPhoneConfig.java b/smartor/src/main/java/com/smartor/config/RabbitMqCallPhoneConfig.java
deleted file mode 100644
index 7174106..0000000
--- a/smartor/src/main/java/com/smartor/config/RabbitMqCallPhoneConfig.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package com.smartor.config;
-
-import org.springframework.amqp.AmqpException;
-import org.springframework.amqp.core.*;
-import org.springframework.amqp.rabbit.connection.CorrelationData;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-@Component
-public class RabbitMqCallPhoneConfig {
-
-    @Autowired
-    private AmqpAdmin amqpAdmin;
-
-    @Autowired
-    private RabbitTemplate rabbitTemplate;
-
-    /**
-     * 鍒涘缓浜ゆ崲鏈�
-     *
-     * @param exchangeName 浜ゆ崲鏈哄悕绉�
-     */
-    public void createExchange(String exchangeName) {
-        Map<String, Object> args = new HashMap<>();
-        args.put("x-delayed-type", "topic");
-        CustomExchange exchange = new CustomExchange(exchangeName, "x-delayed-message", true, false, args);
-        amqpAdmin.declareExchange(exchange);
-    }
-
-    /**
-     * 鍒涘缓闃熷垪
-     *
-     * @param queueName 闃熷垪鍚嶇О
-     */
-    public void createQueue(String queueName) {
-        Queue queue = new Queue(queueName, true, false, false);
-        amqpAdmin.declareQueue(queue);
-    }
-
-    /**
-     * 浜ゆ崲鏈虹粦瀹�
-     *
-     * @param changeName 浜ゆ崲鏈哄悕绉�
-     * @param routingKey 璺敱key
-     * @param queueName  闃熷垪鍚嶇О
-     */
-    public void bindExchange(String changeName, String routingKey, String queueName) {
-        Binding binding = new Binding(queueName, Binding.DestinationType.QUEUE, changeName, routingKey, null);
-        amqpAdmin.declareBinding(binding);
-    }
-
-    /**
-     * 鍙戦�佷俊鎭埌浜ゆ崲鏈�
-     *
-     * @param changeName 浜ゆ崲鏈哄悕绉�
-     * @param routingKey 璺敱key
-     * @param data       娑堟伅
-     */
-    public void sendMessage(String changeName, String routingKey, String data, Long times) {
-        this.rabbitTemplate.convertAndSend(changeName, routingKey, data, message -> {
-            //娉ㄦ剰杩欓噷鏃堕棿鍙互浣縧ong锛岃�屼笖鏄缃甴eader
-            message.getMessageProperties().setHeader("x-delay", times);
-            return message;
-        });
-//        rabbitTemplate.convertAndSend(changeName, routingKey, message);
-    }
-
-    /**
-     * 鍒犻櫎浜ゆ崲鏈�
-     *
-     * @param changeName 浜ゆ崲鏈哄悕绉�
-     */
-    public void deleteExchange(String changeName) {
-        amqpAdmin.deleteExchange(changeName);
-    }
-
-    /**
-     * 鍒犻櫎闃熷垪
-     *
-     * @param queueName 闃熷垪鍚嶇О
-     */
-    public void deleteQueue(String queueName) {
-        amqpAdmin.deleteQueue(queueName);
-    }
-
-    /**
-     * 鍒涘缓MQ
-     *
-     * @param exchangName
-     * @param queueName
-     * @param routingKey
-     * @return
-     */
-    public Boolean createRabbitMq(String exchangName, String queueName, String routingKey) {
-        this.createExchange(exchangName);
-        this.createQueue(queueName);
-        this.bindExchange(exchangName, routingKey, queueName);
-        return true;
-    }
-
-    /**
-     * 鍏堝皢闇�瑕佸垱寤虹殑闃熷垪寤哄ソ
-     */
-    @Bean
-    public void createMq() {
-        createRabbitMq("phone_exchange", "ob_queue", "phone.ob1");
-        createRabbitMq("phone_exchange", "task_queue", "phone.123");
-    }
-
-}
diff --git a/smartor/src/main/java/com/smartor/config/RabbitMqConfig.java b/smartor/src/main/java/com/smartor/config/RabbitMqConfig.java
deleted file mode 100644
index e621e62..0000000
--- a/smartor/src/main/java/com/smartor/config/RabbitMqConfig.java
+++ /dev/null
@@ -1,57 +0,0 @@
-//package com.smartor.config;
-//
-//import org.springframework.amqp.core.*;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//
-//import java.util.HashMap;
-//import java.util.Map;
-//
-////@Configuration
-//public class RabbitMqConfig {
-//
-////瀹氫箟寤惰繜闃熷垪
-//    public static final String phone_queue = "phone_queue";
-//    //瀹氫箟寤惰繜浜ゆ崲鏈�
-//    public static final String phone_exchange = "phone_exchange";
-//    //瀹氫箟璺敱閿�
-//    public static final String routing_key = "phone.123";
-//
-//
-//    /**
-//     * 瀹氫箟寤惰繜闃熷垪
-//     *
-//     * @return
-//     */
-//    @Bean
-//    public Queue delayQueue() {
-//        return new Queue(phone_queue, true);
-//    }
-//
-//    /**
-//     * 寤舵椂闃熷垪浜ゆ崲鏈�
-//     * 浜ゆ崲鏈虹被鍨嬶細CustomExchange
-//     *
-//     * @return
-//     */
-//    @Bean
-//    public CustomExchange delayExchange() {
-//        Map<String, Object> args = new HashMap<>();
-//        args.put("x-delayed-type", "topic");
-//        return new CustomExchange(phone_exchange, "x-delayed-message", true, false, args);
-//    }
-//
-//    /**
-//     * 涓哄欢杩熼槦鍒楃粦瀹氫氦鎹㈡満
-//     *
-//     * @param queue
-//     * @param exchange
-//     * @return
-//     */
-//    @Bean
-//    public Binding delayBinding(Queue queue, CustomExchange exchange) {
-//        return BindingBuilder.bind(queue).to(exchange).with(routing_key).noargs();
-//    }
-//
-//}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java b/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java
index 21c719f..9780206 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java
@@ -158,4 +158,34 @@
      */
     @ApiModelProperty(value = "鏄惁瀛樺湪鎿嶄綔锛�1 鏂板 2淇敼 3鍒犻櫎")
     private Integer isoperation;
+
+    /**
+     * 閫夐」鎻忚堪
+     */
+    @ApiModelProperty(value = "閫夐」鎻忚堪")
+    private String optiondesc;
+
+    /**
+     * 棰勮鏍囪瘑
+     */
+    @ApiModelProperty(value = "棰勮鏍囪瘑")
+    private Long isabnormal;
+
+    /**
+     * 棰勮闃�鍊间笂闄愶紝閽堝鏁板�煎瀷鎸囨爣绫诲瀷
+     */
+    @ApiModelProperty(value = "棰勮闃�鍊间笂闄愶紝閽堝鏁板�煎瀷鎸囨爣绫诲瀷")
+    private Long warnup;
+
+    /**
+     * 棰勮闃�鍊间笂闄愶紝閽堝鏁板�煎瀷鎸囨爣绫诲瀷
+     */
+    @ApiModelProperty(value = "棰勮闃�鍊间笅闄愶紝閽堝鏁板�煎瀷鎸囨爣绫诲瀷")
+    private Long warndown;
+
+    /**
+     * 閫夐」鍥剧墖璺緞
+     */
+    @ApiModelProperty(value = "閫夐」鍥剧墖璺緞")
+    private String picturePath;
 }
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
index 1a2cc6d..7d65022 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
@@ -1,5 +1,6 @@
 package com.smartor.domain;
 
+import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
@@ -170,6 +171,11 @@
     @Excel(name = "閫傜敤鏂瑰紡")
     @ApiModelProperty(value = "閫傜敤鏂瑰紡")
     private String suitWay;
+
+    @Excel(name = "閫傜敤鏂瑰紡(澶氶��)")
+    @ApiModelProperty(value = "閫傜敤鏂瑰紡(澶氶��)")
+    private List<String> suitWayList;
+
     /**
      * pageNum
      */
diff --git a/smartor/src/main/java/com/smartor/domain/IvrTask.java b/smartor/src/main/java/com/smartor/domain/IvrTask.java
index 5a8795d..31f92f8 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrTask.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrTask.java
@@ -248,7 +248,7 @@
      * 鍙戦�佺被鍨�: 1鎸囧畾鏃堕棿鍙戦�� 2鍗冲埢鍙戦��
      */
     @Excel(name = " 鍙戦�佺被鍨�: 1鎸囧畾鏃堕棿鍙戦�� 2鍗冲埢鍙戦�� ")
-    @ApiModelProperty(value = "鍙戦�佺被鍨�: 1鎸囧畾鏃堕棿鍙戦�� 2鍗冲埢鍙戦�� ")
+    @ApiModelProperty(value = "鍙戦�佺被鍨�: 1鎸囧畾鏃堕棿鍙戦�� 2鍗冲埢鍙戦�� 3鏃堕棿鐐�")
     private Long sendType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SendTaskVO.java b/smartor/src/main/java/com/smartor/domain/SendTaskVO.java
index 56b67a8..4e6000a 100644
--- a/smartor/src/main/java/com/smartor/domain/SendTaskVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SendTaskVO.java
@@ -16,7 +16,7 @@
     @ApiModelProperty(value = "浠诲姟ID")
     private Long taskId;
 
-    @ApiModelProperty(value = "鍙戦�佺被鍨�: 1 鏃堕棿娈�   2 鍗冲埢鍙戦��")
+    @ApiModelProperty(value = "鍙戦�佺被鍨�: 1 鏃堕棿娈�   2 鍗冲埢鍙戦�� 3 鏃堕棿鐐�")
     private String sendType;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java b/smartor/src/main/java/com/smartor/domain/SvyLibScript.java
similarity index 85%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTopic.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibScript.java
index 24fb1c9..467a478 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopic.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScript.java
@@ -4,31 +4,28 @@
 import java.util.Date;
 import java.util.List;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
- * 闂嵎棰樼洰瀵硅薄 svy_lib_topic
+ * 闂嵎棰樼洰瀵硅薄 svy_lib_script
  *
  * @author ruoyi
  * @date 2023-03-03
  */
 @Data
-@ApiModel(value = "SvyLibTopic", description = "闂嵎棰樼洰瀵硅薄")
-public class SvyLibTopic extends BaseEntity {
+@ApiModel(value = "SvyLibScript", description = "闂嵎棰樼洰瀵硅薄")
+public class SvyLibScript extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
      * 鑷ID
      */
     @ApiModelProperty("鑷ID")
-    private Long topicid;
+    private Long id;
 
     /**
      * 鑰佺増鏈琁D
@@ -54,20 +51,20 @@
      */
     @Excel(name = " 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖ ")
     @ApiModelProperty("棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖")
-    private String topictype = "";
+    private String scripttype = "";
 
     /**
      * 棰樼洰Code
      */
     @ApiModelProperty("棰樼洰Code")
-    private String topiccode;
+    private String scriptcode;
 
     /**
      * 棰樼洰
      */
     @Excel(name = " 棰樼洰 ")
     @ApiModelProperty("棰樼洰")
-    private String topic;
+    private String script;
 
     /**
      * 鎺掑簭
@@ -122,16 +119,16 @@
 
 
     /**
-     * svy_topic棰樼洰琛ㄧ殑涓婚敭ID
+     * svy_script棰樼洰琛ㄧ殑涓婚敭ID
      */
     @ApiModelProperty("棰樼洰琛ㄧ殑涓婚敭ID")
-    private Long svyTopicId;
+    private Long svyscriptId;
 
     /**
      * 棰樼洰鍐呭
      */
     @ApiModelProperty("棰樼洰鍐呭")
-    private String topicContent;
+    private String scriptContent;
 
     /**
      * 閫傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3
@@ -164,7 +161,7 @@
     private Integer isoperation;
 
     @ApiModelProperty("闂閫夐」")
-    private List<SvyLibTopicoption> svyLibTopicoptions = new ArrayList<>();
+    private List<SvyLibScriptOption> svyLibScriptOptions = new ArrayList<>();
 
     /**
      * 鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopicCategory.java b/smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java
similarity index 91%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTopicCategory.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java
index f8ae75d..ee480f7 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopicCategory.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java
@@ -15,8 +15,8 @@
  * @date 2023-12-27
  */
 @Data
-@ApiModel(value = "SvyLibTopicCategory", description = "闂嵎棰樼洰鍒嗙被瀵硅薄")
-public class SvyLibTopicCategory extends BaseEntity {
+@ApiModel(value = "SvyLibScriptCategory", description = "闂嵎棰樼洰鍒嗙被瀵硅薄")
+public class SvyLibScriptCategory extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopicCategoryVO.java b/smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java
similarity index 85%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTopicCategoryVO.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java
index 1b51d7b..10ee4d7 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopicCategoryVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java
@@ -16,8 +16,8 @@
  * @date 2023-12-27
  */
 @Data
-@ApiModel(value = "SvyLibTopicCategoryVO", description = "闂嵎棰樼洰鍒嗙被瀵硅薄")
-public class SvyLibTopicCategoryVO extends BaseEntity {
+@ApiModel(value = "SvyLibScriptCategoryVO", description = "闂嵎棰樼洰鍒嗙被瀵硅薄")
+public class SvyLibScriptCategoryVO extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
@@ -72,6 +72,6 @@
      * 瀛愬璞�
      */
     @ApiModelProperty("瀛愬璞¢泦")
-    private List<SvyLibTopicCategory> svyLibTopicCategoryList = new ArrayList<>();
+    private List<SvyLibScriptCategory> svyLibScriptCategoryList = new ArrayList<>();
 
 }
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopicoption.java b/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
similarity index 93%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTopicoption.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
index 84fdfde..af5dd72 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopicoption.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
@@ -6,8 +6,6 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -18,8 +16,8 @@
  * @date 2023-03-02
  */
 @Data
-@ApiModel(value = "SvyLibTopicoption", description = "闂嵎闂閫夐」瀵硅薄")
-public class SvyLibTopicoption extends BaseEntity {
+@ApiModel(value = "SvyLibScriptOption", description = "闂嵎闂閫夐」瀵硅薄")
+public class SvyLibScriptOption extends BaseEntity {
 
     /**
      * 鑷ID
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTopicRes.java b/smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java
similarity index 95%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTopicRes.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java
index 5d588c4..978ae3b 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTopicRes.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java
@@ -13,8 +13,8 @@
  * @date 2023-03-03
  */
 @Data
-@ApiModel(value = "SvyLibTopicRes", description = "闂嵎棰樼洰杩斿弬")
-public class SvyLibTopicRes extends BaseEntity {
+@ApiModel(value = "SvyLibScriptRes", description = "闂嵎棰樼洰杩斿弬")
+public class SvyLibScriptRes extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
similarity index 92%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
index d2170c9..6a90b67 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
@@ -9,20 +9,18 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
- * 闂嵎瀵硅薄 svy_lib_title
+ * 闂嵎瀵硅薄 svy_lib_Template
  *
  * @author ruoyi
  * @date 2023-03-02
  */
 @Data
-@ApiModel(value = "SvyLibTitle", description = "闂嵎瀵硅薄")
-public class SvyLibTitle extends BaseEntity {
+@ApiModel(value = "SvyLibTemplate", description = "闂嵎瀵硅薄")
+public class SvyLibTemplate extends BaseEntity {
 
     /**
      * 鑷ID
@@ -159,7 +157,7 @@
      * 闂嵎棰樼洰闆嗗悎
      */
     @ApiModelProperty(value = "闂嵎棰樼洰闆嗗悎")
-    private List<SvyLibTopic> svyLibTopics;
+    private List<SvyLibScript> svyLibTopics;
 
     /**
      * 妯℃澘绉戝鍏宠仈闆嗗悎
@@ -219,10 +217,10 @@
     private String reply;
 
 
-    public SvyLibTitle() {
+    public SvyLibTemplate() {
     }
 
-    public SvyLibTitle(Long svyid, String icdname) {
+    public SvyLibTemplate(Long svyid, String icdname) {
         this.svyid = svyid;
         this.icdname = icdname;
     }
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitleCategory.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java
similarity index 87%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTitleCategory.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java
index 84982e1..ad0fc9e 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitleCategory.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java
@@ -9,14 +9,14 @@
 import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
- * 闂嵎妯℃澘鍒嗙被瀵硅薄 svy_lib_title_category
+ * 闂嵎妯℃澘鍒嗙被瀵硅薄 svy_lib_Template_category
  *
  * @author ruoyi
  * @date 2023-12-27
  */
 @Data
-@ApiModel(value = "SvyLibTitleCategory", description = "闂嵎妯℃澘鍒嗙被瀵硅薄")
-public class SvyLibTitleCategory extends BaseEntity {
+@ApiModel(value = "SvyLibTemplateCategory", description = "闂嵎妯℃澘鍒嗙被瀵硅薄")
+public class SvyLibTemplateCategory extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitleCategoryVO.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java
similarity index 80%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTitleCategoryVO.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java
index 790799f..8862734 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitleCategoryVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java
@@ -10,14 +10,14 @@
 import java.util.List;
 
 /**
- * 闂嵎妯℃澘鍒嗙被瀵硅薄 svy_lib_title_category
+ * 闂嵎妯℃澘鍒嗙被瀵硅薄 svy_lib_Template_category
  *
  * @author ruoyi
  * @date 2023-12-27
  */
 @Data
-@ApiModel(value = "SvyLibTitleCategory", description = "闂嵎妯℃澘鍒嗙被瀵硅薄")
-public class SvyLibTitleCategoryVO extends BaseEntity {
+@ApiModel(value = "SvyLibTemplateCategory", description = "闂嵎妯℃澘鍒嗙被瀵硅薄")
+public class SvyLibTemplateCategoryVO extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
@@ -61,5 +61,5 @@
     private Long orgid;
 
     @ApiModelProperty(value = "鏍戠殑瀛愬璞¢泦鍚�")
-    private List<SvyLibTitleCategory> svyLibTitleCategoryList = new ArrayList<>();
+    private List<SvyLibTemplateCategory> svyLibTemplateCategoryList = new ArrayList<>();
 }
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitleReq.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
similarity index 87%
rename from smartor/src/main/java/com/smartor/domain/SvyLibTitleReq.java
rename to smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
index 34208cc..822b981 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitleReq.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
@@ -13,14 +13,14 @@
 import java.util.Date;
 
 /**
- * 闂嵎璇锋眰 svy_lib_title
+ * 闂嵎璇锋眰 svy_lib_Template
  *
  * @author ruoyi
  * @date 2023-03-02
  */
 @Data
-@ApiModel(value = "SvyLibTitleReq", description = "闂嵎璇锋眰")
-public class SvyLibTitleReq {
+@ApiModel(value = "SvyLibTemplateReq", description = "闂嵎璇锋眰")
+public class SvyLibTemplateReq {
 
     /**
      * 闂嵎鍒嗙被ID
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTask.java b/smartor/src/main/java/com/smartor/domain/SvyTask.java
new file mode 100644
index 0000000..9f38e05
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SvyTask.java
@@ -0,0 +1,256 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 缁煎悎闂嵎浠诲姟锛堜换鍔★級瀵硅薄 svy_task
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Data
+public class SvyTask extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @ApiModelProperty(value = "浠诲姟ID")
+    private Long taskid;
+
+    /**
+     * 鎮h�呮湇鍔′换鍔d
+     */
+    @Excel(name = "鎮h�呮湇鍔′换鍔d")
+    @ApiModelProperty(value = "鎮h�呮湇鍔′换鍔d")
+    private Long svrtaskid;
+
+    /**
+     *
+     */
+    @Excel(name = "  ")
+    @ApiModelProperty(value = "浠诲姟鍚嶇О")
+    private String taskname;
+
+    /**
+     * 妯℃澘ID
+     */
+    @Excel(name = "  妯℃澘ID")
+    @ApiModelProperty(value = "妯℃澘ID")
+    private String templateid;
+
+    /**
+     * 妯℃澘鍚嶇О
+     */
+    @Excel(name = "  妯℃澘鍚嶇О")
+    @ApiModelProperty(value = "妯℃澘鍚嶇О")
+    private String templatename;
+
+    /**
+     * 鏍囩淇℃伅
+     */
+    @Excel(name = "  鏍囩淇℃伅")
+    @ApiModelProperty(value = "鏍囩淇℃伅")
+    private String labelinfo;
+
+    /**
+     * 鐘舵��
+     */
+    @Excel(name = "  鐘舵��")
+    @ApiModelProperty(value = "鐘舵��")
+    private Long state;
+
+    /**
+     * 鏁伴噺
+     */
+    @Excel(name = "  鏁伴噺")
+    @ApiModelProperty(value = "鏁伴噺")
+    private Long count;
+
+    /**
+     * 鎵ц
+     */
+    @Excel(name = "  鎵ц")
+    @ApiModelProperty(value = "鎵ц")
+    private Long executed;
+
+    /**
+     * 涓嶆墽琛�
+     */
+    @Excel(name = "  涓嶆墽琛�")
+    @ApiModelProperty(value = "涓嶆墽琛�")
+    private Long unexecuted;
+
+    /**
+     * 鏄惁澶辫触
+     */
+    @Excel(name = "  鏄惁澶辫触")
+    @ApiModelProperty(value = "鏄惁澶辫触")
+    private Long fail;
+
+    /**
+     * 鎮h�匢D
+     */
+    @Excel(name = "  鎮h�匢D")
+    @ApiModelProperty(value = "鎮h�匢D")
+    private String patientid;
+
+    /**
+     * 鎮h�呭悕绉�
+     */
+    @Excel(name = "  鎮h�呭悕绉�")
+    @ApiModelProperty(value = "鎮h�呭悕绉�")
+    private String patientname;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鏂板鏃堕棿")
+    private Date addtime;
+
+    /**
+     * 瀹℃牳浜篿d
+     */
+    @Excel(name = "  瀹℃牳浜篿d")
+    @ApiModelProperty(value = "瀹℃牳浜篿d")
+    private String checkuserid;
+
+    /**
+     * 瀹℃牳浜�
+     */
+    @Excel(name = "  瀹℃牳浜�")
+    @ApiModelProperty(value = "瀹℃牳浜�")
+    private String checkusername;
+
+    /**
+     *
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "瀹℃牳鏃堕棿")
+    private Date checktime;
+
+    /**
+     * 1锛屽嚭闄㈤殢璁匡紱2锛屼綋妫�閫氱煡锛�3锛屾弧鎰忓害璋冩煡锛�4锛屽鏁欙紱
+     */
+    @Excel(name = " 1锛屽嚭闄㈤殢璁匡紱2锛屼綋妫�閫氱煡锛�3锛屾弧鎰忓害璋冩煡锛�4锛屽鏁欙紱 ")
+    @ApiModelProperty(value = "鍑洪櫌闅忚锛�2锛屼綋妫�閫氱煡锛�3锛屾弧鎰忓害璋冩煡锛�4锛屽鏁欙紱")
+    private String type;
+
+    /**
+     * 绫诲瀷鍚嶇О
+     */
+    @Excel(name = "  绫诲瀷鍚嶇О")
+    @ApiModelProperty(value = "绫诲瀷鍚嶇О")
+    private String typename;
+
+    /**
+     * 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊
+     */
+    @Excel(name = " 0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊 ")
+    @ApiModelProperty(value = "0.涓嶄娇鐢ㄦ挱鍓嶇煭淇� 1.浣跨敤鎾墠鐭俊")
+    private Long usebqsms;
+
+    /**
+     * 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊
+     */
+    @Excel(name = " 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊 ")
+    @ApiModelProperty(value = " 0.涓嶄娇鐢ㄦ挱鍚庣煭淇� 1.浣跨敤鎾墠鐭俊")
+    private Long usebhsms;
+
+    /**
+     *
+     */
+    @Excel(name = "  ")
+    @ApiModelProperty(value = "")
+    private Long usesendsms;
+
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code")
+    private String deptcode;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private String delFlag;
+
+    /**
+     * 涓婁紶鏍囪
+     */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    @ApiModelProperty(value = "涓婁紶鏍囪")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @Excel(name = " 鏈烘瀯ID ")
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String orgid;
+
+    /**
+     * 鐖禝D
+     */
+    @Excel(name = "鐖禝D")
+    @ApiModelProperty(value = "鐖禝D")
+    private Long pid;
+
+    /**
+     * GUID
+     */
+    @Excel(name = "GUID")
+    @ApiModelProperty(value = "GUID")
+    private String guid;
+
+    /**
+     * 浠诲姟褰㈠紡 1,澶氬獟浣�   2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴�  7.鏀粯瀹�  8.鏅鸿兘灏忕▼搴�  9.閽夐拤
+     */
+    @Excel(name = " 浠诲姟褰㈠紡 1,澶氬獟浣�   2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴�  7.鏀粯瀹�  8.鏅鸿兘灏忕▼搴�  9.閽夐拤")
+    @ApiModelProperty(value = "浠诲姟褰㈠紡 1,澶氬獟浣�   2,绾歌川  3,鐢佃瘽  4,鐭俊  5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴�  7.鏀粯瀹�  8.鏅鸿兘灏忕▼搴�  9.閽夐拤")
+    private String preachform;
+
+    /**
+     * 鏄惁鍙戦�� 锛� 0 鏆傚仠鍙戦��  1 瀹氭椂鍙戦��  2 绔嬪嵆鍙戦��
+     */
+    @Excel(name = "鏄惁鍙戦�� 锛� 0 鏆傚仠鍙戦��  1 瀹氭椂鍙戦��  2 绔嬪嵆鍙戦��  ")
+    @ApiModelProperty(value = "鏄惁鍙戦�� 锛� 0 鏆傚仠鍙戦��  1 瀹氭椂鍙戦��  2 绔嬪嵆鍙戦��")
+    private Long isSend;
+
+    /**
+     * 鍙戦�佺姸鎬侊細  0  澶辫触   1鎴愬姛
+     */
+    @Excel(name = "鍙戦�佺姸鎬侊細  0  澶辫触   1鎴愬姛")
+    @ApiModelProperty(value = "鍙戦�佺姸鎬侊細  0  澶辫触   1鎴愬姛")
+    private String sendState;
+
+    /**
+     * 鏂囨湰鍙橀噺鍙傛暟
+     */
+    @Excel(name = "鏂囨湰鍙橀噺鍙傛暟")
+    @ApiModelProperty(value = "鏂囨湰鍙橀噺鍙傛暟")
+    private String param;
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java b/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
new file mode 100644
index 0000000..76ec335
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
@@ -0,0 +1,183 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 浠诲姟闂嵎棰樼洰瀵硅薄 svy_task_script
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Data
+public class SvyTaskScript extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷ID
+     */
+    @ApiModelProperty(value = "涓婚敭")
+    private Long id;
+
+    /**
+     * 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖
+     */
+    @Excel(name = " 棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖ ")
+    @ApiModelProperty(value = "棰樼洰绫诲瀷;鏋氫妇 1.鍗曢�� 2澶氶�� 3濉┖")
+    private Long scriptType;
+
+    /**
+     * 棰樼洰Code
+     */
+    @Excel(name = " 棰樼洰Code ")
+    @ApiModelProperty(value = "棰樼洰Code")
+    private String scriptCode;
+
+    /**
+     * 棰樼洰鏂囨湰
+     */
+    @Excel(name = " 棰樼洰鏂囨湰")
+    @ApiModelProperty(value = "棰樼洰鏂囨湰")
+    private String script;
+
+    /**
+     * 棰樼洰鏍囩
+     */
+    @Excel(name = "棰樼洰鏍囩")
+    @ApiModelProperty(value = "棰樼洰鏍囩")
+    private String tag;
+
+    /**
+     * 棰樼洰搴忓彿
+     */
+    @Excel(name = " 棰樼洰搴忓彿")
+    @ApiModelProperty(value = "棰樼洰搴忓彿")
+    private Long sort;
+
+    /**
+     * 鏄惁蹇呭~
+     */
+    @Excel(name = " 鏄惁蹇呭~ ")
+    @ApiModelProperty(value = "鏄惁蹇呭~")
+    private Long ismandatory;
+
+    /**
+     * 鏄惁闅愯棌
+     */
+    @Excel(name = " 鏄惁闅愯棌 ")
+    @ApiModelProperty(value = "鏄惁闅愯棌")
+    private Long ishide;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private String delFlag;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @Excel(name = " 鏈烘瀯ID ")
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String orgid;
+
+    /**
+     * 涓婁紶鏍囪
+     */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    @ApiModelProperty(value = "涓婁紶鏍囪")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 绛旀
+     */
+    @Excel(name = "绛旀")
+    @ApiModelProperty(value = "绛旀")
+    private String answer;
+
+    /**
+     * 鐖禝D
+     */
+    @Excel(name = "鐖禝D")
+    @ApiModelProperty(value = "鐖禝D")
+    private Long pid;
+
+    /**
+     * GUID
+     */
+    @Excel(name = "GUID")
+    @ApiModelProperty(value = "GUID")
+    private String guid;
+
+    /**
+     * 浠诲姟id
+     */
+    @Excel(name = "浠诲姟id")
+    @ApiModelProperty(value = "浠诲姟id")
+    private Long taskid;
+
+    /**
+     * 閫夐」鎻忚堪
+     */
+    @Excel(name = "閫夐」鎻忚堪")
+    @ApiModelProperty(value = "閫夐」鎻忚堪")
+    private String optiondesc;
+
+    /**
+     * 涓嬩竴涓鐩甀D
+     */
+    @Excel(name = "涓嬩竴涓鐩甀D")
+    @ApiModelProperty(value = "涓嬩竴涓鐩甀D")
+    private Long nexttopicid;
+
+    /**
+     * 涓嬩竴涓鐩簭鍙�
+     */
+    @Excel(name = "涓嬩竴涓鐩簭鍙�")
+    @ApiModelProperty(value = "涓嬩竴涓鐩簭鍙�")
+    private Long nexttopicsort;
+
+    /**
+     * 鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�
+     */
+    @Excel(name = "鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�")
+    @ApiModelProperty(value = "鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�")
+    private String scoretype;
+
+    /**
+     * 棰樼洰鍒嗗�硷細鏁板瓧1,2绛夛紱瀛楁瘝A銆丅锛孋锛孌绛夛紱
+     */
+    @Excel(name = "棰樼洰鍒嗗�硷細鏁板瓧1,2绛夛紱瀛楁瘝A銆丅锛孋锛孌绛夛紱")
+    @ApiModelProperty(value = " 棰樼洰鍒嗗�硷細鏁板瓧1,2绛夛紱瀛楁瘝A銆丅锛孋锛孌绛夛紱")
+    private String score;
+
+    /**
+     * 棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�
+     */
+    @Excel(name = "棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�")
+    @ApiModelProperty(value = "棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�")
+    private String showtype;
+
+    /**
+     * 棰樼洰鍥剧墖璺緞
+     */
+    @Excel(name = "棰樼洰鍥剧墖璺緞")
+    @ApiModelProperty(value = "棰樼洰鍥剧墖璺緞")
+    private String picturePath;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java b/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
new file mode 100644
index 0000000..61cba79
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
@@ -0,0 +1,282 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」瀵硅薄 svy_task_scriptoption
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Data
+public class SvyTaskScriptoption extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷ID
+     */
+    @ApiModelProperty(value = "涓婚敭")
+    private Long id;
+
+    /**
+     * 棰樼洰ID
+     */
+    @Excel(name = " 棰樼洰ID ")
+    @ApiModelProperty(value = "棰樼洰ID")
+    private Long taskScriptId;
+
+    /**
+     * 闂嵎ID
+     */
+    @Excel(name = " 闂嵎ID ")
+    @ApiModelProperty(value = "闂嵎ID")
+    private Long svyid;
+
+    /**
+     * 棰樼洰绫诲瀷
+     */
+    @Excel(name = " 棰樼洰绫诲瀷 ")
+    @ApiModelProperty(value = "棰樼洰绫诲瀷")
+    private Long scriptType;
+
+    /**
+     * 閫夐」Code
+     */
+    @Excel(name = " 閫夐」Code ")
+    @ApiModelProperty(value = "閫夐」Code")
+    private String optioncode;
+
+    /**
+     * 閫夐」鍐呭
+     */
+    @Excel(name = " 閫夐」鍐呭 ")
+    @ApiModelProperty(value = "閫夐」鍐呭")
+    private String optioncontent;
+
+    /**
+     * 閫夐」鏍囩
+     */
+    @Excel(name = "閫夐」鏍囩")
+    @ApiModelProperty(value = "閫夐」鏍囩")
+    private String tag;
+
+    /**
+     * 鏄惁瀛樺湪鏄庣粏
+     */
+    @Excel(name = " 鏄惁瀛樺湪鏄庣粏 ")
+    @ApiModelProperty(value = "鏄惁瀛樺湪鏄庣粏")
+    private Long isexistdetail;
+
+    /**
+     * 鏄庣粏鏄惁蹇呭~
+     */
+    @Excel(name = " 鏄庣粏鏄惁蹇呭~ ")
+    @ApiModelProperty(value = "鏄庣粏鏄惁蹇呭~")
+    private Long detailismandatory;
+
+    /**
+     * 鏄惁寮傚父椤圭洰
+     */
+    @Excel(name = " 鏄惁寮傚父椤圭洰 ")
+    @ApiModelProperty(value = "鏄惁寮傚父椤圭洰")
+    private Long isexceptionitem;
+
+    /**
+     * 鏄惁璺熻繘
+     */
+    @Excel(name = " 鏄惁璺熻繘 ")
+    @ApiModelProperty(value = "鏄惁璺熻繘")
+    private Long istrack;
+
+    /**
+     * 鏄惁鍏佽闄勫姞褰曞叆
+     */
+    @Excel(name = "鏄惁鍏佽闄勫姞褰曞叆")
+    @ApiModelProperty(value = "鏄惁鍏佽闄勫姞褰曞叆")
+    private Long withadditional;
+
+    /**
+     * 鍒嗘暟
+     */
+    @Excel(name = " 鍒嗘暟 ")
+    @ApiModelProperty(value = "鍒嗘暟")
+    private Long score;
+
+    /**
+     * 鎻愮ず
+     */
+    @Excel(name = " 鎻愮ず ")
+    @ApiModelProperty(value = "鎻愮ず")
+    private String prompt;
+
+    /**
+     * 璺宠浆
+     */
+    @Excel(name = " 璺宠浆 ")
+    @ApiModelProperty(value = "璺宠浆")
+    private String jump;
+
+    /**
+     * 鐖堕�夐」ID
+     */
+    @Excel(name = " 鐖堕�夐」ID ")
+    @ApiModelProperty(value = "鐖堕�夐」ID")
+    private Long parentoptionid;
+
+    /**
+     * 鏄惁浜掓枼
+     */
+    @Excel(name = " 鏄惁浜掓枼 ")
+    @ApiModelProperty(value = "鏄惁浜掓枼")
+    private Long ismutex;
+
+    /**
+     * 楠岃瘉瑙勫垯
+     */
+    @Excel(name = " 楠岃瘉瑙勫垯 ")
+    @ApiModelProperty(value = "楠岃瘉瑙勫垯")
+    private String verifyrule;
+
+    /**
+     * 鎺掑簭
+     */
+    @Excel(name = " 鎺掑簭 ")
+    @ApiModelProperty(value = "鎺掑簭")
+    private Long sort;
+
+    /**
+     * 楠岃瘉绫诲瀷;0.涓嶉獙璇� 1.鏁存暟 2.灏忔暟 3.鎵嬫満鍙� 4.韬唤璇� 5.鏃ユ湡
+     */
+    @Excel(name = " 楠岃瘉绫诲瀷;0.涓嶉獙璇� 1.鏁存暟 2.灏忔暟 3.鎵嬫満鍙� 4.韬唤璇� 5.鏃ユ湡 ")
+    @ApiModelProperty(value = "楠岃瘉绫诲瀷;0.涓嶉獙璇� 1.鏁存暟 2.灏忔暟 3.鎵嬫満鍙� 4.韬唤璇� 5.鏃ユ湡")
+    private Long verificationtype;
+
+    /**
+     * 鏄惁闄愬埗鑼冨洿
+     */
+    @Excel(name = " 鏄惁闄愬埗鑼冨洿 ")
+    @ApiModelProperty(value = "鏄惁闄愬埗鑼冨洿")
+    private Long isrange;
+
+    /**
+     * 鏈�灏忚寖鍥�
+     */
+    @Excel(name = " 鏈�灏忚寖鍥� ")
+    @ApiModelProperty(value = "鏈�灏忚寖鍥�")
+    private String minrange;
+
+    /**
+     * 鏈�澶ц寖鍥�
+     */
+    @Excel(name = " 鏈�澶ц寖鍥� ")
+    @ApiModelProperty(value = "鏈�澶ц寖鍥�")
+    private String maxrange;
+
+    /**
+     * 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟
+     */
+    @Excel(name = " 鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 ")
+    @ApiModelProperty(value = "鑼冨洿闀垮害;鐢ㄤ簬灏忔暟淇濈暀浣嶆暟 ")
+    private Long rangelength;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @Excel(name = " 鏈烘瀯ID ")
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String orgid;
+
+    /**
+     * 涓婁竴鐗堟湰ID
+     */
+    @Excel(name = " 涓婁竴鐗堟湰ID ")
+    @ApiModelProperty(value = "涓婁竴鐗堟湰ID")
+    private Long oldid;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private String delFlag;
+
+    /**
+     * 涓婁紶鏍囪
+     */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    @ApiModelProperty(value = "涓婁紶鏍囪")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 鐖禝D
+     */
+    @Excel(name = "鐖禝D")
+    @ApiModelProperty(value = "鐖禝D")
+    private Long pid;
+
+    /**
+     * GUID
+     */
+    @Excel(name = "GUID")
+    @ApiModelProperty(value = "GUID")
+    private String guid;
+
+    /**
+     * 浠诲姟ID
+     */
+    @Excel(name = "浠诲姟ID")
+    @ApiModelProperty(value = "浠诲姟ID")
+    private Long taskid;
+
+    /**
+     * 涓嬩竴涓鐩甀D
+     */
+    @Excel(name = "涓嬩竴涓鐩甀D")
+    @ApiModelProperty(value = "涓嬩竴涓鐩甀D")
+    private Long nexttopicid;
+
+    /**
+     * 涓嬩竴涓鐩簭鍙�
+     */
+    @Excel(name = "涓嬩竴涓鐩簭鍙�")
+    @ApiModelProperty(value = "涓嬩竴涓鐩簭鍙�")
+    private Long nexttopicsort;
+
+    /**
+     * 鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�
+     */
+    @Excel(name = "鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�")
+    @ApiModelProperty(value = "鍒嗗�肩被鍨嬶細1锛氭暟瀛楋紝2锛氱瓑绾�")
+    private String scoretype;
+
+    /**
+     * 棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�
+     */
+    @Excel(name = "棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�")
+    @ApiModelProperty(value = "棰樼洰鍐呭灞曠ず绫诲瀷锛�1锛氭枃鏈紝2锛氬浘锛�3锛氳闊筹紝4锛氳棰�")
+    private String showtype;
+
+    /**
+     * 棰樼洰鍥剧墖璺緞
+     */
+    @Excel(name = "棰樼洰鍥剧墖璺緞")
+    @ApiModelProperty(value = "棰樼洰鍥剧墖璺緞")
+    private String picturePath;
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskSingle.java b/smartor/src/main/java/com/smartor/domain/SvyTaskSingle.java
new file mode 100644
index 0000000..2688a6b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskSingle.java
@@ -0,0 +1,447 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 鍗曚竴浠诲姟锛堥棶鍗凤級瀵硅薄 svy_task_single
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Data
+public class SvyTaskSingle extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 璁板綍鍏抽敭鍊糏D
+     */
+    @ApiModelProperty(value = "涓婚敭")
+    private Long id;
+
+    /**
+     * 鍙戦�佷汉 锛堟偅鑰咃級
+     */
+    @Excel(name = " 鍙戦�佷汉 ", readConverterExp = "鎮�=鑰�")
+    @ApiModelProperty(value = "鍙戦�佷汉 锛堟偅鑰咃級")
+    private String sendname;
+
+    /**
+     * 鎵嬫満鍙�
+     */
+    @Excel(name = " 鎵嬫満鍙� ")
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
+    /**
+     * 鎬у埆
+     */
+    @Excel(name = "  鎬у埆")
+    @ApiModelProperty(value = "鎬у埆")
+    private String sex;
+
+    /**
+     * 骞撮緞
+     */
+    @Excel(name = " 骞撮緞 ")
+    @ApiModelProperty(value = "骞撮緞")
+    private Long age;
+
+    /**
+     * 韬唤璇佸彿
+     */
+    @Excel(name = " 韬唤璇佸彿 ")
+    @ApiModelProperty(value = "韬唤璇佸彿")
+    private String sfzh;
+
+    /**
+     * 鍦板潃
+     */
+    @Excel(name = " 鍦板潃 ")
+    @ApiModelProperty(value = "鍦板潃")
+    private String addr;
+
+    /**
+     * 鍙戦�佷汉璇︽儏
+     */
+    @Excel(name = "  鍙戦�佷汉璇︽儏")
+    @ApiModelProperty(value = "鍙戦�佷汉璇︽儏")
+    private String senderdetail;
+
+    /**
+     * 浠诲姟绫诲瀷(0閫氱煡銆�1瀹f暀銆�2闂ㄨ瘖銆�3鍑洪櫌銆�4澶嶈瘖銆�5浣撴銆�6闂嵎銆�7鍖绘妧鈥︹��)
+     */
+    @Excel(name = "浠诲姟绫诲瀷(0閫氱煡銆�1瀹f暀銆�2闂ㄨ瘖銆�3鍑洪櫌銆�4澶嶈瘖銆�5浣撴銆�6闂嵎銆�7鍖绘妧鈥︹��)")
+    @ApiModelProperty(value = "浠诲姟绫诲瀷(0閫氱煡銆�1瀹f暀銆�2闂ㄨ瘖銆�3鍑洪櫌銆�4澶嶈瘖銆�5浣撴銆�6闂嵎銆�7鍖绘妧鈥︹��)")
+    private String type;
+
+    /**
+     * 浠诲姟ID
+     */
+    @Excel(name = " 浠诲姟ID ")
+    @ApiModelProperty(value = "浠诲姟ID")
+    private Long taskid;
+
+    /**
+     * 妯℃澘ID
+     */
+    @Excel(name = "  妯℃澘ID")
+    @ApiModelProperty(value = "妯℃澘ID")
+    private String templateid;
+
+    /**
+     * 妯℃澘鍚�
+     */
+    @Excel(name = " 妯℃澘鍚� ")
+    @ApiModelProperty(value = "妯℃澘鍚�")
+    private String templatename;
+
+    /**
+     * 鍙戦�佹棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 鍙戦�佹棩鏈� ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鍙戦�佹棩鏈�")
+    private Date senddate;
+
+    /**
+     * 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "涓婂崍寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    private String sendlimitabegin;
+
+    /**
+     * 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "涓婂崍缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    private String sendlimitaend;
+
+    /**
+     * 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "涓嬪崍寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    private String sendlimitpbegin;
+
+    /**
+     * 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "涓嬪崍缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    private String sendlimitpend;
+
+    /**
+     * 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "鏅氫笂寮�濮嬪彂閫佹椂闂撮檺鍒�")
+    private String sendlimitnbegin;
+
+    /**
+     * 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒�
+     */
+    @Excel(name = " 鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    @ApiModelProperty(value = "鏅氫笂缁撴潫鍙戦�佹椂闂撮檺鍒�")
+    private String sendlimitnend;
+
+    /**
+     * 鍙戦�佺姸鎬� 锛�1 琚鍙�  2 寰呭彂閫�  3 宸插彂閫�
+     */
+    @Excel(name = " 鍙戦�佺姸鎬� 锛�1 琚鍙�  2 寰呭彂閫�  3 宸插彂閫�")
+    @ApiModelProperty(value = "鍙戦�佺姸鎬� 锛�1 琚鍙�  2 寰呭彂閫�  3 宸插彂閫�")
+    private Long sendstate;
+
+    /**
+     * 鍙戦�乁UID
+     */
+    @Excel(name = " 鍙戦�乁UID ")
+    @ApiModelProperty(value = "鍙戦�乁UID")
+    private String senduuid;
+
+    /**
+     * 缁撴灉
+     */
+    @Excel(name = " 缁撴灉 ")
+    @ApiModelProperty(value = "缁撴灉")
+    private String result;
+
+    /**
+     * 瀹屾垚鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 瀹屾垚鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "瀹屾垚鏃堕棿")
+    private Date finishtime;
+
+    /**
+     * 鐢ㄦ埛ID
+     */
+    @Excel(name = " 鐢ㄦ埛ID ")
+    @ApiModelProperty(value = "鐢ㄦ埛ID")
+    private String userid;
+
+    /**
+     * 鐢ㄦ埛鍚�
+     */
+    @Excel(name = " 鐢ㄦ埛鍚� ")
+    @ApiModelProperty(value = "鐢ㄦ埛鍚�")
+    private String username;
+
+    /**
+     *
+     */
+    @Excel(name = "  ")
+    @ApiModelProperty(value = "澶栧懠UUID")
+    private String outbounduuid;
+
+    /**
+     * 灏辫瘖璁板綍缂栧彿 锛堝搴斺�滄偅鑰呭嚭闄㈣褰曚富閿�濄�佲�滄偅鑰呴棬璇婅褰曚富閿�濓級
+     */
+    @Excel(name = " 灏辫瘖璁板綍缂栧彿 ", readConverterExp = "瀵�=搴斺�滄偅鑰呭嚭闄㈣褰曚富閿�濄�佲�滄偅鑰呴棬璇婅褰曚富閿��")
+    @ApiModelProperty(value = "灏辫瘖璁板綍缂栧彿 锛堝搴斺�滄偅鑰呭嚭闄㈣褰曚富閿�濄�佲�滄偅鑰呴棬璇婅褰曚富閿�濓級")
+    private Long recordid;
+
+    /**
+     * 閲嶆嫧鎬绘暟
+     */
+    @Excel(name = " 閲嶆嫧鎬绘暟 ")
+    @ApiModelProperty(value = "閲嶆嫧鎬绘暟")
+    private Long recallcount;
+
+    /**
+     * 褰撳墠閲嶆嫧娆℃暟
+     */
+    @Excel(name = " 褰撳墠閲嶆嫧娆℃暟 ")
+    @ApiModelProperty(value = "褰撳墠閲嶆嫧娆℃暟")
+    private Long exrecallcount;
+
+    /**
+     * 鎷夊彇鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 鎷夊彇鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鎷夊彇鏃堕棿")
+    private Date pulltime;
+
+    /**
+     *
+     */
+    @Excel(name = "  ")
+    @ApiModelProperty(value = "")
+    private Long bqsms;
+
+    /**
+     *
+     */
+    @Excel(name = "  ")
+    @ApiModelProperty(value = "")
+    private Long bhsms;
+
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code")
+    private String deptcode;
+
+    /**
+     * 鏍囩鐘舵��
+     */
+    @Excel(name = "  鏍囩鐘舵��")
+    @ApiModelProperty(value = "鏍囩鐘舵��")
+    private Long labelstatus;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private String delFlag;
+
+    /**
+     * 涓婁紶鏍囪
+     */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    @ApiModelProperty(value = "涓婁紶鏍囪")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @Excel(name = " 鏈烘瀯ID ")
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String orgid;
+
+    /**
+     * 鐖禝D
+     */
+    @Excel(name = "鐖禝D")
+    @ApiModelProperty(value = "鐖禝D")
+    private Long pid;
+
+    /**
+     * GUID
+     */
+    @Excel(name = "GUID")
+    @ApiModelProperty(value = "GUID")
+    private String guid;
+
+    /**
+     * 鏂囨湰鍙橀噺鍙傛暟
+     */
+    @Excel(name = "鏂囨湰鍙橀噺鍙傛暟")
+    @ApiModelProperty(value = "鏂囨湰鍙橀噺鍙傛暟")
+    private String textParam;
+
+    /**
+     * 1,鐭俊銆�2,绾夸笅銆�3,璇煶銆�4,瑙嗛銆�5,绾歌川  6.閾炬帴  7.閽夐拤   8.寰俊
+     */
+    @Excel(name = " 1,鐭俊銆�2,绾夸笅銆�3,璇煶銆�4,瑙嗛銆�5,绾歌川  6.閾炬帴  7.閽夐拤   8.寰俊")
+    @ApiModelProperty(value = "1,鐭俊銆�2,绾夸笅銆�3,璇煶銆�4,瑙嗛銆�5,绾歌川  6.閾炬帴  7.閽夐拤   8.寰俊")
+    private String serviceform;
+
+    /**
+     * 搴婂彿
+     */
+    @Excel(name = "搴婂彿")
+    @ApiModelProperty(value = "搴婂彿")
+    private String badNo;
+
+    /**
+     * 鐤剧梾鍚嶇О
+     */
+    @Excel(name = "鐤剧梾鍚嶇О")
+    @ApiModelProperty(value = "鐤剧梾鍚嶇О")
+    private String icdName;
+
+    /**
+     * 鐥呭巻鍙�
+     */
+    @Excel(name = "鐥呭巻鍙�")
+    @ApiModelProperty(value = "鐥呭巻鍙�")
+    private String medicalRecordNo;
+
+    /**
+     * 瀹f暀鍐呭
+     */
+    @Excel(name = "瀹f暀鍐呭")
+    @ApiModelProperty(value = "瀹f暀鍐呭")
+    private String preachcontent;
+
+    /**
+     * 鍙戦�佺被鍨�: 1 鏃堕棿娈�   2 鏃堕棿鐐�   3 鍗冲埢鍙戦��
+     */
+    @Excel(name = "鍙戦�佺被鍨�: 1 鏃堕棿娈�   2 鏃堕棿鐐�   3 鍗冲埢鍙戦��")
+    @ApiModelProperty(value = "鍙戦�佺被鍨�: 1 鏃堕棿娈�   2 鏃堕棿鐐�   3 鍗冲埢鍙戦��")
+    private String sendType;
+
+    /**
+     * 鍙戦�佹椂闂存
+     */
+    @Excel(name = "鍙戦�佹椂闂存")
+    @ApiModelProperty(value = "鍙戦�佹椂闂存")
+    private String sendTimeSlot;
+
+    /**
+     * 浠诲姟鍚嶇О
+     */
+    @Excel(name = "浠诲姟鍚嶇О")
+    @ApiModelProperty(value = "浠诲姟鍚嶇О")
+    private String taskName;
+
+    /**
+     * 浠诲姟鎻忚堪
+     */
+    @Excel(name = "浠诲姟鎻忚堪")
+    @ApiModelProperty(value = "浠诲姟鎻忚堪")
+    private String taskDesc;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @Excel(name = "鍒涘缓浜�")
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String operator;
+
+    /**
+     * 鍒涘缓浜虹紪鍙�
+     */
+    @Excel(name = "鍒涘缓浜虹紪鍙�")
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鍙�")
+    private String operatorNo;
+
+    /**
+     * 灏辫瘖缂栧彿锛堝搴旂殑outhospno銆乮nhospno锛�
+     */
+    @Excel(name = "灏辫瘖缂栧彿", readConverterExp = "瀵�=搴旂殑outhospno銆乮nhospno")
+    @ApiModelProperty(value = "灏辫瘖缂栧彿")
+    private String hospno;
+
+    /**
+     * 灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌锛�
+     */
+    @Excel(name = "灏辫瘖绫诲瀷", readConverterExp = "1=闂ㄨ瘖,2=鍑洪櫌")
+    @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌锛�")
+    private String hospType;
+
+    /**
+     * 寰俊
+     */
+    @Excel(name = "寰俊")
+    @ApiModelProperty(value = "寰俊")
+    private String wechat;
+
+    /**
+     * 璇婃柇鍚嶇О
+     */
+    @Excel(name = "璇婃柇鍚嶇О")
+    @ApiModelProperty(value = "璇婃柇鍚嶇О")
+    private String diagname;
+
+    /**
+     * 绉戝鍚嶇О
+     */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /**
+     * 灏辫瘖鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "灏辫瘖鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "灏辫瘖鏃ユ湡")
+    private Date admindate;
+
+    /**
+     * 鐥呮埧鍙�
+     */
+    @Excel(name = "鐥呮埧鍙�")
+    @ApiModelProperty(value = "鐥呮埧鍙�")
+    private String roomno;
+
+    /**
+     * 鐥呭簥鍙�
+     */
+    @Excel(name = "鐥呭簥鍙�")
+    @ApiModelProperty(value = "鐥呭簥鍙�")
+    private String bedno;
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
similarity index 60%
copy from smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
copy to smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
index d2170c9..85219f3 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTitle.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
@@ -1,12 +1,9 @@
 package com.smartor.domain;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -15,110 +12,117 @@
 import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
- * 闂嵎瀵硅薄 svy_lib_title
+ * 浠诲姟闂嵎妯℃澘瀵硅薄 svy_task_template
  *
  * @author ruoyi
- * @date 2023-03-02
+ * @date 2024-06-12
  */
 @Data
-@ApiModel(value = "SvyLibTitle", description = "闂嵎瀵硅薄")
-public class SvyLibTitle extends BaseEntity {
+public class SvyTaskTemplate extends BaseEntity {
+    private static final long serialVersionUID = 1L;
 
     /**
      * 鑷ID
      */
-    @ApiModelProperty(value = "鑷ID")
+    @ApiModelProperty(value = "涓婚敭")
     private Long svyid;
+
+    /**
+     * 妯℃澘闂嵎ID
+     */
+    @Excel(name = " 妯℃澘闂嵎ID ")
+    @ApiModelProperty(value = "妯℃澘闂嵎ID")
+    private Long templateid;
 
     /**
      * 闂嵎鍒嗙被ID
      */
-    @ApiModelProperty(value = "闂嵎鍒嗙被ID", required = true)
     @Excel(name = " 闂嵎鍒嗙被ID ")
+    @ApiModelProperty(value = "闂嵎鍒嗙被ID")
     private Long categoryid;
 
     /**
      * 闂嵎浠g爜
      */
-    @ApiModelProperty(value = "闂嵎浠g爜")
     @Excel(name = " 闂嵎浠g爜 ")
+    @ApiModelProperty(value = "闂嵎浠g爜")
     private String svycode;
 
     /**
      * 闂嵎鍚嶇О
      */
-    @ApiModelProperty(value = "闂嵎鍚嶇О", required = true)
     @Excel(name = " 闂嵎鍚嶇О ")
+    @ApiModelProperty(value = "闂嵎鍚嶇О")
     private String svyname;
 
     /**
      * 鎻忚堪
      */
-    @ApiModelProperty(value = "鎻忚堪", required = true)
     @Excel(name = " 鎻忚堪 ")
+    @ApiModelProperty(value = "鎻忚堪")
     private String description;
 
     /**
      * 闂嵎浠嬬粛
      */
-    @ApiModelProperty(value = "闂嵎浠嬬粛")
     @Excel(name = " 闂嵎浠嬬粛 ")
+    @ApiModelProperty(value = "闂嵎浠嬬粛")
     private String introduce;
 
     /**
      * 闂嵎鎻愮ず
      */
-    @ApiModelProperty(value = "闂嵎鎻愮ず")
     @Excel(name = " 闂嵎鎻愮ず ")
+    @ApiModelProperty(value = "闂嵎鎻愮ず")
     private String submitprompt;
 
     /**
-     * 妯℃澘ID
+     * 鏍囩
      */
-    @ApiModelProperty(value = "妯℃澘ID")
-    @Excel(name = " 妯℃澘ID ")
-    private Long templateid;
+    @Excel(name = "鏍囩")
+    @ApiModelProperty(value = "鏍囩")
+    private String tag;
 
     /**
      * 鐗堟湰
      */
-    @ApiModelProperty(value = "鐗堟湰")
     @Excel(name = " 鐗堟湰 ")
+    @ApiModelProperty(value = "鐗堟湰")
     private BigDecimal version;
 
     /**
      * 涓績搴撲唬鐮�
      */
-    @ApiModelProperty(value = "涓績搴撲唬鐮�")
     @Excel(name = " 涓績搴撲唬鐮� ")
+    @ApiModelProperty(value = "涓績搴撲唬鐮�")
     private String centerlibrarycode;
 
     /**
      * 涓績搴揑D
      */
-    @ApiModelProperty(value = "涓績搴揑D")
     @Excel(name = " 涓績搴揑D ")
+    @ApiModelProperty(value = "涓績搴揑D")
     private Long centerlibraryid;
 
     /**
      * 鏄惁鏈湴
      */
-    @ApiModelProperty(value = "鏄惁鏈湴")
     @Excel(name = " 鏄惁鏈湴 ")
+    @ApiModelProperty(value = "鏄惁鏈湴")
     private Long islocal;
 
     /**
      * 鏄惁鍚敤
      */
-    @ApiModelProperty(value = "鏄惁鍚敤")
     @Excel(name = " 鏄惁鍚敤 ")
-    private String isenable = "0";
+    @ApiModelProperty(value = "鏄惁鍚敤")
+    private String isenable;
 
     /**
      * 鏈烘瀯ID
      */
-    @ApiModelProperty(value = "鏈烘瀯ID")
     @Excel(name = " 鏈烘瀯ID ")
+    @ApiModelProperty(value = "鏈烘瀯ID")
     private String orgid;
 
     /**
@@ -130,100 +134,94 @@
     /**
      * 涓婁紶鏍囪
      */
-    @ApiModelProperty(value = "涓婁紶鏍囪")
     @Excel(name = " 涓婁紶鏍囪 ")
+    @ApiModelProperty(value = "涓婁紶鏍囪")
     private Long isupload;
-
 
     /**
      * 涓婁紶鏃堕棿
      */
-    @ApiModelProperty(value = "涓婁紶鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
     private Date uploadTime;
 
     /**
-     * 鐤剧梾鍚嶇О
+     * 闂id
      */
-    @ApiModelProperty(value = "鐤剧梾鍚嶇О")
-    private String icdname;
+    @Excel(name = "闂id")
+    @ApiModelProperty(value = "闂id")
+    private String taskScriptId;
 
     /**
-     * 鐤剧梾ID
+     * 鐖禝D
      */
-    @ApiModelProperty(value = "鐤剧梾ID")
-    private List<String> icdID;
+    @Excel(name = "鐖禝D")
+    @ApiModelProperty(value = "鐖禝D")
+    private Long pid;
 
     /**
-     * 闂嵎棰樼洰闆嗗悎
+     * GUID
      */
-    @ApiModelProperty(value = "闂嵎棰樼洰闆嗗悎")
-    private List<SvyLibTopic> svyLibTopics;
+    @Excel(name = "GUID")
+    @ApiModelProperty(value = "GUID")
+    private String guid;
 
-    /**
-     * 妯℃澘绉戝鍏宠仈闆嗗悎
-     */
-    @ApiModelProperty(value = "妯℃澘绉戝鍏宠仈闆嗗悎")
-    private List<TempDetpRelevance> tempDetpRelevances = new ArrayList<>();
-
-    /**
-     * 鏄惁瀛樺湪鎿嶄綔锛�1 鏂板 2淇敼 3鍒犻櫎
-     */
-    @ApiModelProperty(value = "鏄惁瀛樺湪鎿嶄綔锛�1 鏂板 2淇敼 3鍒犻櫎")
-    private Integer isoperation;
     /**
      * 绉戝鍚嶇О
      */
     @Excel(name = "绉戝鍚嶇О")
-    @ApiModelProperty("绉戝鍚嶇О")
-    private String deptNames = "";
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptNames;
 
     /**
      * 鏍囩淇℃伅
      */
     @Excel(name = "鏍囩淇℃伅")
-    @ApiModelProperty("鏍囩淇℃伅")
-    private String labelInfo = "";
+    @ApiModelProperty(value = "鏍囩淇℃伅")
+    private String labelInfo;
 
     /**
      * 闄㈠尯
      */
     @Excel(name = "闄㈠尯")
-    @ApiModelProperty("闄㈠尯")
-    private String campus = "";
+    @ApiModelProperty(value = "闄㈠尯")
+    private String campus;
 
     /**
      * 閫傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3
      */
-    @Excel(name = "闄㈤�傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3鍖�")
-    @ApiModelProperty("閫傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3")
-    private String suitway = "";
-
+    @Excel(name = "閫傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3")
+    @ApiModelProperty(value = "閫傜敤鏂瑰紡锛氳皟鏌ヨ〃1锛屾櫤鑳借闊�2銆佷汉宸�3")
+    private String suitway;
 
     /**
      * 鍏跺畠鏁版嵁锛堝瓨鍌ㄥ彉閲忥級
      */
-    @ApiModelProperty("鍏跺畠鏁版嵁锛堝瓨鍌ㄥ彉閲忥級")
-    private String otherdata = "";
+    @Excel(name = "鍏跺畠鏁版嵁", readConverterExp = "瀛�=鍌ㄥ彉閲�")
+    @ApiModelProperty(value = "鍏跺畠鏁版嵁锛堝瓨鍌ㄥ彉閲忥級")
+    private String otherdata;
 
     /**
      * 鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級
      */
-    @ApiModelProperty(value = "鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級")
-    @Excel(name = "鍊肩被鍨�", readConverterExp = "1=閫夐」,2=鏂囨湰,3=鏁板��")
-    private Long valueType;
+    @Excel(name = "鍊肩被鍨�", readConverterExp = "1=,閫�=椤�,2=,鏂�=鏈�,3=,鏁�=鍊�")
+    @ApiModelProperty(value = " 鍊肩被鍨嬶紙1 閫夐」  2 鏂囨湰  3 鏁板�硷級")
+    private String valueType;
 
-
+    /**
+     * 鍥炲锛堟寚闂鐨勫洖澶嶏紝缁欓棶绛旈鐢ㄧ殑锛�
+     */
+    @Excel(name = "鍥炲", readConverterExp = "鎸�=闂鐨勫洖澶嶏紝缁欓棶绛旈鐢ㄧ殑")
     @ApiModelProperty(value = "鍥炲锛堟寚闂鐨勫洖澶嶏紝缁欓棶绛旈鐢ㄧ殑锛�")
     private String reply;
 
+    /**
+     * 浠诲姟ID
+     */
+    @Excel(name = "浠诲姟ID")
+    @ApiModelProperty(value = "浠诲姟ID")
+    private Long taskid;
 
-    public SvyLibTitle() {
-    }
 
-    public SvyLibTitle(Long svyid, String icdname) {
-        this.svyid = svyid;
-        this.icdname = icdname;
-    }
 }
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTopic.java b/smartor/src/main/java/com/smartor/domain/SvyTopic.java
index 4a4bc3a..bd5c535 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTopic.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTopic.java
@@ -5,8 +5,6 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java
new file mode 100644
index 0000000..a661304
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java
@@ -0,0 +1,71 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyLibScriptCategory;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 闂嵎棰樼洰鍒嗙被Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+@Mapper
+public interface SvyLibScriptCategoryMapper {
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 闂嵎棰樼洰鍒嗙被
+     */
+    public SvyLibScriptCategory selectSvyLibScriptCategoryById(Long id);
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 闂嵎棰樼洰鍒嗙被闆嗗悎
+     */
+    public List<SvyLibScriptCategory> selectSvyLibScriptCategoryList(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 鏂板闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 淇敼闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 鍒犻櫎闂嵎棰樼洰鍒嗙被
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptCategoryById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptCategoryByIds(Long[] ids);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int selectSeqMax();
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java
similarity index 62%
rename from smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java
rename to smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java
index 4fb56d9..f3e0194 100644
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java
@@ -2,9 +2,7 @@
 
 import java.util.List;
 
-import com.smartor.domain.SvyLibTopic;
-import com.smartor.domain.SvyLibTopicAndOptionRes;
-import com.smartor.domain.SvyTopicReq;
+import com.smartor.domain.SvyLibScript;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -14,14 +12,14 @@
  * @date 2023-03-03
  */
 @Mapper
-public interface SvyLibTopicMapper {
+public interface SvyLibScriptMapper {
     /**
      * 鏌ヨ闂嵎棰樼洰
      *
      * @param topicid 闂嵎棰樼洰涓婚敭
      * @return 闂嵎棰樼洰
      */
-    public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid);
+    public SvyLibScript selectSvyLibScriptByScriptid(Long topicid);
 
     /**
      * 鏌ヨ闂嵎棰樼洰鍒楄〃
@@ -29,7 +27,7 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 闂嵎棰樼洰闆嗗悎
      */
-    public List<SvyLibTopic> selectSvyLibTopicList(SvyLibTopic svyLibTopic);
+    public List<SvyLibScript> selectSvyLibScriptList(SvyLibScript svyLibTopic);
 
     /**
      * 鏂板闂嵎棰樼洰
@@ -37,7 +35,7 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 缁撴灉
      */
-    public int insertSvyLibTopic(SvyLibTopic svyLibTopic);
+    public int insertSvyLibScript(SvyLibScript svyLibTopic);
 
     /**
      * 淇敼闂嵎棰樼洰
@@ -45,7 +43,7 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 缁撴灉
      */
-    public int updateSvyLibTopic(SvyLibTopic svyLibTopic);
+    public int updateSvyLibScript(SvyLibScript svyLibTopic);
 
     /**
      * 鍒犻櫎闂嵎棰樼洰
@@ -53,7 +51,7 @@
      * @param topicid 闂嵎棰樼洰涓婚敭
      * @return 缁撴灉
      */
-    public int deleteSvyLibTopicByTopicid(Long topicid);
+    public int deleteSvyLibScriptByScriptid(Long topicid);
 
     /**
      * 鎵归噺鍒犻櫎闂嵎棰樼洰
@@ -61,7 +59,7 @@
      * @param topicids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
      * @return 缁撴灉
      */
-    public int deleteSvyLibTopicByTopicids(Long[] topicids);
+    public int deleteSvyLibScriptByScriptids(Long[] ids);
 
 
 
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java
new file mode 100644
index 0000000..8edadff
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java
@@ -0,0 +1,64 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyLibScriptOption;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 闂嵎闂閫夐」Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Mapper
+public interface SvyLibScriptOptionMapper {
+    /**
+     * 鏌ヨ闂嵎闂閫夐」
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 闂嵎闂閫夐」
+     */
+    public SvyLibScriptOption selectSvyLibScriptOptionByOptionid(Long optionid);
+
+    /**
+     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 闂嵎闂閫夐」闆嗗悎
+     */
+    public List<SvyLibScriptOption> selectSvyLibScriptOptionList(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 鏂板闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 淇敼闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 鍒犻櫎闂嵎闂閫夐」
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptOptionByOptionid(Long optionid);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
+     *
+     * @param optionids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptOptionByOptionids(Long[] optionids);
+
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java
new file mode 100644
index 0000000..6137857
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java
@@ -0,0 +1,70 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyLibTemplateCategory;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 闂嵎妯℃澘鍒嗙被Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+@Mapper
+public interface SvyLibTemplateCategoryMapper {
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被
+     *
+     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
+     * @return 闂嵎妯℃澘鍒嗙被
+     */
+    public SvyLibTemplateCategory selectSvyLibTemplateCategoryById(Long id);
+
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 闂嵎妯℃澘鍒嗙被闆嗗悎
+     */
+    public List<SvyLibTemplateCategory> selectSvyLibTemplateCategoryList(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 鏂板闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 淇敼闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 鍒犻櫎闂嵎妯℃澘鍒嗙被
+     *
+     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateCategoryById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateCategoryByIds(Long[] ids);
+
+    /**
+     * 鑾峰彇搴忓彿鏈�澶у��
+     *
+     * @return
+     */
+    public int selectSeqMax();
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java
new file mode 100644
index 0000000..c8ba70f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java
@@ -0,0 +1,64 @@
+package com.smartor.mapper;
+
+import java.util.List;
+
+import com.smartor.domain.SvyLibTemplate;
+import com.smartor.domain.SvyLibTemplateReq;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 闂嵎Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Mapper
+public interface SvyLibTemplateMapper {
+    /**
+     * 鏌ヨ闂嵎
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 闂嵎
+     */
+    public SvyLibTemplate selectSvyLibTemplateBySvyid(Long svyid);
+
+    /**
+     * 鏌ヨ闂嵎鍒楄〃
+     *
+     * @param svyLibTemplateReq 闂嵎
+     * @return 闂嵎闆嗗悎
+     */
+    public List<SvyLibTemplate> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq);
+
+    /**
+     * 鏂板闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate);
+
+    /**
+     * 淇敼闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    public int updateSvyLibTemplate(SvyLibTemplate svyLibTemplate);
+
+    /**
+     * 鍒犻櫎闂嵎
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateBySvyid(Long svyid);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateBySvyids(Long[] svyids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleCategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleCategoryMapper.java
deleted file mode 100644
index 7ab2be3..0000000
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleCategoryMapper.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.smartor.mapper;
-
-import com.smartor.domain.SvyLibTitleCategory;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * 闂嵎妯℃澘鍒嗙被Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-@Mapper
-public interface SvyLibTitleCategoryMapper {
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被
-     *
-     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
-     * @return 闂嵎妯℃澘鍒嗙被
-     */
-    public SvyLibTitleCategory selectSvyLibTitleCategoryById(Long id);
-
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 闂嵎妯℃澘鍒嗙被闆嗗悎
-     */
-    public List<SvyLibTitleCategory> selectSvyLibTitleCategoryList(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 鏂板闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 淇敼闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 鍒犻櫎闂嵎妯℃澘鍒嗙被
-     *
-     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleCategoryById(Long id);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleCategoryByIds(Long[] ids);
-
-    /**
-     * 鑾峰彇搴忓彿鏈�澶у��
-     *
-     * @return
-     */
-    public int selectSeqMax();
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java
deleted file mode 100644
index 77032a6..0000000
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTitleMapper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.smartor.mapper;
-
-import java.util.List;
-
-import com.smartor.domain.SvyLibTitle;
-import com.smartor.domain.SvyLibTitleReq;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 闂嵎Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-03-02
- */
-@Mapper
-public interface SvyLibTitleMapper {
-    /**
-     * 鏌ヨ闂嵎
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 闂嵎
-     */
-    public SvyLibTitle selectSvyLibTitleBySvyid(Long svyid);
-
-    /**
-     * 鏌ヨ闂嵎鍒楄〃
-     *
-     * @param svyLibTitleReq 闂嵎
-     * @return 闂嵎闆嗗悎
-     */
-    public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq);
-
-    /**
-     * 鏂板闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTitle(SvyLibTitle svyLibTitle);
-
-    /**
-     * 淇敼闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTitle(SvyLibTitle svyLibTitle);
-
-    /**
-     * 鍒犻櫎闂嵎
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleBySvyid(Long svyid);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎
-     *
-     * @param svyids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleBySvyids(Long[] svyids);
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicCategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTopicCategoryMapper.java
deleted file mode 100644
index 3517d0c..0000000
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicCategoryMapper.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.smartor.mapper;
-
-import com.smartor.domain.SvyLibTopicCategory;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * 闂嵎棰樼洰鍒嗙被Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-@Mapper
-public interface SvyLibTopicCategoryMapper {
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 闂嵎棰樼洰鍒嗙被
-     */
-    public SvyLibTopicCategory selectSvyLibTopicCategoryById(Long id);
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 闂嵎棰樼洰鍒嗙被闆嗗悎
-     */
-    public List<SvyLibTopicCategory> selectSvyLibTopicCategoryList(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 鏂板闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 淇敼闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 鍒犻櫎闂嵎棰樼洰鍒嗙被
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicCategoryById(Long id);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicCategoryByIds(Long[] ids);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int selectSeqMax();
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicoptionMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyLibTopicoptionMapper.java
deleted file mode 100644
index 9d655ab..0000000
--- a/smartor/src/main/java/com/smartor/mapper/SvyLibTopicoptionMapper.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.smartor.mapper;
-
-import java.util.List;
-
-import com.smartor.domain.SvyLibTopicAndOptionRes;
-import com.smartor.domain.SvyLibTopicRes;
-import com.smartor.domain.SvyLibTopicoption;
-import com.smartor.domain.SvyTopicReq;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 闂嵎闂閫夐」Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-03-02
- */
-@Mapper
-public interface SvyLibTopicoptionMapper {
-    /**
-     * 鏌ヨ闂嵎闂閫夐」
-     *
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 闂嵎闂閫夐」
-     */
-    public SvyLibTopicoption selectSvyLibTopicoptionByOptionid(Long optionid);
-
-    /**
-     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
-     *
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 闂嵎闂閫夐」闆嗗悎
-     */
-    public List<SvyLibTopicoption> selectSvyLibTopicoptionList(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 鏂板闂嵎闂閫夐」
-     *
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 淇敼闂嵎闂閫夐」
-     *
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 鍒犻櫎闂嵎闂閫夐」
-     *
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicoptionByOptionid(Long optionid);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
-     *
-     * @param optionids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicoptionByOptionids(Long[] optionids);
-
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskMapper.java
new file mode 100644
index 0000000..e3feb3d
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskMapper.java
@@ -0,0 +1,64 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyTask;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 缁煎悎闂嵎浠诲姟锛堜换鍔★級Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Mapper
+public interface SvyTaskMapper
+{
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    public SvyTask selectSvyTaskByTaskid(Long taskid);
+
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級鍒楄〃
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級闆嗗悎
+     */
+    public List<SvyTask> selectSvyTaskList(SvyTask svyTask);
+
+    /**
+     * 鏂板缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    public int insertSvyTask(SvyTask svyTask);
+
+    /**
+     * 淇敼缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    public int updateSvyTask(SvyTask svyTask);
+
+    /**
+     * 鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskByTaskid(Long taskid);
+
+    /**
+     * 鎵归噺鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskByTaskids(Long[] taskids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java
new file mode 100644
index 0000000..b668d42
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java
@@ -0,0 +1,64 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyTaskScript;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎棰樼洰Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Mapper
+public interface SvyTaskScriptMapper
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 浠诲姟闂嵎棰樼洰
+     */
+    public SvyTaskScript selectSvyTaskScriptById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰鍒楄〃
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 浠诲姟闂嵎棰樼洰闆嗗悎
+     */
+    public List<SvyTaskScript> selectSvyTaskScriptList(SvyTaskScript svyTaskScript);
+
+    /**
+     * 鏂板浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskScript(SvyTaskScript svyTaskScript);
+
+    /**
+     * 淇敼浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskScript(SvyTaskScript svyTaskScript);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎棰樼洰
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎棰樼洰
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java
new file mode 100644
index 0000000..91308fa
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java
@@ -0,0 +1,65 @@
+package com.smartor.mapper;
+
+
+import com.smartor.domain.SvyTaskScriptoption;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Mapper
+public interface SvyTaskScriptoptionMapper
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    public SvyTaskScriptoption selectSvyTaskScriptoptionById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」闆嗗悎
+     */
+    public List<SvyTaskScriptoption> selectSvyTaskScriptoptionList(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptoptionById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptoptionByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskSingleMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskSingleMapper.java
new file mode 100644
index 0000000..3fec8fa
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskSingleMapper.java
@@ -0,0 +1,63 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.SvyTaskSingle;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鍗曚竴浠诲姟锛堥棶鍗凤級Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Mapper
+public interface SvyTaskSingleMapper {
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    public SvyTaskSingle selectSvyTaskSingleById(Long id);
+
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級鍒楄〃
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級闆嗗悎
+     */
+    public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 鏂板鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 淇敼鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskSingleById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskSingleByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
new file mode 100644
index 0000000..ae37c52
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
@@ -0,0 +1,63 @@
+package com.smartor.mapper;
+
+import java.util.List;
+
+import com.smartor.domain.SvyTaskTemplate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 浠诲姟闂嵎妯℃澘Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Mapper
+public interface SvyTaskTemplateMapper {
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 浠诲姟闂嵎妯℃澘
+     */
+    public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘鍒楄〃
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 浠诲姟闂嵎妯℃澘闆嗗悎
+     */
+    public List<SvyTaskTemplate> selectSvyTaskTemplateList(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 鏂板浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 淇敼浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎妯℃澘
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskTemplateBySvyid(Long svyid);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎妯℃澘
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskTemplateBySvyids(Long[] svyids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java
index 717bbd6..40a202c 100644
--- a/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java
@@ -1,6 +1,5 @@
 package com.smartor.mapper;
 
-import com.smartor.domain.SvyLibTopic;
 import com.smartor.domain.SvyLibTopicAndOptionRes;
 import com.smartor.domain.SvyTopic;
 import com.smartor.domain.SvyTopicReq;
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java b/smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java
new file mode 100644
index 0000000..3cfd2b8
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java
@@ -0,0 +1,64 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyLibScriptCategory;
+import com.smartor.domain.SvyLibScriptCategoryVO;
+
+import java.util.List;
+
+/**
+ * 闂嵎棰樼洰鍒嗙被Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+public interface ISvyLibScriptCategoryService {
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 闂嵎棰樼洰鍒嗙被
+     */
+    public SvyLibScriptCategory selectSvyLibScriptCategoryById(Long id);
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 闂嵎棰樼洰鍒嗙被闆嗗悎
+     */
+    public List<SvyLibScriptCategoryVO> selectSvyLibScriptCategoryList(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 鏂板闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 淇敼闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰鍒嗙被涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptCategoryByIds(Long[] ids);
+
+    public int insertSvyLibScriptCategoryTree(SvyLibScriptCategoryVO svyLibScriptCategoryVO);
+
+    /**
+     * 鍒犻櫎闂嵎棰樼洰鍒嗙被淇℃伅
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptCategoryById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java b/smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java
new file mode 100644
index 0000000..7cd1d15
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.SvyLibScriptOption;
+
+/**
+ * 闂嵎闂閫夐」Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+public interface ISvyLibScriptOptionService
+{
+    /**
+     * 鏌ヨ闂嵎闂閫夐」
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 闂嵎闂閫夐」
+     */
+    public SvyLibScriptOption selectSvyLibScriptOptionByOptionid(Long optionid);
+
+    /**
+     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 闂嵎闂閫夐」闆嗗悎
+     */
+    public List<SvyLibScriptOption> selectSvyLibScriptOptionList(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 鏂板闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 淇敼闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
+     *
+     * @param optionids 闇�瑕佸垹闄ょ殑闂嵎闂閫夐」涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptOptionByOptionids(Long[] optionids);
+
+    /**
+     * 鍒犻櫎闂嵎闂閫夐」淇℃伅
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibScriptOptionByOptionid(Long optionid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java b/smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java
similarity index 61%
rename from smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java
rename to smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java
index a480e4e..d1b308f 100644
--- a/smartor/src/main/java/com/smartor/service/ISvyLibTopicService.java
+++ b/smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java
@@ -1,6 +1,6 @@
 package com.smartor.service;
 
-import com.smartor.domain.SvyLibTopic;
+import com.smartor.domain.SvyLibScript;
 
 import java.util.List;
 
@@ -10,14 +10,14 @@
  * @author ruoyi
  * @date 2023-03-03
  */
-public interface ISvyLibTopicService {
+public interface ISvyLibScriptService {
     /**
      * 鏌ヨ闂嵎棰樼洰
      *
      * @param topicid 闂嵎棰樼洰涓婚敭
      * @return 闂嵎棰樼洰
      */
-    public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid);
+    public SvyLibScript selectSvyLibScriptByScriptid(Long topicid);
 
     /**
      * 鏌ヨ闂嵎棰樼洰鍒楄〃
@@ -25,7 +25,7 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 闂嵎棰樼洰闆嗗悎
      */
-    public List<SvyLibTopic> selectSvyLibTopicList(SvyLibTopic svyLibTopic);
+    public List<SvyLibScript> selectSvyLibScriptList(SvyLibScript svyLibTopic);
 
     /**
      * 鏂板闂嵎棰樼洰
@@ -33,9 +33,9 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 缁撴灉
      */
-    public int insertSvyLibTopic(SvyLibTopic svyLibTopic);
+    public int insertSvyLibScript(SvyLibScript svyLibTopic);
 
-    public Integer saveOrUpdateTopic(SvyLibTopic svyLibTopic);
+    public Integer saveOrUpdateScript(SvyLibScript svyLibTopic);
 
     /**
      * 淇敼闂嵎棰樼洰
@@ -43,7 +43,7 @@
      * @param svyLibTopic 闂嵎棰樼洰
      * @return 缁撴灉
      */
-    public int updateSvyLibTopic(SvyLibTopic svyLibTopic);
+    public int updateSvyLibScript(SvyLibScript svyLibTopic);
 
     /**
      * 鎵归噺鍒犻櫎闂嵎棰樼洰
@@ -51,7 +51,7 @@
      * @param topicids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰涓婚敭闆嗗悎
      * @return 缁撴灉
      */
-    public int deleteSvyLibTopicByTopicids(Long[] topicids);
+    public int deleteSvyLibScriptByScriptids(Long[] topicids);
 
     /**
      * 鍒犻櫎闂嵎棰樼洰淇℃伅
@@ -59,7 +59,7 @@
      * @param topicid 闂嵎棰樼洰涓婚敭
      * @return 缁撴灉
      */
-    public int deleteSvyLibTopicByTopicid(Long topicid);
+    public int deleteSvyLibScriptByScriptid(Long topicid);
 
 
 }
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java
new file mode 100644
index 0000000..5680a65
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java
@@ -0,0 +1,58 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyLibTemplateCategory;
+import com.smartor.domain.SvyLibTemplateCategoryVO;
+
+import java.util.List;
+
+/**
+ * 闂嵎妯℃澘鍒嗙被Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+public interface ISvyLibTemplateCategoryService {
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被
+     *
+     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
+     * @return 闂嵎妯℃澘鍒嗙被
+     */
+    public SvyLibTemplateCategory selectSvyLibTemplateCategoryById(Long id);
+
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 闂嵎妯℃澘鍒嗙被闆嗗悎
+     */
+    public List<SvyLibTemplateCategoryVO> selectSvyLibTemplateCategoryList(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 鏂板闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 淇敼闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑闂嵎妯℃澘鍒嗙被涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateCategoryByIds(Long[] ids);
+
+    public int insertSvyLibTemplateCategoryTree(SvyLibTemplateCategoryVO svyLibTemplateCategoryVO);
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java
new file mode 100644
index 0000000..29c964b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java
@@ -0,0 +1,71 @@
+package com.smartor.service;
+
+import java.util.List;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.smartor.domain.SvyLibTemplate;
+import com.smartor.domain.SvyLibTemplateReq;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 闂嵎Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+public interface ISvyLibTemplateService {
+    /**
+     * 鏌ヨ闂嵎
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 闂嵎
+     */
+    public SvyLibTemplate selectSvyLibTemplateBySvyid(Long svyid);
+
+    /**
+     * 鏌ヨ闂嵎鍒楄〃
+     *
+     * @param svyLibTemplateReq 闂嵎
+     * @return 闂嵎闆嗗悎
+     */
+    public List<SvyLibTemplate> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq);
+
+    /**
+     * 鏂板闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate);
+
+    /**
+     * 鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭�
+     * @param svyLibTemplate
+     * @return
+     */
+    public Integer saveOrUpdateTemplate(@RequestBody SvyLibTemplate svyLibTemplate);
+
+    /**
+     * 淇敼闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    public int updateSvyLibTemplate(SvyLibTemplate svyLibTemplate);
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑闂嵎涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateBySvyids(Long[] svyids);
+
+    /**
+     * 鍒犻櫎闂嵎淇℃伅
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyLibTemplateBySvyid(Long svyid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTitleCategoryService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTitleCategoryService.java
deleted file mode 100644
index 263e051..0000000
--- a/smartor/src/main/java/com/smartor/service/ISvyLibTitleCategoryService.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.smartor.service;
-
-import com.smartor.domain.SvyLibTitleCategory;
-import com.smartor.domain.SvyLibTitleCategoryVO;
-
-import java.util.List;
-
-/**
- * 闂嵎妯℃澘鍒嗙被Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-public interface ISvyLibTitleCategoryService {
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被
-     *
-     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
-     * @return 闂嵎妯℃澘鍒嗙被
-     */
-    public SvyLibTitleCategory selectSvyLibTitleCategoryById(Long id);
-
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 闂嵎妯℃澘鍒嗙被闆嗗悎
-     */
-    public List<SvyLibTitleCategoryVO> selectSvyLibTitleCategoryList(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 鏂板闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 淇敼闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑闂嵎妯℃澘鍒嗙被涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleCategoryByIds(Long[] ids);
-
-    public int insertSvyLibTitleCategoryTree(SvyLibTitleCategoryVO svyLibTitleCategoryVO);
-
-
-}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTitleService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTitleService.java
deleted file mode 100644
index baeab91..0000000
--- a/smartor/src/main/java/com/smartor/service/ISvyLibTitleService.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.smartor.service;
-
-import java.util.List;
-
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.smartor.domain.SvyLibTitle;
-import com.smartor.domain.SvyLibTitleReq;
-import org.springframework.web.bind.annotation.RequestBody;
-
-/**
- * 闂嵎Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-03-02
- */
-public interface ISvyLibTitleService {
-    /**
-     * 鏌ヨ闂嵎
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 闂嵎
-     */
-    public SvyLibTitle selectSvyLibTitleBySvyid(Long svyid);
-
-    /**
-     * 鏌ヨ闂嵎鍒楄〃
-     *
-     * @param svyLibTitleReq 闂嵎
-     * @return 闂嵎闆嗗悎
-     */
-    public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq);
-
-    /**
-     * 鏂板闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTitle(SvyLibTitle svyLibTitle);
-
-    /**
-     * 鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭�
-     * @param svyLibTitle
-     * @return
-     */
-    public Integer saveOrUpdateTitle(@RequestBody SvyLibTitle svyLibTitle);
-
-    /**
-     * 淇敼闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTitle(SvyLibTitle svyLibTitle);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎
-     *
-     * @param svyids 闇�瑕佸垹闄ょ殑闂嵎涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleBySvyids(Long[] svyids);
-
-    /**
-     * 鍒犻櫎闂嵎淇℃伅
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTitleBySvyid(Long svyid);
-}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTopicCategoryService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTopicCategoryService.java
deleted file mode 100644
index 2392b8f..0000000
--- a/smartor/src/main/java/com/smartor/service/ISvyLibTopicCategoryService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.smartor.service;
-
-import com.smartor.domain.SvyLibTopicCategory;
-import com.smartor.domain.SvyLibTopicCategoryVO;
-
-import java.util.List;
-
-/**
- * 闂嵎棰樼洰鍒嗙被Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-public interface ISvyLibTopicCategoryService {
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 闂嵎棰樼洰鍒嗙被
-     */
-    public SvyLibTopicCategory selectSvyLibTopicCategoryById(Long id);
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 闂嵎棰樼洰鍒嗙被闆嗗悎
-     */
-    public List<SvyLibTopicCategoryVO> selectSvyLibTopicCategoryList(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 鏂板闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 淇敼闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰鍒嗙被涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicCategoryByIds(Long[] ids);
-
-    public int insertSvyLibTopicCategoryTree(SvyLibTopicCategoryVO svyLibTopicCategoryVO);
-
-    /**
-     * 鍒犻櫎闂嵎棰樼洰鍒嗙被淇℃伅
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicCategoryById(Long id);
-}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyLibTopicoptionService.java b/smartor/src/main/java/com/smartor/service/ISvyLibTopicoptionService.java
deleted file mode 100644
index f6357e0..0000000
--- a/smartor/src/main/java/com/smartor/service/ISvyLibTopicoptionService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.smartor.service;
-
-import java.util.List;
-import com.smartor.domain.SvyLibTopicoption;
-
-/**
- * 闂嵎闂閫夐」Service鎺ュ彛
- * 
- * @author ruoyi
- * @date 2023-03-02
- */
-public interface ISvyLibTopicoptionService 
-{
-    /**
-     * 鏌ヨ闂嵎闂閫夐」
-     * 
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 闂嵎闂閫夐」
-     */
-    public SvyLibTopicoption selectSvyLibTopicoptionByOptionid(Long optionid);
-
-    /**
-     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 闂嵎闂閫夐」闆嗗悎
-     */
-    public List<SvyLibTopicoption> selectSvyLibTopicoptionList(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 鏂板闂嵎闂閫夐」
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    public int insertSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 淇敼闂嵎闂閫夐」
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    public int updateSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
-     * 
-     * @param optionids 闇�瑕佸垹闄ょ殑闂嵎闂閫夐」涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicoptionByOptionids(Long[] optionids);
-
-    /**
-     * 鍒犻櫎闂嵎闂閫夐」淇℃伅
-     * 
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyLibTopicoptionByOptionid(Long optionid);
-}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java b/smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java
new file mode 100644
index 0000000..05dea05
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyTaskScript;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎棰樼洰Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+public interface ISvyTaskScriptService
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 浠诲姟闂嵎棰樼洰
+     */
+    public SvyTaskScript selectSvyTaskScriptById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰鍒楄〃
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 浠诲姟闂嵎棰樼洰闆嗗悎
+     */
+    public List<SvyTaskScript> selectSvyTaskScriptList(SvyTaskScript svyTaskScript);
+
+    /**
+     * 鏂板浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskScript(SvyTaskScript svyTaskScript);
+
+    /**
+     * 淇敼浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskScript(SvyTaskScript svyTaskScript);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎棰樼洰
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎棰樼洰涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎棰樼洰淇℃伅
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java b/smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java
new file mode 100644
index 0000000..1a366fb
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyTaskScriptoption;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+public interface ISvyTaskScriptoptionService
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    public SvyTaskScriptoption selectSvyTaskScriptoptionById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」闆嗗悎
+     */
+    public List<SvyTaskScriptoption> selectSvyTaskScriptoptionList(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎闂閫夐」涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptoptionByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」淇℃伅
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskScriptoptionById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTaskService.java b/smartor/src/main/java/com/smartor/service/ISvyTaskService.java
new file mode 100644
index 0000000..92818a2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyTaskService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyTask;
+
+import java.util.List;
+
+/**
+ * 缁煎悎闂嵎浠诲姟锛堜换鍔★級Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+public interface ISvyTaskService
+{
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    public SvyTask selectSvyTaskByTaskid(Long taskid);
+
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級鍒楄〃
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級闆嗗悎
+     */
+    public List<SvyTask> selectSvyTaskList(SvyTask svyTask);
+
+    /**
+     * 鏂板缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    public int insertSvyTask(SvyTask svyTask);
+
+    /**
+     * 淇敼缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    public int updateSvyTask(SvyTask svyTask);
+
+    /**
+     * 鎵归噺鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskids 闇�瑕佸垹闄ょ殑缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskByTaskids(Long[] taskids);
+
+    /**
+     * 鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級淇℃伅
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskByTaskid(Long taskid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTaskSingleService.java b/smartor/src/main/java/com/smartor/service/ISvyTaskSingleService.java
new file mode 100644
index 0000000..6b2bf18
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyTaskSingleService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyTaskSingle;
+
+import java.util.List;
+
+/**
+ * 鍗曚竴浠诲姟锛堥棶鍗凤級Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+public interface ISvyTaskSingleService
+{
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    public SvyTaskSingle selectSvyTaskSingleById(Long id);
+
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級鍒楄〃
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級闆嗗悎
+     */
+    public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 鏂板鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 淇敼鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle);
+
+    /**
+     * 鎵归噺鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskSingleByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級淇℃伅
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskSingleById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java b/smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java
new file mode 100644
index 0000000..995b489
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.SvyTaskTemplate;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎妯℃澘Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+public interface ISvyTaskTemplateService
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 浠诲姟闂嵎妯℃澘
+     */
+    public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘鍒楄〃
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 浠诲姟闂嵎妯℃澘闆嗗悎
+     */
+    public List<SvyTaskTemplate> selectSvyTaskTemplateList(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 鏂板浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    public int insertSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 淇敼浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    public int updateSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎妯℃澘
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎妯℃澘涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskTemplateBySvyids(Long[] svyids);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎妯℃澘淇℃伅
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSvyTaskTemplateBySvyid(Long svyid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTopicService.java b/smartor/src/main/java/com/smartor/service/ISvyTopicService.java
index 8a58a32..df75582 100644
--- a/smartor/src/main/java/com/smartor/service/ISvyTopicService.java
+++ b/smartor/src/main/java/com/smartor/service/ISvyTopicService.java
@@ -1,8 +1,8 @@
 package com.smartor.service;
 
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.smartor.domain.SvyLibScriptRes;
 import com.smartor.domain.SvyLibTopicAndOptionRes;
-import com.smartor.domain.SvyLibTopicRes;
 import com.smartor.domain.SvyTopic;
 import com.smartor.domain.SvyTopicReq;
 import org.springframework.web.multipart.MultipartFile;
@@ -72,7 +72,7 @@
      * @param multipartFile
      * @return
      */
-    public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile);
+    public List<SvyLibScriptRes> importLitTopic(SysUser user, MultipartFile multipartFile);
 
     public Map<String, List<SvyLibTopicAndOptionRes>> showTopic(SvyTopicReq svyTopicReq);
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/AIRobotPhoneCallBackServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/AIRobotPhoneCallBackServiceImpl.java
index 1738a67..1cb8c3f 100644
--- a/smartor/src/main/java/com/smartor/service/impl/AIRobotPhoneCallBackServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/AIRobotPhoneCallBackServiceImpl.java
@@ -1,36 +1,11 @@
 package com.smartor.service.impl;
 
-import com.alibaba.fastjson2.JSON;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
-import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.smartor.config.PhoneUtils;
-import com.smartor.config.RabbitMqCallPhoneConfig;
-import com.smartor.domain.*;
 import com.smartor.domain.robot.back.RobotAIDialogBack;
 import com.smartor.domain.robot.back.RobotCallBack;
 import com.smartor.domain.robot.back.RobotcdrInfoBack;
-import com.smartor.mapper.*;
 import com.smartor.service.AIRobotPhoneCallBackService;
-import com.smartor.service.IIvrTaskService;
-import com.smartor.service.IIvrTaskSingleService;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Service涓氬姟灞傚鐞�
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
index 8262bf3..421f2c7 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
@@ -1,5 +1,6 @@
 package com.smartor.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
@@ -140,6 +141,8 @@
     @Transactional(rollbackFor = Exception.class)
     public int saveOrupdateIvrLibaTarget(IvrLibaTargetVO ivrLibaTargetVO) {
         IvrLibaTarget ivrLibaTarget = DtoConversionUtils.sourceToTarget(ivrLibaTargetVO, IvrLibaTarget.class);
+        if (ObjectUtils.isEmpty(ivrLibaTargetVO.getSuitWayList()))
+            ivrLibaTarget.setSuitWay(JSON.toJSONString(ivrLibaTargetVO.getSuitWayList()));
         ivrLibaTarget.setUpdateTime(DateUtils.getNowDate());
         if (ivrLibaTargetVO.getIsoperation() != null && ivrLibaTargetVO.getIsoperation() == 1) {
             //鏂板
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
index dae637d..51b2150 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
@@ -267,8 +267,6 @@
             log.info("鎻愪緵鐨勬潯浠�,鏌ヨ妯℃澘璇︽儏鏁版嵁涓虹┖锛歿}", ivrLibaTemplates);
             throw new BaseException("鎻愪緵鐨勬潯浠�,鏌ヨ妯℃澘璇︽儏鏁版嵁涓虹┖");
         }
-
-        log.info("ivrLibaTemplates鐨勬煡璇㈢粨鏋滀负:{},鏁伴噺涓� : {}", ivrLibaTemplates.get(0), ivrLibaTemplates.size());
         //瀹氫箟IvrLibaTemplateVO 鐢ㄤ簬杩斿弬
         IvrLibaTemplateVO templateVO = DtoConversionUtils.sourceToTarget(ivrLibaTemplates.get(0), IvrLibaTemplateVO.class);
 
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrTaskServiceImpl.java
index de011f5..5764701 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrTaskServiceImpl.java
@@ -2,16 +2,17 @@
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 import com.alibaba.fastjson2.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.smartor.config.RabbitMqCallPhoneConfig;
+import org.apache.commons.lang3.StringUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
 import lombok.extern.slf4j.Slf4j;
@@ -46,7 +47,7 @@
     private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
 
     @Autowired
-    private RabbitMqCallPhoneConfig rabbitMqCallPhoneConfig;
+    private RedisCache redisCache;
 
     /**
      * 鏌ヨ璇煶浠诲姟
@@ -209,7 +210,7 @@
             sendTaskVO.setSendType(ivrTask.getSendType().toString());
         }
         //鍒ゆ柇浠诲姟鏄惁鏄珛鍗冲彂閫�
-        if (org.apache.commons.lang3.StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) {
+        if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) {
             IvrTaskcallMQ ivrTaskcallMQ = new IvrTaskcallMQ();
             ivrTaskcallMQ.setTaskid(sendTaskVO.getTaskId());
             ivrTaskcallMQ.setSendType(sendTaskVO.getSendType());
@@ -221,14 +222,15 @@
             ivrTaskcallMQJson = ivrTaskcallMQJson.substring(1, ivrTaskcallMQJson.length() - 1);
 
             //绔嬪嵆鍙戦��
-            rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, 0L);
+//            rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, 0L);
+            redisCache.setCacheObject(ivrTaskcallMQJson, ivrTaskcallMQJson, 1, TimeUnit.SECONDS);
 
             //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓�
             IvrTask ivrTask2 = new IvrTask();
             ivrTask2.setTaskid(ivrTask.getTaskid());
             ivrTask2.setSendState(2);
             updateIvrTask(ivrTask2);
-        } else if (org.apache.commons.lang3.StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1")) {
+        } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) {
             //鏃堕棿娈靛彂閫�
             ObjectMapper objectMapper = new ObjectMapper();
             if (org.apache.commons.lang3.StringUtils.isNotEmpty(ivrTask.getSendTimeSlot())) {
@@ -267,7 +269,8 @@
                     Long finalMilliseconds = milliseconds;
                     String ivrTaskcallMQJson = JSON.toJSONString(ivrTaskcallMQ);
                     ivrTaskcallMQJson = ivrTaskcallMQJson.substring(1, ivrTaskcallMQJson.length() - 1);
-                    rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, milliseconds);
+//                    rabbitMqCallPhoneConfig.sendMessage("phone_exchange", "phone.123", ivrTaskcallMQJson, milliseconds);
+                    redisCache.setCacheObject(ivrTaskcallMQJson, ivrTaskcallMQJson, milliseconds / 1000, TimeUnit.SECONDS);
                 }
                 //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓�
                 IvrTask ivrTask2 = new IvrTask();
diff --git a/smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java
index bb250b5..7b7557c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java
@@ -11,19 +11,10 @@
 import com.alibaba.nls.client.protocol.tts.SpeechSynthesizer;
 import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerListener;
 import com.alibaba.nls.client.protocol.tts.SpeechSynthesizerResponse;
-import com.aliyun.dysmsapi20170525.Client;
-import com.aliyun.dysmsapi20170525.models.*;
-import com.aliyun.tea.TeaException;
-import com.aliyun.teaopenapi.models.Config;
-import com.aliyun.teautil.Common;
-import com.aliyun.teautil.models.RuntimeOptions;
-import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
-import com.smartor.service.IBaseSmsaccountService;
-import com.smartor.service.ISvyLibTitleService;
 import com.smartor.service.PersonVoiceService;
 import lombok.extern.slf4j.Slf4j;
 import org.jsoup.Jsoup;
@@ -37,11 +28,6 @@
 import java.io.*;
 import java.nio.ByteBuffer;
 import java.nio.file.Files;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
 
 /**
  * 鐭俊璐﹀彿Service涓氬姟灞傚鐞�
@@ -59,16 +45,16 @@
     private String accessKeySecret;
 
     @Autowired
-    private SvyLibTitleMapper svyLibTitleMapper;
+    private SvyLibTemplateMapper svyLibTitleMapper;
 
     @Autowired
-    private SvyLibTopicMapper svyLibTopicMapper;
+    private SvyLibScriptMapper svyLibTopicMapper;
 
     @Autowired
     private SvyLibTopicdirectionMapper svyLibTopicdirectionMapper;
 
     @Autowired
-    private SvyLibTopicoptionMapper svyLibTopicoptionMapper;
+    private SvyLibScriptOptionMapper svyLibTopicoptionMapper;
 //
 //    @Autowired
 //    private ISvyLibTitleService svyLibTitleService;
@@ -125,12 +111,12 @@
 
             //淇濆瓨title
             String title = parse.title();
-            SvyLibTitle svyLibTitle = new SvyLibTitle();
+            SvyLibTemplate svyLibTitle = new SvyLibTemplate();
 //            svyLibTitle.setCategoryid(System.currentTimeMillis());
             svyLibTitle.setSvyname(title);
             svyLibTitle.setDelFlag("0");
             svyLibTitle.setIsupload(0L);
-            svyLibTitleMapper.insertSvyLibTitle(svyLibTitle);
+            svyLibTitleMapper.insertSvyLibTemplate(svyLibTitle);
 
             Element body = parse.body();
             Elements elementsByClass = body.getElementsByClass("topic__type-body");
@@ -154,7 +140,7 @@
                 String legend = element.getElementsByTag("legend").text();
                 System.out.println("棰樼洰锛� " + legend);
                 //灏嗛鐩繚瀛樺埌琛ㄤ腑
-                SvyLibTopic svyLibTopic = new SvyLibTopic();
+                SvyLibScript svyLibTopic = new SvyLibScript();
                 svyLibTopic.setSvyid(svyLibTitle.getSvyid());
 
                 //鍒ゆ柇璇ラ鐩笅鏄惁鏈夐�夐」
@@ -164,22 +150,22 @@
                     if (spans.size() != 0) {
                         Elements radio__type = spans.get(0).getElementsByClass("radio__type");
                         if (radio__type.size() != 0) {
-                            svyLibTopic.setTopictype("1");
+                            svyLibTopic.setScripttype("1");
                         } else {
                             Elements checkbox__type = spans.get(0).getElementsByClass("checkbox__type");
                             if (checkbox__type.size() != 0) {
-                                svyLibTopic.setTopictype("2");
+                                svyLibTopic.setScripttype("2");
                             }
                         }
 
                     }
-                    svyLibTopic.setTopiccode(IdUtils.simpleUUID());
-                    svyLibTopic.setTopic(legend);
+                    svyLibTopic.setScriptcode(IdUtils.simpleUUID());
+                    svyLibTopic.setScript(legend);
                     svyLibTopic.setDelFlag("0");
                     svyLibTopic.setIsupload(0L);
                     svyLibTopic.setOrgid(fileName);
                     try {
-                        svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
+                        svyLibTopicMapper.insertSvyLibScript(svyLibTopic);
                     } catch (Exception e) {
                         noExpiain(fileName.substring(0, fileName.length() - 5) + "鍑哄紓甯镐簡1", fileContent);
                         continue a;
@@ -194,8 +180,8 @@
                             String text = label.text();
                             //灏嗛鐩瓨搴�
 //                            item = item + "------" + text;
-                            SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption();
-                            svyLibTopicoption.setTopicid(svyLibTopic.getTopicid());
+                            SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption();
+                            svyLibTopicoption.setTopicid(svyLibTopic.getId());
                             svyLibTopicoption.setSvyid(svyLibTitle.getSvyid());
                             svyLibTopicoption.setSort(i);
                             svyLibTopicoption.setOptioncode(IdUtils.simpleUUID());
@@ -203,7 +189,7 @@
                             svyLibTopicoption.setDelFlag("0");
                             svyLibTopicoption.setIsupload(0L);
                             try {
-                                svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption);
+                                svyLibTopicoptionMapper.insertSvyLibScriptOption(svyLibTopicoption);
                             } catch (Exception e) {
                                 noExpiain(fileName.substring(0, fileName.length() - 5) + "鍑哄紓甯镐簡2", fileContent);
                                 continue a;
@@ -219,16 +205,16 @@
 
                     Elements elementsByClass2 = element.getElementsByClass("ui-control-group ui-matrix");
                     if (elementsByClass2.size() > 0) {
-                        SvyLibTopic svyLibTopic2 = new SvyLibTopic();
+                        SvyLibScript svyLibTopic2 = new SvyLibScript();
                         svyLibTopic2.setSvyid(svyLibTitle.getSvyid());
-                        svyLibTopic2.setTopiccode(IdUtils.simpleUUID());
-                        svyLibTopic2.setTopic(legend);
+                        svyLibTopic2.setScriptcode(IdUtils.simpleUUID());
+                        svyLibTopic2.setScript(legend);
                         svyLibTopic2.setDelFlag("0");
                         svyLibTopic.setIsupload(0L);
-                        svyLibTopic2.setTopictype("4");
+                        svyLibTopic2.setScripttype("4");
                         svyLibTopic2.setOrgid(fileName);
                         try {
-                            svyLibTopicMapper.insertSvyLibTopic(svyLibTopic2);
+                            svyLibTopicMapper.insertSvyLibScript(svyLibTopic2);
                         } catch (Exception e) {
                             noExpiain(fileName.substring(0, fileName.length() - 5) + "鍑哄紓甯镐簡22", fileContent);
                             continue a;
@@ -246,7 +232,7 @@
                             direction = direction + ele.text() + "鈽�";
                         }
                         SvyLibTopicdirection svyLibTopicdirection = new SvyLibTopicdirection();
-                        svyLibTopicdirection.setTopicid(svyLibTopic2.getTopicid());
+                        svyLibTopicdirection.setTopicid(svyLibTopic2.getId());
                         svyLibTopicdirection.setDirection(direction);
                         svyLibTopicdirection.setTransverse(transverse);
                         svyLibTopicdirectionMapper.insertSvyLibTopicdirection(svyLibTopicdirection);
@@ -254,16 +240,16 @@
 
 
                         //灏嗛鐩繚瀛樺埌琛ㄤ腑
-                        SvyLibTopic svyLibTopic3 = new SvyLibTopic();
+                        SvyLibScript svyLibTopic3 = new SvyLibScript();
                         svyLibTopic3.setSvyid(svyLibTitle.getSvyid());
-                        svyLibTopic3.setTopiccode(IdUtils.simpleUUID());
-                        svyLibTopic3.setTopic(legend);
+                        svyLibTopic3.setScriptcode(IdUtils.simpleUUID());
+                        svyLibTopic3.setScript(legend);
                         svyLibTopic3.setDelFlag("0");
                         svyLibTopic3.setIsupload(0L);
-                        svyLibTopic3.setTopictype("3");
+                        svyLibTopic3.setScripttype("3");
                         svyLibTopic3.setOrgid(fileName);
                         try {
-                            svyLibTopicMapper.insertSvyLibTopic(svyLibTopic3);
+                            svyLibTopicMapper.insertSvyLibScript(svyLibTopic3);
                         } catch (Exception e) {
                             noExpiain(fileName.substring(0, fileName.length() - 5) + "鍑哄紓甯镐簡33", fileContent);
                             continue a;
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java
new file mode 100644
index 0000000..849a931
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java
@@ -0,0 +1,174 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DtoConversionUtils;
+import com.smartor.domain.SvyLibScriptCategory;
+import com.smartor.domain.SvyLibScriptCategoryVO;
+import com.smartor.mapper.SvyLibScriptCategoryMapper;
+import com.smartor.service.ISvyLibScriptCategoryService;
+import io.jsonwebtoken.lang.Collections;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 闂嵎棰樼洰鍒嗙被Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+@Slf4j
+@Service
+public class SvyLibScriptCategoryServiceImpl implements ISvyLibScriptCategoryService {
+    @Autowired
+    private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 闂嵎棰樼洰鍒嗙被
+     */
+    @Override
+    public SvyLibScriptCategory selectSvyLibScriptCategoryById(Long id) {
+        return svyLibScriptCategoryMapper.selectSvyLibScriptCategoryById(id);
+    }
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 闂嵎棰樼洰鍒嗙被
+     */
+    @Override
+    public List<SvyLibScriptCategoryVO> selectSvyLibScriptCategoryList(SvyLibScriptCategory svyLibScriptCategory) {
+        List<SvyLibScriptCategory> svyLibScriptCategories = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory);
+        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
+        svyLibScriptCategories = svyLibScriptCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
+
+        List<SvyLibScriptCategoryVO> SvyLibScriptCategoryVO = DtoConversionUtils.sourceToTarget(svyLibScriptCategories, SvyLibScriptCategoryVO.class);
+        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
+        for (SvyLibScriptCategoryVO svyLibScriptCategoryVO : SvyLibScriptCategoryVO) {
+            if (svyLibScriptCategoryVO.getPid() != null) {
+                continue;
+            }
+            SvyLibScriptCategory svyLibScriptCategory1 = new SvyLibScriptCategory();
+            svyLibScriptCategory1.setPid(svyLibScriptCategoryVO.getId());
+            List<SvyLibScriptCategory> svyLibScriptCategories1 = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory1);
+            if (!Collections.isEmpty(svyLibScriptCategories1)) {
+                svyLibScriptCategoryVO.setSvyLibScriptCategoryList(svyLibScriptCategories1);
+            }
+        }
+        return SvyLibScriptCategoryVO;
+    }
+
+    /**
+     * 鏂板闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory) {
+        svyLibScriptCategory.setCreateTime(DateUtils.getNowDate());
+        return svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory);
+    }
+
+    /**
+     * 淇敼闂嵎棰樼洰鍒嗙被
+     *
+     * @param svyLibScriptCategory 闂嵎棰樼洰鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyLibScriptCategory(SvyLibScriptCategory svyLibScriptCategory) {
+        svyLibScriptCategory.setUpdateTime(DateUtils.getNowDate());
+        return svyLibScriptCategoryMapper.updateSvyLibScriptCategory(svyLibScriptCategory);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptCategoryByIds(Long[] ids) {
+        Integer i = null;
+        for (Long id : ids) {
+            if (id < 0) {
+                log.info("灏忎簬0鐨勫�间负榛樿鍊间笉鑳藉垹闄わ細{}", id);
+                continue;
+            }
+            i = svyLibScriptCategoryMapper.deleteSvyLibScriptCategoryById(id);
+            SvyLibScriptCategory svyLibScriptCategory = new SvyLibScriptCategory();
+            svyLibScriptCategory.setPid(id);
+            List<SvyLibScriptCategory> svyLibScriptCategories = svyLibScriptCategoryMapper.selectSvyLibScriptCategoryList(svyLibScriptCategory);
+            if (CollectionUtils.isNotEmpty(svyLibScriptCategories)) {
+                for (SvyLibScriptCategory svyLibScriptCategory1 : svyLibScriptCategories) {
+                    svyLibScriptCategory1.setPid(-1L);
+                    svyLibScriptCategoryMapper.updateSvyLibScriptCategory(svyLibScriptCategory1);
+                }
+            }
+        }
+        return i;
+    }
+
+    @Override
+    public int insertSvyLibScriptCategoryTree(SvyLibScriptCategoryVO svyLibScriptCategoryVO) {
+        Integer i = null;
+        if (ObjectUtils.isEmpty(svyLibScriptCategoryVO)) {
+            throw new BaseException("鍏ュ弬涓虹┖,璇锋鏌ュ悗,鍐嶆柊澧�");
+        }
+        Integer seqMax = null;
+        try {
+            seqMax = svyLibScriptCategoryMapper.selectSeqMax();
+        } catch (Exception e) {
+            seqMax = 0;
+        }
+
+        SvyLibScriptCategory svyLibScriptCategory = DtoConversionUtils.sourceToTarget(svyLibScriptCategoryVO, SvyLibScriptCategory.class);
+        svyLibScriptCategory.setSeqno(1);
+        if (seqMax != null) {
+            svyLibScriptCategory.setSeqno(seqMax + 1);
+        }
+        i = svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory);
+        log.info("闂璇濇湳鍒嗙被搴撲竴绾ф爲鐨勪富閿�:{}", svyLibScriptCategory.getId());
+
+        //鏂板浜岀骇鏍�
+        if (CollectionUtils.isNotEmpty(svyLibScriptCategoryVO.getSvyLibScriptCategoryList())) {
+            for (SvyLibScriptCategory svyLibScriptCategory1 : svyLibScriptCategoryVO.getSvyLibScriptCategoryList()) {
+                Integer seqMax1 = null;
+                try {
+                    seqMax1 = svyLibScriptCategoryMapper.selectSeqMax();
+                } catch (Exception e) {
+                    seqMax1 = 0;
+                }
+                svyLibScriptCategory1.setPid(svyLibScriptCategory.getId());
+                svyLibScriptCategory1.setSeqno(1);
+                if (seqMax1 != null) {
+                    svyLibScriptCategory1.setSeqno(seqMax1 + 1);
+                }
+                svyLibScriptCategoryMapper.insertSvyLibScriptCategory(svyLibScriptCategory1);
+            }
+        }
+        return i;
+    }
+
+    /**
+     * 鍒犻櫎闂嵎棰樼洰鍒嗙被淇℃伅
+     *
+     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptCategoryById(Long id) {
+        return svyLibScriptCategoryMapper.deleteSvyLibScriptCategoryById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java
new file mode 100644
index 0000000..492c4b0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java
@@ -0,0 +1,98 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyLibScript;
+import com.smartor.mapper.SvyLibScriptOptionMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.SvyLibScriptOptionMapper;
+import com.smartor.domain.SvyLibScriptOption;
+import com.smartor.service.ISvyLibScriptOptionService;
+
+/**
+ * 闂嵎闂閫夐」Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Service
+public class SvyLibScriptOptionServiceImpl implements ISvyLibScriptOptionService
+{
+    @Autowired
+    private SvyLibScriptOptionMapper svyLibScriptOptionMapper;
+
+    /**
+     * 鏌ヨ闂嵎闂閫夐」
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 闂嵎闂閫夐」
+     */
+    @Override
+    public SvyLibScriptOption selectSvyLibScriptOptionByOptionid(Long optionid)
+    {
+        return svyLibScriptOptionMapper.selectSvyLibScriptOptionByOptionid(optionid);
+    }
+
+    /**
+     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 闂嵎闂閫夐」
+     */
+    @Override
+    public List<SvyLibScriptOption> selectSvyLibScriptOptionList(SvyLibScriptOption svyLibScriptOption)
+    {
+        return svyLibScriptOptionMapper.selectSvyLibScriptOptionList(svyLibScriptOption);
+    }
+
+    /**
+     * 鏂板闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption)
+    {
+        svyLibScriptOption.setCreateTime(DateUtils.getNowDate());
+        return svyLibScriptOptionMapper.insertSvyLibScriptOption(svyLibScriptOption);
+    }
+
+    /**
+     * 淇敼闂嵎闂閫夐」
+     *
+     * @param svyLibScriptOption 闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyLibScriptOption(SvyLibScriptOption svyLibScriptOption)
+    {
+        svyLibScriptOption.setUpdateTime(DateUtils.getNowDate());
+        return svyLibScriptOptionMapper.updateSvyLibScriptOption(svyLibScriptOption);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
+     *
+     * @param optionids 闇�瑕佸垹闄ょ殑闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptOptionByOptionids(Long[] optionids)
+    {
+        return svyLibScriptOptionMapper.deleteSvyLibScriptOptionByOptionids(optionids);
+    }
+
+    /**
+     * 鍒犻櫎闂嵎闂閫夐」淇℃伅
+     *
+     * @param optionid 闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptOptionByOptionid(Long optionid)
+    {
+        return svyLibScriptOptionMapper.deleteSvyLibScriptOptionByOptionid(optionid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java
new file mode 100644
index 0000000..5066add
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java
@@ -0,0 +1,161 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.SvyLibScript;
+import com.smartor.domain.SvyLibScriptOption;
+import com.smartor.mapper.SvyLibScriptMapper;
+import com.smartor.mapper.SvyLibScriptOptionMapper;
+import com.smartor.service.ISvyLibScriptService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 闂嵎棰樼洰Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-03-03
+ */
+@Slf4j
+@Service
+public class SvyLibScriptServiceImpl implements ISvyLibScriptService {
+    @Autowired
+    private SvyLibScriptMapper svyLibTopicMapper;
+
+    @Autowired
+    private SvyLibScriptOptionMapper svyLibScriptOptionMapper;
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰
+     *
+     * @param topicid 闂嵎棰樼洰涓婚敭
+     * @return 闂嵎棰樼洰
+     */
+    @Override
+    public SvyLibScript selectSvyLibScriptByScriptid(Long topicid) {
+        return svyLibTopicMapper.selectSvyLibScriptByScriptid(topicid);
+    }
+
+    /**
+     * 鏌ヨ闂嵎棰樼洰鍒楄〃
+     *
+     * @param svyLibTopic 闂嵎棰樼洰
+     * @return 闂嵎棰樼洰
+     */
+    @Override
+    public List<SvyLibScript> selectSvyLibScriptList(SvyLibScript svyLibTopic) {
+        //娣诲姞棰樼洰
+
+        List<SvyLibScript> svyLibTopics = svyLibTopicMapper.selectSvyLibScriptList(svyLibTopic);
+        //鑾峰彇棰樼洰閫夐」
+
+        for (int j = 0; j < svyLibTopics.size(); j++) {
+            log.info("闂id涓猴細{}", svyLibTopics.get(j).getSvyscriptId());
+            if (StringUtils.isNotEmpty(svyLibTopics.get(j).getScripttype()) && svyLibTopics.get(j).getScripttype().equals("3") || svyLibTopics.get(j).getId() == null) {
+                //浣滅瓟棰橈紝涓嶉渶瑕侀�夐」
+                continue;
+            } else {
+                SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption();
+                svyLibTopicoption.setTopicid(svyLibTopics.get(j).getId());
+                List<SvyLibScriptOption> svyLibTopicoptions = svyLibScriptOptionMapper.selectSvyLibScriptOptionList(svyLibTopicoption);
+                //灏嗘煡璇㈠嚭鐨勯�夐」鐩斁鍒伴鐩腑
+                svyLibTopics.get(j).setSvyLibScriptOptions(svyLibTopicoptions);
+            }
+        }
+        return svyLibTopics;
+    }
+
+    /**
+     * 鏂板闂嵎棰樼洰
+     *
+     * @param svyLibTopic 闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyLibScript(SvyLibScript svyLibTopic) {
+        svyLibTopic.setCreateTime(DateUtils.getNowDate());
+        return svyLibTopicMapper.insertSvyLibScript(svyLibTopic);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Integer saveOrUpdateScript(SvyLibScript svyLibTopic) {
+        Integer i = null;
+
+        //瀵归鐩繘琛屽鐞�
+        if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
+            //鏂板
+            i = svyLibTopicMapper.insertSvyLibScript(svyLibTopic);
+        } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
+            //淇敼
+            i = svyLibTopicMapper.updateSvyLibScript(svyLibTopic);
+        }
+
+        //瀵归鐩�夐」杩涜澶勭悊
+        if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptOptions())) {
+            for (SvyLibScriptOption svyLibTopicoption : svyLibTopic.getSvyLibScriptOptions()) {
+                if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
+                    //鏂板
+                    svyLibTopicoption.setTopicid(svyLibTopic.getId());
+                    svyLibTopicoption.setCreateTime(new Date());
+                    svyLibScriptOptionMapper.insertSvyLibScriptOption(svyLibTopicoption);
+                } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
+                    //淇敼
+                    svyLibTopicoption.setTopicid(svyLibTopic.getId());
+                    svyLibTopicoption.setUpdateTime(new Date());
+                    svyLibScriptOptionMapper.updateSvyLibScriptOption(svyLibTopicoption);
+                } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 3) {
+                    //鍒犻櫎
+                    svyLibScriptOptionMapper.deleteSvyLibScriptOptionByOptionid(svyLibTopicoption.getOptionid());
+                }
+            }
+        }
+        return i;
+    }
+
+    /**
+     * 淇敼闂嵎棰樼洰
+     *
+     * @param svyLibTopic 闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyLibScript(SvyLibScript svyLibTopic) {
+        svyLibTopic.setUpdateTime(DateUtils.getNowDate());
+        return svyLibTopicMapper.updateSvyLibScript(svyLibTopic);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎棰樼洰
+     *
+     * @param topicids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptByScriptids(Long[] topicids) {
+        Integer i = null;
+        for (Long topicid : topicids) {
+            i = svyLibTopicMapper.deleteSvyLibScriptByScriptid(topicid);
+        }
+        return i;
+    }
+
+    /**
+     * 鍒犻櫎闂嵎棰樼洰淇℃伅
+     *
+     * @param topicid 闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibScriptByScriptid(Long topicid) {
+        return svyLibTopicMapper.deleteSvyLibScriptByScriptid(topicid);
+    }
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java
new file mode 100644
index 0000000..bda256e
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java
@@ -0,0 +1,169 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DtoConversionUtils;
+import com.smartor.domain.SvyLibTemplateCategory;
+import com.smartor.domain.SvyLibTemplateCategoryVO;
+import com.smartor.mapper.SvyLibTemplateCategoryMapper;
+import com.smartor.service.ISvyLibTemplateCategoryService;
+import io.jsonwebtoken.lang.Collections;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 闂嵎妯℃澘鍒嗙被Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-12-27
+ */
+@Slf4j
+@Service
+public class SvyLibTemplateCategoryServiceImpl implements ISvyLibTemplateCategoryService {
+    @Autowired
+    private SvyLibTemplateCategoryMapper svyLibTemplateCategoryMapper;
+
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被
+     *
+     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
+     * @return 闂嵎妯℃澘鍒嗙被
+     */
+    @Override
+    public SvyLibTemplateCategory selectSvyLibTemplateCategoryById(Long id) {
+        return svyLibTemplateCategoryMapper.selectSvyLibTemplateCategoryById(id);
+    }
+
+    /**
+     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 闂嵎妯℃澘鍒嗙被
+     */
+    @Override
+    public List<SvyLibTemplateCategoryVO> selectSvyLibTemplateCategoryList(SvyLibTemplateCategory svyLibTemplateCategory) {
+        List<SvyLibTemplateCategory> svyLibTemplateCategories = svyLibTemplateCategoryMapper.selectSvyLibTemplateCategoryList(svyLibTemplateCategory);
+        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
+        svyLibTemplateCategories = svyLibTemplateCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
+
+        List<SvyLibTemplateCategoryVO> svyLibTemplateCategoryVOList = DtoConversionUtils.sourceToTarget(svyLibTemplateCategories, SvyLibTemplateCategoryVO.class);
+        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
+        for (SvyLibTemplateCategoryVO svyLibTemplateCategoryVO : svyLibTemplateCategoryVOList) {
+            if (svyLibTemplateCategoryVO.getPid() != null) {
+                continue;
+            }
+            SvyLibTemplateCategory svyLibTemplateCategory1 = new SvyLibTemplateCategory();
+            svyLibTemplateCategory1.setPid(svyLibTemplateCategoryVO.getId());
+            List<SvyLibTemplateCategory> svyLibTemplateCategoryList = svyLibTemplateCategoryMapper.selectSvyLibTemplateCategoryList(svyLibTemplateCategory1);
+            if (!Collections.isEmpty(svyLibTemplateCategoryList)) {
+                svyLibTemplateCategoryVO.setSvyLibTemplateCategoryList(svyLibTemplateCategoryList);
+            }
+        }
+        return svyLibTemplateCategoryVOList;
+    }
+
+    /**
+     * 鏂板闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory) {
+        svyLibTemplateCategory.setCreateTime(DateUtils.getNowDate());
+        return svyLibTemplateCategoryMapper.insertSvyLibTemplateCategory(svyLibTemplateCategory);
+    }
+
+    /**
+     * 淇敼闂嵎妯℃澘鍒嗙被
+     *
+     * @param svyLibTemplateCategory 闂嵎妯℃澘鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyLibTemplateCategory(SvyLibTemplateCategory svyLibTemplateCategory) {
+        svyLibTemplateCategory.setUpdateTime(DateUtils.getNowDate());
+        return svyLibTemplateCategoryMapper.updateSvyLibTemplateCategory(svyLibTemplateCategory);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑闂嵎妯℃澘鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibTemplateCategoryByIds(Long[] ids) {
+        Integer i = null;
+        for (Long id : ids) {
+            if (id < 0) {
+                log.info("闂嵎妯℃澘鍒嗙被鐨処D灏忎簬0锛屼负榛樿鍒嗙被锛屼笉鑳藉垹闄�,id:{}", id);
+                continue;
+            }
+            i = svyLibTemplateCategoryMapper.deleteSvyLibTemplateCategoryById(id);
+            SvyLibTemplateCategory svyLibTemplateCategory = new SvyLibTemplateCategory();
+            svyLibTemplateCategory.setPid(id);
+
+            //鏀惧埌鏈垎閰嶄笅闈�
+            List<SvyLibTemplateCategory> svyLibTemplateCategoryList = svyLibTemplateCategoryMapper.selectSvyLibTemplateCategoryList(svyLibTemplateCategory);
+            if (CollectionUtils.isNotEmpty(svyLibTemplateCategoryList)) {
+                for (SvyLibTemplateCategory svyLibTemplateCategory1 : svyLibTemplateCategoryList) {
+                    svyLibTemplateCategory1.setPid(-1L);
+                    svyLibTemplateCategoryMapper.updateSvyLibTemplateCategory(svyLibTemplateCategory1);
+                }
+            }
+        }
+        return i;
+    }
+
+    @Override
+    public int insertSvyLibTemplateCategoryTree(SvyLibTemplateCategoryVO svyLibTemplateCategoryVO) {
+        Integer i = null;
+        if (ObjectUtils.isEmpty(svyLibTemplateCategoryVO)) {
+            throw new BaseException("鍏ュ弬涓虹┖,璇锋鏌ュ悗,鍐嶆柊澧�");
+        }
+
+        //鑾峰彇搴忓彿鏈�澶у��
+        Integer seqMax = null;
+        try {
+            seqMax = svyLibTemplateCategoryMapper.selectSeqMax();
+        } catch (Exception e) {
+            seqMax = 0;
+        }
+        SvyLibTemplateCategory svyLibTemplateCategory = DtoConversionUtils.sourceToTarget(svyLibTemplateCategoryVO, SvyLibTemplateCategory.class);
+        svyLibTemplateCategory.setSeqno(1);
+        if (seqMax != null) {
+            svyLibTemplateCategory.setSeqno(seqMax + 1);
+        }
+
+        i = svyLibTemplateCategoryMapper.insertSvyLibTemplateCategory(svyLibTemplateCategory);
+        log.info("闂璇濇湳鍒嗙被搴撲竴绾ф爲鐨勪富閿�:{}", svyLibTemplateCategory.getId());
+
+        //鏂板浜岀骇鏍�
+        if (CollectionUtils.isNotEmpty(svyLibTemplateCategoryVO.getSvyLibTemplateCategoryList())) {
+            for (SvyLibTemplateCategory svyLibTemplateCategory1 : svyLibTemplateCategoryVO.getSvyLibTemplateCategoryList()) {
+                Integer seqMax1 = null;
+                try {
+                    seqMax1 = svyLibTemplateCategoryMapper.selectSeqMax();
+                } catch (Exception e) {
+                    seqMax1 = 0;
+                }
+                svyLibTemplateCategory1.setPid(svyLibTemplateCategory.getId());
+                svyLibTemplateCategory1.setSeqno(1);
+                if (seqMax1 != null) {
+                    svyLibTemplateCategory1.setSeqno(seqMax1 + 1);
+                }
+                svyLibTemplateCategoryMapper.insertSvyLibTemplateCategory(svyLibTemplateCategory1);
+            }
+        }
+        return i;
+    }
+
+}
+
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
new file mode 100644
index 0000000..9f3abf0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -0,0 +1,238 @@
+package com.smartor.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.*;
+import com.smartor.mapper.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.service.ISvyLibTemplateService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 闂嵎Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-03-02
+ */
+@Slf4j
+@Service
+public class SvyLibTemplateServiceImpl implements ISvyLibTemplateService {
+    @Autowired
+    private SvyLibTemplateMapper svyLibTemplateMapper;
+    @Autowired
+    private Icd10AssociationMapper icd10AssociationMapper;
+    @Autowired
+    private SvyLibScriptMapper svyLibScriptMapper;
+    @Autowired
+    private SvyLibScriptOptionMapper svyLibTopicoptionMapper;
+    @Autowired
+    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
+
+    /**
+     * 鏌ヨ闂嵎
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 闂嵎
+     */
+    @Override
+    public SvyLibTemplate selectSvyLibTemplateBySvyid(Long svyid) {
+        return svyLibTemplateMapper.selectSvyLibTemplateBySvyid(svyid);
+    }
+
+    /**
+     * 鏌ヨ闂嵎鍒楄〃
+     *
+     * @param svyLibTemplateReq 闂嵎
+     * @return 闂嵎
+     */
+    @Override
+    public List<SvyLibTemplate> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq) {
+        List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq);
+        //娣诲姞棰樼洰
+        for (int i = 0; i < svyLibTemplates.size(); i++) {
+            SvyLibScript svyLibTopic = new SvyLibScript();
+            svyLibTopic.setSvyid(svyLibTemplates.get(i).getSvyid());
+            List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibTopic);
+            //鑾峰彇棰樼洰閫夐」
+            a:
+            for (int j = 0; j < svyLibTopics.size(); j++) {
+                log.info("闂id涓猴細{}", svyLibTopics.get(j).getSvyscriptId());
+                if (StringUtils.isNotEmpty(svyLibTopics.get(j).getScripttype()) && svyLibTopics.get(j).getScripttype().equals("3") || svyLibTopics.get(j).getSvyscriptId() == null) {
+                    //浣滅瓟棰橈紝涓嶉渶瑕侀�夐」
+                    continue a;
+                } else {
+                    SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption();
+                    svyLibTopicoption.setTopicid(svyLibTopics.get(j).getSvyscriptId());
+                    List<SvyLibScriptOption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibScriptOptionList(svyLibTopicoption);
+                    //灏嗘煡璇㈠嚭鐨勯�夐」鐩斁鍒伴鐩腑
+                    svyLibTopics.get(j).setSvyLibScriptOptions(svyLibTopicoptions);
+                }
+            }
+            //灏嗛鐩斁鍒伴棶鍗峰垪琛ㄤ腑
+            svyLibTemplates.get(i).setSvyLibTopics(svyLibTopics);
+
+            //鑾峰彇姣忎釜闂嵎瀵瑰簲鐨勭瀹�
+            TempDetpRelevance tempDetpRelevance = new TempDetpRelevance();
+            tempDetpRelevance.setTempid(svyLibTemplates.get(i).getSvyid());
+            List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance);
+            svyLibTemplates.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
+        }
+
+        //鍏堝皢鐩稿悓鐨刬d鐨刬cdname,鏁寸悊鍒颁竴鍧�
+        List<SvyLibTemplate> libTemplates = svyLibTemplates.stream().collect(Collectors.groupingBy(SvyLibTemplate::getSvyid, Collectors.mapping(SvyLibTemplate::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTemplate(entry.getKey(), entry.getValue())).collect(Collectors.toList());
+        //涓存椂鍙橀噺锛岀敤鏉ヤ繚瀛樼柧鐥呭悕绉�
+        String icdname = null;
+        for (int i = 0; i < libTemplates.size(); i++) {
+            for (int j = 0; j < svyLibTemplates.size(); j++) {
+                if (ObjectUtils.isNotEmpty(libTemplates.get(i).getSvyid()) && libTemplates.get(i).getSvyid() == svyLibTemplates.get(j).getSvyid()) {
+                    icdname = libTemplates.get(i).getIcdname();
+                    // 灏嗗師鏁版嵁鎷疯礉鍒版暣鐞嗙殑濂界殑瀵硅薄涓�
+                    BeanUtils.copyProperties(svyLibTemplates.get(j), libTemplates.get(i));
+                    //鍐嶅皢鏁寸悊濂界殑鈥滅柧鐥呭悕绉扳�濇浛鎹�
+                    libTemplates.get(i).setIcdname(icdname);
+                }
+            }
+        }
+        return libTemplates;
+    }
+
+    /**
+     * 鏂板闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate) {
+        svyLibTemplate.setCreateTime(DateUtils.getNowDate());
+        svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
+        //鍏宠仈闂嵎鐤剧梾
+        for (String icdId : svyLibTemplate.getIcdID()) {
+            Icd10Association icd10Association = new Icd10Association();
+            icd10Association.setIcd10code(icdId);
+            icd10Association.setSvyid(svyLibTemplate.getSvyid());
+            icd10AssociationMapper.insertIcd10Association(icd10Association);
+        }
+        //鏂板闂棰樼洰
+        for (int i = 0; i < svyLibTemplate.getSvyLibTopics().size(); i++) {
+            SvyLibScript svyLibScript = svyLibTemplate.getSvyLibTopics().get(i);
+            svyLibScript.setSvyid(svyLibTemplate.getSvyid());
+            //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicidf鍘诲叧鑱�
+            svyLibScriptMapper.insertSvyLibScript(svyLibScript);
+        }
+        return 1;
+    }
+
+    /**
+     * 鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭�
+     *
+     * @param svyLibTemplate
+     * @return
+     */
+    @Override
+    public Integer saveOrUpdateTemplate(SvyLibTemplate svyLibTemplate) {
+        Integer i = null;
+        if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 1) {
+            //鏂板
+            svyLibTemplate.setCreateTime(DateUtils.getNowDate());
+            i = svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate);
+        } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 2) {
+            //淇敼
+            svyLibTemplate.setUpdateTime(DateUtils.getNowDate());
+            i = svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate);
+        }
+
+        //澶勭悊棰樼洰
+        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibTopics())) {
+            for (SvyLibScript svyLibTopic : svyLibTemplate.getSvyLibTopics()) {
+                //瀵归鐩繘琛屽鐞�
+                if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
+                    //鏂板
+                    svyLibTopic.setSvyid(svyLibTemplate.getSvyid());
+                    //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicid鍘诲叧鑱�
+                    svyLibScriptMapper.insertSvyLibScript(svyLibTopic);
+                } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
+                    //淇敼
+                    svyLibTopic.setSvyid(svyLibTemplate.getSvyid());
+                    svyLibScriptMapper.updateSvyLibScript(svyLibTopic);
+                }
+
+                //瀵归鐩�夐」杩涜澶勭悊
+                if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptOptions())) {
+                    for (SvyLibScriptOption svyLibTopicoption : svyLibTopic.getSvyLibScriptOptions()) {
+                        if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
+                            //鏂板
+                            svyLibTopicoption.setTopicid(svyLibTopic.getId());
+                            svyLibTopicoptionMapper.insertSvyLibScriptOption(svyLibTopicoption);
+                        } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
+                            //淇敼
+                            svyLibTopicoption.setTopicid(svyLibTopic.getId());
+                            svyLibTopicoptionMapper.updateSvyLibScriptOption(svyLibTopicoption);
+                        }
+                    }
+
+                }
+
+            }
+        }
+
+        if (CollectionUtils.isNotEmpty(svyLibTemplate.getTempDetpRelevances())) {
+            for (TempDetpRelevance tempDetpRelevance : svyLibTemplate.getTempDetpRelevances()) {
+                if (tempDetpRelevance.getId() == null) {
+                    //鏂板
+                    tempDetpRelevance.setTempid(svyLibTemplate.getSvyid());
+                    tempDetpRelevance.setType(1L);
+                    tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
+                } else {
+                    tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance);
+                }
+            }
+
+        }
+        return i;
+    }
+
+    /**
+     * 淇敼闂嵎
+     *
+     * @param svyLibTemplate 闂嵎
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyLibTemplate(SvyLibTemplate svyLibTemplate) {
+        svyLibTemplate.setUpdateTime(DateUtils.getNowDate());
+        return svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎闂嵎
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑闂嵎涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibTemplateBySvyids(Long[] svyids) {
+        return svyLibTemplateMapper.deleteSvyLibTemplateBySvyids(svyids);
+    }
+
+    /**
+     * 鍒犻櫎闂嵎淇℃伅
+     *
+     * @param svyid 闂嵎涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyLibTemplateBySvyid(Long svyid) {
+        return svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleCategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleCategoryServiceImpl.java
deleted file mode 100644
index 50ef3b4..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleCategoryServiceImpl.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package com.smartor.service.impl;
-
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.smartor.domain.SvyLibTitleCategory;
-import com.smartor.domain.SvyLibTitleCategoryVO;
-import com.smartor.mapper.SvyLibTitleCategoryMapper;
-import com.smartor.service.ISvyLibTitleCategoryService;
-import io.jsonwebtoken.lang.Collections;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 闂嵎妯℃澘鍒嗙被Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-@Slf4j
-@Service
-public class SvyLibTitleCategoryServiceImpl implements ISvyLibTitleCategoryService {
-    @Autowired
-    private SvyLibTitleCategoryMapper svyLibTitleCategoryMapper;
-
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被
-     *
-     * @param id 闂嵎妯℃澘鍒嗙被涓婚敭
-     * @return 闂嵎妯℃澘鍒嗙被
-     */
-    @Override
-    public SvyLibTitleCategory selectSvyLibTitleCategoryById(Long id) {
-        return svyLibTitleCategoryMapper.selectSvyLibTitleCategoryById(id);
-    }
-
-    /**
-     * 鏌ヨ闂嵎妯℃澘鍒嗙被鍒楄〃
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 闂嵎妯℃澘鍒嗙被
-     */
-    @Override
-    public List<SvyLibTitleCategoryVO> selectSvyLibTitleCategoryList(SvyLibTitleCategory svyLibTitleCategory) {
-        List<SvyLibTitleCategory> svyLibTitleCategories = svyLibTitleCategoryMapper.selectSvyLibTitleCategoryList(svyLibTitleCategory);
-        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
-        svyLibTitleCategories = svyLibTitleCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
-
-        List<SvyLibTitleCategoryVO> svyLibTitleCategoryVOList = DtoConversionUtils.sourceToTarget(svyLibTitleCategories, SvyLibTitleCategoryVO.class);
-        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
-        for (SvyLibTitleCategoryVO svyLibTitleCategoryVO : svyLibTitleCategoryVOList) {
-            if (svyLibTitleCategoryVO.getPid() != null) {
-                continue;
-            }
-            SvyLibTitleCategory svyLibTitleCategory1 = new SvyLibTitleCategory();
-            svyLibTitleCategory1.setPid(svyLibTitleCategoryVO.getId());
-            List<SvyLibTitleCategory> svyLibTitleCategoryList = svyLibTitleCategoryMapper.selectSvyLibTitleCategoryList(svyLibTitleCategory1);
-            if (!Collections.isEmpty(svyLibTitleCategoryList)) {
-                svyLibTitleCategoryVO.setSvyLibTitleCategoryList(svyLibTitleCategoryList);
-            }
-        }
-        return svyLibTitleCategoryVOList;
-    }
-
-    /**
-     * 鏂板闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory) {
-        svyLibTitleCategory.setCreateTime(DateUtils.getNowDate());
-        return svyLibTitleCategoryMapper.insertSvyLibTitleCategory(svyLibTitleCategory);
-    }
-
-    /**
-     * 淇敼闂嵎妯℃澘鍒嗙被
-     *
-     * @param svyLibTitleCategory 闂嵎妯℃澘鍒嗙被
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyLibTitleCategory(SvyLibTitleCategory svyLibTitleCategory) {
-        svyLibTitleCategory.setUpdateTime(DateUtils.getNowDate());
-        return svyLibTitleCategoryMapper.updateSvyLibTitleCategory(svyLibTitleCategory);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎妯℃澘鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑闂嵎妯℃澘鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTitleCategoryByIds(Long[] ids) {
-        Integer i = null;
-        for (Long id : ids) {
-            if (id < 0) {
-                log.info("闂嵎妯℃澘鍒嗙被鐨処D灏忎簬0锛屼负榛樿鍒嗙被锛屼笉鑳藉垹闄�,id:{}", id);
-                continue;
-            }
-            i = svyLibTitleCategoryMapper.deleteSvyLibTitleCategoryById(id);
-            SvyLibTitleCategory svyLibTitleCategory = new SvyLibTitleCategory();
-            svyLibTitleCategory.setPid(id);
-
-            //鏀惧埌鏈垎閰嶄笅闈�
-            List<SvyLibTitleCategory> svyLibTitleCategoryList = svyLibTitleCategoryMapper.selectSvyLibTitleCategoryList(svyLibTitleCategory);
-            if (CollectionUtils.isNotEmpty(svyLibTitleCategoryList)) {
-                for (SvyLibTitleCategory svyLibTitleCategory1 : svyLibTitleCategoryList) {
-                    svyLibTitleCategory1.setPid(-1L);
-                    svyLibTitleCategoryMapper.updateSvyLibTitleCategory(svyLibTitleCategory1);
-                }
-            }
-        }
-        return i;
-    }
-
-    @Override
-    public int insertSvyLibTitleCategoryTree(SvyLibTitleCategoryVO svyLibTitleCategoryVO) {
-        Integer i = null;
-        if (ObjectUtils.isEmpty(svyLibTitleCategoryVO)) {
-            throw new BaseException("鍏ュ弬涓虹┖,璇锋鏌ュ悗,鍐嶆柊澧�");
-        }
-
-        //鑾峰彇搴忓彿鏈�澶у��
-        Integer seqMax = null;
-        try {
-            seqMax = svyLibTitleCategoryMapper.selectSeqMax();
-        } catch (Exception e) {
-            seqMax = 0;
-        }
-        SvyLibTitleCategory svyLibTitleCategory = DtoConversionUtils.sourceToTarget(svyLibTitleCategoryVO, SvyLibTitleCategory.class);
-        svyLibTitleCategory.setSeqno(1);
-        if (seqMax != null) {
-            svyLibTitleCategory.setSeqno(seqMax + 1);
-        }
-
-        i = svyLibTitleCategoryMapper.insertSvyLibTitleCategory(svyLibTitleCategory);
-        log.info("闂璇濇湳鍒嗙被搴撲竴绾ф爲鐨勪富閿�:{}", svyLibTitleCategory.getId());
-
-        //鏂板浜岀骇鏍�
-        if (CollectionUtils.isNotEmpty(svyLibTitleCategoryVO.getSvyLibTitleCategoryList())) {
-            for (SvyLibTitleCategory svyLibTitleCategory1 : svyLibTitleCategoryVO.getSvyLibTitleCategoryList()) {
-                Integer seqMax1 = null;
-                try {
-                    seqMax1 = svyLibTitleCategoryMapper.selectSeqMax();
-                } catch (Exception e) {
-                    seqMax1 = 0;
-                }
-                svyLibTitleCategory1.setPid(svyLibTitleCategory.getId());
-                svyLibTitleCategory1.setSeqno(1);
-                if (seqMax1 != null) {
-                    svyLibTitleCategory1.setSeqno(seqMax1 + 1);
-                }
-                svyLibTitleCategoryMapper.insertSvyLibTitleCategory(svyLibTitleCategory1);
-            }
-        }
-        return i;
-    }
-
-}
-
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
deleted file mode 100644
index 75cd312..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTitleServiceImpl.java
+++ /dev/null
@@ -1,239 +0,0 @@
-package com.smartor.service.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.*;
-import com.smartor.mapper.*;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.smartor.service.ISvyLibTitleService;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * 闂嵎Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2023-03-02
- */
-@Slf4j
-@Service
-public class SvyLibTitleServiceImpl implements ISvyLibTitleService {
-    @Autowired
-    private SvyLibTitleMapper svyLibTitleMapper;
-    @Autowired
-    private Icd10AssociationMapper icd10AssociationMapper;
-    @Autowired
-    private SvyLibTopicMapper svyLibTopicMapper;
-    @Autowired
-    private SvyLibTopicoptionMapper svyLibTopicoptionMapper;
-    @Autowired
-    private TempDetpRelevanceMapper tempDetpRelevanceMapper;
-
-    /**
-     * 鏌ヨ闂嵎
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 闂嵎
-     */
-    @Override
-    public SvyLibTitle selectSvyLibTitleBySvyid(Long svyid) {
-        return svyLibTitleMapper.selectSvyLibTitleBySvyid(svyid);
-    }
-
-    /**
-     * 鏌ヨ闂嵎鍒楄〃
-     *
-     * @param svyLibTitleReq 闂嵎
-     * @return 闂嵎
-     */
-    @Override
-    public List<SvyLibTitle> selectSvyLibTitleList(SvyLibTitleReq svyLibTitleReq) {
-        List<SvyLibTitle> svyLibTitles = svyLibTitleMapper.selectSvyLibTitleList(svyLibTitleReq);
-        //娣诲姞棰樼洰
-        for (int i = 0; i < svyLibTitles.size(); i++) {
-            SvyLibTopic svyLibTopic = new SvyLibTopic();
-            svyLibTopic.setSvyid(svyLibTitles.get(i).getSvyid());
-            List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic);
-            //鑾峰彇棰樼洰閫夐」
-            a:
-            for (int j = 0; j < svyLibTopics.size(); j++) {
-                log.info("闂id涓猴細{}", svyLibTopics.get(j).getSvyTopicId());
-                if (StringUtils.isNotEmpty(svyLibTopics.get(j).getTopictype()) && svyLibTopics.get(j).getTopictype().equals("3") || svyLibTopics.get(j).getSvyTopicId() == null) {
-                    //浣滅瓟棰橈紝涓嶉渶瑕侀�夐」
-                    continue a;
-                } else {
-                    SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption();
-                    svyLibTopicoption.setTopicid(svyLibTopics.get(j).getSvyTopicId());
-                    List<SvyLibTopicoption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibTopicoptionList(svyLibTopicoption);
-                    //灏嗘煡璇㈠嚭鐨勯�夐」鐩斁鍒伴鐩腑
-                    svyLibTopics.get(j).setSvyLibTopicoptions(svyLibTopicoptions);
-                }
-            }
-            //灏嗛鐩斁鍒伴棶鍗峰垪琛ㄤ腑
-            svyLibTitles.get(i).setSvyLibTopics(svyLibTopics);
-
-            //鑾峰彇姣忎釜闂嵎瀵瑰簲鐨勭瀹�
-            TempDetpRelevance tempDetpRelevance = new TempDetpRelevance();
-            tempDetpRelevance.setTempid(svyLibTitles.get(i).getSvyid());
-            List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance);
-            svyLibTitles.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>());
-        }
-
-        //鍏堝皢鐩稿悓鐨刬d鐨刬cdname,鏁寸悊鍒颁竴鍧�
-        List<SvyLibTitle> libTitles = svyLibTitles.stream().collect(Collectors.groupingBy(SvyLibTitle::getSvyid, Collectors.mapping(SvyLibTitle::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTitle(entry.getKey(), entry.getValue())).collect(Collectors.toList());
-        //涓存椂鍙橀噺锛岀敤鏉ヤ繚瀛樼柧鐥呭悕绉�
-        String icdname = null;
-        for (int i = 0; i < libTitles.size(); i++) {
-            for (int j = 0; j < svyLibTitles.size(); j++) {
-                if (ObjectUtils.isNotEmpty(libTitles.get(i).getSvyid()) && libTitles.get(i).getSvyid() == svyLibTitles.get(j).getSvyid()) {
-                    icdname = libTitles.get(i).getIcdname();
-                    // 灏嗗師鏁版嵁鎷疯礉鍒版暣鐞嗙殑濂界殑瀵硅薄涓�
-                    BeanUtils.copyProperties(svyLibTitles.get(j), libTitles.get(i));
-                    //鍐嶅皢鏁寸悊濂界殑鈥滅柧鐥呭悕绉扳�濇浛鎹�
-                    libTitles.get(i).setIcdname(icdname);
-                }
-            }
-        }
-        return libTitles;
-    }
-
-    /**
-     * 鏂板闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    @Transactional
-    @Override
-    public int insertSvyLibTitle(SvyLibTitle svyLibTitle) {
-        svyLibTitle.setCreateTime(DateUtils.getNowDate());
-        svyLibTitleMapper.insertSvyLibTitle(svyLibTitle);
-        //鍏宠仈闂嵎鐤剧梾
-        for (String icdId : svyLibTitle.getIcdID()) {
-            Icd10Association icd10Association = new Icd10Association();
-            icd10Association.setIcd10code(icdId);
-            icd10Association.setSvyid(svyLibTitle.getSvyid());
-            icd10AssociationMapper.insertIcd10Association(icd10Association);
-        }
-        //鏂板闂棰樼洰
-        for (int i = 0; i < svyLibTitle.getSvyLibTopics().size(); i++) {
-            SvyLibTopic svyLibTopic = svyLibTitle.getSvyLibTopics().get(i);
-            svyLibTopic.setSvyid(svyLibTitle.getSvyid());
-            //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicidf鍘诲叧鑱�
-            svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
-        }
-        return 1;
-    }
-
-    /**
-     * 鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭�
-     *
-     * @param svyLibTitle
-     * @return
-     */
-    @Override
-    public Integer saveOrUpdateTitle(SvyLibTitle svyLibTitle) {
-        Integer i = null;
-        if (svyLibTitle.getIsoperation() != null && svyLibTitle.getIsoperation() == 1) {
-            //鏂板
-            svyLibTitle.setCreateTime(DateUtils.getNowDate());
-            i = svyLibTitleMapper.insertSvyLibTitle(svyLibTitle);
-        } else if (svyLibTitle.getIsoperation() != null && svyLibTitle.getIsoperation() == 2) {
-            //淇敼
-            svyLibTitle.setUpdateTime(DateUtils.getNowDate());
-            i = svyLibTitleMapper.updateSvyLibTitle(svyLibTitle);
-        }
-
-        //澶勭悊棰樼洰
-        if (CollectionUtils.isNotEmpty(svyLibTitle.getSvyLibTopics())) {
-            for (SvyLibTopic svyLibTopic : svyLibTitle.getSvyLibTopics()) {
-                //瀵归鐩繘琛屽鐞�
-                if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
-                    //鏂板
-                    svyLibTopic.setSvyid(svyLibTitle.getSvyid());
-                    //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicid鍘诲叧鑱�
-                    svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
-                } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
-                    //淇敼
-                    svyLibTopic.setSvyid(svyLibTitle.getSvyid());
-                    svyLibTopicMapper.updateSvyLibTopic(svyLibTopic);
-                }
-
-                //瀵归鐩�夐」杩涜澶勭悊
-                if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibTopicoptions())) {
-                    for (SvyLibTopicoption svyLibTopicoption : svyLibTopic.getSvyLibTopicoptions()) {
-                        if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
-                            //鏂板
-                            svyLibTopicoption.setTopicid(svyLibTopic.getTopicid());
-                            svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption);
-                        } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
-                            //淇敼
-                            svyLibTopicoption.setTopicid(svyLibTopic.getTopicid());
-                            svyLibTopicoptionMapper.updateSvyLibTopicoption(svyLibTopicoption);
-                        }
-                    }
-
-                }
-
-            }
-        }
-
-        if (CollectionUtils.isNotEmpty(svyLibTitle.getTempDetpRelevances())) {
-            for (TempDetpRelevance tempDetpRelevance : svyLibTitle.getTempDetpRelevances()) {
-                if (tempDetpRelevance.getId() == null) {
-                    //鏂板
-                    tempDetpRelevance.setTempid(svyLibTitle.getSvyid());
-                    tempDetpRelevance.setType(1L);
-                    tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
-                } else {
-                    tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance);
-                }
-            }
-
-        }
-        return i;
-    }
-
-    /**
-     * 淇敼闂嵎
-     *
-     * @param svyLibTitle 闂嵎
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyLibTitle(SvyLibTitle svyLibTitle) {
-        svyLibTitle.setUpdateTime(DateUtils.getNowDate());
-        return svyLibTitleMapper.updateSvyLibTitle(svyLibTitle);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎
-     *
-     * @param svyids 闇�瑕佸垹闄ょ殑闂嵎涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTitleBySvyids(Long[] svyids) {
-        return svyLibTitleMapper.deleteSvyLibTitleBySvyids(svyids);
-    }
-
-    /**
-     * 鍒犻櫎闂嵎淇℃伅
-     *
-     * @param svyid 闂嵎涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTitleBySvyid(Long svyid) {
-        return svyLibTitleMapper.deleteSvyLibTitleBySvyid(svyid);
-    }
-}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicCategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicCategoryServiceImpl.java
deleted file mode 100644
index fffe152..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicCategoryServiceImpl.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package com.smartor.service.impl;
-
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.smartor.domain.SvyLibTopicCategory;
-import com.smartor.domain.SvyLibTopicCategoryVO;
-import com.smartor.mapper.SvyLibTopicCategoryMapper;
-import com.smartor.service.ISvyLibTopicCategoryService;
-import io.jsonwebtoken.lang.Collections;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 闂嵎棰樼洰鍒嗙被Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2023-12-27
- */
-@Slf4j
-@Service
-public class SvyLibTopicCategoryServiceImpl implements ISvyLibTopicCategoryService {
-    @Autowired
-    private SvyLibTopicCategoryMapper svyLibTopicCategoryMapper;
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 闂嵎棰樼洰鍒嗙被
-     */
-    @Override
-    public SvyLibTopicCategory selectSvyLibTopicCategoryById(Long id) {
-        return svyLibTopicCategoryMapper.selectSvyLibTopicCategoryById(id);
-    }
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒嗙被鍒楄〃
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 闂嵎棰樼洰鍒嗙被
-     */
-    @Override
-    public List<SvyLibTopicCategoryVO> selectSvyLibTopicCategoryList(SvyLibTopicCategory svyLibTopicCategory) {
-        List<SvyLibTopicCategory> svyLibTopicCategories = svyLibTopicCategoryMapper.selectSvyLibTopicCategoryList(svyLibTopicCategory);
-        //灏唒id涓虹┖鐨勶紝杩囨护鎺�
-        svyLibTopicCategories = svyLibTopicCategories.stream().filter(assort -> assort.getPid() == null).collect(Collectors.toList());
-
-        List<SvyLibTopicCategoryVO> SvyLibTopicCategoryVO = DtoConversionUtils.sourceToTarget(svyLibTopicCategories, SvyLibTopicCategoryVO.class);
-        //閬嶅巻鏌ュ嚭鏉ョ殑鏁版嵁锛岄�氳繃 id=pid 鑾峰彇浠栦滑鐨勫瓙鏁版嵁
-        for (SvyLibTopicCategoryVO svyLibTopicCategoryVO : SvyLibTopicCategoryVO) {
-            if (svyLibTopicCategoryVO.getPid() != null) {
-                continue;
-            }
-            SvyLibTopicCategory svyLibTopicCategory1 = new SvyLibTopicCategory();
-            svyLibTopicCategory1.setPid(svyLibTopicCategoryVO.getId());
-            List<SvyLibTopicCategory> svyLibTopicCategories1 = svyLibTopicCategoryMapper.selectSvyLibTopicCategoryList(svyLibTopicCategory1);
-            if (!Collections.isEmpty(svyLibTopicCategories1)) {
-                svyLibTopicCategoryVO.setSvyLibTopicCategoryList(svyLibTopicCategories1);
-            }
-        }
-        return SvyLibTopicCategoryVO;
-    }
-
-    /**
-     * 鏂板闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory) {
-        svyLibTopicCategory.setCreateTime(DateUtils.getNowDate());
-        return svyLibTopicCategoryMapper.insertSvyLibTopicCategory(svyLibTopicCategory);
-    }
-
-    /**
-     * 淇敼闂嵎棰樼洰鍒嗙被
-     *
-     * @param svyLibTopicCategory 闂嵎棰樼洰鍒嗙被
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyLibTopicCategory(SvyLibTopicCategory svyLibTopicCategory) {
-        svyLibTopicCategory.setUpdateTime(DateUtils.getNowDate());
-        return svyLibTopicCategoryMapper.updateSvyLibTopicCategory(svyLibTopicCategory);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎棰樼洰鍒嗙被
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicCategoryByIds(Long[] ids) {
-        Integer i = null;
-        for (Long id : ids) {
-            if (id < 0) {
-                log.info("灏忎簬0鐨勫�间负榛樿鍊间笉鑳藉垹闄わ細{}", id);
-                continue;
-            }
-            i = svyLibTopicCategoryMapper.deleteSvyLibTopicCategoryById(id);
-            SvyLibTopicCategory svyLibTopicCategory = new SvyLibTopicCategory();
-            svyLibTopicCategory.setPid(id);
-            List<SvyLibTopicCategory> svyLibTopicCategories = svyLibTopicCategoryMapper.selectSvyLibTopicCategoryList(svyLibTopicCategory);
-            if (CollectionUtils.isNotEmpty(svyLibTopicCategories)) {
-                for (SvyLibTopicCategory svyLibTopicCategory1 : svyLibTopicCategories) {
-                    svyLibTopicCategory1.setPid(-1L);
-                    svyLibTopicCategoryMapper.updateSvyLibTopicCategory(svyLibTopicCategory1);
-                }
-            }
-        }
-        return i;
-    }
-
-    @Override
-    public int insertSvyLibTopicCategoryTree(SvyLibTopicCategoryVO svyLibTopicCategoryVO) {
-        Integer i = null;
-        if (ObjectUtils.isEmpty(svyLibTopicCategoryVO)) {
-            throw new BaseException("鍏ュ弬涓虹┖,璇锋鏌ュ悗,鍐嶆柊澧�");
-        }
-        Integer seqMax = null;
-        try {
-            seqMax = svyLibTopicCategoryMapper.selectSeqMax();
-        } catch (Exception e) {
-            seqMax = 0;
-        }
-
-        SvyLibTopicCategory svyLibTopicCategory = DtoConversionUtils.sourceToTarget(svyLibTopicCategoryVO, SvyLibTopicCategory.class);
-        svyLibTopicCategory.setSeqno(1);
-        if (seqMax != null) {
-            svyLibTopicCategory.setSeqno(seqMax + 1);
-        }
-        i = svyLibTopicCategoryMapper.insertSvyLibTopicCategory(svyLibTopicCategory);
-        log.info("闂璇濇湳鍒嗙被搴撲竴绾ф爲鐨勪富閿�:{}", svyLibTopicCategory.getId());
-
-        //鏂板浜岀骇鏍�
-        if (CollectionUtils.isNotEmpty(svyLibTopicCategoryVO.getSvyLibTopicCategoryList())) {
-            for (SvyLibTopicCategory svyLibTopicCategory1 : svyLibTopicCategoryVO.getSvyLibTopicCategoryList()) {
-                Integer seqMax1 = null;
-                try {
-                    seqMax1 = svyLibTopicCategoryMapper.selectSeqMax();
-                } catch (Exception e) {
-                    seqMax1 = 0;
-                }
-                svyLibTopicCategory1.setPid(svyLibTopicCategory.getId());
-                svyLibTopicCategory1.setSeqno(1);
-                if (seqMax1 != null) {
-                    svyLibTopicCategory1.setSeqno(seqMax1 + 1);
-                }
-                svyLibTopicCategoryMapper.insertSvyLibTopicCategory(svyLibTopicCategory1);
-            }
-        }
-        return i;
-    }
-
-    /**
-     * 鍒犻櫎闂嵎棰樼洰鍒嗙被淇℃伅
-     *
-     * @param id 闂嵎棰樼洰鍒嗙被涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicCategoryById(Long id) {
-        return svyLibTopicCategoryMapper.deleteSvyLibTopicCategoryById(id);
-    }
-}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java
deleted file mode 100644
index 1c04c30..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package com.smartor.service.impl;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.*;
-import com.smartor.mapper.SvyLibTopicoptionMapper;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.catalina.User;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.smartor.mapper.SvyLibTopicMapper;
-import com.smartor.service.ISvyLibTopicService;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * 闂嵎棰樼洰Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2023-03-03
- */
-@Slf4j
-@Service
-public class SvyLibTopicServiceImpl implements ISvyLibTopicService {
-    @Autowired
-    private SvyLibTopicMapper svyLibTopicMapper;
-
-    @Autowired
-    private SvyLibTopicoptionMapper svyLibTopicoptionMapper;
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰
-     *
-     * @param topicid 闂嵎棰樼洰涓婚敭
-     * @return 闂嵎棰樼洰
-     */
-    @Override
-    public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid) {
-        return svyLibTopicMapper.selectSvyLibTopicByTopicid(topicid);
-    }
-
-    /**
-     * 鏌ヨ闂嵎棰樼洰鍒楄〃
-     *
-     * @param svyLibTopic 闂嵎棰樼洰
-     * @return 闂嵎棰樼洰
-     */
-    @Override
-    public List<SvyLibTopic> selectSvyLibTopicList(SvyLibTopic svyLibTopic) {
-        //娣诲姞棰樼洰
-
-        List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic);
-        //鑾峰彇棰樼洰閫夐」
-
-        for (int j = 0; j < svyLibTopics.size(); j++) {
-            log.info("闂id涓猴細{}", svyLibTopics.get(j).getSvyTopicId());
-            if (StringUtils.isNotEmpty(svyLibTopics.get(j).getTopictype()) && svyLibTopics.get(j).getTopictype().equals("3") || svyLibTopics.get(j).getTopicid() == null) {
-                //浣滅瓟棰橈紝涓嶉渶瑕侀�夐」
-                continue;
-            } else {
-                SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption();
-                svyLibTopicoption.setTopicid(svyLibTopics.get(j).getTopicid());
-                List<SvyLibTopicoption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibTopicoptionList(svyLibTopicoption);
-                //灏嗘煡璇㈠嚭鐨勯�夐」鐩斁鍒伴鐩腑
-                svyLibTopics.get(j).setSvyLibTopicoptions(svyLibTopicoptions);
-            }
-        }
-        return svyLibTopics;
-    }
-
-    /**
-     * 鏂板闂嵎棰樼洰
-     *
-     * @param svyLibTopic 闂嵎棰樼洰
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertSvyLibTopic(SvyLibTopic svyLibTopic) {
-        svyLibTopic.setCreateTime(DateUtils.getNowDate());
-        return svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public Integer saveOrUpdateTopic(SvyLibTopic svyLibTopic) {
-        Integer i = null;
-
-        //瀵归鐩繘琛屽鐞�
-        if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
-            //鏂板
-            i = svyLibTopicMapper.insertSvyLibTopic(svyLibTopic);
-        } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
-            //淇敼
-            i = svyLibTopicMapper.updateSvyLibTopic(svyLibTopic);
-        }
-
-        //瀵归鐩�夐」杩涜澶勭悊
-        if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibTopicoptions())) {
-            for (SvyLibTopicoption svyLibTopicoption : svyLibTopic.getSvyLibTopicoptions()) {
-                if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
-                    //鏂板
-                    svyLibTopicoption.setTopicid(svyLibTopic.getTopicid());
-                    svyLibTopicoption.setCreateTime(new Date());
-                    svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption);
-                } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
-                    //淇敼
-                    svyLibTopicoption.setTopicid(svyLibTopic.getTopicid());
-                    svyLibTopicoption.setUpdateTime(new Date());
-                    svyLibTopicoptionMapper.updateSvyLibTopicoption(svyLibTopicoption);
-                } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 3) {
-                    //鍒犻櫎
-                    svyLibTopicoptionMapper.deleteSvyLibTopicoptionByOptionid(svyLibTopicoption.getOptionid());
-                }
-            }
-        }
-        return i;
-    }
-
-    /**
-     * 淇敼闂嵎棰樼洰
-     *
-     * @param svyLibTopic 闂嵎棰樼洰
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyLibTopic(SvyLibTopic svyLibTopic) {
-        svyLibTopic.setUpdateTime(DateUtils.getNowDate());
-        return svyLibTopicMapper.updateSvyLibTopic(svyLibTopic);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎棰樼洰
-     *
-     * @param topicids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicByTopicids(Long[] topicids) {
-        Integer i = null;
-        for (Long topicid : topicids) {
-            i = svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid);
-        }
-        return i;
-    }
-
-    /**
-     * 鍒犻櫎闂嵎棰樼洰淇℃伅
-     *
-     * @param topicid 闂嵎棰樼洰涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicByTopicid(Long topicid) {
-        return svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid);
-    }
-
-
-}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicoptionServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicoptionServiceImpl.java
deleted file mode 100644
index 3f1c054..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicoptionServiceImpl.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.smartor.service.impl;
-
-import java.util.List;
-import com.ruoyi.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.smartor.mapper.SvyLibTopicoptionMapper;
-import com.smartor.domain.SvyLibTopicoption;
-import com.smartor.service.ISvyLibTopicoptionService;
-
-/**
- * 闂嵎闂閫夐」Service涓氬姟灞傚鐞�
- * 
- * @author ruoyi
- * @date 2023-03-02
- */
-@Service
-public class SvyLibTopicoptionServiceImpl implements ISvyLibTopicoptionService 
-{
-    @Autowired
-    private SvyLibTopicoptionMapper svyLibTopicoptionMapper;
-
-    /**
-     * 鏌ヨ闂嵎闂閫夐」
-     * 
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 闂嵎闂閫夐」
-     */
-    @Override
-    public SvyLibTopicoption selectSvyLibTopicoptionByOptionid(Long optionid)
-    {
-        return svyLibTopicoptionMapper.selectSvyLibTopicoptionByOptionid(optionid);
-    }
-
-    /**
-     * 鏌ヨ闂嵎闂閫夐」鍒楄〃
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 闂嵎闂閫夐」
-     */
-    @Override
-    public List<SvyLibTopicoption> selectSvyLibTopicoptionList(SvyLibTopicoption svyLibTopicoption)
-    {
-        return svyLibTopicoptionMapper.selectSvyLibTopicoptionList(svyLibTopicoption);
-    }
-
-    /**
-     * 鏂板闂嵎闂閫夐」
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption)
-    {
-        svyLibTopicoption.setCreateTime(DateUtils.getNowDate());
-        return svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption);
-    }
-
-    /**
-     * 淇敼闂嵎闂閫夐」
-     * 
-     * @param svyLibTopicoption 闂嵎闂閫夐」
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyLibTopicoption(SvyLibTopicoption svyLibTopicoption)
-    {
-        svyLibTopicoption.setUpdateTime(DateUtils.getNowDate());
-        return svyLibTopicoptionMapper.updateSvyLibTopicoption(svyLibTopicoption);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎闂閫夐」
-     * 
-     * @param optionids 闇�瑕佸垹闄ょ殑闂嵎闂閫夐」涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicoptionByOptionids(Long[] optionids)
-    {
-        return svyLibTopicoptionMapper.deleteSvyLibTopicoptionByOptionids(optionids);
-    }
-
-    /**
-     * 鍒犻櫎闂嵎闂閫夐」淇℃伅
-     * 
-     * @param optionid 闂嵎闂閫夐」涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyLibTopicoptionByOptionid(Long optionid)
-    {
-        return svyLibTopicoptionMapper.deleteSvyLibTopicoptionByOptionid(optionid);
-    }
-}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java
new file mode 100644
index 0000000..161365b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyTaskScript;
+import com.smartor.mapper.SvyTaskScriptMapper;
+import com.smartor.service.ISvyTaskScriptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎棰樼洰Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Service
+public class SvyTaskScriptServiceImpl implements ISvyTaskScriptService
+{
+    @Autowired
+    private SvyTaskScriptMapper svyTaskScriptMapper;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 浠诲姟闂嵎棰樼洰
+     */
+    @Override
+    public SvyTaskScript selectSvyTaskScriptById(Long id)
+    {
+        return svyTaskScriptMapper.selectSvyTaskScriptById(id);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎棰樼洰鍒楄〃
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 浠诲姟闂嵎棰樼洰
+     */
+    @Override
+    public List<SvyTaskScript> selectSvyTaskScriptList(SvyTaskScript svyTaskScript)
+    {
+        return svyTaskScriptMapper.selectSvyTaskScriptList(svyTaskScript);
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyTaskScript(SvyTaskScript svyTaskScript)
+    {
+        svyTaskScript.setCreateTime(DateUtils.getNowDate());
+        return svyTaskScriptMapper.insertSvyTaskScript(svyTaskScript);
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎棰樼洰
+     *
+     * @param svyTaskScript 浠诲姟闂嵎棰樼洰
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyTaskScript(SvyTaskScript svyTaskScript)
+    {
+        svyTaskScript.setUpdateTime(DateUtils.getNowDate());
+        return svyTaskScriptMapper.updateSvyTaskScript(svyTaskScript);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎棰樼洰
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskScriptByIds(Long[] ids)
+    {
+        return svyTaskScriptMapper.deleteSvyTaskScriptByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎棰樼洰淇℃伅
+     *
+     * @param id 浠诲姟闂嵎棰樼洰涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskScriptById(Long id)
+    {
+        return svyTaskScriptMapper.deleteSvyTaskScriptById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java
new file mode 100644
index 0000000..8ab91bc
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyTaskScriptoption;
+import com.smartor.mapper.SvyTaskScriptoptionMapper;
+import com.smartor.service.ISvyTaskScriptoptionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Service
+public class SvyTaskScriptoptionServiceImpl implements ISvyTaskScriptoptionService
+{
+    @Autowired
+    private SvyTaskScriptoptionMapper svyTaskScriptoptionMapper;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    @Override
+    public SvyTaskScriptoption selectSvyTaskScriptoptionById(Long id)
+    {
+        return svyTaskScriptoptionMapper.selectSvyTaskScriptoptionById(id);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    @Override
+    public List<SvyTaskScriptoption> selectSvyTaskScriptoptionList(SvyTaskScriptoption svyTaskScriptoption)
+    {
+        return svyTaskScriptoptionMapper.selectSvyTaskScriptoptionList(svyTaskScriptoption);
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption)
+    {
+        svyTaskScriptoption.setCreateTime(DateUtils.getNowDate());
+        return svyTaskScriptoptionMapper.insertSvyTaskScriptoption(svyTaskScriptoption);
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param svyTaskScriptoption 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyTaskScriptoption(SvyTaskScriptoption svyTaskScriptoption)
+    {
+        svyTaskScriptoption.setUpdateTime(DateUtils.getNowDate());
+        return svyTaskScriptoptionMapper.updateSvyTaskScriptoption(svyTaskScriptoption);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskScriptoptionByIds(Long[] ids)
+    {
+        return svyTaskScriptoptionMapper.deleteSvyTaskScriptoptionByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」淇℃伅
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskScriptoptionById(Long id)
+    {
+        return svyTaskScriptoptionMapper.deleteSvyTaskScriptoptionById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java
new file mode 100644
index 0000000..6f74476
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyTask;
+import com.smartor.mapper.SvyTaskMapper;
+import com.smartor.service.ISvyTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 缁煎悎闂嵎浠诲姟锛堜换鍔★級Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Service
+public class SvyTaskServiceImpl implements ISvyTaskService
+{
+    @Autowired
+    private SvyTaskMapper svyTaskMapper;
+
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    @Override
+    public SvyTask selectSvyTaskByTaskid(Long taskid)
+    {
+        return svyTaskMapper.selectSvyTaskByTaskid(taskid);
+    }
+
+    /**
+     * 鏌ヨ缁煎悎闂嵎浠诲姟锛堜换鍔★級鍒楄〃
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     */
+    @Override
+    public List<SvyTask> selectSvyTaskList(SvyTask svyTask)
+    {
+        return svyTaskMapper.selectSvyTaskList(svyTask);
+    }
+
+    /**
+     * 鏂板缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyTask(SvyTask svyTask)
+    {
+        svyTask.setCreateTime(DateUtils.getNowDate());
+        return svyTaskMapper.insertSvyTask(svyTask);
+    }
+
+    /**
+     * 淇敼缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param svyTask 缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyTask(SvyTask svyTask)
+    {
+        svyTask.setUpdateTime(DateUtils.getNowDate());
+        return svyTaskMapper.updateSvyTask(svyTask);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級
+     *
+     * @param taskids 闇�瑕佸垹闄ょ殑缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskByTaskids(Long[] taskids)
+    {
+        return svyTaskMapper.deleteSvyTaskByTaskids(taskids);
+    }
+
+    /**
+     * 鍒犻櫎缁煎悎闂嵎浠诲姟锛堜换鍔★級淇℃伅
+     *
+     * @param taskid 缁煎悎闂嵎浠诲姟锛堜换鍔★級涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskByTaskid(Long taskid)
+    {
+        return svyTaskMapper.deleteSvyTaskByTaskid(taskid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
new file mode 100644
index 0000000..30012c2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyTaskSingle;
+import com.smartor.mapper.SvyTaskSingleMapper;
+import com.smartor.service.ISvyTaskSingleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍗曚竴浠诲姟锛堥棶鍗凤級Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Service
+public class SvyTaskSingleServiceImpl implements ISvyTaskSingleService
+{
+    @Autowired
+    private SvyTaskSingleMapper svyTaskSingleMapper;
+
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    @Override
+    public SvyTaskSingle selectSvyTaskSingleById(Long id)
+    {
+        return svyTaskSingleMapper.selectSvyTaskSingleById(id);
+    }
+
+    /**
+     * 鏌ヨ鍗曚竴浠诲姟锛堥棶鍗凤級鍒楄〃
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 鍗曚竴浠诲姟锛堥棶鍗凤級
+     */
+    @Override
+    public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle)
+    {
+        return svyTaskSingleMapper.selectSvyTaskSingleList(svyTaskSingle);
+    }
+
+    /**
+     * 鏂板鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle)
+    {
+        svyTaskSingle.setCreateTime(DateUtils.getNowDate());
+        return svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
+    }
+
+    /**
+     * 淇敼鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param svyTaskSingle 鍗曚竴浠诲姟锛堥棶鍗凤級
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle)
+    {
+        svyTaskSingle.setUpdateTime(DateUtils.getNowDate());
+        return svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskSingleByIds(Long[] ids)
+    {
+        return svyTaskSingleMapper.deleteSvyTaskSingleByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鍗曚竴浠诲姟锛堥棶鍗凤級淇℃伅
+     *
+     * @param id 鍗曚竴浠诲姟锛堥棶鍗凤級涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskSingleById(Long id)
+    {
+        return svyTaskSingleMapper.deleteSvyTaskSingleById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java
new file mode 100644
index 0000000..7ec8061
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.SvyTaskTemplate;
+import com.smartor.mapper.SvyTaskTemplateMapper;
+import com.smartor.service.ISvyTaskTemplateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎妯℃澘Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-06-12
+ */
+@Service
+public class SvyTaskTemplateServiceImpl implements ISvyTaskTemplateService
+{
+    @Autowired
+    private SvyTaskTemplateMapper svyTaskTemplateMapper;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 浠诲姟闂嵎妯℃澘
+     */
+    @Override
+    public SvyTaskTemplate selectSvyTaskTemplateBySvyid(Long svyid)
+    {
+        return svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(svyid);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎妯℃澘鍒楄〃
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 浠诲姟闂嵎妯℃澘
+     */
+    @Override
+    public List<SvyTaskTemplate> selectSvyTaskTemplateList(SvyTaskTemplate svyTaskTemplate)
+    {
+        return svyTaskTemplateMapper.selectSvyTaskTemplateList(svyTaskTemplate);
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate)
+    {
+        svyTaskTemplate.setCreateTime(DateUtils.getNowDate());
+        return svyTaskTemplateMapper.insertSvyTaskTemplate(svyTaskTemplate);
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎妯℃澘
+     *
+     * @param svyTaskTemplate 浠诲姟闂嵎妯℃澘
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSvyTaskTemplate(SvyTaskTemplate svyTaskTemplate)
+    {
+        svyTaskTemplate.setUpdateTime(DateUtils.getNowDate());
+        return svyTaskTemplateMapper.updateSvyTaskTemplate(svyTaskTemplate);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎妯℃澘
+     *
+     * @param svyids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskTemplateBySvyids(Long[] svyids)
+    {
+        return svyTaskTemplateMapper.deleteSvyTaskTemplateBySvyids(svyids);
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎妯℃澘淇℃伅
+     *
+     * @param svyid 浠诲姟闂嵎妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSvyTaskTemplateBySvyid(Long svyid)
+    {
+        return svyTaskTemplateMapper.deleteSvyTaskTemplateBySvyid(svyid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java
index 21c5cbc..44cfda4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java
@@ -112,8 +112,8 @@
      */
     @Override
     @Transactional
-    public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile) {
-        List<SvyLibTopicRes> svyLibTopicErrors = new ArrayList<>();
+    public List<SvyLibScriptRes> importLitTopic(SysUser user, MultipartFile multipartFile) {
+        List<SvyLibScriptRes> svyLibTopicErrors = new ArrayList<>();
 
         try {
             Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream());
@@ -124,7 +124,7 @@
 
 
             for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) {
-                SvyLibTopicRes svyLibTopicRes = new SvyLibTopicRes();
+                SvyLibScriptRes svyLibTopicRes = new SvyLibScriptRes();
 
                 Row row = sheet.getRow(i);
                 //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜�
@@ -303,7 +303,7 @@
     }
 
     @Override
-    public Map<String, List<SvyLibTopicAndOptionRes>>  showTopic(SvyTopicReq svyTopicReq) {
+    public Map<String, List<SvyLibTopicAndOptionRes>> showTopic(SvyTopicReq svyTopicReq) {
         List<SvyLibTopicAndOptionRes> svyLibTopicAndOptionRes = svyTopicMapper.showTopic(svyTopicReq);
         Map<String, List<SvyLibTopicAndOptionRes>> groupByAge = svyLibTopicAndOptionRes.stream().collect(Collectors.groupingBy(SvyLibTopicAndOptionRes::getTopic));
 
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml
index 5116f30..62e59ce 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml
@@ -28,11 +28,21 @@
         <result property="orgid" column="orgid"/>
         <result property="pid" column="pid"/>
         <result property="guid" column="guid"/>
+        <result property="optiondesc" column="optiondesc"/>
+        <result property="isabnormal" column="isabnormal"/>
+        <result property="warnup" column="warnup"/>
+        <result property="warndown" column="warndown"/>
+        <result property="picturePath" column="picture_path"/>
     </resultMap>
 
     <sql id="selectIvrLibaScriptTargetVo">
         select id,
                scriptid,
+               optiondesc,
+               isabnormal,
+               warnup,
+               warndown,
+               picture_path,
                targetID,
                targetType,
                categoryName,
@@ -80,6 +90,11 @@
             <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
             <if test="pid != null ">and pid = #{pid}</if>
             <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+            <if test="isabnormal != null  and optiondesc != ''">and optiondesc = #{optiondesc}</if>
+            <if test="isabnormal != null ">and isabnormal = #{isabnormal}</if>
+            <if test="warnup != null ">and warnup = #{warnup}</if>
+            <if test="warndown != null">and warndown = #{warndown}</if>
+            <if test="picturePath != null  and picturePath != ''">and picture_path = #{picturePath}</if>
         </where>
     </select>
 
@@ -114,6 +129,11 @@
             <if test="orgid != null">orgid,</if>
             <if test="pid != null">pid,</if>
             <if test="guid != null">guid,</if>
+            <if test="optiondesc != null">optiondesc,</if>
+            <if test="isabnormal != null">isabnormal,</if>
+            <if test="warnup != null">warnup,</if>
+            <if test="warndown != null">warndown,</if>
+            <if test="picturePath != null">picture_path,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="scriptid != null ">#{scriptid},</if>
@@ -138,6 +158,11 @@
             <if test="orgid != null">#{orgid},</if>
             <if test="pid != null">#{pid},</if>
             <if test="guid != null">#{guid},</if>
+            <if test="optiondesc != null">#{optiondesc},</if>
+            <if test="isabnormal != null">#{isabnormal},</if>
+            <if test="warnup != null">#{warnup},</if>
+            <if test="warndown != null">#{warndown},</if>
+            <if test="picturePath != null">#{picturePath},</if>
         </trim>
     </insert>
 
@@ -166,6 +191,11 @@
             <if test="orgid != null">orgid = #{orgid},</if>
             <if test="pid != null">pid = #{pid},</if>
             <if test="guid != null">guid = #{guid},</if>
+            <if test="optiondesc != null">optiondesc = #{optiondesc},</if>
+            <if test="isabnormal != null">isabnormal = #{isabnormal},</if>
+            <if test="warnup != null">warnup = #{warnup},</if>
+            <if test="warndown != null">warndown = #{warndown},</if>
+            <if test="picturePath != null">picture_path = #{picturePath},</if>
         </trim>
         where id = #{id}
     </update>
@@ -178,4 +208,4 @@
         where id = #{id}
     </delete>
 
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
similarity index 70%
rename from smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml
rename to smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
index ce6c640..5444bdc 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTopicMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
@@ -2,15 +2,15 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTopicMapper">
+<mapper namespace="com.smartor.mapper.SvyLibScriptMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTopic" id="SvyLibTopicResult">
-        <result property="topicid" column="topicid"/>
+    <resultMap type="com.smartor.domain.SvyLibScript" id="SvyLibScriptResult">
+        <result property="id" column="id"/>
         <result property="oldid" column="oldid"/>
         <result property="svyid" column="svyid"/>
-        <result property="topictype" column="topictype"/>
-        <result property="topiccode" column="topiccode"/>
-        <result property="topic" column="topic"/>
+        <result property="scripttype" column="script_type"/>
+        <result property="scriptcode" column="script_code"/>
+        <result property="script" column="script"/>
         <result property="sort" column="sort"/>
         <result property="ismandatory" column="ismandatory"/>
         <result property="ishide" column="ishide"/>
@@ -24,7 +24,7 @@
         <result property="uploadTime" column="upload_time"/>
         <result property="tag" column="tag"/>
         <result property="categoryid" column="categoryid"/>
-        <result property="topicContent" column="topic_content"/>
+        <result property="scriptContent" column="script_content"/>
         <result property="suitway" column="suitway"/>
         <result property="isavailable" column="isavailable"/>
         <result property="language" column="language"/>
@@ -33,15 +33,15 @@
         <result property="reply" column="reply"/>
     </resultMap>
 
-    <sql id="selectSvyLibTopicVo">
-        select topicid,
+    <sql id="selectSvyLibScriptVo">
+        select id,
                oldid,
                value_type,
                reply,
                svyid,
-               topictype,
-               topiccode,
-               topic,
+               script_type,
+               script_code,
+               script,
                sort,
                ismandatory,
                ishide,
@@ -55,49 +55,49 @@
                upload_time,
                tag,
                categoryid,
-               topic_content,
+               script_content,
                suitway,
                isavailable,
                otherdata,
             language,
-            svy_topicid as svyTopicId
-        from svy_lib_topic
+            svy_scriptid as svyscriptId
+        from svy_lib_script
     </sql>
 
-    <select id="selectSvyLibTopicList" parameterType="com.smartor.domain.SvyLibTopic" resultMap="SvyLibTopicResult">
-        <include refid="selectSvyLibTopicVo"/>
+    <select id="selectSvyLibScriptList" parameterType="com.smartor.domain.SvyLibScript" resultMap="SvyLibScriptResult">
+        <include refid="selectSvyLibScriptVo"/>
         <where>
             del_flag=0
-            <if test="topicid != null ">and topicid = #{topicid}</if>
+            <if test="id != null ">and id = #{id}</if>
             <if test="oldid != null ">and oldid = #{oldid}</if>
-            <if test="topictype != null and topictype != ''">and topictype = #{topictype}</if>
+            <if test="scripttype != null and scripttype != ''">and script_type = #{scripttype}</if>
             <if test="categoryid != null ">and categoryid = #{categoryid}</if>
-            <if test="topic != null  and topic != ''">and topic like concat('%', #{topic}, '%')</if>
+            <if test="script != null  and script != ''">and script like concat('%', #{script}, '%')</if>
 
             <if test="ishide != null ">and ishide = #{ishide}</if>
             <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
             <if test="svyid != null  and svyid != ''">and svyid = #{svyid}</if>
-            <if test="topicContent != null  and topicContent != ''">and topic_content = #{topicContent}</if>
+            <if test="scriptContent != null  and scriptContent != ''">and script_content = #{scriptContent}</if>
             <if test="suitway != null  and suitway != ''">and suitway = #{suitway}</if>
             <if test="isavailable != null  and isavailable != ''">and isavailable = #{isavailable}</if>
             <if test="language != null  and language != ''">and language = #{language}</if>
         </where>
     </select>
 
-    <select id="selectSvyLibTopicByTopicid" parameterType="Long" resultMap="SvyLibTopicResult">
-        <include refid="selectSvyLibTopicVo"/>
-        where topicid = #{topicid}
+    <select id="selectSvyLibScriptByScriptid" parameterType="Long" resultMap="SvyLibScriptResult">
+        <include refid="selectSvyLibScriptVo"/>
+        where id = #{id}
     </select>
 
-    <insert id="insertSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic" useGeneratedKeys="true"
-            keyProperty="topicid">
-        insert into svy_lib_topic
+    <insert id="insertSvyLibScript" parameterType="com.smartor.domain.SvyLibScript" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into svy_lib_script
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="oldid != null">oldid,</if>
             <if test="svyid != null">svyid,</if>
-            <if test="topictype != null">topictype,</if>
-            <if test="topiccode != null">topiccode,</if>
-            <if test="topic != null">topic,</if>
+            <if test="scripttype != null">script_type,</if>
+            <if test="scriptcode != null">script_code,</if>
+            <if test="script != null">script,</if>
             <if test="sort != null">sort,</if>
             <if test="ismandatory != null">ismandatory,</if>
             <if test="ishide != null">ishide,</if>
@@ -110,9 +110,9 @@
             <if test="isupload != null">isupload,</if>
             <if test="uploadTime != null">upload_time,</if>
             <if test="tag != null">tag,</if>
-            <if test="svyTopicId != null">svy_topicid,</if>
+            <if test="svyscriptId != null">svy_scriptid,</if>
             <if test="categoryid != null">categoryid,</if>
-            <if test="topicContent != null and topicContent != ''">topic_content,</if>
+            <if test="scriptContent != null and scriptContent != ''">script_content,</if>
             <if test="suitway != null and suitway != ''">suitway,</if>
             <if test="isavailable != null and isavailable != ''">isavailable,</if>
             <if test="language != null and language!=''">language,</if>
@@ -123,9 +123,9 @@
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="oldid != null">#{oldid},</if>
             <if test="svyid != null">#{svyid},</if>
-            <if test="topictype != null">#{topictype},</if>
-            <if test="topiccode != null">#{topiccode},</if>
-            <if test="topic != null">#{topic},</if>
+            <if test="scripttype != null">#{scripttype},</if>
+            <if test="scriptcode != null">#{scriptcode},</if>
+            <if test="script != null">#{script},</if>
             <if test="sort != null">#{sort},</if>
             <if test="ismandatory != null">#{ismandatory},</if>
             <if test="ishide != null">#{ishide},</if>
@@ -138,9 +138,9 @@
             <if test="isupload != null">#{isupload},</if>
             <if test="uploadTime != null">#{uploadTime},</if>
             <if test="tag != null">#{tag},</if>
-            <if test="svyTopicId != null">#{svyTopicId},</if>
+            <if test="svyscriptId != null">#{svyscriptId},</if>
             <if test="categoryid != null">#{categoryid},</if>
-            <if test="topicContent != null and topicContent != ''">#{topicContent},</if>
+            <if test="scriptContent != null and scriptContent != ''">#{scriptContent},</if>
             <if test="suitway != null  and suitway != ''">#{suitway},</if>
             <if test="isavailable != null and isavailable != ''">#{isavailable},</if>
             <if test="language != null  and language!=''">#{language},</if>
@@ -150,14 +150,14 @@
         </trim>
     </insert>
 
-    <update id="updateSvyLibTopic" parameterType="com.smartor.domain.SvyLibTopic">
-        update svy_lib_topic
+    <update id="updateSvyLibScript" parameterType="com.smartor.domain.SvyLibScript">
+        update svy_lib_script
         <trim prefix="SET" suffixOverrides=",">
             <if test="oldid != null">oldid = #{oldid},</if>
             <if test="svyid != null">svyid = #{svyid},</if>
-            <if test="topictype != null">topictype = #{topictype},</if>
-            <if test="topiccode != null">topiccode = #{topiccode},</if>
-            <if test="topic != null">topic = #{topic},</if>
+            <if test="scripttype != null">script_type = #{scripttype},</if>
+            <if test="scriptcode != null">script_code = #{scriptcode},</if>
+            <if test="script != null">script = #{script},</if>
             <if test="sort != null">sort = #{sort},</if>
             <if test="ismandatory != null">ismandatory = #{ismandatory},</if>
             <if test="ishide != null">ishide = #{ishide},</if>
@@ -170,7 +170,7 @@
             <if test="isupload != null">isupload = #{isupload},</if>
             <if test="uploadTime != null">upload_time = #{uploadTime},</if>
             <if test="categoryid != null">categoryid = #{categoryid},</if>
-            <if test="topicContent != null">topic_content = #{topicContent},</if>
+            <if test="scriptContent != null">script_content = #{scriptContent},</if>
             <if test="suitway != null">suitway = #{suitway},</if>
             <if test="isavailable != null">isavailable = #{isavailable},</if>
             <if test="tag != null">tag = #{tag},</if>
@@ -179,21 +179,21 @@
             <if test="valueType != null and valueType!=''">value_type = #{valueType},</if>
             <if test="reply != null and reply!=''">therdata =#{therdata},</if>
         </trim>
-        where topicid = #{topicid}
+        where id = #{id}
     </update>
 
-    <update id="deleteSvyLibTopicByTopicid" parameterType="Long">
-        update svy_lib_topic
+    <update id="deleteSvyLibScriptByScriptid" parameterType="Long">
+        update svy_lib_script
         <trim prefix="SET" suffixOverrides=",">
             <if test="delFlag != null and delFlag != ''">del_flag =1,</if>
         </trim>
-        where topicid = #{topicid}
+        where id = #{id}
     </update>
 
-    <delete id="deleteSvyLibTopicByTopicids" parameterType="String">
-        delete from svy_lib_topic where topicid in
-        <foreach item="topicid" collection="array" open="(" separator="," close=")">
-            #{topicid}
+    <delete id="deleteSvyLibScriptByScriptids" parameterType="String">
+        delete from svy_lib_script where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
         </foreach>
     </delete>
 
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTopicoptionMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
similarity index 90%
rename from smartor/src/main/resources/mapper/smartor/SvyLibTopicoptionMapper.xml
rename to smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
index 10ae51f..b21026c 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTopicoptionMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTopicoptionMapper">
+<mapper namespace="com.smartor.mapper.SvyLibScriptOptionMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTopicoption" id="SvyLibTopicoptionResult">
+    <resultMap type="com.smartor.domain.SvyLibScriptOption" id="SvyLibScriptOptionResult">
         <result property="optionid" column="optionid"/>
         <result property="topicid" column="topicid"/>
         <result property="svyid" column="svyid"/>
@@ -38,7 +38,7 @@
         <result property="uploadTime" column="upload_time"/>
     </resultMap>
 
-    <sql id="selectSvyLibTopicoptionVo">
+    <sql id="selectSvyLibScriptOptionVo">
         select optionid,
                topicid,
                svyid,
@@ -70,12 +70,12 @@
                update_time,
                isupload,
                upload_time
-        from svy_lib_topicoption
+        from svy_lib_ScriptOption
     </sql>
 
-    <select id="selectSvyLibTopicoptionList" parameterType="com.smartor.domain.SvyLibTopicoption"
-            resultMap="SvyLibTopicoptionResult">
-        <include refid="selectSvyLibTopicoptionVo"/>
+    <select id="selectSvyLibScriptOptionList" parameterType="com.smartor.domain.SvyLibScriptOption"
+            resultMap="SvyLibScriptOptionResult">
+        <include refid="selectSvyLibScriptOptionVo"/>
         <where>
             del_flag=0
             <if test="topicid != null ">and topicid = #{topicid}</if>
@@ -106,14 +106,14 @@
         </where>
     </select>
 
-    <select id="selectSvyLibTopicoptionByOptionid" parameterType="Long" resultMap="SvyLibTopicoptionResult">
-        <include refid="selectSvyLibTopicoptionVo"/>
+    <select id="selectSvyLibScriptOptionByOptionid" parameterType="Long" resultMap="SvyLibScriptOptionResult">
+        <include refid="selectSvyLibScriptOptionVo"/>
         where optionid = #{optionid}
     </select>
 
-    <insert id="insertSvyLibTopicoption" parameterType="com.smartor.domain.SvyLibTopicoption" useGeneratedKeys="true"
+    <insert id="insertSvyLibScriptOption" parameterType="com.smartor.domain.SvyLibScriptOption" useGeneratedKeys="true"
             keyProperty="optionid">
-        insert into svy_lib_topicoption
+        insert into svy_lib_ScriptOption
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="topicid != null">topicid,</if>
             <if test="svyid != null">svyid,</if>
@@ -180,8 +180,8 @@
         </trim>
     </insert>
 
-    <update id="updateSvyLibTopicoption" parameterType="com.smartor.domain.SvyLibTopicoption">
-        update svy_lib_topicoption
+    <update id="updateSvyLibScriptOption" parameterType="com.smartor.domain.SvyLibScriptOption">
+        update svy_lib_ScriptOption
         <trim prefix="SET" suffixOverrides=",">
             <if test="topicid != null">topicid = #{topicid},</if>
             <if test="svyid != null">svyid = #{svyid},</if>
@@ -217,20 +217,20 @@
         where optionid = #{optionid}
     </update>
 
-    <update id="deleteSvyLibTopicoptionByOptionid" parameterType="Long">
-        update svy_lib_topicoption
+    <update id="deleteSvyLibScriptOptionByOptionid" parameterType="Long">
+        update svy_lib_ScriptOption
         <trim prefix="SET" suffixOverrides=",">
            del_flag = 1
         </trim>
         where optionid = #{optionid}
     </update>
 
-    <delete id="deleteSvyLibTopicoptionByOptionids" parameterType="String">
-        delete from svy_lib_topicoption where optionid in
+    <delete id="deleteSvyLibScriptOptionByOptionids" parameterType="String">
+        delete from svy_lib_ScriptOption where optionid in
         <foreach item="optionid" collection="array" open="(" separator="," close=")">
             #{optionid}
         </foreach>
     </delete>
 
 
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTitleCategoryMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml
similarity index 76%
rename from smartor/src/main/resources/mapper/smartor/SvyLibTitleCategoryMapper.xml
rename to smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml
index 2bfe78d..b0d9401 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTitleCategoryMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTitleCategoryMapper">
+<mapper namespace="com.smartor.mapper.SvyLibTemplateCategoryMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTitleCategory" id="SvyLibTitleCategoryResult">
+    <resultMap type="com.smartor.domain.SvyLibTemplateCategory" id="SvyLibTemplateCategoryResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
         <result property="pid" column="pid"/>
@@ -18,7 +18,7 @@
         <result property="seqno" column="seqno"/>
     </resultMap>
 
-    <sql id="selectSvyLibTitleCategoryVo">
+    <sql id="selectSvyLibTemplateCategoryVo">
         select id,
                name,
                pid,
@@ -30,12 +30,12 @@
                update_time,
                orgid,
                seqno
-        from svy_lib_title_category
+        from svy_lib_template_category
     </sql>
 
-    <select id="selectSvyLibTitleCategoryList" parameterType="com.smartor.domain.SvyLibTitleCategory"
-            resultMap="SvyLibTitleCategoryResult">
-        <include refid="selectSvyLibTitleCategoryVo"/>
+    <select id="selectSvyLibTemplateCategoryList" parameterType="com.smartor.domain.SvyLibTemplateCategory"
+            resultMap="SvyLibTemplateCategoryResult">
+        <include refid="selectSvyLibTemplateCategoryVo"/>
         <where>
             del_flag=0
             <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
@@ -47,14 +47,14 @@
         </where>
     </select>
 
-    <select id="selectSvyLibTitleCategoryById" parameterType="Long" resultMap="SvyLibTitleCategoryResult">
-        <include refid="selectSvyLibTitleCategoryVo"/>
+    <select id="selectSvyLibTemplateCategoryById" parameterType="Long" resultMap="SvyLibTemplateCategoryResult">
+        <include refid="selectSvyLibTemplateCategoryVo"/>
         where id = #{id}
     </select>
 
-    <insert id="insertSvyLibTitleCategory" parameterType="com.smartor.domain.SvyLibTitleCategory"
+    <insert id="insertSvyLibTemplateCategory" parameterType="com.smartor.domain.SvyLibTemplateCategory"
             useGeneratedKeys="true" keyProperty="id">
-        insert into svy_lib_title_category
+        insert into svy_lib_template_category
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="name != null">name,</if>
             <if test="pid != null">pid,</if>
@@ -81,8 +81,8 @@
         </trim>
     </insert>
 
-    <update id="updateSvyLibTitleCategory" parameterType="com.smartor.domain.SvyLibTitleCategory">
-        update svy_lib_title_category
+    <update id="updateSvyLibTemplateCategory" parameterType="com.smartor.domain.SvyLibTemplateCategory">
+        update svy_lib_template_category
         <trim prefix="SET" suffixOverrides=",">
             <if test="name != null">name = #{name},</if>
             <if test="pid != null">pid = #{pid},</if>
@@ -98,16 +98,16 @@
         where id = #{id}
     </update>
 
-    <update id="deleteSvyLibTitleCategoryById" parameterType="Long">
-        update svy_lib_title_category
+    <update id="deleteSvyLibTemplateCategoryById" parameterType="Long">
+        update svy_lib_template_category
         <trim prefix="SET" suffixOverrides=",">
            del_flag = 1
         </trim>
         where id = #{id}
     </update>
 
-    <delete id="deleteSvyLibTitleCategoryByIds" parameterType="String">
-        delete from svy_lib_title_category where id in
+    <delete id="deleteSvyLibTemplateCategoryByIds" parameterType="String">
+        delete from svy_lib_template_category where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
@@ -118,4 +118,4 @@
         from ivr_liba_extemplate_category
 
     </select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
similarity index 89%
rename from smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml
rename to smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
index ce11791..ca0fcb6 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTitleMapper">
+<mapper namespace="com.smartor.mapper.SvyLibTemplateMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTitle" id="SvyLibTitleResult">
+    <resultMap type="com.smartor.domain.SvyLibTemplate" id="SvyLibTemplateResult">
         <result property="svyid" column="svyid"/>
         <result property="categoryid" column="categoryid"/>
         <result property="svycode" column="svycode"/>
@@ -35,7 +35,7 @@
         <result property="reply" column="reply"/>
     </resultMap>
 
-    <sql id="selectSvyLibTitleVo">
+    <sql id="selectSvyLibTemplateVo">
         select svyid,
                categoryid,
                value_type,
@@ -64,16 +64,16 @@
                campus,
                suitway,
                otherdata
-        from svy_lib_title
+        from svy_lib_template
     </sql>
 
-    <select id="selectSvyLibTitleList" parameterType="com.smartor.domain.SvyLibTitleReq" resultMap="SvyLibTitleResult">
+    <select id="selectSvyLibTemplateList" parameterType="com.smartor.domain.SvyLibTemplateReq" resultMap="SvyLibTemplateResult">
         select a.svyid, a.categoryid, a.svycode, a.svyname, a.description, a.introduce,a.submitprompt, a.templateid,
         a.version,a.centerlibrarycode, a.centerlibraryid, a.islocal, a.isenable, a.orgid, a.del_flag, a.create_by,
         a.create_time, a.update_by, a.update_time, a.isupload,
         a.upload_time,a.dept_names,a.value_type,a.label_info,a.reply,
         a.campus,a.suitway,a.otherdata
-        ,c.icdname from svy_lib_title
+        ,c.icdname from svy_lib_template
         a,icd10_association b,icd10 c
         <where>
             a.del_flag=0 and
@@ -86,14 +86,14 @@
         </where>
     </select>
 
-    <select id="selectSvyLibTitleBySvyid" parameterType="Long" resultMap="SvyLibTitleResult">
-        <include refid="selectSvyLibTitleVo"/>
+    <select id="selectSvyLibTemplateBySvyid" parameterType="Long" resultMap="SvyLibTemplateResult">
+        <include refid="selectSvyLibTemplateVo"/>
         where svyid = #{svyid} and del_flag=0
     </select>
 
-    <insert id="insertSvyLibTitle" parameterType="com.smartor.domain.SvyLibTitle" useGeneratedKeys="true"
+    <insert id="insertSvyLibTemplate" parameterType="com.smartor.domain.SvyLibTemplate" useGeneratedKeys="true"
             keyProperty="svyid">
-        insert into svy_lib_title
+        insert into svy_lib_template
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="categoryid != null">categoryid,</if>
             <if test="svycode != null">svycode,</if>
@@ -156,8 +156,8 @@
         </trim>
     </insert>
 
-    <update id="updateSvyLibTitle" parameterType="com.smartor.domain.SvyLibTitle">
-        update svy_lib_title
+    <update id="updateSvyLibTemplate" parameterType="com.smartor.domain.SvyLibTemplate">
+        update svy_lib_template
         <trim prefix="SET" suffixOverrides=",">
             <if test="categoryid != null">categoryid = #{categoryid},</if>
             <if test="svycode != null">svycode = #{svycode},</if>
@@ -190,14 +190,14 @@
         where svyid = #{svyid}
     </update>
 
-    <delete id="deleteSvyLibTitleBySvyid" parameterType="Long">
+    <delete id="deleteSvyLibTemplateBySvyid" parameterType="Long">
         delete
-        from svy_lib_title
+        from svy_lib_template
         where svyid = #{svyid}
     </delete>
 
-    <delete id="deleteSvyLibTitleBySvyids" parameterType="String">
-        delete from svy_lib_title where svyid in
+    <delete id="deleteSvyLibTemplateBySvyids" parameterType="String">
+        delete from svy_lib_template where svyid in
         <foreach item="svyid" collection="array" open="(" separator="," close=")">
             #{svyid}
         </foreach>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml
index 01861bd..efcb0c8 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTopicCategoryMapper">
+<mapper namespace="com.smartor.mapper.SvyLibScriptCategoryMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTopicCategory" id="SvyLibTopicCategoryResult">
+    <resultMap type="com.smartor.domain.SvyLibScriptCategory" id="SvyLibScriptCategoryResult">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
         <result property="topicid" column="topicid"/>
@@ -19,7 +19,7 @@
         <result property="seqno" column="seqno"/>
     </resultMap>
 
-    <sql id="selectSvyLibTopicCategoryVo">
+    <sql id="selectSvyLibScriptCategoryVo">
         select id,
                name,
                topicid,
@@ -32,12 +32,12 @@
                update_time,
                seqno,
                orgid
-        from svy_lib_topic_category
+        from svy_lib_script_category
     </sql>
 
-    <select id="selectSvyLibTopicCategoryList" parameterType="com.smartor.domain.SvyLibTopicCategory"
-            resultMap="SvyLibTopicCategoryResult">
-        <include refid="selectSvyLibTopicCategoryVo"/>
+    <select id="selectSvyLibScriptCategoryList" parameterType="com.smartor.domain.SvyLibScriptCategory"
+            resultMap="SvyLibScriptCategoryResult">
+        <include refid="selectSvyLibScriptCategoryVo"/>
         <where>
             del_flag=0
             <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
@@ -50,14 +50,14 @@
         order by seqno asc
     </select>
 
-    <select id="selectSvyLibTopicCategoryById" parameterType="Long" resultMap="SvyLibTopicCategoryResult">
-        <include refid="selectSvyLibTopicCategoryVo"/>
+    <select id="selectSvyLibScriptCategoryById" parameterType="Long" resultMap="SvyLibScriptCategoryResult">
+        <include refid="selectSvyLibScriptCategoryVo"/>
         where id = #{id}
     </select>
 
-    <insert id="insertSvyLibTopicCategory" parameterType="com.smartor.domain.SvyLibTopicCategory"
+    <insert id="insertSvyLibScriptCategory" parameterType="com.smartor.domain.SvyLibScriptCategory"
             useGeneratedKeys="true" keyProperty="id">
-        insert into svy_lib_topic_category
+        insert into svy_lib_script_category
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="name != null">name,</if>
             <if test="seqno != null">seqno,</if>
@@ -86,8 +86,8 @@
         </trim>
     </insert>
 
-    <update id="updateSvyLibTopicCategory" parameterType="com.smartor.domain.SvyLibTopicCategory">
-        update svy_lib_topic_category
+    <update id="updateSvyLibScriptCategory" parameterType="com.smartor.domain.SvyLibScriptCategory">
+        update svy_lib_script_category
         <trim prefix="SET" suffixOverrides=",">
             <if test="name != null">name = #{name},</if>
             <if test="seqno != null">seqno = #{seqno},</if>
@@ -104,14 +104,14 @@
         where id = #{id}
     </update>
 
-    <delete id="deleteSvyLibTopicCategoryByIds" parameterType="String">
+    <delete id="deleteSvyLibScriptCategoryByIds" parameterType="String">
         delete
-        from svy_lib_topic_category
+        from svy_lib_script_category
         where id = #{id}
     </delete>
 
-    <update id="deleteSvyLibTopicCategoryById" parameterType="Long">
-        update svy_lib_topic_category
+    <update id="deleteSvyLibScriptCategoryById" parameterType="Long">
+        update svy_lib_script_category
         <trim prefix="SET" suffixOverrides=",">
             <if test="delFlag != null">del_flag = ,</if>
         </trim>
@@ -124,4 +124,4 @@
         from iivr_liba_template_assort
 
     </select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTaskMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskMapper.xml
new file mode 100644
index 0000000..e66185c
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskMapper.xml
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.smartor.mapper.SvyTaskMapper">
+
+    <resultMap type="com.smartor.domain.SvyTask" id="SvyTaskResult">
+        <result property="taskid"    column="taskid"    />
+        <result property="svrtaskid"    column="svrtaskid"    />
+        <result property="taskname"    column="taskname"    />
+        <result property="templateid"    column="templateid"    />
+        <result property="templatename"    column="templatename"    />
+        <result property="labelinfo"    column="labelinfo"    />
+        <result property="state"    column="state"    />
+        <result property="count"    column="count"    />
+        <result property="executed"    column="executed"    />
+        <result property="unexecuted"    column="unexecuted"    />
+        <result property="fail"    column="fail"    />
+        <result property="patientid"    column="patientid"    />
+        <result property="patientname"    column="patientname"    />
+        <result property="addtime"    column="addtime"    />
+        <result property="checkuserid"    column="checkuserid"    />
+        <result property="checkusername"    column="checkusername"    />
+        <result property="checktime"    column="checktime"    />
+        <result property="type"    column="type"    />
+        <result property="typename"    column="typename"    />
+        <result property="usebqsms"    column="usebqsms"    />
+        <result property="usebhsms"    column="usebhsms"    />
+        <result property="usesendsms"    column="usesendsms"    />
+        <result property="deptcode"    column="deptcode"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="pid"    column="pid"    />
+        <result property="guid"    column="guid"    />
+        <result property="preachform"    column="preachform"    />
+        <result property="isSend"    column="is_send"    />
+        <result property="sendState"    column="send_state"    />
+        <result property="param"    column="param"    />
+    </resultMap>
+
+    <sql id="selectSvyTaskVo">
+        select taskid, svrtaskid, taskname, templateid, templatename, labelinfo, state, count, executed, unexecuted, fail, patientid, patientname, addtime, checkuserid, checkusername, checktime, type, typename, usebqsms, usebhsms, usesendsms, deptcode, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pid, guid, preachform, is_send, send_state, param from svy_task
+    </sql>
+
+    <select id="selectSvyTaskList" parameterType="com.smartor.domain.SvyTask" resultMap="SvyTaskResult">
+        <include refid="selectSvyTaskVo"/>
+        <where>
+            <if test="svrtaskid != null "> and svrtaskid = #{svrtaskid}</if>
+            <if test="taskname != null  and taskname != ''"> and taskname like concat('%', #{taskname}, '%')</if>
+            <if test="templateid != null  and templateid != ''"> and templateid = #{templateid}</if>
+            <if test="templatename != null  and templatename != ''"> and templatename like concat('%', #{templatename}, '%')</if>
+            <if test="labelinfo != null  and labelinfo != ''"> and labelinfo = #{labelinfo}</if>
+            <if test="state != null "> and state = #{state}</if>
+            <if test="count != null "> and count = #{count}</if>
+            <if test="executed != null "> and executed = #{executed}</if>
+            <if test="unexecuted != null "> and unexecuted = #{unexecuted}</if>
+            <if test="fail != null "> and fail = #{fail}</if>
+            <if test="patientid != null  and patientid != ''"> and patientid = #{patientid}</if>
+            <if test="patientname != null  and patientname != ''"> and patientname like concat('%', #{patientname}, '%')</if>
+            <if test="addtime != null "> and addtime = #{addtime}</if>
+            <if test="checkuserid != null  and checkuserid != ''"> and checkuserid = #{checkuserid}</if>
+            <if test="checkusername != null  and checkusername != ''"> and checkusername like concat('%', #{checkusername}, '%')</if>
+            <if test="checktime != null "> and checktime = #{checktime}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="typename != null  and typename != ''"> and typename like concat('%', #{typename}, '%')</if>
+            <if test="usebqsms != null "> and usebqsms = #{usebqsms}</if>
+            <if test="usebhsms != null "> and usebhsms = #{usebhsms}</if>
+            <if test="usesendsms != null "> and usesendsms = #{usesendsms}</if>
+            <if test="deptcode != null  and deptcode != ''"> and deptcode = #{deptcode}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="pid != null "> and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''"> and guid = #{guid}</if>
+            <if test="preachform != null  and preachform != ''"> and preachform = #{preachform}</if>
+            <if test="isSend != null "> and is_send = #{isSend}</if>
+            <if test="sendState != null  and sendState != ''"> and send_state = #{sendState}</if>
+            <if test="param != null  and param != ''"> and param = #{param}</if>
+        </where>
+    </select>
+
+    <select id="selectSvyTaskByTaskid" parameterType="Long" resultMap="SvyTaskResult">
+        <include refid="selectSvyTaskVo"/>
+        where taskid = #{taskid}
+    </select>
+
+    <insert id="insertSvyTask" parameterType="com.smartor.domain.SvyTask" useGeneratedKeys="true" keyProperty="taskid">
+        insert into svy_task
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="svrtaskid != null">svrtaskid,</if>
+            <if test="taskname != null">taskname,</if>
+            <if test="templateid != null">templateid,</if>
+            <if test="templatename != null">templatename,</if>
+            <if test="labelinfo != null">labelinfo,</if>
+            <if test="state != null">state,</if>
+            <if test="count != null">count,</if>
+            <if test="executed != null">executed,</if>
+            <if test="unexecuted != null">unexecuted,</if>
+            <if test="fail != null">fail,</if>
+            <if test="patientid != null">patientid,</if>
+            <if test="patientname != null">patientname,</if>
+            <if test="addtime != null">addtime,</if>
+            <if test="checkuserid != null">checkuserid,</if>
+            <if test="checkusername != null">checkusername,</if>
+            <if test="checktime != null">checktime,</if>
+            <if test="type != null">type,</if>
+            <if test="typename != null">typename,</if>
+            <if test="usebqsms != null">usebqsms,</if>
+            <if test="usebhsms != null">usebhsms,</if>
+            <if test="usesendsms != null">usesendsms,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="pid != null">pid,</if>
+            <if test="guid != null">guid,</if>
+            <if test="preachform != null">preachform,</if>
+            <if test="isSend != null">is_send,</if>
+            <if test="sendState != null">send_state,</if>
+            <if test="param != null">param,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="svrtaskid != null">#{svrtaskid},</if>
+            <if test="taskname != null">#{taskname},</if>
+            <if test="templateid != null">#{templateid},</if>
+            <if test="templatename != null">#{templatename},</if>
+            <if test="labelinfo != null">#{labelinfo},</if>
+            <if test="state != null">#{state},</if>
+            <if test="count != null">#{count},</if>
+            <if test="executed != null">#{executed},</if>
+            <if test="unexecuted != null">#{unexecuted},</if>
+            <if test="fail != null">#{fail},</if>
+            <if test="patientid != null">#{patientid},</if>
+            <if test="patientname != null">#{patientname},</if>
+            <if test="addtime != null">#{addtime},</if>
+            <if test="checkuserid != null">#{checkuserid},</if>
+            <if test="checkusername != null">#{checkusername},</if>
+            <if test="checktime != null">#{checktime},</if>
+            <if test="type != null">#{type},</if>
+            <if test="typename != null">#{typename},</if>
+            <if test="usebqsms != null">#{usebqsms},</if>
+            <if test="usebhsms != null">#{usebhsms},</if>
+            <if test="usesendsms != null">#{usesendsms},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="guid != null">#{guid},</if>
+            <if test="preachform != null">#{preachform},</if>
+            <if test="isSend != null">#{isSend},</if>
+            <if test="sendState != null">#{sendState},</if>
+            <if test="param != null">#{param},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSvyTask" parameterType="com.smartor.domain.SvyTask">
+        update svy_task
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="svrtaskid != null">svrtaskid = #{svrtaskid},</if>
+            <if test="taskname != null">taskname = #{taskname},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="templatename != null">templatename = #{templatename},</if>
+            <if test="labelinfo != null">labelinfo = #{labelinfo},</if>
+            <if test="state != null">state = #{state},</if>
+            <if test="count != null">count = #{count},</if>
+            <if test="executed != null">executed = #{executed},</if>
+            <if test="unexecuted != null">unexecuted = #{unexecuted},</if>
+            <if test="fail != null">fail = #{fail},</if>
+            <if test="patientid != null">patientid = #{patientid},</if>
+            <if test="patientname != null">patientname = #{patientname},</if>
+            <if test="addtime != null">addtime = #{addtime},</if>
+            <if test="checkuserid != null">checkuserid = #{checkuserid},</if>
+            <if test="checkusername != null">checkusername = #{checkusername},</if>
+            <if test="checktime != null">checktime = #{checktime},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="typename != null">typename = #{typename},</if>
+            <if test="usebqsms != null">usebqsms = #{usebqsms},</if>
+            <if test="usebhsms != null">usebhsms = #{usebhsms},</if>
+            <if test="usesendsms != null">usesendsms = #{usesendsms},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="preachform != null">preachform = #{preachform},</if>
+            <if test="isSend != null">is_send = #{isSend},</if>
+            <if test="sendState != null">send_state = #{sendState},</if>
+            <if test="param != null">param = #{param},</if>
+        </trim>
+        where taskid = #{taskid}
+    </update>
+
+    <delete id="deleteSvyTaskByTaskid" parameterType="Long">
+        delete from svy_task where taskid = #{taskid}
+    </delete>
+
+    <delete id="deleteSvyTaskByTaskids" parameterType="String">
+        delete from svy_task where taskid in
+        <foreach item="taskid" collection="array" open="(" separator="," close=")">
+            #{taskid}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml
new file mode 100644
index 0000000..ac266f5
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.smartor.mapper.SvyTaskScriptMapper">
+
+    <resultMap type="com.smartor.domain.SvyTaskScript" id="SvyTaskScriptResult">
+        <result property="id"    column="id"    />
+        <result property="scriptType"    column="script_type"    />
+        <result property="scriptCode"    column="script_code"    />
+        <result property="script"    column="script"    />
+        <result property="tag"    column="tag"    />
+        <result property="sort"    column="sort"    />
+        <result property="ismandatory"    column="ismandatory"    />
+        <result property="ishide"    column="ishide"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="answer"    column="answer"    />
+        <result property="pid"    column="pid"    />
+        <result property="guid"    column="guid"    />
+        <result property="taskid"    column="taskid"    />
+        <result property="optiondesc"    column="optiondesc"    />
+        <result property="nexttopicid"    column="nexttopicid"    />
+        <result property="nexttopicsort"    column="nexttopicsort"    />
+        <result property="scoretype"    column="scoretype"    />
+        <result property="score"    column="score"    />
+        <result property="showtype"    column="showtype"    />
+        <result property="picturePath"    column="picture_path"    />
+    </resultMap>
+
+    <sql id="selectSvyTaskScriptVo">
+        select id, script_type, script_code, script, tag, sort, ismandatory, ishide, del_flag, orgid, create_by, create_time, update_by, update_time, isupload, upload_time, answer, pid, guid, taskid, optiondesc, nexttopicid, nexttopicsort, scoretype, score, showtype, picture_path from svy_task_script
+    </sql>
+
+    <select id="selectSvyTaskScriptList" parameterType="com.smartor.domain.SvyTaskScript" resultMap="SvyTaskScriptResult">
+        <include refid="selectSvyTaskScriptVo"/>
+        <where>
+            <if test="scriptType != null "> and script_type = #{scriptType}</if>
+            <if test="scriptCode != null  and scriptCode != ''"> and script_code = #{scriptCode}</if>
+            <if test="script != null  and script != ''"> and script = #{script}</if>
+            <if test="tag != null  and tag != ''"> and tag = #{tag}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="ismandatory != null "> and ismandatory = #{ismandatory}</if>
+            <if test="ishide != null "> and ishide = #{ishide}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="answer != null  and answer != ''"> and answer = #{answer}</if>
+            <if test="pid != null "> and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''"> and guid = #{guid}</if>
+            <if test="taskid != null "> and taskid = #{taskid}</if>
+            <if test="optiondesc != null  and optiondesc != ''"> and optiondesc = #{optiondesc}</if>
+            <if test="nexttopicid != null "> and nexttopicid = #{nexttopicid}</if>
+            <if test="nexttopicsort != null "> and nexttopicsort = #{nexttopicsort}</if>
+            <if test="scoretype != null  and scoretype != ''"> and scoretype = #{scoretype}</if>
+            <if test="score != null  and score != ''"> and score = #{score}</if>
+            <if test="showtype != null  and showtype != ''"> and showtype = #{showtype}</if>
+            <if test="picturePath != null  and picturePath != ''"> and picture_path = #{picturePath}</if>
+        </where>
+    </select>
+
+    <select id="selectSvyTaskScriptById" parameterType="Long" resultMap="SvyTaskScriptResult">
+        <include refid="selectSvyTaskScriptVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertSvyTaskScript" parameterType="com.smartor.domain.SvyTaskScript" useGeneratedKeys="true" keyProperty="id">
+        insert into svy_task_script
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="scriptType != null">script_type,</if>
+            <if test="scriptCode != null and scriptCode != ''">script_code,</if>
+            <if test="script != null">script,</if>
+            <if test="tag != null">tag,</if>
+            <if test="sort != null">sort,</if>
+            <if test="ismandatory != null">ismandatory,</if>
+            <if test="ishide != null">ishide,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="answer != null">answer,</if>
+            <if test="pid != null">pid,</if>
+            <if test="guid != null">guid,</if>
+            <if test="taskid != null">taskid,</if>
+            <if test="optiondesc != null">optiondesc,</if>
+            <if test="nexttopicid != null">nexttopicid,</if>
+            <if test="nexttopicsort != null">nexttopicsort,</if>
+            <if test="scoretype != null">scoretype,</if>
+            <if test="score != null">score,</if>
+            <if test="showtype != null">showtype,</if>
+            <if test="picturePath != null">picture_path,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="scriptType != null">#{scriptType},</if>
+            <if test="scriptCode != null and scriptCode != ''">#{scriptCode},</if>
+            <if test="script != null">#{script},</if>
+            <if test="tag != null">#{tag},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="ismandatory != null">#{ismandatory},</if>
+            <if test="ishide != null">#{ishide},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="answer != null">#{answer},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="guid != null">#{guid},</if>
+            <if test="taskid != null">#{taskid},</if>
+            <if test="optiondesc != null">#{optiondesc},</if>
+            <if test="nexttopicid != null">#{nexttopicid},</if>
+            <if test="nexttopicsort != null">#{nexttopicsort},</if>
+            <if test="scoretype != null">#{scoretype},</if>
+            <if test="score != null">#{score},</if>
+            <if test="showtype != null">#{showtype},</if>
+            <if test="picturePath != null">#{picturePath},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSvyTaskScript" parameterType="com.smartor.domain.SvyTaskScript">
+        update svy_task_script
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="scriptType != null">script_type = #{scriptType},</if>
+            <if test="scriptCode != null and scriptCode != ''">script_code = #{scriptCode},</if>
+            <if test="script != null">script = #{script},</if>
+            <if test="tag != null">tag = #{tag},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="ismandatory != null">ismandatory = #{ismandatory},</if>
+            <if test="ishide != null">ishide = #{ishide},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="answer != null">answer = #{answer},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="optiondesc != null">optiondesc = #{optiondesc},</if>
+            <if test="nexttopicid != null">nexttopicid = #{nexttopicid},</if>
+            <if test="nexttopicsort != null">nexttopicsort = #{nexttopicsort},</if>
+            <if test="scoretype != null">scoretype = #{scoretype},</if>
+            <if test="score != null">score = #{score},</if>
+            <if test="showtype != null">showtype = #{showtype},</if>
+            <if test="picturePath != null">picture_path = #{picturePath},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSvyTaskScriptById" parameterType="Long">
+        delete from svy_task_script where id = #{id}
+    </delete>
+
+    <delete id="deleteSvyTaskScriptByIds" parameterType="String">
+        delete from svy_task_script where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml
new file mode 100644
index 0000000..712201f
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.smartor.mapper.SvyTaskScriptoptionMapper">
+
+    <resultMap type="com.smartor.domain.SvyTaskScriptoption" id="SvyTaskScriptoptionResult">
+        <result property="id"    column="id"    />
+        <result property="taskScriptId"    column="task_script_id"    />
+        <result property="svyid"    column="svyid"    />
+        <result property="scriptType"    column="script_type"    />
+        <result property="optioncode"    column="optioncode"    />
+        <result property="optioncontent"    column="optioncontent"    />
+        <result property="tag"    column="tag"    />
+        <result property="isexistdetail"    column="isexistdetail"    />
+        <result property="detailismandatory"    column="detailismandatory"    />
+        <result property="isexceptionitem"    column="isexceptionitem"    />
+        <result property="istrack"    column="istrack"    />
+        <result property="withadditional"    column="withadditional"    />
+        <result property="score"    column="score"    />
+        <result property="prompt"    column="prompt"    />
+        <result property="jump"    column="jump"    />
+        <result property="parentoptionid"    column="parentoptionid"    />
+        <result property="ismutex"    column="ismutex"    />
+        <result property="verifyrule"    column="verifyrule"    />
+        <result property="sort"    column="sort"    />
+        <result property="verificationtype"    column="verificationtype"    />
+        <result property="isrange"    column="isrange"    />
+        <result property="minrange"    column="minrange"    />
+        <result property="maxrange"    column="maxrange"    />
+        <result property="rangelength"    column="rangelength"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="oldid"    column="oldid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="pid"    column="pid"    />
+        <result property="guid"    column="guid"    />
+        <result property="taskid"    column="taskid"    />
+        <result property="nexttopicid"    column="nexttopicid"    />
+        <result property="nexttopicsort"    column="nexttopicsort"    />
+        <result property="scoretype"    column="scoretype"    />
+        <result property="showtype"    column="showtype"    />
+        <result property="picturePath"    column="picture_path"    />
+    </resultMap>
+
+    <sql id="selectSvyTaskScriptoptionVo">
+        select id, task_script_id, svyid, script_type, optioncode, optioncontent, tag, isexistdetail, detailismandatory, isexceptionitem, istrack, withadditional, score, prompt, jump, parentoptionid, ismutex, verifyrule, sort, verificationtype, isrange, minrange, maxrange, rangelength, orgid, oldid, del_flag, create_by, create_time, update_by, update_time, isupload, upload_time, pid, guid, taskid, nexttopicid, nexttopicsort, scoretype, showtype, picture_path from svy_task_scriptoption
+    </sql>
+
+    <select id="selectSvyTaskScriptoptionList" parameterType="com.smartor.domain.SvyTaskScriptoption" resultMap="SvyTaskScriptoptionResult">
+        <include refid="selectSvyTaskScriptoptionVo"/>
+        <where>
+            <if test="taskScriptId != null "> and task_script_id = #{taskScriptId}</if>
+            <if test="svyid != null "> and svyid = #{svyid}</if>
+            <if test="scriptType != null "> and script_type = #{scriptType}</if>
+            <if test="optioncode != null  and optioncode != ''"> and optioncode = #{optioncode}</if>
+            <if test="optioncontent != null  and optioncontent != ''"> and optioncontent = #{optioncontent}</if>
+            <if test="tag != null  and tag != ''"> and tag = #{tag}</if>
+            <if test="isexistdetail != null "> and isexistdetail = #{isexistdetail}</if>
+            <if test="detailismandatory != null "> and detailismandatory = #{detailismandatory}</if>
+            <if test="isexceptionitem != null "> and isexceptionitem = #{isexceptionitem}</if>
+            <if test="istrack != null "> and istrack = #{istrack}</if>
+            <if test="withadditional != null "> and withadditional = #{withadditional}</if>
+            <if test="score != null "> and score = #{score}</if>
+            <if test="prompt != null  and prompt != ''"> and prompt = #{prompt}</if>
+            <if test="jump != null  and jump != ''"> and jump = #{jump}</if>
+            <if test="parentoptionid != null "> and parentoptionid = #{parentoptionid}</if>
+            <if test="ismutex != null "> and ismutex = #{ismutex}</if>
+            <if test="verifyrule != null  and verifyrule != ''"> and verifyrule = #{verifyrule}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="verificationtype != null "> and verificationtype = #{verificationtype}</if>
+            <if test="isrange != null "> and isrange = #{isrange}</if>
+            <if test="minrange != null  and minrange != ''"> and minrange = #{minrange}</if>
+            <if test="maxrange != null  and maxrange != ''"> and maxrange = #{maxrange}</if>
+            <if test="rangelength != null "> and rangelength = #{rangelength}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="oldid != null "> and oldid = #{oldid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="pid != null "> and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''"> and guid = #{guid}</if>
+            <if test="taskid != null "> and taskid = #{taskid}</if>
+            <if test="nexttopicid != null "> and nexttopicid = #{nexttopicid}</if>
+            <if test="nexttopicsort != null "> and nexttopicsort = #{nexttopicsort}</if>
+            <if test="scoretype != null  and scoretype != ''"> and scoretype = #{scoretype}</if>
+            <if test="showtype != null  and showtype != ''"> and showtype = #{showtype}</if>
+            <if test="picturePath != null  and picturePath != ''"> and picture_path = #{picturePath}</if>
+        </where>
+    </select>
+
+    <select id="selectSvyTaskScriptoptionById" parameterType="Long" resultMap="SvyTaskScriptoptionResult">
+        <include refid="selectSvyTaskScriptoptionVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertSvyTaskScriptoption" parameterType="com.smartor.domain.SvyTaskScriptoption" useGeneratedKeys="true" keyProperty="id">
+        insert into svy_task_scriptoption
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="taskScriptId != null">task_script_id,</if>
+            <if test="svyid != null">svyid,</if>
+            <if test="scriptType != null">script_type,</if>
+            <if test="optioncode != null">optioncode,</if>
+            <if test="optioncontent != null">optioncontent,</if>
+            <if test="tag != null">tag,</if>
+            <if test="isexistdetail != null">isexistdetail,</if>
+            <if test="detailismandatory != null">detailismandatory,</if>
+            <if test="isexceptionitem != null">isexceptionitem,</if>
+            <if test="istrack != null">istrack,</if>
+            <if test="withadditional != null">withadditional,</if>
+            <if test="score != null">score,</if>
+            <if test="prompt != null">prompt,</if>
+            <if test="jump != null">jump,</if>
+            <if test="parentoptionid != null">parentoptionid,</if>
+            <if test="ismutex != null">ismutex,</if>
+            <if test="verifyrule != null">verifyrule,</if>
+            <if test="sort != null">sort,</if>
+            <if test="verificationtype != null">verificationtype,</if>
+            <if test="isrange != null">isrange,</if>
+            <if test="minrange != null">minrange,</if>
+            <if test="maxrange != null">maxrange,</if>
+            <if test="rangelength != null">rangelength,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="oldid != null">oldid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="pid != null">pid,</if>
+            <if test="guid != null">guid,</if>
+            <if test="taskid != null">taskid,</if>
+            <if test="nexttopicid != null">nexttopicid,</if>
+            <if test="nexttopicsort != null">nexttopicsort,</if>
+            <if test="scoretype != null">scoretype,</if>
+            <if test="showtype != null">showtype,</if>
+            <if test="picturePath != null">picture_path,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="taskScriptId != null">#{taskScriptId},</if>
+            <if test="svyid != null">#{svyid},</if>
+            <if test="scriptType != null">#{scriptType},</if>
+            <if test="optioncode != null">#{optioncode},</if>
+            <if test="optioncontent != null">#{optioncontent},</if>
+            <if test="tag != null">#{tag},</if>
+            <if test="isexistdetail != null">#{isexistdetail},</if>
+            <if test="detailismandatory != null">#{detailismandatory},</if>
+            <if test="isexceptionitem != null">#{isexceptionitem},</if>
+            <if test="istrack != null">#{istrack},</if>
+            <if test="withadditional != null">#{withadditional},</if>
+            <if test="score != null">#{score},</if>
+            <if test="prompt != null">#{prompt},</if>
+            <if test="jump != null">#{jump},</if>
+            <if test="parentoptionid != null">#{parentoptionid},</if>
+            <if test="ismutex != null">#{ismutex},</if>
+            <if test="verifyrule != null">#{verifyrule},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="verificationtype != null">#{verificationtype},</if>
+            <if test="isrange != null">#{isrange},</if>
+            <if test="minrange != null">#{minrange},</if>
+            <if test="maxrange != null">#{maxrange},</if>
+            <if test="rangelength != null">#{rangelength},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="oldid != null">#{oldid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="guid != null">#{guid},</if>
+            <if test="taskid != null">#{taskid},</if>
+            <if test="nexttopicid != null">#{nexttopicid},</if>
+            <if test="nexttopicsort != null">#{nexttopicsort},</if>
+            <if test="scoretype != null">#{scoretype},</if>
+            <if test="showtype != null">#{showtype},</if>
+            <if test="picturePath != null">#{picturePath},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSvyTaskScriptoption" parameterType="com.smartor.domain.SvyTaskScriptoption">
+        update svy_task_scriptoption
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="taskScriptId != null">task_script_id = #{taskScriptId},</if>
+            <if test="svyid != null">svyid = #{svyid},</if>
+            <if test="scriptType != null">script_type = #{scriptType},</if>
+            <if test="optioncode != null">optioncode = #{optioncode},</if>
+            <if test="optioncontent != null">optioncontent = #{optioncontent},</if>
+            <if test="tag != null">tag = #{tag},</if>
+            <if test="isexistdetail != null">isexistdetail = #{isexistdetail},</if>
+            <if test="detailismandatory != null">detailismandatory = #{detailismandatory},</if>
+            <if test="isexceptionitem != null">isexceptionitem = #{isexceptionitem},</if>
+            <if test="istrack != null">istrack = #{istrack},</if>
+            <if test="withadditional != null">withadditional = #{withadditional},</if>
+            <if test="score != null">score = #{score},</if>
+            <if test="prompt != null">prompt = #{prompt},</if>
+            <if test="jump != null">jump = #{jump},</if>
+            <if test="parentoptionid != null">parentoptionid = #{parentoptionid},</if>
+            <if test="ismutex != null">ismutex = #{ismutex},</if>
+            <if test="verifyrule != null">verifyrule = #{verifyrule},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="verificationtype != null">verificationtype = #{verificationtype},</if>
+            <if test="isrange != null">isrange = #{isrange},</if>
+            <if test="minrange != null">minrange = #{minrange},</if>
+            <if test="maxrange != null">maxrange = #{maxrange},</if>
+            <if test="rangelength != null">rangelength = #{rangelength},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="oldid != null">oldid = #{oldid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="nexttopicid != null">nexttopicid = #{nexttopicid},</if>
+            <if test="nexttopicsort != null">nexttopicsort = #{nexttopicsort},</if>
+            <if test="scoretype != null">scoretype = #{scoretype},</if>
+            <if test="showtype != null">showtype = #{showtype},</if>
+            <if test="picturePath != null">picture_path = #{picturePath},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSvyTaskScriptoptionById" parameterType="Long">
+        delete from svy_task_scriptoption where id = #{id}
+    </delete>
+
+    <delete id="deleteSvyTaskScriptoptionByIds" parameterType="String">
+        delete from svy_task_scriptoption where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTaskSingleMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskSingleMapper.xml
new file mode 100644
index 0000000..3cfcd88
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskSingleMapper.xml
@@ -0,0 +1,432 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.smartor.mapper.SvyTaskSingleMapper">
+
+    <resultMap type="com.smartor.domain.SvyTaskSingle" id="SvyTaskSingleResult">
+        <result property="id" column="id"/>
+        <result property="sendname" column="sendname"/>
+        <result property="phone" column="phone"/>
+        <result property="sex" column="sex"/>
+        <result property="age" column="age"/>
+        <result property="sfzh" column="sfzh"/>
+        <result property="addr" column="addr"/>
+        <result property="senderdetail" column="senderdetail"/>
+        <result property="type" column="type"/>
+        <result property="taskid" column="taskid"/>
+        <result property="templateid" column="templateid"/>
+        <result property="templatename" column="templatename"/>
+        <result property="senddate" column="senddate"/>
+        <result property="sendlimitabegin" column="sendlimitabegin"/>
+        <result property="sendlimitaend" column="sendlimitaend"/>
+        <result property="sendlimitpbegin" column="sendlimitpbegin"/>
+        <result property="sendlimitpend" column="sendlimitpend"/>
+        <result property="sendlimitnbegin" column="sendlimitnbegin"/>
+        <result property="sendlimitnend" column="sendlimitnend"/>
+        <result property="sendstate" column="sendstate"/>
+        <result property="senduuid" column="senduuid"/>
+        <result property="result" column="result"/>
+        <result property="finishtime" column="finishtime"/>
+        <result property="userid" column="userid"/>
+        <result property="username" column="username"/>
+        <result property="outbounduuid" column="outbounduuid"/>
+        <result property="recordid" column="recordid"/>
+        <result property="recallcount" column="recallcount"/>
+        <result property="exrecallcount" column="exrecallcount"/>
+        <result property="pulltime" column="pulltime"/>
+        <result property="bqsms" column="bqsms"/>
+        <result property="bhsms" column="bhsms"/>
+        <result property="deptcode" column="deptcode"/>
+        <result property="labelstatus" column="labelstatus"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="isupload" column="isupload"/>
+        <result property="uploadTime" column="upload_time"/>
+        <result property="orgid" column="orgid"/>
+        <result property="pid" column="pid"/>
+        <result property="guid" column="guid"/>
+        <result property="textParam" column="text_param"/>
+        <result property="serviceform" column="serviceform"/>
+        <result property="badNo" column="bad_no"/>
+        <result property="icdName" column="icd_name"/>
+        <result property="medicalRecordNo" column="medical_record_no"/>
+        <result property="preachcontent" column="preachcontent"/>
+        <result property="sendType" column="send_type"/>
+        <result property="sendTimeSlot" column="send_time_slot"/>
+        <result property="taskName" column="task_name"/>
+        <result property="taskDesc" column="task_desc"/>
+        <result property="operator" column="operator"/>
+        <result property="operatorNo" column="operator_no"/>
+        <result property="hospno" column="hospno"/>
+        <result property="hospType" column="hosp_type"/>
+        <result property="wechat" column="wechat"/>
+        <result property="diagname" column="diagname"/>
+        <result property="deptname" column="deptname"/>
+        <result property="admindate" column="admindate"/>
+        <result property="roomno" column="roomno"/>
+        <result property="bedno" column="bedno"/>
+    </resultMap>
+
+    <sql id="selectSvyTaskSingleVo">
+        select id,
+               sendname,
+               phone,
+               sex,
+               age,
+               sfzh,
+               addr,
+               senderdetail,
+               type,
+               taskid,
+               templateid,
+               templatename,
+               senddate,
+               sendlimitabegin,
+               sendlimitaend,
+               sendlimitpbegin,
+               sendlimitpend,
+               sendlimitnbegin,
+               sendlimitnend,
+               sendstate,
+               senduuid,
+               result,
+               finishtime,
+               userid,
+               username,
+               outbounduuid,
+               recordid,
+               recallcount,
+               exrecallcount,
+               pulltime,
+               bqsms,
+               bhsms,
+               deptcode,
+               labelstatus,
+               del_flag,
+               update_by,
+               update_time,
+               create_by,
+               create_time,
+               isupload,
+               upload_time,
+               orgid,
+               pid,
+               guid,
+               text_param,
+               serviceform,
+               bad_no,
+               icd_name,
+               medical_record_no,
+               preachcontent,
+               send_type,
+               send_time_slot,
+               task_name,
+               task_desc,
+               operator,
+               operator_no,
+               hospno,
+               hosp_type,
+               wechat,
+               diagname,
+               deptname,
+               admindate,
+               roomno,
+               bedno
+        from svy_task_single
+    </sql>
+
+    <select id="selectSvyTaskSingleList" parameterType="com.smartor.domain.SvyTaskSingle"
+            resultMap="SvyTaskSingleResult">
+        <include refid="selectSvyTaskSingleVo"/>
+        <where>
+            <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if>
+            <if test="phone != null  and phone != ''">and phone = #{phone}</if>
+            <if test="sex != null  and sex != ''">and sex = #{sex}</if>
+            <if test="age != null ">and age = #{age}</if>
+            <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if>
+            <if test="addr != null  and addr != ''">and addr = #{addr}</if>
+            <if test="senderdetail != null  and senderdetail != ''">and senderdetail = #{senderdetail}</if>
+            <if test="type != null  and type != ''">and type = #{type}</if>
+            <if test="taskid != null ">and taskid = #{taskid}</if>
+            <if test="templateid != null  and templateid != ''">and templateid = #{templateid}</if>
+            <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename},
+                '%')
+            </if>
+            <if test="senddate != null ">and senddate = #{senddate}</if>
+            <if test="sendlimitabegin != null  and sendlimitabegin != ''">and sendlimitabegin = #{sendlimitabegin}</if>
+            <if test="sendlimitaend != null  and sendlimitaend != ''">and sendlimitaend = #{sendlimitaend}</if>
+            <if test="sendlimitpbegin != null  and sendlimitpbegin != ''">and sendlimitpbegin = #{sendlimitpbegin}</if>
+            <if test="sendlimitpend != null  and sendlimitpend != ''">and sendlimitpend = #{sendlimitpend}</if>
+            <if test="sendlimitnbegin != null  and sendlimitnbegin != ''">and sendlimitnbegin = #{sendlimitnbegin}</if>
+            <if test="sendlimitnend != null  and sendlimitnend != ''">and sendlimitnend = #{sendlimitnend}</if>
+            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
+            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
+            <if test="result != null  and result != ''">and result = #{result}</if>
+            <if test="finishtime != null ">and finishtime = #{finishtime}</if>
+            <if test="userid != null  and userid != ''">and userid = #{userid}</if>
+            <if test="username != null  and username != ''">and username like concat('%', #{username}, '%')</if>
+            <if test="outbounduuid != null  and outbounduuid != ''">and outbounduuid = #{outbounduuid}</if>
+            <if test="recordid != null ">and recordid = #{recordid}</if>
+            <if test="recallcount != null ">and recallcount = #{recallcount}</if>
+            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
+            <if test="pulltime != null ">and pulltime = #{pulltime}</if>
+            <if test="bqsms != null ">and bqsms = #{bqsms}</if>
+            <if test="bhsms != null ">and bhsms = #{bhsms}</if>
+            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
+            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
+            <if test="isupload != null ">and isupload = #{isupload}</if>
+            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
+            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+            <if test="pid != null ">and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
+            <if test="serviceform != null  and serviceform != ''">and serviceform = #{serviceform}</if>
+            <if test="badNo != null  and badNo != ''">and bad_no = #{badNo}</if>
+            <if test="icdName != null  and icdName != ''">and icd_name like concat('%', #{icdName}, '%')</if>
+            <if test="medicalRecordNo != null  and medicalRecordNo != ''">and medical_record_no = #{medicalRecordNo}
+            </if>
+            <if test="preachcontent != null  and preachcontent != ''">and preachcontent = #{preachcontent}</if>
+            <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if>
+            <if test="sendTimeSlot != null  and sendTimeSlot != ''">and send_time_slot = #{sendTimeSlot}</if>
+            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
+            <if test="taskDesc != null  and taskDesc != ''">and task_desc = #{taskDesc}</if>
+            <if test="operator != null  and operator != ''">and operator = #{operator}</if>
+            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
+            <if test="hospno != null  and hospno != ''">and hospno = #{hospno}</if>
+            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
+            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
+            <if test="diagname != null  and diagname != ''">and diagname like concat('%', #{diagname}, '%')</if>
+            <if test="deptname != null  and deptname != ''">and deptname like concat('%', #{deptname}, '%')</if>
+            <if test="admindate != null ">and admindate = #{admindate}</if>
+            <if test="roomno != null  and roomno != ''">and roomno = #{roomno}</if>
+            <if test="bedno != null  and bedno != ''">and bedno = #{bedno}</if>
+        </where>
+    </select>
+
+    <select id="selectSvyTaskSingleById" parameterType="Long" resultMap="SvyTaskSingleResult">
+        <include refid="selectSvyTaskSingleVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertSvyTaskSingle" parameterType="com.smartor.domain.SvyTaskSingle" useGeneratedKeys="true"
+            keyProperty="id">
+        insert into svy_task_single
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sendname != null">sendname,</if>
+            <if test="phone != null">phone,</if>
+            <if test="sex != null">sex,</if>
+            <if test="age != null">age,</if>
+            <if test="sfzh != null">sfzh,</if>
+            <if test="addr != null">addr,</if>
+            <if test="senderdetail != null">senderdetail,</if>
+            <if test="type != null">type,</if>
+            <if test="taskid != null">taskid,</if>
+            <if test="templateid != null">templateid,</if>
+            <if test="templatename != null">templatename,</if>
+            <if test="senddate != null">senddate,</if>
+            <if test="sendlimitabegin != null">sendlimitabegin,</if>
+            <if test="sendlimitaend != null">sendlimitaend,</if>
+            <if test="sendlimitpbegin != null">sendlimitpbegin,</if>
+            <if test="sendlimitpend != null">sendlimitpend,</if>
+            <if test="sendlimitnbegin != null">sendlimitnbegin,</if>
+            <if test="sendlimitnend != null">sendlimitnend,</if>
+            <if test="sendstate != null">sendstate,</if>
+            <if test="senduuid != null">senduuid,</if>
+            <if test="result != null">result,</if>
+            <if test="finishtime != null">finishtime,</if>
+            <if test="userid != null">userid,</if>
+            <if test="username != null">username,</if>
+            <if test="outbounduuid != null">outbounduuid,</if>
+            <if test="recordid != null">recordid,</if>
+            <if test="recallcount != null">recallcount,</if>
+            <if test="exrecallcount != null">exrecallcount,</if>
+            <if test="pulltime != null">pulltime,</if>
+            <if test="bqsms != null">bqsms,</if>
+            <if test="bhsms != null">bhsms,</if>
+            <if test="deptcode != null">deptcode,</if>
+            <if test="labelstatus != null">labelstatus,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="pid != null">pid,</if>
+            <if test="guid != null">guid,</if>
+            <if test="textParam != null">text_param,</if>
+            <if test="serviceform != null">serviceform,</if>
+            <if test="badNo != null">bad_no,</if>
+            <if test="icdName != null">icd_name,</if>
+            <if test="medicalRecordNo != null">medical_record_no,</if>
+            <if test="preachcontent != null">preachcontent,</if>
+            <if test="sendType != null">send_type,</if>
+            <if test="sendTimeSlot != null">send_time_slot,</if>
+            <if test="taskName != null">task_name,</if>
+            <if test="taskDesc != null">task_desc,</if>
+            <if test="operator != null">operator,</if>
+            <if test="operatorNo != null">operator_no,</if>
+            <if test="hospno != null">hospno,</if>
+            <if test="hospType != null">hosp_type,</if>
+            <if test="wechat != null">wechat,</if>
+            <if test="diagname != null">diagname,</if>
+            <if test="deptname != null">deptname,</if>
+            <if test="admindate != null">admindate,</if>
+            <if test="roomno != null">roomno,</if>
+            <if test="bedno != null">bedno,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sendname != null">#{sendname},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="sex != null">#{sex},</if>
+            <if test="age != null">#{age},</if>
+            <if test="sfzh != null">#{sfzh},</if>
+            <if test="addr != null">#{addr},</if>
+            <if test="senderdetail != null">#{senderdetail},</if>
+            <if test="type != null">#{type},</if>
+            <if test="taskid != null">#{taskid},</if>
+            <if test="templateid != null">#{templateid},</if>
+            <if test="templatename != null">#{templatename},</if>
+            <if test="senddate != null">#{senddate},</if>
+            <if test="sendlimitabegin != null">#{sendlimitabegin},</if>
+            <if test="sendlimitaend != null">#{sendlimitaend},</if>
+            <if test="sendlimitpbegin != null">#{sendlimitpbegin},</if>
+            <if test="sendlimitpend != null">#{sendlimitpend},</if>
+            <if test="sendlimitnbegin != null">#{sendlimitnbegin},</if>
+            <if test="sendlimitnend != null">#{sendlimitnend},</if>
+            <if test="sendstate != null">#{sendstate},</if>
+            <if test="senduuid != null">#{senduuid},</if>
+            <if test="result != null">#{result},</if>
+            <if test="finishtime != null">#{finishtime},</if>
+            <if test="userid != null">#{userid},</if>
+            <if test="username != null">#{username},</if>
+            <if test="outbounduuid != null">#{outbounduuid},</if>
+            <if test="recordid != null">#{recordid},</if>
+            <if test="recallcount != null">#{recallcount},</if>
+            <if test="exrecallcount != null">#{exrecallcount},</if>
+            <if test="pulltime != null">#{pulltime},</if>
+            <if test="bqsms != null">#{bqsms},</if>
+            <if test="bhsms != null">#{bhsms},</if>
+            <if test="deptcode != null">#{deptcode},</if>
+            <if test="labelstatus != null">#{labelstatus},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="guid != null">#{guid},</if>
+            <if test="textParam != null">#{textParam},</if>
+            <if test="serviceform != null">#{serviceform},</if>
+            <if test="badNo != null">#{badNo},</if>
+            <if test="icdName != null">#{icdName},</if>
+            <if test="medicalRecordNo != null">#{medicalRecordNo},</if>
+            <if test="preachcontent != null">#{preachcontent},</if>
+            <if test="sendType != null">#{sendType},</if>
+            <if test="sendTimeSlot != null">#{sendTimeSlot},</if>
+            <if test="taskName != null">#{taskName},</if>
+            <if test="taskDesc != null">#{taskDesc},</if>
+            <if test="operator != null">#{operator},</if>
+            <if test="operatorNo != null">#{operatorNo},</if>
+            <if test="hospno != null">#{hospno},</if>
+            <if test="hospType != null">#{hospType},</if>
+            <if test="wechat != null">#{wechat},</if>
+            <if test="diagname != null">#{diagname},</if>
+            <if test="deptname != null">#{deptname},</if>
+            <if test="admindate != null">#{admindate},</if>
+            <if test="roomno != null">#{roomno},</if>
+            <if test="bedno != null">#{bedno},</if>
+        </trim>
+    </insert>
+
+    <update id="updateSvyTaskSingle" parameterType="com.smartor.domain.SvyTaskSingle">
+        update svy_task_single
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sendname != null">sendname = #{sendname},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="sex != null">sex = #{sex},</if>
+            <if test="age != null">age = #{age},</if>
+            <if test="sfzh != null">sfzh = #{sfzh},</if>
+            <if test="addr != null">addr = #{addr},</if>
+            <if test="senderdetail != null">senderdetail = #{senderdetail},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="templatename != null">templatename = #{templatename},</if>
+            <if test="senddate != null">senddate = #{senddate},</if>
+            <if test="sendlimitabegin != null">sendlimitabegin = #{sendlimitabegin},</if>
+            <if test="sendlimitaend != null">sendlimitaend = #{sendlimitaend},</if>
+            <if test="sendlimitpbegin != null">sendlimitpbegin = #{sendlimitpbegin},</if>
+            <if test="sendlimitpend != null">sendlimitpend = #{sendlimitpend},</if>
+            <if test="sendlimitnbegin != null">sendlimitnbegin = #{sendlimitnbegin},</if>
+            <if test="sendlimitnend != null">sendlimitnend = #{sendlimitnend},</if>
+            <if test="sendstate != null">sendstate = #{sendstate},</if>
+            <if test="senduuid != null">senduuid = #{senduuid},</if>
+            <if test="result != null">result = #{result},</if>
+            <if test="finishtime != null">finishtime = #{finishtime},</if>
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="username != null">username = #{username},</if>
+            <if test="outbounduuid != null">outbounduuid = #{outbounduuid},</if>
+            <if test="recordid != null">recordid = #{recordid},</if>
+            <if test="recallcount != null">recallcount = #{recallcount},</if>
+            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if>
+            <if test="pulltime != null">pulltime = #{pulltime},</if>
+            <if test="bqsms != null">bqsms = #{bqsms},</if>
+            <if test="bhsms != null">bhsms = #{bhsms},</if>
+            <if test="deptcode != null">deptcode = #{deptcode},</if>
+            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="textParam != null">text_param = #{textParam},</if>
+            <if test="serviceform != null">serviceform = #{serviceform},</if>
+            <if test="badNo != null">bad_no = #{badNo},</if>
+            <if test="icdName != null">icd_name = #{icdName},</if>
+            <if test="medicalRecordNo != null">medical_record_no = #{medicalRecordNo},</if>
+            <if test="preachcontent != null">preachcontent = #{preachcontent},</if>
+            <if test="sendType != null">send_type = #{sendType},</if>
+            <if test="sendTimeSlot != null">send_time_slot = #{sendTimeSlot},</if>
+            <if test="taskName != null">task_name = #{taskName},</if>
+            <if test="taskDesc != null">task_desc = #{taskDesc},</if>
+            <if test="operator != null">operator = #{operator},</if>
+            <if test="operatorNo != null">operator_no = #{operatorNo},</if>
+            <if test="hospno != null">hospno = #{hospno},</if>
+            <if test="hospType != null">hosp_type = #{hospType},</if>
+            <if test="wechat != null">wechat = #{wechat},</if>
+            <if test="diagname != null">diagname = #{diagname},</if>
+            <if test="deptname != null">deptname = #{deptname},</if>
+            <if test="admindate != null">admindate = #{admindate},</if>
+            <if test="roomno != null">roomno = #{roomno},</if>
+            <if test="bedno != null">bedno = #{bedno},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSvyTaskSingleById" parameterType="Long">
+        delete
+        from svy_task_single
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteSvyTaskSingleByIds" parameterType="String">
+        delete from svy_task_single where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml
similarity index 61%
copy from smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml
copy to smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml
index ce11791..9c8c935 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibTitleMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml
@@ -2,17 +2,18 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.SvyLibTitleMapper">
+<mapper namespace="com.smartor.mapper.SvyTaskTemplateMapper">
 
-    <resultMap type="com.smartor.domain.SvyLibTitle" id="SvyLibTitleResult">
+    <resultMap type="com.smartor.domain.SvyTaskTemplate" id="SvyTaskTemplateResult">
         <result property="svyid" column="svyid"/>
+        <result property="templateid" column="templateid"/>
         <result property="categoryid" column="categoryid"/>
         <result property="svycode" column="svycode"/>
         <result property="svyname" column="svyname"/>
         <result property="description" column="description"/>
         <result property="introduce" column="introduce"/>
         <result property="submitprompt" column="submitprompt"/>
-        <result property="templateid" column="templateid"/>
+        <result property="tag" column="tag"/>
         <result property="version" column="version"/>
         <result property="centerlibrarycode" column="centerlibrarycode"/>
         <result property="centerlibraryid" column="centerlibraryid"/>
@@ -26,6 +27,9 @@
         <result property="updateTime" column="update_time"/>
         <result property="isupload" column="isupload"/>
         <result property="uploadTime" column="upload_time"/>
+        <result property="taskScriptId" column="task_script_id"/>
+        <result property="pid" column="pid"/>
+        <result property="guid" column="guid"/>
         <result property="deptNames" column="dept_names"/>
         <result property="labelInfo" column="label_info"/>
         <result property="campus" column="campus"/>
@@ -33,19 +37,19 @@
         <result property="otherdata" column="otherdata"/>
         <result property="valueType" column="value_type"/>
         <result property="reply" column="reply"/>
+        <result property="taskid" column="taskid"/>
     </resultMap>
 
-    <sql id="selectSvyLibTitleVo">
+    <sql id="selectSvyTaskTemplateVo">
         select svyid,
+               templateid,
                categoryid,
-               value_type,
-               reply,
                svycode,
                svyname,
                description,
                introduce,
                submitprompt,
-               templateid,
+               tag,
                version,
                centerlibrarycode,
                centerlibraryid,
@@ -59,49 +63,73 @@
                update_time,
                isupload,
                upload_time,
+               task_script_id,
+               pid,
+               guid,
                dept_names,
                label_info,
                campus,
                suitway,
-               otherdata
-        from svy_lib_title
+               otherdata,
+               value_type,
+               reply,
+               taskid
+        from svy_task_template
     </sql>
 
-    <select id="selectSvyLibTitleList" parameterType="com.smartor.domain.SvyLibTitleReq" resultMap="SvyLibTitleResult">
-        select a.svyid, a.categoryid, a.svycode, a.svyname, a.description, a.introduce,a.submitprompt, a.templateid,
-        a.version,a.centerlibrarycode, a.centerlibraryid, a.islocal, a.isenable, a.orgid, a.del_flag, a.create_by,
-        a.create_time, a.update_by, a.update_time, a.isupload,
-        a.upload_time,a.dept_names,a.value_type,a.label_info,a.reply,
-        a.campus,a.suitway,a.otherdata
-        ,c.icdname from svy_lib_title
-        a,icd10_association b,icd10 c
+    <select id="selectSvyTaskTemplateList" parameterType="com.smartor.domain.SvyTaskTemplate"
+            resultMap="SvyTaskTemplateResult">
+        <include refid="selectSvyTaskTemplateVo"/>
         <where>
-            a.del_flag=0 and
-            a.svyid=b.SVYID and b.ICD10CODE=c.icdcode
-            <if test="categoryid != null ">and a.categoryid = #{categoryid}</if>
-            <if test="svyid != null ">and a.svyid = #{svyid}</if>
-            <if test="svyname != null  and svyname != ''">and a.svyname like concat('%', #{svyname}, '%')</if>
-            <if test="description != null  and description != ''">and a.icdname like concat('%', #{description}, '%')
+            <if test="templateid != null ">and templateid = #{templateid}</if>
+            <if test="categoryid != null ">and categoryid = #{categoryid}</if>
+            <if test="svycode != null  and svycode != ''">and svycode = #{svycode}</if>
+            <if test="svyname != null  and svyname != ''">and svyname like concat('%', #{svyname}, '%')</if>
+            <if test="description != null  and description != ''">and description = #{description}</if>
+            <if test="introduce != null  and introduce != ''">and introduce = #{introduce}</if>
+            <if test="submitprompt != null  and submitprompt != ''">and submitprompt = #{submitprompt}</if>
+            <if test="tag != null  and tag != ''">and tag = #{tag}</if>
+            <if test="version != null ">and version = #{version}</if>
+            <if test="centerlibrarycode != null  and centerlibrarycode != ''">and centerlibrarycode =
+                #{centerlibrarycode}
             </if>
+            <if test="centerlibraryid != null ">and centerlibraryid = #{centerlibraryid}</if>
+            <if test="islocal != null ">and islocal = #{islocal}</if>
+            <if test="isenable != null  and isenable != ''">and isenable = #{isenable}</if>
+            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+            <if test="isupload != null ">and isupload = #{isupload}</if>
+            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
+            <if test="taskScriptId != null  and taskScriptId != ''">and task_script_id = #{taskScriptId}</if>
+            <if test="pid != null ">and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+            <if test="deptNames != null  and deptNames != ''">and dept_names = #{deptNames}</if>
+            <if test="labelInfo != null  and labelInfo != ''">and label_info = #{labelInfo}</if>
+            <if test="campus != null  and campus != ''">and campus = #{campus}</if>
+            <if test="suitway != null  and suitway != ''">and suitway = #{suitway}</if>
+            <if test="otherdata != null  and otherdata != ''">and otherdata = #{otherdata}</if>
+            <if test="valueType != null  and valueType != ''">and value_type = #{valueType}</if>
+            <if test="reply != null  and reply != ''">and reply = #{reply}</if>
+            <if test="taskid != null ">and taskid = #{taskid}</if>
         </where>
     </select>
 
-    <select id="selectSvyLibTitleBySvyid" parameterType="Long" resultMap="SvyLibTitleResult">
-        <include refid="selectSvyLibTitleVo"/>
-        where svyid = #{svyid} and del_flag=0
+    <select id="selectSvyTaskTemplateBySvyid" parameterType="Long" resultMap="SvyTaskTemplateResult">
+        <include refid="selectSvyTaskTemplateVo"/>
+        where svyid = #{svyid}
     </select>
 
-    <insert id="insertSvyLibTitle" parameterType="com.smartor.domain.SvyLibTitle" useGeneratedKeys="true"
+    <insert id="insertSvyTaskTemplate" parameterType="com.smartor.domain.SvyTaskTemplate" useGeneratedKeys="true"
             keyProperty="svyid">
-        insert into svy_lib_title
+        insert into svy_task_template
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="templateid != null">templateid,</if>
             <if test="categoryid != null">categoryid,</if>
             <if test="svycode != null">svycode,</if>
             <if test="svyname != null">svyname,</if>
             <if test="description != null">description,</if>
             <if test="introduce != null">introduce,</if>
             <if test="submitprompt != null">submitprompt,</if>
-            <if test="templateid != null">templateid,</if>
+            <if test="tag != null">tag,</if>
             <if test="version != null">version,</if>
             <if test="centerlibrarycode != null">centerlibrarycode,</if>
             <if test="centerlibraryid != null">centerlibraryid,</if>
@@ -115,6 +143,9 @@
             <if test="updateTime != null">update_time,</if>
             <if test="isupload != null">isupload,</if>
             <if test="uploadTime != null">upload_time,</if>
+            <if test="taskScriptId != null">task_script_id,</if>
+            <if test="pid != null">pid,</if>
+            <if test="guid != null">guid,</if>
             <if test="deptNames != null">dept_names,</if>
             <if test="labelInfo != null">label_info,</if>
             <if test="campus != null">campus,</if>
@@ -122,17 +153,17 @@
             <if test="otherdata != null">otherdata,</if>
             <if test="valueType != null">value_type,</if>
             <if test="reply != null">reply,</if>
-            value_type,
-            reply,
+            <if test="taskid != null">taskid,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="templateid != null">#{templateid},</if>
             <if test="categoryid != null">#{categoryid},</if>
             <if test="svycode != null">#{svycode},</if>
             <if test="svyname != null">#{svyname},</if>
             <if test="description != null">#{description},</if>
             <if test="introduce != null">#{introduce},</if>
             <if test="submitprompt != null">#{submitprompt},</if>
-            <if test="templateid != null">#{templateid},</if>
+            <if test="tag != null">#{tag},</if>
             <if test="version != null">#{version},</if>
             <if test="centerlibrarycode != null">#{centerlibrarycode},</if>
             <if test="centerlibraryid != null">#{centerlibraryid},</if>
@@ -146,6 +177,9 @@
             <if test="updateTime != null">#{updateTime},</if>
             <if test="isupload != null">#{isupload},</if>
             <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="taskScriptId != null">#{taskScriptId},</if>
+            <if test="pid != null">#{pid},</if>
+            <if test="guid != null">#{guid},</if>
             <if test="deptNames != null">#{deptNames},</if>
             <if test="labelInfo != null">#{labelInfo},</if>
             <if test="campus != null">#{campus},</if>
@@ -153,19 +187,21 @@
             <if test="otherdata != null">#{otherdata},</if>
             <if test="valueType != null">#{valueType},</if>
             <if test="reply != null">#{reply},</if>
+            <if test="taskid != null">#{taskid},</if>
         </trim>
     </insert>
 
-    <update id="updateSvyLibTitle" parameterType="com.smartor.domain.SvyLibTitle">
-        update svy_lib_title
+    <update id="updateSvyTaskTemplate" parameterType="com.smartor.domain.SvyTaskTemplate">
+        update svy_task_template
         <trim prefix="SET" suffixOverrides=",">
+            <if test="templateid != null">templateid = #{templateid},</if>
             <if test="categoryid != null">categoryid = #{categoryid},</if>
             <if test="svycode != null">svycode = #{svycode},</if>
             <if test="svyname != null">svyname = #{svyname},</if>
             <if test="description != null">description = #{description},</if>
             <if test="introduce != null">introduce = #{introduce},</if>
             <if test="submitprompt != null">submitprompt = #{submitprompt},</if>
-            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="tag != null">tag = #{tag},</if>
             <if test="version != null">version = #{version},</if>
             <if test="centerlibrarycode != null">centerlibrarycode = #{centerlibrarycode},</if>
             <if test="centerlibraryid != null">centerlibraryid = #{centerlibraryid},</if>
@@ -179,25 +215,29 @@
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="isupload != null">isupload = #{isupload},</if>
             <if test="uploadTime != null">upload_time = #{uploadTime},</if>
-            <if test="deptNames != null">dept_names=#{deptNames},</if>
-            <if test="labelInfo != null">label_info=#{labelInfo},</if>
-            <if test="campus != null">campus=#{campus},</if>
-            <if test="suitway != null">suitway=#{suitway},</if>
-            <if test="otherdata != null">otherdata=#{otherdata},</if>
+            <if test="taskScriptId != null">task_script_id = #{taskScriptId},</if>
+            <if test="pid != null">pid = #{pid},</if>
+            <if test="guid != null">guid = #{guid},</if>
+            <if test="deptNames != null">dept_names = #{deptNames},</if>
+            <if test="labelInfo != null">label_info = #{labelInfo},</if>
+            <if test="campus != null">campus = #{campus},</if>
+            <if test="suitway != null">suitway = #{suitway},</if>
+            <if test="otherdata != null">otherdata = #{otherdata},</if>
             <if test="valueType != null">value_type = #{valueType},</if>
             <if test="reply != null">reply = #{reply},</if>
+            <if test="taskid != null">taskid = #{taskid},</if>
         </trim>
         where svyid = #{svyid}
     </update>
 
-    <delete id="deleteSvyLibTitleBySvyid" parameterType="Long">
+    <delete id="deleteSvyTaskTemplateBySvyid" parameterType="Long">
         delete
-        from svy_lib_title
+        from svy_task_template
         where svyid = #{svyid}
     </delete>
 
-    <delete id="deleteSvyLibTitleBySvyids" parameterType="String">
-        delete from svy_lib_title where svyid in
+    <delete id="deleteSvyTaskTemplateBySvyids" parameterType="String">
+        delete from svy_task_template where svyid in
         <foreach item="svyid" collection="array" open="(" separator="," close=")">
             #{svyid}
         </foreach>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml
index 5477226..0673265 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml
@@ -158,4 +158,4 @@
         GROUP BY a.topic, b.optioncode
     </select>
 
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3