From 27c3f725f9bbd51e97857de6cc191d016b660bd6 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 18 七月 2024 18:01:39 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskAnswer.java                             |  116 ++++
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskAnswerMapper.java                       |   63 ++
 smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml                         |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java |   91 +++
 smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java                         |    1 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java            |  100 ++++
 smartor/src/main/java/com/smartor/domain/IvrLibaScript.java                                    |    7 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java                                  |    2 
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java                       |   64 ++
 smartor/src/main/java/com/smartor/domain/SvyLibScript.java                                     |    2 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java                  |   35 -
 smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml                      |   40 
 smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml                               |   10 
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java                     |    4 
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml                       |   56 +-
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java                            |   11 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java                    |   62 ++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java            |   97 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java |   92 +++
 smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java                        |    7 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java                    |   61 ++
 smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java                      |   20 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java                          |   12 
 /dev/null                                                                                      |  258 ----------
 smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java                               |    6 
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java                             |   10 
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java                 |   40 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java                                   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java                         |   11 
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskAnswerMapper.xml                       |  159 ++++++
 smartor/src/main/java/com/smartor/domain/ServiceSubTaskDetailReq.java                          |   15 
 smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml                  |    6 
 32 files changed, 1,068 insertions(+), 399 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index 1d80368..fe59bc9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -24,10 +24,8 @@
 import org.springframework.data.redis.connection.Message;
 import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
 import org.springframework.data.redis.listener.RedisMessageListenerContainer;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.Syntax;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -222,7 +220,6 @@
                         serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                     }
                 } else if (descByCode.equals("鍏紬鍙�")) {
-
                     //鍏紬鍙�
                     RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
                     String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
@@ -344,8 +341,8 @@
                         String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key);
                         SendMagParam sendMagParam = new SendMagParam();
                         sendMagParam.setType("5");
-                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
-                        log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
+                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
+                        log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
                         //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙��
                         sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
                         Map map = new HashMap();
@@ -432,8 +429,8 @@
                         String patid = rsaPublicKeyExample.encryptedData(svyTaskSingle1.getPatid().toString(), pub_key);
                         SendMagParam sendMagParam = new SendMagParam();
                         sendMagParam.setType("5");
-                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false");
-                        log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false");
+                        sendMagParam.setUrl(ip + ":" + req_path + "//outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false");
+                        log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "//outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false");
                         //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙��
                         sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
                         Map map = new HashMap();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcalldetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcalldetailController.java
deleted file mode 100644
index 5e93144..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcalldetailController.java
+++ /dev/null
@@ -1,92 +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.IvrTaskcalldetail;
-import com.smartor.service.IIvrTaskcalldetailService;
-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 smartor
- * @date 2023-03-24
- */
-@RestController
-@RequestMapping("/smartor/ivrtaskcalldetail")
-public class IvrTaskcalldetailController extends BaseController {
-    @Autowired
-    private IIvrTaskcalldetailService ivrTaskcalldetailService;
-
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:list')")
-    @PostMapping("/list")
-    public TableDataInfo list(@RequestBody IvrTaskcalldetail ivrTaskcalldetail) {
-        startPage();
-        List<IvrTaskcalldetail> list = ivrTaskcalldetailService.selectIvrTaskcalldetailList(ivrTaskcalldetail);
-        return getDataTable(list);
-    }
-
-    /**
-     * 瀵煎嚭璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:export')")
-    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, IvrTaskcalldetail ivrTaskcalldetail) {
-        List<IvrTaskcalldetail> list = ivrTaskcalldetailService.selectIvrTaskcalldetailList(ivrTaskcalldetail);
-        ExcelUtil<IvrTaskcalldetail> util = new ExcelUtil<IvrTaskcalldetail>(IvrTaskcalldetail.class);
-        util.exportExcel(response, list, "璇煶浠诲姟鍛煎彨鏄庣粏鏁版嵁");
-    }
-
-    /**
-     * 鑾峰彇璇煶浠诲姟鍛煎彨鏄庣粏璇︾粏淇℃伅
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:query')")
-    @GetMapping(value = "/{calldetailid}")
-    public AjaxResult getInfo(@PathVariable("calldetailid") String calldetailid) {
-        return success(ivrTaskcalldetailService.selectIvrTaskcalldetailByCalldetailid(calldetailid));
-    }
-
-    /**
-     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:add')")
-    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.INSERT)
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody IvrTaskcalldetail ivrTaskcalldetail) {
-        return toAjax(ivrTaskcalldetailService.insertIvrTaskcalldetail(ivrTaskcalldetail));
-    }
-
-    /**
-     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:edit')")
-    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody IvrTaskcalldetail ivrTaskcalldetail) {
-        return toAjax(ivrTaskcalldetailService.updateIvrTaskcalldetail(ivrTaskcalldetail));
-    }
-
-    /**
-     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcalldetail:remove')")
-    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.DELETE)
-    @GetMapping("/remove/{calldetailids}")
-    public AjaxResult remove(@PathVariable String[] calldetailids) {
-        return toAjax(ivrTaskcalldetailService.deleteIvrTaskcalldetailByCalldetailids(calldetailids));
-    }
-
-}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
new file mode 100644
index 0000000..75bd6ab
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
@@ -0,0 +1,91 @@
+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.ServiceSubtaskAnswer;
+import com.smartor.service.IServiceSubtaskAnswerService;
+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-07-18
+ */
+@RestController
+@RequestMapping("/smartor/subtaskAnswer")
+public class ServiceSubtaskAnswerController extends BaseController {
+    @Autowired
+    private IServiceSubtaskAnswerService serviceSubtaskAnswerService;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ServiceSubtaskAnswer serviceSubtaskAnswer) {
+        startPage();
+        List<ServiceSubtaskAnswer> list = serviceSubtaskAnswerService.selectServiceSubtaskAnswerList(serviceSubtaskAnswer);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭浠诲姟闂嵎闂閫夐」鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:export')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ServiceSubtaskAnswer serviceSubtaskAnswer) {
+        List<ServiceSubtaskAnswer> list = serviceSubtaskAnswerService.selectServiceSubtaskAnswerList(serviceSubtaskAnswer);
+        ExcelUtil<ServiceSubtaskAnswer> util = new ExcelUtil<ServiceSubtaskAnswer>(ServiceSubtaskAnswer.class);
+        util.exportExcel(response, list, "浠诲姟闂嵎闂閫夐」鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇浠诲姟闂嵎闂閫夐」璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:query')")
+    @GetMapping(value = "/getInfo/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(serviceSubtaskAnswerService.selectServiceSubtaskAnswerById(id));
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:add')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ServiceSubtaskAnswer serviceSubtaskAnswer) {
+        return toAjax(serviceSubtaskAnswerService.insertServiceSubtaskAnswer(serviceSubtaskAnswer));
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:edit')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody ServiceSubtaskAnswer serviceSubtaskAnswer) {
+        return toAjax(serviceSubtaskAnswerService.updateServiceSubtaskAnswer(serviceSubtaskAnswer));
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」
+     */
+    @PreAuthorize("@ss.hasPermi('system:answer:remove')")
+    @Log(title = "浠诲姟闂嵎闂閫夐」", businessType = BusinessType.DELETE)
+    @DeleteMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(serviceSubtaskAnswerService.deleteServiceSubtaskAnswerByIds(ids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
new file mode 100644
index 0000000..7690163
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -0,0 +1,92 @@
+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.ServiceSubtaskDetail;
+import com.smartor.service.IServiceSubtaskDetailService;
+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 smartor
+ * @date 2023-03-24
+ */
+@RestController
+@RequestMapping("/smartor/serviceSubtaskDetail")
+public class ServiceSubtaskDetailController extends BaseController {
+    @Autowired
+    private IServiceSubtaskDetailService ServiceSubtaskDetailService;
+
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:list')")
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
+        startPage();
+        List<ServiceSubtaskDetail> list = ServiceSubtaskDetailService.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:export')")
+    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ServiceSubtaskDetail serviceSubtaskDetail) {
+        List<ServiceSubtaskDetail> list = ServiceSubtaskDetailService.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+        ExcelUtil<ServiceSubtaskDetail> util = new ExcelUtil<ServiceSubtaskDetail>(ServiceSubtaskDetail.class);
+        util.exportExcel(response, list, "璇煶浠诲姟鍛煎彨鏄庣粏鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇璇煶浠诲姟鍛煎彨鏄庣粏璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:query')")
+    @GetMapping(value = "/{calldetailid}")
+    public AjaxResult getInfo(@PathVariable("calldetailid") String calldetailid) {
+        return success(ServiceSubtaskDetailService.selectServiceSubtaskDetailByCalldetailid(calldetailid));
+    }
+
+    /**
+     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:add')")
+    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
+        return toAjax(ServiceSubtaskDetailService.insertServiceSubtaskDetail(serviceSubtaskDetail));
+    }
+
+    /**
+     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:edit')")
+    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
+        return toAjax(ServiceSubtaskDetailService.updateServiceSubtaskDetail(serviceSubtaskDetail));
+    }
+
+    /**
+     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:remove')")
+    @Log(title = "璇煶浠诲姟鍛煎彨鏄庣粏", businessType = BusinessType.DELETE)
+    @GetMapping("/remove/{calldetailids}")
+    public AjaxResult remove(@PathVariable String[] calldetailids) {
+        return toAjax(ServiceSubtaskDetailService.deleteServiceSubtaskDetailByCalldetailids(calldetailids));
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTasksingledetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTasksingledetailController.java
deleted file mode 100644
index 7206675..0000000
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTasksingledetailController.java
+++ /dev/null
@@ -1,107 +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.SvyTasksingledetail;
-import com.smartor.service.ISvyTasksingledetailService;
-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-19
- */
-@RestController
-@RequestMapping("/smartor/svytasksingledetail")
-public class SvyTasksingledetailController extends BaseController
-{
-    @Autowired
-    private ISvyTasksingledetailService svyTasksingledetailService;
-
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(SvyTasksingledetail svyTasksingledetail)
-    {
-        startPage();
-        List<SvyTasksingledetail> list = svyTasksingledetailService.selectSvyTasksingledetailList(svyTasksingledetail);
-        return getDataTable(list);
-    }
-
-    /**
-     * 瀵煎嚭闂嵎缁撴灉璁板綍璇︽儏鍒楄〃
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:export')")
-    @Log(title = "闂嵎缁撴灉璁板綍璇︽儏", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, SvyTasksingledetail svyTasksingledetail)
-    {
-        List<SvyTasksingledetail> list = svyTasksingledetailService.selectSvyTasksingledetailList(svyTasksingledetail);
-        ExcelUtil<SvyTasksingledetail> util = new ExcelUtil<SvyTasksingledetail>(SvyTasksingledetail.class);
-        util.exportExcel(response, list, "闂嵎缁撴灉璁板綍璇︽儏鏁版嵁");
-    }
-
-    /**
-     * 鑾峰彇闂嵎缁撴灉璁板綍璇︽儏璇︾粏淇℃伅
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:query')")
-    @GetMapping(value = "/{calldetailid}")
-    public AjaxResult getInfo(@PathVariable("calldetailid") String calldetailid)
-    {
-        return success(svyTasksingledetailService.selectSvyTasksingledetailByCalldetailid(calldetailid));
-    }
-
-    /**
-     * 鏂板闂嵎缁撴灉璁板綍璇︽儏
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:add')")
-    @Log(title = "闂嵎缁撴灉璁板綍璇︽儏", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody SvyTasksingledetail svyTasksingledetail)
-    {
-        return toAjax(svyTasksingledetailService.insertSvyTasksingledetail(svyTasksingledetail));
-    }
-
-    /**
-     * 淇敼闂嵎缁撴灉璁板綍璇︽儏
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:edit')")
-    @Log(title = "闂嵎缁撴灉璁板綍璇︽儏", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody SvyTasksingledetail svyTasksingledetail)
-    {
-        return toAjax(svyTasksingledetailService.updateSvyTasksingledetail(svyTasksingledetail));
-    }
-
-    /**
-     * 鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏
-     */
-    @PreAuthorize("@ss.hasPermi('system:tasksingledetail:remove')")
-    @Log(title = "闂嵎缁撴灉璁板綍璇︽儏", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{calldetailids}")
-    public AjaxResult remove(@PathVariable String[] calldetailids)
-    {
-        return toAjax(svyTasksingledetailService.deleteSvyTasksingledetailByCalldetailids(calldetailids));
-    }
-//
-//    /**
-//     * 鎮h�呴棶棰樼粨鏋滆褰�
-//     */
-//    @ApiOperation("鎮h�呴棶棰樼粨鏋滆褰�")
-//    @PostMapping("/saveQuestionAnswer")
-//    public AjaxResult saveQuestionAnswer(@RequestBody IvrTaskcalldetailReq ivrTaskcalldetailReq) {
-//        return toAjax(ivrTaskcalldetailService.saveQuestionAnswer(ivrTaskcalldetailReq));
-//    }
-}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaScript.java b/smartor/src/main/java/com/smartor/domain/IvrLibaScript.java
index 36c60eb..f8fab37 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaScript.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaScript.java
@@ -50,6 +50,13 @@
     private String scriptDesc;
 
     /**
+     * 闂鍥剧墖璺緞
+     */
+    @ApiModelProperty("闂鍥剧墖璺緞")
+    @Excel(name = "闂鍥剧墖璺緞")
+    private String picturePath;
+
+    /**
      * 璇濇湳璇煶
      */
     @ApiModelProperty("璇濇湳璇煶")
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java b/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java
index f039c02..f1690cf 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java
@@ -141,6 +141,13 @@
     private Long isabnormal;
 
     /**
+     * 閫夐」鍥剧墖璺緞
+     */
+    @ApiModelProperty("閫夐」鍥剧墖璺緞")
+    @Excel(name = "閫夐」鍥剧墖璺緞")
+    private String picturePath;
+
+    /**
      * 棰勮闃�鍊间笂闄�
      */
     @ApiModelProperty("棰勮闃�鍊间笂闄�")
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
index d8c9dcd..bba299f 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
@@ -28,7 +28,7 @@
      * 涓婚敭
      */
     @ApiModelProperty(value = "涓婚敭")
-    private Long ID;
+    private Long id;
 
 //    /**
 //     * 鎸囨爣id
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
index b50caea..9c216e2 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
@@ -26,7 +26,7 @@
      * 涓婚敭ID
      */
     @ApiModelProperty(value = "涓婚敭")
-    private Long ID;
+    private Long id;
 
     /**
      * 妯℃澘璇濇湳缂栧彿
@@ -40,7 +40,7 @@
      */
     @Excel(name = "妯℃澘ID")
     @ApiModelProperty(value = "妯℃澘ID")
-    private Long templateID;
+    private Long templateid;
 
     /**
      * 璇濇湳ID
@@ -56,6 +56,13 @@
     private String scriptPoint;
 
     /**
+     * 闂绫诲瀷
+     */
+    @Excel(name = "闂绫诲瀷")
+    @ApiModelProperty(value = "闂绫诲瀷")
+    private String scriptType;
+
+    /**
      * 璇濇湳鍐呭
      */
     @Excel(name = "璇濇湳鍐呭")
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
index ce50290..3106441 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
@@ -26,7 +26,7 @@
      * 涓婚敭ID
      */
     @ApiModelProperty(value = "涓婚敭")
-    private Long ID;
+    private Long id;
 
     /**
      * 妯℃澘璇濇湳缂栧彿
@@ -40,13 +40,13 @@
      */
     @Excel(name = "妯℃澘ID")
     @ApiModelProperty(value = "妯℃澘ID")
-    private Long templateID;
+    private Long templateid;
 
     /**
      * 鍩虹璇濇湳ID
      */
     @ApiModelProperty(value = "鍩虹璇濇湳ID")
-    private Long scriptID;
+    private Long scriptid;
 
     /**
      * 闂鐐�
@@ -174,6 +174,12 @@
     private String delFlag;
 
     /**
+     * 闂绫诲瀷
+     */
+    @ApiModelProperty(value = "闂绫诲瀷")
+    private String scriptType;
+
+    /**
      * 涓婁紶鏍囪
      */
     @Excel(name = " 涓婁紶鏍囪 ")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskDetailReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskDetailReq.java
index 820bd48..9ea6eed 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskDetailReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskDetailReq.java
@@ -1,19 +1,13 @@
 package com.smartor.domain;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.core.domain.BaseEntity;
 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 java.util.Date;
 import java.util.List;
 
 /**
- * 闂鍥炵瓟鏄庣粏
+ * 鐢佃瘽闂鍥炵瓟鏄庣粏
  *
  * @author ls
  * @date 2023-06-05
@@ -28,10 +22,7 @@
     @ApiModelProperty(value = "鎮h�匢D")
     private String param2;
 
-    @ApiModelProperty(value = "闅忚闂鍥炵瓟鏄庣粏")
-    private List<IvrTaskcalldetail> ivrTaskcalldetailList;
-
-    @ApiModelProperty(value = "闂嵎闂鍥炵瓟鏄庣粏")
-    private List<SvyTasksingledetail> svyTasksingledetailList;
+    @ApiModelProperty(value = "鐢佃瘽闂鍥炵瓟鏄庣粏")
+    private List<ServiceSubtaskDetail> serviceSubtaskDetailList;
 
 }
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskAnswer.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskAnswer.java
new file mode 100644
index 0000000..b5db9c8
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskAnswer.java
@@ -0,0 +1,116 @@
+package com.smartor.domain;
+
+import java.util.Date;
+
+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;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」瀵硅薄 service_subtask_answer
+ *
+ * @author ruoyi
+ * @date 2024-07-18
+ */
+@ApiModel(value = "ServiceSubtaskAnswer", description = "浠诲姟闂嵎闂閫夐」瀵硅薄")
+@Data
+public class ServiceSubtaskAnswer extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷ID
+     */
+    @ApiModelProperty(value = "涓婚敭")
+    private Long id;
+
+    /**
+     * 浠诲姟ID
+     */
+    @ApiModelProperty(value = "浠诲姟ID")
+    private Long taskid;
+
+    /**
+     * 瀛愪换鍔D
+     */
+    @ApiModelProperty(value = "瀛愪换鍔D")
+    private Long singleid;
+
+    /**
+     * 棰樼洰ID
+     */
+    @ApiModelProperty(value = "棰樼洰ID")
+    private Long scriptid;
+
+    /**
+     * 棰樼洰绫诲瀷
+     */
+    @ApiModelProperty(value = "棰樼洰绫诲瀷")
+    private Long scriptType;
+
+    /**
+     * 寰楀垎锛�1銆�2銆�3锛屾垨A銆丅銆丆锛屾垨浼樸�佽壇銆佸強鏍硷級
+     */
+    @ApiModelProperty(value = "寰楀垎")
+    private String score;
+
+    /**
+     * 鍥炵瓟锛堝厑璁稿閫夛級
+     */
+    @ApiModelProperty(value = "鍥炵瓟")
+    private String answer;
+
+    /**
+     * 璇勮
+     */
+    @ApiModelProperty(value = "璇勮")
+    private String comment;
+
+    /**
+     * 闇�瑕佽窡杩涳紙鏄細1銆佸惁锛�0锛�
+     */
+    @ApiModelProperty(value = "闇�瑕佽窡杩�")
+    private String istrack;
+
+    /**
+     * 寮傚父棰勮锛堟槸锛�1銆佸惁锛�0锛�
+     */
+    @ApiModelProperty(value = "寮傚父棰勮")
+    private String isabnormal;
+
+    /**
+     * 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛�
+     */
+    private String delFlag;
+
+    /**
+     * 涓婁紶鏍囧織锛�0锛氭湭涓婁紶 1锛氬凡涓婁紶锛�
+     */
+    @ApiModelProperty(value = "涓婁紶鏍囧織")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 鐖禝D
+     */
+    @ApiModelProperty(value = "鐖禝D")
+    private String pid;
+
+    /**
+     * GUID
+     */
+    @ApiModelProperty(value = "GUID")
+    private String guid;
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrTaskcalldetail.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
similarity index 93%
rename from smartor/src/main/java/com/smartor/domain/IvrTaskcalldetail.java
rename to smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
index af49a75..3b4c2f4 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrTaskcalldetail.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java
@@ -18,15 +18,15 @@
  * @date 2023-03-24
  */
 @Data
-@ApiModel(value = "IvrTaskcalldetail", description = "闂鍥炵瓟鏄庣粏")
-public class IvrTaskcalldetail extends BaseEntity {
+@ApiModel(value = "ServiceSubtaskDetail", description = "闂鍥炵瓟鏄庣粏")
+public class ServiceSubtaskDetail extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "涓婚敭")
-    private String calldetailid;
+    private String id;
 
-    @ApiModelProperty(value = "tasksingleid")
-    private String callid;
+    @ApiModelProperty(value = "瀛愪换鍔D")
+    private Long subId;
 
     @ApiModelProperty(value = "鎷ㄥ彿uuid")
     private String uuid;
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibScript.java b/smartor/src/main/java/com/smartor/domain/SvyLibScript.java
index ac7e7f9..a43360f 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibScript.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScript.java
@@ -57,7 +57,7 @@
      */
     @Excel(name = " 棰樼洰鍥剧墖 ")
     @ApiModelProperty("棰樼洰鍥剧墖")
-    private String scriptPicture;
+    private String picturePath;
 
     /**
      * 鎺掑簭
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java b/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
index 3d83a2d..4fdb52b 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
@@ -51,6 +51,12 @@
     private String optioncode;
 
     /**
+     * 閫夐」鍥剧墖
+     */
+    @ApiModelProperty(value = "閫夐」鍥剧墖")
+    private String picturePath;
+
+    /**
      * 閫夐」鍐呭
      */
     @ApiModelProperty(value = "閫夐」鍐呭")
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
index 5d851e2..bd92505 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
@@ -82,7 +82,7 @@
      */
     @ApiModelProperty(value = "鐗堟湰")
     @Excel(name = " 鐗堟湰 ")
-    private BigDecimal version;
+    private String version;
 
     /**
      * 涓績搴撲唬鐮�
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTasksingledetail.java b/smartor/src/main/java/com/smartor/domain/SvyTasksingledetail.java
deleted file mode 100644
index 847e3c1..0000000
--- a/smartor/src/main/java/com/smartor/domain/SvyTasksingledetail.java
+++ /dev/null
@@ -1,576 +0,0 @@
-package com.smartor.domain;
-
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-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_tasksingledetail
- *
- * @author ruoyi
- * @date 2024-06-19
- */
-public class SvyTasksingledetail extends BaseEntity
-{
-    private static final long serialVersionUID = 1L;
-
-    /** 浠诲姟鐢佃瘽ID */
-    private String calldetailid;
-
-    /** tasksingleid */
-    @Excel(name = "tasksingleid")
-    private String callid;
-
-    /** 鎷ㄥ彿uuid */
-    @Excel(name = "鎷ㄥ彿uuid")
-    private String uuid;
-
-    /** 鐢佃瘽鍙风爜 */
-    @Excel(name = "鐢佃瘽鍙风爜")
-    private String phone;
-
-    /** 鏄剧ず鍙风爜 */
-    @Excel(name = "鏄剧ず鍙风爜")
-    private String displayno;
-
-    /** 鎿嶄綔浜�  */
-    @Excel(name = "鎿嶄綔浜� ")
-    private String operate;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long inbound;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long incoming;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long assigntime;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long starttime;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long answertime;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long silent;
-
-    /**    */
-    @Excel(name = "  ")
-    private String dtmfKey;
-
-    /**    */
-    @Excel(name = "  ")
-    private String musicpath;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long sentIndex;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long sentBegin;
-
-    /** 鍥炵瓟缁撴灉 */
-    @Excel(name = "鍥炵瓟缁撴灉")
-    private String asrtext;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long beginTime;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long endTime;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long sentEnd;
-
-    /**    */
-    @Excel(name = "  ")
-    private String recordpath;
-
-    /**    */
-    @Excel(name = "  ")
-    private String recordurl;
-
-    /**    */
-    @Excel(name = "  ")
-    private String templateid;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long templatequestionnum;
-
-    /**    */
-    @Excel(name = "  ")
-    private Long switchid;
-
-    /** 闂鏂囨湰   */
-    @Excel(name = "闂鏂囨湰  ")
-    private String questiontext;
-
-    /** 闂璇煶   */
-    @Excel(name = "闂璇煶  ")
-    private String questionvoice;
-
-    /** 绫诲埆 */
-    @Excel(name = "绫诲埆")
-    private String categoryname;
-
-    /** 鎸囨爣閫夐」 */
-    @Excel(name = "鎸囨爣閫夐」")
-    private String targetoptions;
-
-    /** 鎸囨爣鍊硷紙姝e垯鍖归厤鐨勯�夐」鍊硷級 */
-    @Excel(name = "鎸囨爣鍊�", readConverterExp = "姝�=鍒欏尮閰嶇殑閫夐」鍊�")
-    private String targetvalue;
-
-    /** 閫氳繃姝e垯瑙f瀽鐨勫�� */
-    @Excel(name = "閫氳繃姝e垯瑙f瀽鐨勫��")
-    private String matchedtext;
-
-    /**    */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date addtime;
-
-    /** 涓婁紶鏍囪 */
-    @Excel(name = "涓婁紶鏍囪")
-    private Long isupload;
-
-    /** 涓婁紶鏃堕棿 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "涓婁紶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date uploadTime;
-
-    /** 鏈烘瀯ID */
-    @Excel(name = "鏈烘瀯ID")
-    private String orgid;
-
-    /** 鍒犻櫎鏍囪 */
-    private String delFlag;
-
-    /** 鐖禝D */
-    @Excel(name = "鐖禝D")
-    private Long pid;
-
-    /** GUID */
-    @Excel(name = "GUID")
-    private String guid;
-
-    /** 闂绫诲瀷 */
-    @Excel(name = "闂绫诲瀷")
-    private String valueType;
-
-    public void setCalldetailid(String calldetailid)
-    {
-        this.calldetailid = calldetailid;
-    }
-
-    public String getCalldetailid()
-    {
-        return calldetailid;
-    }
-    public void setCallid(String callid)
-    {
-        this.callid = callid;
-    }
-
-    public String getCallid()
-    {
-        return callid;
-    }
-    public void setUuid(String uuid)
-    {
-        this.uuid = uuid;
-    }
-
-    public String getUuid()
-    {
-        return uuid;
-    }
-    public void setPhone(String phone)
-    {
-        this.phone = phone;
-    }
-
-    public String getPhone()
-    {
-        return phone;
-    }
-    public void setDisplayno(String displayno)
-    {
-        this.displayno = displayno;
-    }
-
-    public String getDisplayno()
-    {
-        return displayno;
-    }
-    public void setOperate(String operate)
-    {
-        this.operate = operate;
-    }
-
-    public String getOperate()
-    {
-        return operate;
-    }
-    public void setInbound(Long inbound)
-    {
-        this.inbound = inbound;
-    }
-
-    public Long getInbound()
-    {
-        return inbound;
-    }
-    public void setIncoming(Long incoming)
-    {
-        this.incoming = incoming;
-    }
-
-    public Long getIncoming()
-    {
-        return incoming;
-    }
-    public void setAssigntime(Long assigntime)
-    {
-        this.assigntime = assigntime;
-    }
-
-    public Long getAssigntime()
-    {
-        return assigntime;
-    }
-    public void setStarttime(Long starttime)
-    {
-        this.starttime = starttime;
-    }
-
-    public Long getStarttime()
-    {
-        return starttime;
-    }
-    public void setAnswertime(Long answertime)
-    {
-        this.answertime = answertime;
-    }
-
-    public Long getAnswertime()
-    {
-        return answertime;
-    }
-    public void setSilent(Long silent)
-    {
-        this.silent = silent;
-    }
-
-    public Long getSilent()
-    {
-        return silent;
-    }
-    public void setDtmfKey(String dtmfKey)
-    {
-        this.dtmfKey = dtmfKey;
-    }
-
-    public String getDtmfKey()
-    {
-        return dtmfKey;
-    }
-    public void setMusicpath(String musicpath)
-    {
-        this.musicpath = musicpath;
-    }
-
-    public String getMusicpath()
-    {
-        return musicpath;
-    }
-    public void setSentIndex(Long sentIndex)
-    {
-        this.sentIndex = sentIndex;
-    }
-
-    public Long getSentIndex()
-    {
-        return sentIndex;
-    }
-    public void setSentBegin(Long sentBegin)
-    {
-        this.sentBegin = sentBegin;
-    }
-
-    public Long getSentBegin()
-    {
-        return sentBegin;
-    }
-    public void setAsrtext(String asrtext)
-    {
-        this.asrtext = asrtext;
-    }
-
-    public String getAsrtext()
-    {
-        return asrtext;
-    }
-    public void setBeginTime(Long beginTime)
-    {
-        this.beginTime = beginTime;
-    }
-
-    public Long getBeginTime()
-    {
-        return beginTime;
-    }
-    public void setEndTime(Long endTime)
-    {
-        this.endTime = endTime;
-    }
-
-    public Long getEndTime()
-    {
-        return endTime;
-    }
-    public void setSentEnd(Long sentEnd)
-    {
-        this.sentEnd = sentEnd;
-    }
-
-    public Long getSentEnd()
-    {
-        return sentEnd;
-    }
-    public void setRecordpath(String recordpath)
-    {
-        this.recordpath = recordpath;
-    }
-
-    public String getRecordpath()
-    {
-        return recordpath;
-    }
-    public void setRecordurl(String recordurl)
-    {
-        this.recordurl = recordurl;
-    }
-
-    public String getRecordurl()
-    {
-        return recordurl;
-    }
-    public void setTemplateid(String templateid)
-    {
-        this.templateid = templateid;
-    }
-
-    public String getTemplateid()
-    {
-        return templateid;
-    }
-    public void setTemplatequestionnum(Long templatequestionnum)
-    {
-        this.templatequestionnum = templatequestionnum;
-    }
-
-    public Long getTemplatequestionnum()
-    {
-        return templatequestionnum;
-    }
-    public void setSwitchid(Long switchid)
-    {
-        this.switchid = switchid;
-    }
-
-    public Long getSwitchid()
-    {
-        return switchid;
-    }
-    public void setQuestiontext(String questiontext)
-    {
-        this.questiontext = questiontext;
-    }
-
-    public String getQuestiontext()
-    {
-        return questiontext;
-    }
-    public void setQuestionvoice(String questionvoice)
-    {
-        this.questionvoice = questionvoice;
-    }
-
-    public String getQuestionvoice()
-    {
-        return questionvoice;
-    }
-    public void setCategoryname(String categoryname)
-    {
-        this.categoryname = categoryname;
-    }
-
-    public String getCategoryname()
-    {
-        return categoryname;
-    }
-    public void setTargetoptions(String targetoptions)
-    {
-        this.targetoptions = targetoptions;
-    }
-
-    public String getTargetoptions()
-    {
-        return targetoptions;
-    }
-    public void setTargetvalue(String targetvalue)
-    {
-        this.targetvalue = targetvalue;
-    }
-
-    public String getTargetvalue()
-    {
-        return targetvalue;
-    }
-    public void setMatchedtext(String matchedtext)
-    {
-        this.matchedtext = matchedtext;
-    }
-
-    public String getMatchedtext()
-    {
-        return matchedtext;
-    }
-    public void setAddtime(Date addtime)
-    {
-        this.addtime = addtime;
-    }
-
-    public Date getAddtime()
-    {
-        return addtime;
-    }
-    public void setIsupload(Long isupload)
-    {
-        this.isupload = isupload;
-    }
-
-    public Long getIsupload()
-    {
-        return isupload;
-    }
-    public void setUploadTime(Date uploadTime)
-    {
-        this.uploadTime = uploadTime;
-    }
-
-    public Date getUploadTime()
-    {
-        return uploadTime;
-    }
-    public void setOrgid(String orgid)
-    {
-        this.orgid = orgid;
-    }
-
-    public String getOrgid()
-    {
-        return orgid;
-    }
-    public void setDelFlag(String delFlag)
-    {
-        this.delFlag = delFlag;
-    }
-
-    public String getDelFlag()
-    {
-        return delFlag;
-    }
-    public void setPid(Long pid)
-    {
-        this.pid = pid;
-    }
-
-    public Long getPid()
-    {
-        return pid;
-    }
-    public void setGuid(String guid)
-    {
-        this.guid = guid;
-    }
-
-    public String getGuid()
-    {
-        return guid;
-    }
-    public void setValueType(String valueType)
-    {
-        this.valueType = valueType;
-    }
-
-    public String getValueType()
-    {
-        return valueType;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("calldetailid", getCalldetailid())
-            .append("callid", getCallid())
-            .append("uuid", getUuid())
-            .append("phone", getPhone())
-            .append("displayno", getDisplayno())
-            .append("operate", getOperate())
-            .append("inbound", getInbound())
-            .append("incoming", getIncoming())
-            .append("assigntime", getAssigntime())
-            .append("starttime", getStarttime())
-            .append("answertime", getAnswertime())
-            .append("silent", getSilent())
-            .append("dtmfKey", getDtmfKey())
-            .append("musicpath", getMusicpath())
-            .append("sentIndex", getSentIndex())
-            .append("sentBegin", getSentBegin())
-            .append("asrtext", getAsrtext())
-            .append("beginTime", getBeginTime())
-            .append("endTime", getEndTime())
-            .append("sentEnd", getSentEnd())
-            .append("recordpath", getRecordpath())
-            .append("recordurl", getRecordurl())
-            .append("templateid", getTemplateid())
-            .append("templatequestionnum", getTemplatequestionnum())
-            .append("switchid", getSwitchid())
-            .append("questiontext", getQuestiontext())
-            .append("questionvoice", getQuestionvoice())
-            .append("categoryname", getCategoryname())
-            .append("targetoptions", getTargetoptions())
-            .append("targetvalue", getTargetvalue())
-            .append("matchedtext", getMatchedtext())
-            .append("addtime", getAddtime())
-            .append("isupload", getIsupload())
-            .append("uploadTime", getUploadTime())
-            .append("orgid", getOrgid())
-            .append("createTime", getCreateTime())
-            .append("delFlag", getDelFlag())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("createBy", getCreateBy())
-            .append("pid", getPid())
-            .append("guid", getGuid())
-            .append("valueType", getValueType())
-            .toString();
-    }
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java
index 9068a42..2af6fcf 100644
--- a/smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java
@@ -7,24 +7,24 @@
 
 /**
  * 妯$増闂璇濇湳搴揗apper鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2023-12-23
  */
 @Mapper
-public interface IvrLibaTemplateScriptMapper 
+public interface IvrLibaTemplateScriptMapper
 {
     /**
      * 鏌ヨ妯$増闂璇濇湳搴�
-     * 
+     *
      * @param ID 妯$増闂璇濇湳搴撲富閿�
      * @return 妯$増闂璇濇湳搴�
      */
-    public IvrLibaTemplateScript selectIvrLibaTemplateScriptByID(Long ID);
+    public IvrLibaTemplateScript selectIvrLibaTemplateScriptByID(Long id);
 
     /**
      * 鏌ヨ妯$増闂璇濇湳搴撳垪琛�
-     * 
+     *
      * @param ivrLibaTemplateScript 妯$増闂璇濇湳搴�
      * @return 妯$増闂璇濇湳搴撻泦鍚�
      */
@@ -32,7 +32,7 @@
 
     /**
      * 鏂板妯$増闂璇濇湳搴�
-     * 
+     *
      * @param ivrLibaTemplateScript 妯$増闂璇濇湳搴�
      * @return 缁撴灉
      */
@@ -40,7 +40,7 @@
 
     /**
      * 淇敼妯$増闂璇濇湳搴�
-     * 
+     *
      * @param ivrLibaTemplateScript 妯$増闂璇濇湳搴�
      * @return 缁撴灉
      */
@@ -48,15 +48,15 @@
 
     /**
      * 鍒犻櫎妯$増闂璇濇湳搴�
-     * 
+     *
      * @param ID 妯$増闂璇濇湳搴撲富閿�
      * @return 缁撴灉
      */
-    public int deleteIvrLibaTemplateScriptByID(Long ID);
+    public int deleteIvrLibaTemplateScriptByID(Long id);
 
     /**
      * 鎵归噺鍒犻櫎妯$増闂璇濇湳搴�
-     * 
+     *
      * @param IDs 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
      * @return 缁撴灉
      */
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrTaskcalldetailMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrTaskcalldetailMapper.java
deleted file mode 100644
index 5b06da0..0000000
--- a/smartor/src/main/java/com/smartor/mapper/IvrTaskcalldetailMapper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.smartor.mapper;
-
-import java.util.List;
-import com.smartor.domain.IvrTaskcalldetail;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 璇煶浠诲姟鍛煎彨鏄庣粏Mapper鎺ュ彛
- *
- * @author smartor
- * @date 2023-03-24
- */
-@Mapper
-public interface IvrTaskcalldetailMapper
-{
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    public IvrTaskcalldetail selectIvrTaskcalldetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏闆嗗悎
-     */
-    public List<IvrTaskcalldetail> selectIvrTaskcalldetailList(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    public int insertIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    public int updateIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteIvrTaskcalldetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteIvrTaskcalldetailByCalldetailids(String[] calldetailids);
-}
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskAnswerMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskAnswerMapper.java
new file mode 100644
index 0000000..8c5b853
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskAnswerMapper.java
@@ -0,0 +1,63 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.ServiceSubtaskAnswer;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-07-18
+ */
+@Mapper
+public interface ServiceSubtaskAnswerMapper {
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    public ServiceSubtaskAnswer selectServiceSubtaskAnswerById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」闆嗗悎
+     */
+    public List<ServiceSubtaskAnswer> selectServiceSubtaskAnswerList(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskAnswerById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskAnswerByIds(Long[] ids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
new file mode 100644
index 0000000..f54d400
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
@@ -0,0 +1,64 @@
+package com.smartor.mapper;
+
+import com.smartor.domain.ServiceSubtaskDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 璇煶浠诲姟鍛煎彨鏄庣粏Mapper鎺ュ彛
+ *
+ * @author smartor
+ * @date 2023-03-24
+ */
+@Mapper
+public interface ServiceSubtaskDetailMapper
+{
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    public ServiceSubtaskDetail selectServiceSubtaskDetailByCalldetailid(String calldetailid);
+
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏闆嗗悎
+     */
+    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskDetailByCalldetailid(String calldetailid);
+
+    /**
+     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskDetailByCalldetailids(String[] calldetailids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SvyTasksingledetailMapper.java b/smartor/src/main/java/com/smartor/mapper/SvyTasksingledetailMapper.java
deleted file mode 100644
index 3100941..0000000
--- a/smartor/src/main/java/com/smartor/mapper/SvyTasksingledetailMapper.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.smartor.mapper;
-
-import com.smartor.domain.SvyTasksingledetail;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * 闂嵎缁撴灉璁板綍璇︽儏Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2024-06-19
- */
-@Mapper
-public interface SvyTasksingledetailMapper {
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 闂嵎缁撴灉璁板綍璇︽儏
-     */
-    public SvyTasksingledetail selectSvyTasksingledetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏鍒楄〃
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 闂嵎缁撴灉璁板綍璇︽儏闆嗗悎
-     */
-    public List<SvyTasksingledetail> selectSvyTasksingledetailList(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 鏂板闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    public int insertSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 淇敼闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    public int updateSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyTasksingledetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyTasksingledetailByCalldetailids(String[] calldetailids);
-}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java b/smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java
index 05e04fc..48d721b 100644
--- a/smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java
+++ b/smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java
@@ -1,6 +1,5 @@
 package com.smartor.service;
 
-import com.smartor.domain.IvrLibaTemplateVO;
 import com.smartor.domain.IvrTaskTemplate;
 import com.smartor.domain.IvrTaskTemplateVO;
 
diff --git a/smartor/src/main/java/com/smartor/service/IIvrTaskcalldetailService.java b/smartor/src/main/java/com/smartor/service/IIvrTaskcalldetailService.java
deleted file mode 100644
index bc0f41b..0000000
--- a/smartor/src/main/java/com/smartor/service/IIvrTaskcalldetailService.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.smartor.service;
-
-import com.smartor.domain.IvrTaskcalldetail;
-
-import java.util.List;
-
-/**
- * 璇煶浠诲姟鍛煎彨鏄庣粏Service鎺ュ彛
- *
- * @author smartor
- * @date 2023-03-24
- */
-public interface IIvrTaskcalldetailService {
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    public IvrTaskcalldetail selectIvrTaskcalldetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏闆嗗悎
-     */
-    public List<IvrTaskcalldetail> selectIvrTaskcalldetailList(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    public int insertIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    public int updateIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail);
-
-    /**
-     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteIvrTaskcalldetailByCalldetailids(String[] calldetailids);
-
-    /**
-     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏淇℃伅
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteIvrTaskcalldetailByCalldetailid(String calldetailid);
-}
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java
new file mode 100644
index 0000000..a2e78ef
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java
@@ -0,0 +1,62 @@
+package com.smartor.service;
+
+import com.smartor.domain.ServiceSubtaskAnswer;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2024-07-18
+ */
+public interface IServiceSubtaskAnswerService
+{
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    public ServiceSubtaskAnswer selectServiceSubtaskAnswerById(Long id);
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」闆嗗悎
+     */
+    public List<ServiceSubtaskAnswer> selectServiceSubtaskAnswerList(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int insertServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    public int updateServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎闂閫夐」涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskAnswerByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」淇℃伅
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskAnswerById(Long id);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
new file mode 100644
index 0000000..afc0e19
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import com.smartor.domain.ServiceSubtaskDetail;
+
+import java.util.List;
+
+/**
+ * 璇煶浠诲姟鍛煎彨鏄庣粏Service鎺ュ彛
+ *
+ * @author smartor
+ * @date 2023-03-24
+ */
+public interface IServiceSubtaskDetailService {
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    public ServiceSubtaskDetail selectServiceSubtaskDetailByCalldetailid(String calldetailid);
+
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏闆嗗悎
+     */
+    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList( ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
+
+    /**
+     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param subtaskDetails 闇�瑕佸垹闄ょ殑璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskDetailByCalldetailids(String[] subtaskDetails);
+
+    /**
+     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏淇℃伅
+     *
+     * @param subtaskDetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteServiceSubtaskDetailByCalldetailid(String subtaskDetailid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISvyTasksingledetailService.java b/smartor/src/main/java/com/smartor/service/ISvyTasksingledetailService.java
deleted file mode 100644
index 735dbcd..0000000
--- a/smartor/src/main/java/com/smartor/service/ISvyTasksingledetailService.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.smartor.service;
-
-import com.smartor.domain.SvyTasksingledetail;
-
-import java.util.List;
-
-/**
- * 闂嵎缁撴灉璁板綍璇︽儏Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2024-06-19
- */
-public interface ISvyTasksingledetailService
-{
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 闂嵎缁撴灉璁板綍璇︽儏
-     */
-    public SvyTasksingledetail selectSvyTasksingledetailByCalldetailid(String calldetailid);
-
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏鍒楄〃
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 闂嵎缁撴灉璁板綍璇︽儏闆嗗悎
-     */
-    public List<SvyTasksingledetail> selectSvyTasksingledetailList(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 鏂板闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    public int insertSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 淇敼闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    public int updateSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail);
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑闂嵎缁撴灉璁板綍璇︽儏涓婚敭闆嗗悎
-     * @return 缁撴灉
-     */
-    public int deleteSvyTasksingledetailByCalldetailids(String[] calldetailids);
-
-    /**
-     * 鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏淇℃伅
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 缁撴灉
-     */
-    public int deleteSvyTasksingledetailByCalldetailid(String calldetailid);
-}
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 1fa2142..0db1933 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
@@ -128,26 +128,26 @@
             //鏂板
             ivrLibaTemplate.setCreateTime(new Date());
             ivrLibaTemplateMapper.insertIvrLibaTemplate(ivrLibaTemplate);
-            i = ivrLibaTemplate.getID().intValue();
+            i = ivrLibaTemplate.getId().intValue();
         } else if (ivrLibaTemplateVO.getIsoperation() != null && ivrLibaTemplateVO.getIsoperation() == 2) {
             //淇敼
             ivrLibaTemplate.setUpdateTime(new Date());
             ivrLibaTemplateMapper.updateIvrLibaTemplate(ivrLibaTemplate);
-            i = ivrLibaTemplate.getID().intValue();
+            i = ivrLibaTemplate.getId().intValue();
         }
-        log.info("鏂板鎴栦慨鏀规ā鏉胯鎯呯殑id涓猴細{}", ivrLibaTemplate.getID());
+        log.info("鏂板鎴栦慨鏀规ā鏉胯鎯呯殑id涓猴細{}", ivrLibaTemplate.getId());
 
         //瀵规ā鏉挎爣绛捐繘琛屽鐞�
         if (CollectionUtils.isNotEmpty(ivrLibaTemplateVO.getIvrLibaTemplateTagList())) {
             for (IvrLibaTemplateTag ivrLibaTemplateTag : ivrLibaTemplateVO.getIvrLibaTemplateTagList()) {
                 if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 1) {
                     //鏂板
-                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
+                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getId());
                     ivrLibaTemplateTag.setCreateTime(new Date());
                     ivrLibaTemplateTagMapper.insertIvrLibaTemplateTag(ivrLibaTemplateTag);
                 } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 2) {
                     //淇敼
-                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getID());
+                    ivrLibaTemplateTag.setTemplateid(ivrLibaTemplate.getId());
                     ivrLibaTemplateTag.setUploadTime(new Date());
                     ivrLibaTemplateTagMapper.updateIvrLibaTemplateTag(ivrLibaTemplateTag);
                 } else if (ivrLibaTemplateTag.getIsoperation() != null && ivrLibaTemplateTag.getIsoperation() == 3) {
@@ -167,10 +167,10 @@
             for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList()) {
                 if (ivrLibaTemplateScriptVO.getIsoperation() != null) {
                     IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateScriptVO.getIsoperation());
-                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID(),ivrLibaTemplateScriptVO.getIsoperation());
+                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(),ivrLibaTemplateScriptVO.getIsoperation());
                 } else {
                     IvrLibaTemplateScript ivrLibaTemplateScript = scriptHandle(ivrLibaTemplate, ivrLibaTemplateScriptVO, ivrLibaTemplateVO.getIsoperation());
-                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID(),ivrLibaTemplateVO.getIsoperation());
+                    dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(),ivrLibaTemplateVO.getIsoperation());
                 }
             }
         }
@@ -179,7 +179,7 @@
         for (TempDetpRelevance tempDetpRelevance : ivrLibaTemplateVO.getTempDetpRelevances()) {
             if (tempDetpRelevance.getId() == null) {
                 //鏂板
-                tempDetpRelevance.setTempid(ivrLibaTemplate.getID());
+                tempDetpRelevance.setTempid(ivrLibaTemplate.getId());
                 tempDetpRelevance.setType(2L);
                 tempDetpRelevance.setCreateTime(new Date());
                 tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance);
@@ -196,27 +196,27 @@
         IvrLibaTemplateScript ivrLibaTemplateScript = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScriptVO, IvrLibaTemplateScript.class);
         if (isoperation == 1) {
             //鏂板
-            ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
+            ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId());
             ivrLibaTemplateScript.setCreateTime(new Date());
             ivrLibaTemplateScriptMapper.insertIvrLibaTemplateScript(ivrLibaTemplateScript);
             //瀵归�夐」鐩繘琛屽鐞�
-            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID(),isoperation);
+            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(),isoperation);
 
         } else if (isoperation == 2) {
             //淇敼
-            ivrLibaTemplateScript.setTemplateID(ivrLibaTemplate.getID());
+            ivrLibaTemplateScript.setTemplateid(ivrLibaTemplate.getId());
             ivrLibaTemplateScript.setUpdateTime(new Date());
             ivrLibaTemplateScriptMapper.updateIvrLibaTemplateScript(ivrLibaTemplateScript);
             //瀵归�夐」鐩繘琛屽鐞�
-            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getID(), isoperation);
+            dealOption(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList(), ivrLibaTemplateScript, ivrLibaTemplate.getId(), isoperation);
 
         } else if (isoperation == 3) {
             //鍒犻櫎
-            if (ivrLibaTemplateScriptVO.getID() == null) {
+            if (ivrLibaTemplateScriptVO.getId() == null) {
                 log.info("鍒犻櫎澶辫触,妯℃澘璇濇湳id涓虹┖");
             } else {
                 ivrLibaTemplateScriptVO.setUpdateTime(new Date());
-                ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getID());
+                ivrLibaTemplateScriptMapper.deleteIvrLibaTemplateScriptByID(ivrLibaTemplateScriptVO.getId());
             }
         }
         return ivrLibaTemplateScript;
@@ -243,7 +243,7 @@
                 if (isoperation == 1) {
                     //鏂板
                     ivrLibaTemplateTargetoption.setTemplateID(tmpID);
-                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
+                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId());
                     if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs()))
                         ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs()));
                     if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs()))
@@ -252,7 +252,7 @@
                 } else if (isoperation == 2) {
                     //淇敼
                     ivrLibaTemplateTargetoption.setTemplateID(tmpID);
-                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getID());
+                    ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScript.getId());
                     if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getDynamiccruxs()))
                         ivrLibaTemplateTargetoption.setDynamiccruxsJson(JSON.toJSONString(ivrLibaTemplateTargetoption.getDynamiccruxs()));
                     if (CollectionUtils.isNotEmpty(ivrLibaTemplateTargetoption.getNodynamiccruxs()))
@@ -288,20 +288,20 @@
 
         //鑾峰彇tag淇℃伅
         IvrLibaTemplateTag ivrLibaTemplateTag = new IvrLibaTemplateTag();
-        ivrLibaTemplateTag.setTemplateid(ivrLibaTemplates.get(0).getID());
+        ivrLibaTemplateTag.setTemplateid(ivrLibaTemplates.get(0).getId());
         List<IvrLibaTemplateTag> ivrLibaTemplateTags = ivrLibaTemplateTagMapper.selectIvrLibaTemplateTagList(ivrLibaTemplateTag);
 
         //鏌ヨ璇濇湳
         IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
-        ivrLibaTemplateScript.setTemplateID(ivrLibaTemplates.get(0).getID());
+        ivrLibaTemplateScript.setTemplateid(ivrLibaTemplates.get(0).getId());
         List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
         List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class);
 
         //閫氳繃璇濇湳ID鑾峰彇閫夐」
         for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) {
-            log.info("ivrLibaTemplateScriptVO鐨勪富閿甶d涓猴細{}", ivrLibaTemplateScriptVO.getID());
+            log.info("ivrLibaTemplateScriptVO鐨勪富閿甶d涓猴細{}", ivrLibaTemplateScriptVO.getId());
             IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption();
-            ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getID());
+            ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId());
             List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption);
             for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption1 : ivrLibaTemplateTargetoptions) {
                 ObjectMapper mapper = new ObjectMapper();
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrTaskcalldetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrTaskcalldetailServiceImpl.java
deleted file mode 100644
index fda900c..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/IvrTaskcalldetailServiceImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.smartor.service.impl;
-
-import com.ruoyi.common.utils.DateUtils;
-import com.smartor.domain.IvrTaskcalldetail;
-import com.smartor.mapper.IvrTaskcalldetailMapper;
-import com.smartor.mapper.ServiceSubtaskMapper;
-import com.smartor.service.IIvrTaskcalldetailService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 璇煶浠诲姟鍛煎彨鏄庣粏Service涓氬姟灞傚鐞�
- *
- * @author smartor
- * @date 2023-03-24
- */
-@Slf4j
-@Service
-public class IvrTaskcalldetailServiceImpl implements IIvrTaskcalldetailService {
-    @Autowired
-    private IvrTaskcalldetailMapper ivrTaskcalldetailMapper;
-
-    @Autowired
-    private ServiceSubtaskMapper ivrTaskSingleMapper;
-
-
-
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    @Override
-    public IvrTaskcalldetail selectIvrTaskcalldetailByCalldetailid(String calldetailid) {
-        return ivrTaskcalldetailMapper.selectIvrTaskcalldetailByCalldetailid(calldetailid);
-    }
-
-    /**
-     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
-     */
-    @Override
-    public List<IvrTaskcalldetail> selectIvrTaskcalldetailList(IvrTaskcalldetail ivrTaskcalldetail) {
-        return ivrTaskcalldetailMapper.selectIvrTaskcalldetailList(ivrTaskcalldetail);
-    }
-
-    /**
-     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail) {
-        ivrTaskcalldetail.setCreateTime(DateUtils.getNowDate());
-        return ivrTaskcalldetailMapper.insertIvrTaskcalldetail(ivrTaskcalldetail);
-    }
-
-    /**
-     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param ivrTaskcalldetail 璇煶浠诲姟鍛煎彨鏄庣粏
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateIvrTaskcalldetail(IvrTaskcalldetail ivrTaskcalldetail) {
-        ivrTaskcalldetail.setUpdateTime(DateUtils.getNowDate());
-        return ivrTaskcalldetailMapper.updateIvrTaskcalldetail(ivrTaskcalldetail);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteIvrTaskcalldetailByCalldetailids(String[] calldetailids) {
-        return ivrTaskcalldetailMapper.deleteIvrTaskcalldetailByCalldetailids(calldetailids);
-    }
-
-    /**
-     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏淇℃伅
-     *
-     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteIvrTaskcalldetailByCalldetailid(String calldetailid) {
-        return ivrTaskcalldetailMapper.deleteIvrTaskcalldetailByCalldetailid(calldetailid);
-    }
-
-}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
new file mode 100644
index 0000000..cc6b26f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -0,0 +1,97 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.ServiceSubtaskAnswer;
+import com.smartor.mapper.ServiceSubtaskAnswerMapper;
+import com.smartor.service.IServiceSubtaskAnswerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2024-07-18
+ */
+@Service
+public class ServiceSubtaskAnswerServiceImpl implements IServiceSubtaskAnswerService
+{
+    @Autowired
+    private ServiceSubtaskAnswerMapper serviceSubtaskAnswerMapper;
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    @Override
+    public ServiceSubtaskAnswer selectServiceSubtaskAnswerById(Long id)
+    {
+        return serviceSubtaskAnswerMapper.selectServiceSubtaskAnswerById(id);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 浠诲姟闂嵎闂閫夐」
+     */
+    @Override
+    public List<ServiceSubtaskAnswer> selectServiceSubtaskAnswerList(ServiceSubtaskAnswer serviceSubtaskAnswer)
+    {
+        return serviceSubtaskAnswerMapper.selectServiceSubtaskAnswerList(serviceSubtaskAnswer);
+    }
+
+    /**
+     * 鏂板浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer)
+    {
+        serviceSubtaskAnswer.setCreateTime(DateUtils.getNowDate());
+        return serviceSubtaskAnswerMapper.insertServiceSubtaskAnswer(serviceSubtaskAnswer);
+    }
+
+    /**
+     * 淇敼浠诲姟闂嵎闂閫夐」
+     *
+     * @param serviceSubtaskAnswer 浠诲姟闂嵎闂閫夐」
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer)
+    {
+        serviceSubtaskAnswer.setUpdateTime(DateUtils.getNowDate());
+        return serviceSubtaskAnswerMapper.updateServiceSubtaskAnswer(serviceSubtaskAnswer);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟闂嵎闂閫夐」
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteServiceSubtaskAnswerByIds(Long[] ids)
+    {
+        return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎浠诲姟闂嵎闂閫夐」淇℃伅
+     *
+     * @param id 浠诲姟闂嵎闂閫夐」涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteServiceSubtaskAnswerById(Long id)
+    {
+        return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerById(id);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
new file mode 100644
index 0000000..6ed1229
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -0,0 +1,100 @@
+package com.smartor.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.smartor.domain.ServiceSubtaskDetail;
+import com.smartor.domain.ServiceSubtaskDetail;
+import com.smartor.mapper.ServiceSubtaskDetailMapper;
+import com.smartor.mapper.ServiceSubtaskMapper;
+import com.smartor.service.IServiceSubtaskDetailService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 璇煶浠诲姟鍛煎彨鏄庣粏Service涓氬姟灞傚鐞�
+ *
+ * @author smartor
+ * @date 2023-03-24
+ */
+@Slf4j
+@Service
+public class ServiceSubtaskDetailServiceImpl implements IServiceSubtaskDetailService {
+    @Autowired
+    private ServiceSubtaskDetailMapper ServiceSubtaskDetailMapper;
+
+    @Autowired
+    private ServiceSubtaskMapper ivrTaskSingleMapper;
+
+
+
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    @Override
+    public ServiceSubtaskDetail selectServiceSubtaskDetailByCalldetailid(String calldetailid) {
+        return ServiceSubtaskDetailMapper.selectServiceSubtaskDetailByCalldetailid(calldetailid);
+    }
+
+    /**
+     * 鏌ヨ璇煶浠诲姟鍛煎彨鏄庣粏鍒楄〃
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 璇煶浠诲姟鍛煎彨鏄庣粏
+     */
+    @Override
+    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail) {
+        return ServiceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
+    }
+
+    /**
+     * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail) {
+        serviceSubtaskDetail.setCreateTime(DateUtils.getNowDate());
+        return ServiceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
+    }
+
+    /**
+     * 淇敼璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param serviceSubtaskDetail 璇煶浠诲姟鍛煎彨鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail) {
+        serviceSubtaskDetail.setUpdateTime(DateUtils.getNowDate());
+        return ServiceSubtaskDetailMapper.updateServiceSubtaskDetail(serviceSubtaskDetail);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏
+     *
+     * @param calldetailids 闇�瑕佸垹闄ょ殑璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteServiceSubtaskDetailByCalldetailids(String[] calldetailids) {
+        return ServiceSubtaskDetailMapper.deleteServiceSubtaskDetailByCalldetailids(calldetailids);
+    }
+
+    /**
+     * 鍒犻櫎璇煶浠诲姟鍛煎彨鏄庣粏淇℃伅
+     *
+     * @param calldetailid 璇煶浠诲姟鍛煎彨鏄庣粏涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteServiceSubtaskDetailByCalldetailid(String calldetailid) {
+        return ServiceSubtaskDetailMapper.deleteServiceSubtaskDetailByCalldetailid(calldetailid);
+    }
+
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 7761bd3..dc3c9ec 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -42,18 +42,13 @@
     private ServiceSubtaskMapper serviceSubtaskMapper;
 
     @Autowired
-    private IvrTaskcalldetailMapper ivrTaskcalldetailMapper;
-    @Autowired
-    private SvyTasksingledetailMapper svyTasksingledetailMapper;
+    private ServiceSubtaskDetailMapper ivrTaskcalldetailMapper;
 
     @Autowired
     private IServiceTaskService serviceTaskService;
 
     @Autowired
     private IvrTaskTemplateTargetoptionMapper serviceTaskScriptTargetoptionMapper;
-
-    @Autowired
-    private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
 
     @Autowired
     private IvrTaskVisitResultMapper serviceTaskVisitResultMapper;
@@ -771,28 +766,18 @@
         ServiceSubtask ivrTaskSingle = new ServiceSubtask();
         ivrTaskSingle.setTaskid(tid);
         ivrTaskSingle.setPatid(pid);
-        List<ServiceSubtask> ivrTaskSingles = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle);
-        if (CollectionUtils.isEmpty(ivrTaskSingles) || ivrTaskSingles.size() == 0) {
-            log.error("鎶ラ敊浜嗭紝ivrTaskSingles鏁版嵁涓虹┖浜嗭細{}", ivrTaskSingle);
+        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle);
+        if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
+            log.error("鎶ラ敊浜嗭紝selectServiceSubtaskList鏁版嵁涓虹┖浜嗭細{}", ivrTaskSingle);
             return 0;
         }
         int i = 0;
-        if (CollectionUtils.isNotEmpty(serviceSubTaskDetailReq.getIvrTaskcalldetailList())) {
-            //闅忚
-            for (IvrTaskcalldetail ivrTaskcalldetail : serviceSubTaskDetailReq.getIvrTaskcalldetailList()) {
-                ivrTaskcalldetail.setCallid(ivrTaskSingles.get(0).getId().toString());
-                ivrTaskcalldetail.setCalldetailid(UUID.randomUUID().toString());
-                ivrTaskcalldetail.setCreateTime(new Date());
-                i = ivrTaskcalldetailMapper.insertIvrTaskcalldetail(ivrTaskcalldetail);
-            }
-        } else if (CollectionUtils.isNotEmpty(serviceSubTaskDetailReq.getSvyTasksingledetailList())) {
-            //闂嵎
-            for (SvyTasksingledetail svyTasksingledetail : serviceSubTaskDetailReq.getSvyTasksingledetailList()) {
-                svyTasksingledetail.setCallid(ivrTaskSingles.get(0).getId().toString());
-                svyTasksingledetail.setCalldetailid(UUID.randomUUID().toString());
-                svyTasksingledetail.setCreateTime(new Date());
-                i = svyTasksingledetailMapper.insertSvyTasksingledetail(svyTasksingledetail);
-            }
+        //闅忚
+        for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) {
+            serviceSubtaskDetail.setSubId(selectServiceSubtaskList.get(0).getId());
+            serviceSubtaskDetail.setId(UUID.randomUUID().toString());
+            serviceSubtaskDetail.setCreateTime(new Date());
+            i = ivrTaskcalldetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
         }
         return i;
     }
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index 24d3709..ef69ced 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -171,7 +171,7 @@
     public List sfInfo(ServiceTask serviceTask, Long patid) {
         //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
         IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript();
-        ivrLibaTemplateScript.setTemplateID(serviceTask.getTemplateid());
+        ivrLibaTemplateScript.setTemplateid(serviceTask.getTemplateid());
         ivrLibaTemplateScript.setDelFlag("0");
         List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript);
         if (CollectionUtils.isEmpty(ivrLibaTemplateScripts) || ivrLibaTemplateScripts.size() == 0) {
@@ -213,7 +213,7 @@
 
                 //鑾峰彇闂閫夐」
                 IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption();
-                ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getID());
+                ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId());
                 List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption);
                 ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
             }
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTasksingledetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTasksingledetailServiceImpl.java
deleted file mode 100644
index b13a6ed..0000000
--- a/smartor/src/main/java/com/smartor/service/impl/SvyTasksingledetailServiceImpl.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.smartor.service.impl;
-
-import com.ruoyi.common.utils.DateUtils;
-import com.smartor.domain.SvyTasksingledetail;
-import com.smartor.mapper.SvyTasksingledetailMapper;
-import com.smartor.service.ISvyTasksingledetailService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 闂嵎缁撴灉璁板綍璇︽儏Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2024-06-19
- */
-@Service
-public class SvyTasksingledetailServiceImpl implements ISvyTasksingledetailService
-{
-    @Autowired
-    private SvyTasksingledetailMapper svyTasksingledetailMapper;
-
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 闂嵎缁撴灉璁板綍璇︽儏
-     */
-    @Override
-    public SvyTasksingledetail selectSvyTasksingledetailByCalldetailid(String calldetailid)
-    {
-        return svyTasksingledetailMapper.selectSvyTasksingledetailByCalldetailid(calldetailid);
-    }
-
-    /**
-     * 鏌ヨ闂嵎缁撴灉璁板綍璇︽儏鍒楄〃
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 闂嵎缁撴灉璁板綍璇︽儏
-     */
-    @Override
-    public List<SvyTasksingledetail> selectSvyTasksingledetailList(SvyTasksingledetail svyTasksingledetail)
-    {
-        return svyTasksingledetailMapper.selectSvyTasksingledetailList(svyTasksingledetail);
-    }
-
-    /**
-     * 鏂板闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail)
-    {
-        svyTasksingledetail.setCreateTime(DateUtils.getNowDate());
-        return svyTasksingledetailMapper.insertSvyTasksingledetail(svyTasksingledetail);
-    }
-
-    /**
-     * 淇敼闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param svyTasksingledetail 闂嵎缁撴灉璁板綍璇︽儏
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateSvyTasksingledetail(SvyTasksingledetail svyTasksingledetail)
-    {
-        svyTasksingledetail.setUpdateTime(DateUtils.getNowDate());
-        return svyTasksingledetailMapper.updateSvyTasksingledetail(svyTasksingledetail);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏
-     *
-     * @param calldetailids 闇�瑕佸垹闄ょ殑闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyTasksingledetailByCalldetailids(String[] calldetailids)
-    {
-        return svyTasksingledetailMapper.deleteSvyTasksingledetailByCalldetailids(calldetailids);
-    }
-
-    /**
-     * 鍒犻櫎闂嵎缁撴灉璁板綍璇︽儏淇℃伅
-     *
-     * @param calldetailid 闂嵎缁撴灉璁板綍璇︽儏涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteSvyTasksingledetailByCalldetailid(String calldetailid)
-    {
-        return svyTasksingledetailMapper.deleteSvyTasksingledetailByCalldetailid(calldetailid);
-    }
-}
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml
index f6e578a..60f4695 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml
@@ -35,11 +35,13 @@
         <result property="dynamiccruxsJson" column="dynamiccruxs"/>
         <result property="appendflag" column="appendflag"/>
         <result property="appenddesc" column="appenddesc"/>
+        <result property="picturePath" column="picture_path"/>
     </resultMap>
 
     <sql id="selectIvrLibaScriptTargetoptionVo">
         select id,
                targetid,
+               picture_path,
                targetname,
                appendflag,
                appenddesc,
@@ -86,6 +88,7 @@
             <if test="dynamiccruxsJson != null ">and dynamiccruxs = #{dynamiccruxsJson}</if>
             <if test="appendflag != null">and appendflag = #{appendflag}</if>
             <if test="appenddesc != null">and appenddesc = #{appenddesc}</if>
+            <if test="picturePath != null">and picture_path = #{picturePath}</if>
         </where>
     </select>
 
@@ -128,6 +131,7 @@
             <if test="dynamiccruxsJson != null ">dynamiccruxs,</if>
             <if test="appendflag != null">appendflag,</if>
             <if test="appenddesc != null">appenddesc,</if>
+            <if test="picturePath != null">picture_path,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -160,6 +164,7 @@
             <if test="dynamiccruxsJson != null ">#{dynamiccruxsJson},</if>
             <if test="appendflag != null">#{appendflag},</if>
             <if test="appenddesc != null">#{appenddesc},</if>
+            <if test="picturePath != null">#{picturePath},</if>
         </trim>
     </insert>
 
@@ -195,6 +200,7 @@
             <if test="dynamiccruxsJson != null ">dynamiccruxs = #{dynamiccruxsJson},</if>
             <if test="appendflag != null">appendflag = #{appendflag},</if>
             <if test="appenddesc != null">appenddesc = #{appenddesc},</if>
+            <if test="picturePath != null">picture_path = #{picturePath},</if>
         </trim>
         where id = #{id}
     </update>
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
index b0c8638..68d7b34 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
@@ -5,10 +5,10 @@
 <mapper namespace="com.smartor.mapper.IvrLibaTemplateScriptMapper">
 
     <resultMap type="com.smartor.domain.IvrLibaTemplateScript" id="IvrLibaTemplateScriptResult">
-        <result property="ID" column="ID"/>
+        <result property="id" column="id"/>
         <result property="scriptno" column="scriptno"/>
-        <result property="templateID" column="templateID"/>
-        <result property="scriptid" column="scriptID"/>
+        <result property="templateid" column="templateid"/>
+        <result property="scriptid" column="scriptid"/>
         <result property="scriptPoint" column="script_point"/>
         <result property="scriptContent" column="script_content"/>
         <result property="scriptDesc" column="script_content"/>
@@ -41,13 +41,15 @@
         <result property="otherdata" column="otherdata"/>
         <result property="isMust" column="is_must"/>
         <result property="scriptDesc" column="script_desc"/>
+        <result property="scriptType" column="script_type"/>
     </resultMap>
 
     <sql id="selectIvrLibaTemplateScriptVo">
-        select ID,
+        select id,
                scriptno,
-               templateID,
-               scriptID,
+               templateid,
+               script_type,
+               scriptid,
                script_point,
                script_content,
                script_desc,
@@ -89,7 +91,7 @@
             del_flag=0
             <if test="scriptno != null ">and scriptno = #{scriptno}</if>
             <if test="scriptDesc != null ">and script_desc = #{scriptDesc}</if>
-            <if test="templateID != null ">and templateID = #{templateID}</if>
+            <if test="templateid != null ">and templateid = #{templateid}</if>
             <if test="scriptPoint != null  and scriptPoint != ''">and script_point = #{scriptPoint}</if>
             <if test="scriptContent != null  and scriptContent != ''">and script_content = #{scriptContent}</if>
             <if test="scriptVoice != null  and scriptVoice != ''">and script_voice = #{scriptVoice}</if>
@@ -119,12 +121,13 @@
             <if test="targetid != null ">and targetid = #{targetid}</if>
             <if test="targetvalue != null  and targetvalue != ''">and targetvalue = #{targetvalue}</if>
             <if test="isMust != null  and isMust != ''">and is_must = #{isMust}</if>
+            <if test="scriptType != null">and script_type = #{scriptType}</if>
         </where>
     </select>
 
     <select id="selectIvrLibaTemplateScriptByID" parameterType="Long" resultMap="IvrLibaTemplateScriptResult">
         <include refid="selectIvrLibaTemplateScriptVo"/>
-        where ID = #{ID}
+        where id = #{id}
     </select>
 
     <insert id="insertIvrLibaTemplateScript" parameterType="com.smartor.domain.IvrLibaTemplateScript"
@@ -133,8 +136,8 @@
         insert into ivr_liba_template_script
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="scriptno != null">scriptno,</if>
-            <if test="templateID != null">templateID,</if>
-            <if test="scriptid != null">scriptID,</if>
+            <if test="templateid != null">templateid,</if>
+            <if test="scriptid != null">scriptid,</if>
             <if test=" scriptPoint != null and  scriptPoint != ''">script_point,</if>
             <if test="scriptContent != null">script_content,</if>
             <if test="scriptVoice != null">script_voice,</if>
@@ -166,10 +169,11 @@
             <if test="otherdata != null">otherdata,</if>
             <if test="isMust != null  and isMust != ''">is_must,</if>
             <if test="scriptDesc != null ">script_desc,</if>
+            <if test="scriptType != null ">script_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="scriptno != null">#{scriptno},</if>
-            <if test="templateID != null">#{templateID},</if>
+            <if test="templateid != null">#{templateid},</if>
             <if test="scriptid != null">#{scriptid},</if>
             <if test="scriptPoint != null and scriptPoint != ''">#{scriptPoint},</if>
             <if test="scriptContent != null">#{scriptContent},</if>
@@ -202,6 +206,7 @@
             <if test="otherdata != null">#{otherdata},</if>
             <if test="isMust != null  and isMust != ''">#{isMust},</if>
             <if test="scriptDesc != null ">#{scriptDesc},</if>
+            <if test="scriptType != null ">#{scriptType},</if>
         </trim>
     </insert>
 
@@ -209,8 +214,8 @@
         update ivr_liba_template_script
         <trim prefix="SET" suffixOverrides=",">
             <if test="scriptno != null">scriptno = #{scriptno},</if>
-            <if test="templateID != null">templateID = #{templateID},</if>
-            <if test="scriptid != null">scriptID = #{scriptid},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="scriptid != null">scriptid = #{scriptid},</if>
             <if test="scriptPoint != null and scriptPoint != ''">script_point = #{scriptPoint},</if>
             <if test="scriptContent != null">script_content = #{scriptContent},</if>
             <if test="scriptVoice != null">script_voice = #{scriptVoice},</if>
@@ -241,6 +246,7 @@
             <if test="otherdata != null">otherdata = #{otherdata},</if>
             <if test="isMust != null  and isMust != ''">is_must = #{isMust}</if>
             <if test="scriptDesc != null ">script_desc = #{scriptDesc}</if>
+            <if test="scriptType != null ">script_type = #{scriptType}</if>
         </trim>
         where ID = #{ID}
     </update>
@@ -250,13 +256,13 @@
         <trim prefix="SET" suffixOverrides=",">
             del_flag = 1
         </trim>
-        where ID = #{ID}
+        where id = #{id}
     </update>
 
     <delete id="deleteIvrLibaTemplateScriptByIDs" parameterType="String">
-        delete from ivr_liba_template_script where ID in
-        <foreach item="ID" collection="array" open="(" separator="," close=")">
-            #{ID}
+        delete from ivr_liba_template_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/ServiceSubtaskAnswerMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskAnswerMapper.xml
new file mode 100644
index 0000000..017a9f2
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskAnswerMapper.xml
@@ -0,0 +1,159 @@
+<?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.ServiceSubtaskAnswerMapper">
+
+    <resultMap type="com.smartor.domain.ServiceSubtaskAnswer" id="ServiceSubtaskAnswerResult">
+        <result property="id" column="id"/>
+        <result property="taskid" column="taskid"/>
+        <result property="singleid" column="singleid"/>
+        <result property="scriptid" column="scriptid"/>
+        <result property="scriptType" column="script_type"/>
+        <result property="score" column="score"/>
+        <result property="answer" column="answer"/>
+        <result property="comment" column="comment"/>
+        <result property="istrack" column="istrack"/>
+        <result property="isabnormal" column="isabnormal"/>
+        <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"/>
+    </resultMap>
+
+    <sql id="selectServiceSubtaskAnswerVo">
+        select id,
+               taskid,
+               singleid,
+               scriptid,
+               script_type,
+               score,
+               answer,
+               comment,
+               istrack,
+               isabnormal,
+               del_flag,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               isupload,
+               upload_time,
+               pid,
+               guid
+        from service_subtask_answer
+    </sql>
+
+    <select id="selectServiceSubtaskAnswerList" parameterType="com.smartor.domain.ServiceSubtaskAnswer"
+            resultMap="ServiceSubtaskAnswerResult">
+        <include refid="selectServiceSubtaskAnswerVo"/>
+        <where>
+            <if test="taskid != null ">and taskid = #{taskid}</if>
+            <if test="singleid != null ">and singleid = #{singleid}</if>
+            <if test="scriptid != null ">and scriptid = #{scriptid}</if>
+            <if test="scriptType != null ">and script_type = #{scriptType}</if>
+            <if test="score != null  and score != ''">and score = #{score}</if>
+            <if test="answer != null  and answer != ''">and answer = #{answer}</if>
+            <if test="comment != null  and comment != ''">and comment = #{comment}</if>
+            <if test="istrack != null  and istrack != ''">and istrack = #{istrack}</if>
+            <if test="isabnormal != null  and isabnormal != ''">and isabnormal = #{isabnormal}</if>
+            <if test="isupload != null ">and isupload = #{isupload}</if>
+            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
+            <if test="pid != null  and pid != ''">and pid = #{pid}</if>
+            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+        </where>
+    </select>
+
+    <select id="selectServiceSubtaskAnswerById" parameterType="Long" resultMap="ServiceSubtaskAnswerResult">
+        <include refid="selectServiceSubtaskAnswerVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertServiceSubtaskAnswer" parameterType="com.smartor.domain.ServiceSubtaskAnswer"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into service_subtask_answer
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="taskid != null">taskid,</if>
+            <if test="singleid != null">singleid,</if>
+            <if test="scriptid != null">scriptid,</if>
+            <if test="scriptType != null">script_type,</if>
+            <if test="score != null">score,</if>
+            <if test="answer != null">answer,</if>
+            <if test="comment != null">comment,</if>
+            <if test="istrack != null">istrack,</if>
+            <if test="isabnormal != null">isabnormal,</if>
+            <if test="delFlag != null">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>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="taskid != null">#{taskid},</if>
+            <if test="singleid != null">#{singleid},</if>
+            <if test="scriptid != null">#{scriptid},</if>
+            <if test="scriptType != null">#{scriptType},</if>
+            <if test="score != null">#{score},</if>
+            <if test="answer != null">#{answer},</if>
+            <if test="comment != null">#{comment},</if>
+            <if test="istrack != null">#{istrack},</if>
+            <if test="isabnormal != null">#{isabnormal},</if>
+            <if test="delFlag != null">#{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>
+        </trim>
+    </insert>
+
+    <update id="updateServiceSubtaskAnswer" parameterType="com.smartor.domain.ServiceSubtaskAnswer">
+        update service_subtask_answer
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="taskid != null">taskid = #{taskid},</if>
+            <if test="singleid != null">singleid = #{singleid},</if>
+            <if test="scriptid != null">scriptid = #{scriptid},</if>
+            <if test="scriptType != null">script_type = #{scriptType},</if>
+            <if test="score != null">score = #{score},</if>
+            <if test="answer != null">answer = #{answer},</if>
+            <if test="comment != null">comment = #{comment},</if>
+            <if test="istrack != null">istrack = #{istrack},</if>
+            <if test="isabnormal != null">isabnormal = #{isabnormal},</if>
+            <if test="delFlag != null">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>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteServiceSubtaskAnswerById" parameterType="Long">
+        delete
+        from service_subtask_answer
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteServiceSubtaskAnswerByIds" parameterType="String">
+        delete from service_subtask_answer where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/IvrTaskcalldetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
similarity index 88%
rename from smartor/src/main/resources/mapper/smartor/IvrTaskcalldetailMapper.xml
rename to smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
index 2502583..dc782d3 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrTaskcalldetailMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -2,11 +2,11 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.smartor.mapper.IvrTaskcalldetailMapper">
+<mapper namespace="com.smartor.mapper.ServiceSubtaskDetailMapper">
 
-    <resultMap type="com.smartor.domain.IvrTaskcalldetail" id="IvrTaskcalldetailResult">
-        <result property="calldetailid" column="calldetailid"/>
-        <result property="callid" column="callid"/>
+    <resultMap type="com.smartor.domain.ServiceSubtaskDetail" id="ServiceSubtaskDetailResult">
+        <result property="id" column="id"/>
+        <result property="subId" column="sub_id"/>
         <result property="uuid" column="uuid"/>
         <result property="phone" column="phone"/>
         <result property="operate" column="operate"/>
@@ -48,9 +48,9 @@
         <result property="valueType" column="value_type"/>
     </resultMap>
 
-    <sql id="selectIvrTaskcalldetailVo">
-        select calldetailid,
-               callid,
+    <sql id="selectServiceSubtaskDetailVo">
+        select id,
+               sub_id,
                uuid,
                phone,
                operate,
@@ -93,11 +93,11 @@
         from ivr_taskcalldetail
     </sql>
 
-    <select id="selectIvrTaskcalldetailList" parameterType="com.smartor.domain.IvrTaskcalldetail"
-            resultMap="IvrTaskcalldetailResult">
-        <include refid="selectIvrTaskcalldetailVo"/>
+    <select id="selectServiceSubtaskDetailList" parameterType="com.smartor.domain.ServiceSubtaskDetail"
+            resultMap="ServiceSubtaskDetailResult">
+        <include refid="selectServiceSubtaskDetailVo"/>
         <where>
-            <if test="callid != null  and callid != ''">and callid = #{callid}</if>
+            <if test="subId != null">and sub_id = #{subId}</if>
             <if test="uuid != null  and uuid != ''">and uuid = #{uuid}</if>
             <if test="phone != null  and phone != ''">and phone = #{phone}</if>
             <if test="operate != null  and operate != ''">and operate = #{operate}</if>
@@ -137,16 +137,16 @@
         </where>
     </select>
 
-    <select id="selectIvrTaskcalldetailByCalldetailid" parameterType="String" resultMap="IvrTaskcalldetailResult">
-        <include refid="selectIvrTaskcalldetailVo"/>
-        where calldetailid = #{calldetailid}
+    <select id="selectServiceSubtaskDetailByCalldetailid" parameterType="String" resultMap="ServiceSubtaskDetailResult">
+        <include refid="selectServiceSubtaskDetailVo"/>
+        where id = #{id}
     </select>
 
-    <insert id="insertIvrTaskcalldetail" parameterType="com.smartor.domain.IvrTaskcalldetail">
+    <insert id="insertServiceSubtaskDetail" parameterType="com.smartor.domain.ServiceSubtaskDetail">
         insert into ivr_taskcalldetail
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="calldetailid != null">calldetailid,</if>
-            <if test="callid != null">callid,</if>
+            <if test="id != null">id,</if>
+            <if test="subId != null">sub_id,</if>
             <if test="uuid != null">uuid,</if>
             <if test="phone != null">phone,</if>
             <if test="operate != null">operate,</if>
@@ -188,8 +188,8 @@
             <if test="valueType != null">value_type,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="calldetailid != null">#{calldetailid},</if>
-            <if test="callid != null">#{callid},</if>
+            <if test="id != null">#{id},</if>
+            <if test="subId != null">#{subId},</if>
             <if test="uuid != null">#{uuid},</if>
             <if test="phone != null">#{phone},</if>
             <if test="operate != null">#{operate},</if>
@@ -232,10 +232,10 @@
         </trim>
     </insert>
 
-    <update id="updateIvrTaskcalldetail" parameterType="com.smartor.domain.IvrTaskcalldetail">
+    <update id="updateServiceSubtaskDetail" parameterType="com.smartor.domain.ServiceSubtaskDetail">
         update ivr_taskcalldetail
         <trim prefix="SET" suffixOverrides=",">
-            <if test="callid != null">callid = #{callid},</if>
+            <if test="subId != null">sub_id = #{subId},</if>
             <if test="uuid != null">uuid = #{uuid},</if>
             <if test="phone != null">phone = #{phone},</if>
             <if test="operate != null">operate = #{operate},</if>
@@ -276,19 +276,19 @@
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="valueType != null">value_type = #{valueType},</if>
         </trim>
-        where calldetailid = #{calldetailid}
+        where id = #{id}
     </update>
 
-    <delete id="deleteIvrTaskcalldetailByCalldetailid" parameterType="String">
+    <delete id="deleteServiceSubtaskDetailByCalldetailid" parameterType="String">
         delete
         from ivr_taskcalldetail
-        where calldetailid = #{calldetailid}
+        where id = #{id}
     </delete>
 
-    <delete id="deleteIvrTaskcalldetailByCalldetailids" parameterType="String">
-        delete from ivr_taskcalldetail where calldetailid in
-        <foreach item="calldetailid" collection="array" open="(" separator="," close=")">
-            #{calldetailid}
+    <delete id="deleteServiceSubtaskDetailByCalldetailids" parameterType="String">
+        delete from ivr_taskcalldetail where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
         </foreach>
     </delete>
 </mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
index 6ffa314..cd9b359 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
@@ -9,7 +9,7 @@
         <result property="scriptType" column="script_type"/>
         <result property="scriptcode" column="script_code"/>
         <result property="scriptDesc" column="script_desc"/>
-        <result property="scriptPicture" column="script_picture"/>
+        <result property="picturePath" column="picture_path"/>
         <result property="sort" column="sort"/>
         <result property="ismandatory" column="ismandatory"/>
         <result property="ishide" column="ishide"/>
@@ -63,7 +63,7 @@
                suitway,
                isavailable,
                otherdata,
-               script_picture,
+               picture_path,
             language,
             icd10_name
         from svy_lib_script
@@ -126,7 +126,7 @@
             <if test="scoretype != null and scoretype!=''">scoretype,</if>
             <if test="score != null and score!=''">score,</if>
             <if test="icd10Name != null and icd10Name!=''">icd10_name,</if>
-            <if test="scriptPicture != null  and scriptPicture != ''">script_picture,</if>
+            <if test="picturePath != null  and picturePath != ''">picture_path,</if>
             <if test="scriptTopic != null  and scriptTopic != ''">script_topic,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -156,7 +156,7 @@
             <if test="scoretype != null and scoretype!=''">#{scoretype},</if>
             <if test="score != null and score!=''">#{score},</if>
             <if test="icd10Name != null and icd10Name!=''">#{icd10Name},</if>
-            <if test="scriptPicture != null  and scriptPicture != ''">#{scriptPicture},</if>
+            <if test="picturePath != null  and picturePath != ''">#{picturePath},</if>
             <if test="scriptTopic != null  and scriptTopic != ''">#{scriptTopic},</if>
         </trim>
     </insert>
@@ -190,7 +190,7 @@
             <if test="scoretype != null and scoretype!=''">scoretype = #{scoretype},</if>
             <if test="score != null and score!=''">score = #{score},</if>
             <if test="icd10Name != null and icd10Name!=''">icd10_name = #{icd10Name},</if>
-            <if test="scriptPicture != null  and scriptPicture != ''">script_picture = #{scriptPicture},</if>
+            <if test="picturePath != null  and picturePath != ''">picture_path = #{picturePath},</if>
             <if test="scriptTopic != null  and scriptTopic != ''">script_topic = #{scriptTopic},</if>
         </trim>
         where id = #{id}
diff --git a/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
index 00aaa5c..773b9fc 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
@@ -7,6 +7,7 @@
     <resultMap type="com.smartor.domain.SvyLibScriptOption" id="SvyLibScriptOptionResult">
         <result property="id" column="id"/>
         <result property="topicid" column="topicid"/>
+        <result property="picturePath" column="picture_path"/>
         <result property="svyid" column="svyid"/>
         <result property="topictype" column="topictype"/>
         <result property="optioncode" column="optioncode"/>
@@ -44,6 +45,7 @@
         select id,
                topicid,
                svyid,
+               picture_path,
                appendflag,
                appenddesc,
                topictype,
@@ -109,6 +111,7 @@
             <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
             <if test="appendflag != null">and appendflag = #{appendflag}</if>
             <if test="appenddesc != null">and appenddesc = #{appenddesc}</if>
+            <if test="picturePath != null">and picture_path = #{picturePath}</if>
         </where>
     </select>
 
@@ -153,6 +156,7 @@
             <if test="uploadTime != null">upload_time,</if>
             <if test="appendflag != null">appendflag,</if>
             <if test="appenddesc != null">appenddesc,</if>
+            <if test="picturePath != null">picture_path,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="topicid != null">#{topicid},</if>
@@ -187,6 +191,7 @@
             <if test="uploadTime != null">#{uploadTime},</if>
             <if test="appendflag != null">#{appendflag},</if>
             <if test="appenddesc != null">#{appenddesc},</if>
+            <if test="picturePath != null">#{picturePath},</if>
         </trim>
     </insert>
 
@@ -225,6 +230,7 @@
             <if test="uploadTime != null">upload_time = #{uploadTime},</if>
             <if test="appendflag != null">appendflag = #{appendflag},</if>
             <if test="appenddesc != null">appenddesc = #{appenddesc},</if>
+            <if test="picturePath != null">picture_path = #{picturePath},</if>
         </trim>
         where id = #{id}
     </update>
@@ -243,6 +249,5 @@
             #{id}
         </foreach>
     </delete>
-
 
 </mapper>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTasksingledetailMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTasksingledetailMapper.xml
deleted file mode 100644
index abd0d8a..0000000
--- a/smartor/src/main/resources/mapper/smartor/SvyTasksingledetailMapper.xml
+++ /dev/null
@@ -1,258 +0,0 @@
-<?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.SvyTasksingledetailMapper">
-
-    <resultMap type="com.smartor.domain.SvyTasksingledetail" id="SvyTasksingledetailResult">
-        <result property="calldetailid"    column="calldetailid"    />
-        <result property="callid"    column="callid"    />
-        <result property="uuid"    column="uuid"    />
-        <result property="phone"    column="phone"    />
-        <result property="displayno"    column="displayno"    />
-        <result property="operate"    column="operate"    />
-        <result property="inbound"    column="inbound"    />
-        <result property="incoming"    column="incoming"    />
-        <result property="assigntime"    column="assigntime"    />
-        <result property="starttime"    column="starttime"    />
-        <result property="answertime"    column="answertime"    />
-        <result property="silent"    column="silent"    />
-        <result property="dtmfKey"    column="dtmf_key"    />
-        <result property="musicpath"    column="musicpath"    />
-        <result property="sentIndex"    column="sent_index"    />
-        <result property="sentBegin"    column="sent_begin"    />
-        <result property="asrtext"    column="asrtext"    />
-        <result property="beginTime"    column="begin_time"    />
-        <result property="endTime"    column="end_time"    />
-        <result property="sentEnd"    column="sent_end"    />
-        <result property="recordpath"    column="recordpath"    />
-        <result property="recordurl"    column="recordurl"    />
-        <result property="templateid"    column="templateid"    />
-        <result property="templatequestionnum"    column="templatequestionnum"    />
-        <result property="switchid"    column="switchid"    />
-        <result property="questiontext"    column="questiontext"    />
-        <result property="questionvoice"    column="questionvoice"    />
-        <result property="categoryname"    column="categoryname"    />
-        <result property="targetoptions"    column="targetoptions"    />
-        <result property="targetvalue"    column="targetvalue"    />
-        <result property="matchedtext"    column="matchedtext"    />
-        <result property="addtime"    column="addtime"    />
-        <result property="isupload"    column="isupload"    />
-        <result property="uploadTime"    column="upload_time"    />
-        <result property="orgid"    column="orgid"    />
-        <result property="createTime"    column="create_time"    />
-        <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="pid"    column="pid"    />
-        <result property="guid"    column="guid"    />
-        <result property="valueType"    column="value_type"    />
-    </resultMap>
-
-    <sql id="selectSvyTasksingledetailVo">
-        select calldetailid, callid, uuid, phone, displayno, operate, inbound, incoming, assigntime, starttime, answertime, silent, dtmf_key, musicpath, sent_index, sent_begin, asrtext, begin_time, end_time, sent_end, recordpath, recordurl, templateid, templatequestionnum, switchid, questiontext, questionvoice, categoryname, targetoptions, targetvalue, matchedtext, addtime, isupload, upload_time, orgid, create_time, del_flag, update_by, update_time, create_by, pid, guid, value_type from svy_tasksingledetail
-    </sql>
-
-    <select id="selectSvyTasksingledetailList" parameterType="com.smartor.domain.SvyTasksingledetail" resultMap="SvyTasksingledetailResult">
-        <include refid="selectSvyTasksingledetailVo"/>
-        <where>
-            <if test="callid != null  and callid != ''"> and callid = #{callid}</if>
-            <if test="uuid != null  and uuid != ''"> and uuid = #{uuid}</if>
-            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
-            <if test="displayno != null  and displayno != ''"> and displayno = #{displayno}</if>
-            <if test="operate != null  and operate != ''"> and operate = #{operate}</if>
-            <if test="inbound != null "> and inbound = #{inbound}</if>
-            <if test="incoming != null "> and incoming = #{incoming}</if>
-            <if test="assigntime != null "> and assigntime = #{assigntime}</if>
-            <if test="starttime != null "> and starttime = #{starttime}</if>
-            <if test="answertime != null "> and answertime = #{answertime}</if>
-            <if test="silent != null "> and silent = #{silent}</if>
-            <if test="dtmfKey != null  and dtmfKey != ''"> and dtmf_key = #{dtmfKey}</if>
-            <if test="musicpath != null  and musicpath != ''"> and musicpath = #{musicpath}</if>
-            <if test="sentIndex != null "> and sent_index = #{sentIndex}</if>
-            <if test="sentBegin != null "> and sent_begin = #{sentBegin}</if>
-            <if test="asrtext != null  and asrtext != ''"> and asrtext = #{asrtext}</if>
-            <if test="beginTime != null "> and begin_time = #{beginTime}</if>
-            <if test="endTime != null "> and end_time = #{endTime}</if>
-            <if test="sentEnd != null "> and sent_end = #{sentEnd}</if>
-            <if test="recordpath != null  and recordpath != ''"> and recordpath = #{recordpath}</if>
-            <if test="recordurl != null  and recordurl != ''"> and recordurl = #{recordurl}</if>
-            <if test="templateid != null  and templateid != ''"> and templateid = #{templateid}</if>
-            <if test="templatequestionnum != null "> and templatequestionnum = #{templatequestionnum}</if>
-            <if test="switchid != null "> and switchid = #{switchid}</if>
-            <if test="questiontext != null  and questiontext != ''"> and questiontext = #{questiontext}</if>
-            <if test="questionvoice != null  and questionvoice != ''"> and questionvoice = #{questionvoice}</if>
-            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
-            <if test="targetoptions != null  and targetoptions != ''"> and targetoptions = #{targetoptions}</if>
-            <if test="targetvalue != null  and targetvalue != ''"> and targetvalue = #{targetvalue}</if>
-            <if test="matchedtext != null  and matchedtext != ''"> and matchedtext = #{matchedtext}</if>
-            <if test="addtime != null "> and addtime = #{addtime}</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="valueType != null  and valueType != ''"> and value_type = #{valueType}</if>
-        </where>
-    </select>
-
-    <select id="selectSvyTasksingledetailByCalldetailid" parameterType="String" resultMap="SvyTasksingledetailResult">
-        <include refid="selectSvyTasksingledetailVo"/>
-        where calldetailid = #{calldetailid}
-    </select>
-
-    <insert id="insertSvyTasksingledetail" parameterType="com.smartor.domain.SvyTasksingledetail">
-        insert into svy_tasksingledetail
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="calldetailid != null">calldetailid,</if>
-            <if test="callid != null">callid,</if>
-            <if test="uuid != null">uuid,</if>
-            <if test="phone != null">phone,</if>
-            <if test="displayno != null">displayno,</if>
-            <if test="operate != null">operate,</if>
-            <if test="inbound != null">inbound,</if>
-            <if test="incoming != null">incoming,</if>
-            <if test="assigntime != null">assigntime,</if>
-            <if test="starttime != null">starttime,</if>
-            <if test="answertime != null">answertime,</if>
-            <if test="silent != null">silent,</if>
-            <if test="dtmfKey != null">dtmf_key,</if>
-            <if test="musicpath != null">musicpath,</if>
-            <if test="sentIndex != null">sent_index,</if>
-            <if test="sentBegin != null">sent_begin,</if>
-            <if test="asrtext != null">asrtext,</if>
-            <if test="beginTime != null">begin_time,</if>
-            <if test="endTime != null">end_time,</if>
-            <if test="sentEnd != null">sent_end,</if>
-            <if test="recordpath != null">recordpath,</if>
-            <if test="recordurl != null">recordurl,</if>
-            <if test="templateid != null">templateid,</if>
-            <if test="templatequestionnum != null">templatequestionnum,</if>
-            <if test="switchid != null">switchid,</if>
-            <if test="questiontext != null">questiontext,</if>
-            <if test="questionvoice != null">questionvoice,</if>
-            <if test="categoryname != null">categoryname,</if>
-            <if test="targetoptions != null">targetoptions,</if>
-            <if test="targetvalue != null">targetvalue,</if>
-            <if test="matchedtext != null">matchedtext,</if>
-            <if test="addtime != null">addtime,</if>
-            <if test="isupload != null">isupload,</if>
-            <if test="uploadTime != null">upload_time,</if>
-            <if test="orgid != null">orgid,</if>
-            <if test="createTime != null">create_time,</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="pid != null">pid,</if>
-            <if test="guid != null">guid,</if>
-            <if test="valueType != null">value_type,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="calldetailid != null">#{calldetailid},</if>
-            <if test="callid != null">#{callid},</if>
-            <if test="uuid != null">#{uuid},</if>
-            <if test="phone != null">#{phone},</if>
-            <if test="displayno != null">#{displayno},</if>
-            <if test="operate != null">#{operate},</if>
-            <if test="inbound != null">#{inbound},</if>
-            <if test="incoming != null">#{incoming},</if>
-            <if test="assigntime != null">#{assigntime},</if>
-            <if test="starttime != null">#{starttime},</if>
-            <if test="answertime != null">#{answertime},</if>
-            <if test="silent != null">#{silent},</if>
-            <if test="dtmfKey != null">#{dtmfKey},</if>
-            <if test="musicpath != null">#{musicpath},</if>
-            <if test="sentIndex != null">#{sentIndex},</if>
-            <if test="sentBegin != null">#{sentBegin},</if>
-            <if test="asrtext != null">#{asrtext},</if>
-            <if test="beginTime != null">#{beginTime},</if>
-            <if test="endTime != null">#{endTime},</if>
-            <if test="sentEnd != null">#{sentEnd},</if>
-            <if test="recordpath != null">#{recordpath},</if>
-            <if test="recordurl != null">#{recordurl},</if>
-            <if test="templateid != null">#{templateid},</if>
-            <if test="templatequestionnum != null">#{templatequestionnum},</if>
-            <if test="switchid != null">#{switchid},</if>
-            <if test="questiontext != null">#{questiontext},</if>
-            <if test="questionvoice != null">#{questionvoice},</if>
-            <if test="categoryname != null">#{categoryname},</if>
-            <if test="targetoptions != null">#{targetoptions},</if>
-            <if test="targetvalue != null">#{targetvalue},</if>
-            <if test="matchedtext != null">#{matchedtext},</if>
-            <if test="addtime != null">#{addtime},</if>
-            <if test="isupload != null">#{isupload},</if>
-            <if test="uploadTime != null">#{uploadTime},</if>
-            <if test="orgid != null">#{orgid},</if>
-            <if test="createTime != null">#{createTime},</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="pid != null">#{pid},</if>
-            <if test="guid != null">#{guid},</if>
-            <if test="valueType != null">#{valueType},</if>
-         </trim>
-    </insert>
-
-    <update id="updateSvyTasksingledetail" parameterType="com.smartor.domain.SvyTasksingledetail">
-        update svy_tasksingledetail
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="callid != null">callid = #{callid},</if>
-            <if test="uuid != null">uuid = #{uuid},</if>
-            <if test="phone != null">phone = #{phone},</if>
-            <if test="displayno != null">displayno = #{displayno},</if>
-            <if test="operate != null">operate = #{operate},</if>
-            <if test="inbound != null">inbound = #{inbound},</if>
-            <if test="incoming != null">incoming = #{incoming},</if>
-            <if test="assigntime != null">assigntime = #{assigntime},</if>
-            <if test="starttime != null">starttime = #{starttime},</if>
-            <if test="answertime != null">answertime = #{answertime},</if>
-            <if test="silent != null">silent = #{silent},</if>
-            <if test="dtmfKey != null">dtmf_key = #{dtmfKey},</if>
-            <if test="musicpath != null">musicpath = #{musicpath},</if>
-            <if test="sentIndex != null">sent_index = #{sentIndex},</if>
-            <if test="sentBegin != null">sent_begin = #{sentBegin},</if>
-            <if test="asrtext != null">asrtext = #{asrtext},</if>
-            <if test="beginTime != null">begin_time = #{beginTime},</if>
-            <if test="endTime != null">end_time = #{endTime},</if>
-            <if test="sentEnd != null">sent_end = #{sentEnd},</if>
-            <if test="recordpath != null">recordpath = #{recordpath},</if>
-            <if test="recordurl != null">recordurl = #{recordurl},</if>
-            <if test="templateid != null">templateid = #{templateid},</if>
-            <if test="templatequestionnum != null">templatequestionnum = #{templatequestionnum},</if>
-            <if test="switchid != null">switchid = #{switchid},</if>
-            <if test="questiontext != null">questiontext = #{questiontext},</if>
-            <if test="questionvoice != null">questionvoice = #{questionvoice},</if>
-            <if test="categoryname != null">categoryname = #{categoryname},</if>
-            <if test="targetoptions != null">targetoptions = #{targetoptions},</if>
-            <if test="targetvalue != null">targetvalue = #{targetvalue},</if>
-            <if test="matchedtext != null">matchedtext = #{matchedtext},</if>
-            <if test="addtime != null">addtime = #{addtime},</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="createTime != null">create_time = #{createTime},</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="pid != null">pid = #{pid},</if>
-            <if test="guid != null">guid = #{guid},</if>
-            <if test="valueType != null">value_type = #{valueType},</if>
-        </trim>
-        where calldetailid = #{calldetailid}
-    </update>
-
-    <delete id="deleteSvyTasksingledetailByCalldetailid" parameterType="String">
-        delete from svy_tasksingledetail where calldetailid = #{calldetailid}
-    </delete>
-
-    <delete id="deleteSvyTasksingledetailByCalldetailids" parameterType="String">
-        delete from svy_tasksingledetail where calldetailid in
-        <foreach item="calldetailid" collection="array" open="(" separator="," close=")">
-            #{calldetailid}
-        </foreach>
-    </delete>
-</mapper>

--
Gitblit v1.9.3