From 6bf863f0a47aa990f9c4bc0f76f73db2329e83d7 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 06 三月 2023 12:24:57 +0800
Subject: [PATCH] yxh

---
 smartor/src/main/java/com/smartor/mapper/IvrSceneRecallMapper.java                               |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java   |  104 
 smartor/src/main/java/com/smartor/mapper/IvrSceneGlobalconfigMapper.java                         |   61 
 smartor/src/main/java/com/smartor/domain/IvrLibScriptcategory.java                               |  113 
 smartor/src/main/java/com/smartor/domain/IvrScenecategory.java                                   |  113 
 smartor/src/main/java/com/smartor/service/IIvrLibScriptcategoryService.java                      |   61 
 smartor/src/main/java/com/smartor/domain/IvrSceneIntent.java                                     |  309 +
 smartor/src/main/java/com/smartor/domain/IvrSceneFlow.java                                       |  239 +
 smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java                    |   96 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java       |  104 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneFlowServiceImpl.java                      |   96 
 smartor/src/main/resources/mapper/smartor/IvrSceneIntentMapper.xml                               |  161 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java           |  104 
 smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java                               |   61 
 smartor/src/main/java/com/smartor/service/IIvrLibIntentService.java                              |   61 
 smartor/src/main/java/com/smartor/domain/IvrSceneGlobalconfig.java                               |  211 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java       |  104 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java               |  104 
 smartor/src/main/java/com/smartor/service/impl/SmsTempletServiceImpl.java                        |   96 
 smartor/src/main/resources/mapper/smartor/IvrSceneGlobalconfigMapper.xml                         |  126 
 smartor/src/main/java/com/smartor/service/IIvrScenecategoryService.java                          |   61 
 smartor/src/main/java/com/smartor/mapper/IvrSceneScriptMapper.java                               |   61 
 smartor/src/main/java/com/smartor/service/IIvrSceneRecallService.java                            |   61 
 smartor/src/main/resources/mapper/smartor/IvrLibIntentMapper.xml                                 |  106 
 smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodeMapper.java                             |   61 
 smartor/src/main/resources/mapper/smartor/IvrSceneRecallMapper.xml                               |  111 
 smartor/src/main/java/com/smartor/domain/SmsParam.java                                           |  140 
 smartor/src/main/resources/mapper/smartor/SmsTempletMapper.xml                                   |   98 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneExecuteconfigServiceImpl.java             |   96 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java           |  104 
 smartor/src/main/java/com/smartor/mapper/IvrLibIntentcategoryMapper.java                         |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrLibScriptcategoryServiceImpl.java              |   96 
 smartor/src/main/java/com/smartor/domain/IvrSceneScriptmodel.java                                |  267 +
 smartor/src/main/java/com/smartor/domain/IvrLibScriptmodel.java                                  |  253 +
 smartor/src/main/java/com/smartor/service/IIvrSceneScriptmodelService.java                       |   61 
 smartor/src/main/java/com/smartor/mapper/IvrLibScriptmodelMapper.java                            |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrLibIntentcategoryServiceImpl.java              |   96 
 smartor/src/main/java/com/smartor/service/IIvrSceneFlownodeService.java                          |   61 
 smartor/src/main/java/com/smartor/service/IIvrLibScriptService.java                              |   61 
 smartor/src/main/java/com/smartor/mapper/IvrSceneIntentMapper.java                               |   61 
 smartor/src/main/java/com/smartor/service/IIvrSceneScriptService.java                            |   61 
 smartor/src/main/java/com/smartor/domain/IvrSceneExecuteconfig.java                              |  239 +
 smartor/src/main/java/com/smartor/service/IIvrLibScriptmodelService.java                         |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java   |  104 
 smartor/src/main/resources/mapper/smartor/IvrSceneFlownodeMapper.xml                             |  156 
 smartor/src/main/resources/mapper/smartor/IvrScenecategoryMapper.xml                             |   91 
 smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java                            |   61 
 smartor/src/main/java/com/smartor/service/ISmsParamService.java                                  |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptServiceImpl.java                    |   96 
 smartor/src/main/java/com/smartor/service/impl/SmsParamServiceImpl.java                          |   96 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java      |  104 
 smartor/src/main/resources/mapper/smartor/IvrSceneMapper.xml                                     |  151 
 smartor/src/main/resources/mapper/smartor/IvrLibScriptmodelMapper.xml                            |  141 
 smartor/src/main/java/com/smartor/mapper/IvrSceneScriptmodelMapper.java                          |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java           |  104 
 smartor/src/main/java/com/smartor/service/IIvrSceneFlownodebranchService.java                    |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodeServiceImpl.java                  |   96 
 smartor/src/main/resources/mapper/smartor/IvrSceneExecuteconfigMapper.xml                        |  136 
 smartor/src/main/java/com/smartor/service/impl/SmsRecordsServiceImpl.java                        |   96 
 smartor/src/main/java/com/smartor/domain/BaseSmsaccount.java                                     |  156 
 smartor/src/main/java/com/smartor/service/IIvrSceneIntentService.java                            |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java    |  104 
 smartor/src/main/java/com/smartor/domain/SmsRecords.java                                         |  340 +
 smartor/src/main/java/com/smartor/service/impl/IvrSceneServiceImpl.java                          |   96 
 smartor/src/main/java/com/smartor/domain/IvrSceneFlownodebranch.java                             |  225 +
 smartor/src/main/java/com/smartor/mapper/IvrScenecategoryMapper.java                             |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrScenecategoryServiceImpl.java                  |   96 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java               |  104 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java         |  104 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java |  104 
 smartor/src/main/java/com/smartor/mapper/SmsTempletMapper.java                                   |   61 
 smartor/src/main/resources/mapper/smartor/IvrLibIntentcategoryMapper.xml                         |   91 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java  |  104 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java         |  104 
 smartor/src/main/java/com/smartor/mapper/IvrLibScriptMapper.java                                 |   61 
 smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodebranchMapper.java                       |   61 
 smartor/src/main/java/com/smartor/domain/IvrScene.java                                           |  281 +
 smartor/src/main/resources/mapper/smartor/IvrLibScriptMapper.xml                                 |  116 
 smartor/src/main/java/com/smartor/service/impl/IvrLibIntentServiceImpl.java                      |   96 
 smartor/src/main/java/com/smartor/mapper/IvrSceneFlowMapper.java                                 |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneGlobalconfigServiceImpl.java              |   96 
 smartor/src/main/resources/mapper/smartor/IvrLibScriptcategoryMapper.xml                         |   91 
 smartor/src/main/resources/mapper/smartor/IvrSceneScriptMapper.xml                               |  131 
 smartor/src/main/java/com/smartor/domain/IvrSceneScript.java                                     |  225 +
 smartor/src/main/java/com/smartor/service/IIvrSceneGlobalconfigService.java                      |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java             |  104 
 smartor/src/main/java/com/smartor/service/IIvrLibIntentcategoryService.java                      |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptmodelServiceImpl.java               |   96 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneIntentServiceImpl.java                    |   96 
 smartor/src/main/java/com/smartor/service/impl/IvrLibScriptServiceImpl.java                      |   96 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java   |  104 
 smartor/src/main/resources/mapper/smartor/IvrSceneScriptmodelMapper.xml                          |  146 
 smartor/src/main/java/com/smartor/domain/IvrSceneRecall.java                                     |  169 
 smartor/src/main/java/com/smartor/domain/IvrSceneFlownode.java                                   |  295 +
 smartor/src/main/java/com/smartor/service/impl/IvrSceneRecallServiceImpl.java                    |   96 
 smartor/src/main/java/com/smartor/mapper/SmsRecordsMapper.java                                   |   61 
 smartor/src/main/java/com/smartor/service/ISmsRecordsService.java                                |   61 
 smartor/src/main/resources/mapper/smartor/SmsRecordsMapper.xml                                   |  173 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java         |  104 
 smartor/src/main/java/com/smartor/mapper/SmsParamMapper.java                                     |   61 
 smartor/src/main/resources/mapper/smartor/SmsParamMapper.xml                                     |  103 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java             |  104 
 smartor/src/main/java/com/smartor/mapper/IvrSceneExecuteconfigMapper.java                        |   61 
 smartor/src/main/resources/mapper/smartor/IvrSceneFlownodebranchMapper.xml                       |  131 
 smartor/src/main/java/com/smartor/mapper/IvrLibScriptcategoryMapper.java                         |   61 
 smartor/src/main/java/com/smartor/service/impl/IvrLibScriptmodelServiceImpl.java                 |   96 
 smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodebranchServiceImpl.java            |   96 
 smartor/src/main/java/com/smartor/domain/IvrLibScript.java                                       |  183 
 smartor/src/main/java/com/smartor/service/IIvrSceneFlowService.java                              |   61 
 smartor/src/main/java/com/smartor/domain/IvrLibIntent.java                                       |  155 
 smartor/src/main/resources/mapper/smartor/BaseSmsaccountMapper.xml                               |  110 
 smartor/src/main/java/com/smartor/domain/IvrLibIntentcategory.java                               |  113 
 smartor/src/main/java/com/smartor/domain/SmsTemplet.java                                         |  126 
 smartor/src/main/java/com/smartor/mapper/IvrLibIntentMapper.java                                 |   61 
 smartor/src/main/java/com/smartor/service/IIvrSceneService.java                                  |   61 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java         |  104 
 smartor/src/main/java/com/smartor/mapper/IvrSceneMapper.java                                     |   61 
 smartor/src/main/java/com/smartor/service/IIvrSceneExecuteconfigService.java                     |   61 
 smartor/src/main/resources/mapper/smartor/IvrSceneFlowMapper.xml                                 |  136 
 smartor/src/main/java/com/smartor/service/ISmsTempletService.java                                |   61 
 120 files changed, 13,097 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java
new file mode 100644
index 0000000..cefbdfe
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseSmsaccountController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.BaseSmsaccount;
+import com.smartor.service.IBaseSmsaccountService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鐭俊璐﹀彿Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/smsaccount")
+public class BaseSmsaccountController extends BaseController
+{
+    @Autowired
+    private IBaseSmsaccountService baseSmsaccountService;
+
+    /**
+     * 鏌ヨ鐭俊璐﹀彿鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BaseSmsaccount baseSmsaccount)
+    {
+        startPage();
+        List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鐭俊璐﹀彿鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:export')")
+    @Log(title = "鐭俊璐﹀彿", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BaseSmsaccount baseSmsaccount)
+    {
+        List<BaseSmsaccount> list = baseSmsaccountService.selectBaseSmsaccountList(baseSmsaccount);
+        ExcelUtil<BaseSmsaccount> util = new ExcelUtil<BaseSmsaccount>(BaseSmsaccount.class);
+        util.exportExcel(response, list, "鐭俊璐﹀彿鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鐭俊璐﹀彿璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:query')")
+    @GetMapping(value = "/{smsacountid}")
+    public AjaxResult getInfo(@PathVariable("smsacountid") Long smsacountid)
+    {
+        return success(baseSmsaccountService.selectBaseSmsaccountBySmsacountid(smsacountid));
+    }
+
+    /**
+     * 鏂板鐭俊璐﹀彿
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:add')")
+    @Log(title = "鐭俊璐﹀彿", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BaseSmsaccount baseSmsaccount)
+    {
+        return toAjax(baseSmsaccountService.insertBaseSmsaccount(baseSmsaccount));
+    }
+
+    /**
+     * 淇敼鐭俊璐﹀彿
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:edit')")
+    @Log(title = "鐭俊璐﹀彿", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BaseSmsaccount baseSmsaccount)
+    {
+        return toAjax(baseSmsaccountService.updateBaseSmsaccount(baseSmsaccount));
+    }
+
+    /**
+     * 鍒犻櫎鐭俊璐﹀彿
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:remove')")
+    @Log(title = "鐭俊璐﹀彿", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{smsacountids}")
+    public AjaxResult remove(@PathVariable Long[] smsacountids)
+    {
+        return toAjax(baseSmsaccountService.deleteBaseSmsaccountBySmsacountids(smsacountids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java
new file mode 100644
index 0000000..7816a15
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrLibIntent;
+import com.smartor.service.IIvrLibIntentService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI鎰忓浘搴揅ontroller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrlibintent")
+public class IvrLibIntentController extends BaseController
+{
+    @Autowired
+    private IIvrLibIntentService ivrLibIntentService;
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrLibIntent ivrLibIntent)
+    {
+        startPage();
+        List<IvrLibIntent> list = ivrLibIntentService.selectIvrLibIntentList(ivrLibIntent);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI鎰忓浘搴撳垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:export')")
+    @Log(title = "AI鎰忓浘搴�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrLibIntent ivrLibIntent)
+    {
+        List<IvrLibIntent> list = ivrLibIntentService.selectIvrLibIntentList(ivrLibIntent);
+        ExcelUtil<IvrLibIntent> util = new ExcelUtil<IvrLibIntent>(IvrLibIntent.class);
+        util.exportExcel(response, list, "AI鎰忓浘搴撴暟鎹�");
+    }
+
+    /**
+     * 鑾峰彇AI鎰忓浘搴撹缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:query')")
+    @GetMapping(value = "/{intentid}")
+    public AjaxResult getInfo(@PathVariable("intentid") Long intentid)
+    {
+        return success(ivrLibIntentService.selectIvrLibIntentByIntentid(intentid));
+    }
+
+    /**
+     * 鏂板AI鎰忓浘搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:add')")
+    @Log(title = "AI鎰忓浘搴�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrLibIntent ivrLibIntent)
+    {
+        return toAjax(ivrLibIntentService.insertIvrLibIntent(ivrLibIntent));
+    }
+
+    /**
+     * 淇敼AI鎰忓浘搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:edit')")
+    @Log(title = "AI鎰忓浘搴�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrLibIntent ivrLibIntent)
+    {
+        return toAjax(ivrLibIntentService.updateIvrLibIntent(ivrLibIntent));
+    }
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:remove')")
+    @Log(title = "AI鎰忓浘搴�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{intentids}")
+    public AjaxResult remove(@PathVariable Long[] intentids)
+    {
+        return toAjax(ivrLibIntentService.deleteIvrLibIntentByIntentids(intentids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java
new file mode 100644
index 0000000..d4f3572
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrLibIntentcategory;
+import com.smartor.service.IIvrLibIntentcategoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI鎰忓浘搴撳垎绫籆ontroller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrlibintentcategory")
+public class IvrLibIntentcategoryController extends BaseController
+{
+    @Autowired
+    private IIvrLibIntentcategoryService ivrLibIntentcategoryService;
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫诲垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        startPage();
+        List<IvrLibIntentcategory> list = ivrLibIntentcategoryService.selectIvrLibIntentcategoryList(ivrLibIntentcategory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI鎰忓浘搴撳垎绫诲垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:export')")
+    @Log(title = "AI鎰忓浘搴撳垎绫�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        List<IvrLibIntentcategory> list = ivrLibIntentcategoryService.selectIvrLibIntentcategoryList(ivrLibIntentcategory);
+        ExcelUtil<IvrLibIntentcategory> util = new ExcelUtil<IvrLibIntentcategory>(IvrLibIntentcategory.class);
+        util.exportExcel(response, list, "AI鎰忓浘搴撳垎绫绘暟鎹�");
+    }
+
+    /**
+     * 鑾峰彇AI鎰忓浘搴撳垎绫昏缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:query')")
+    @GetMapping(value = "/{intertcatid}")
+    public AjaxResult getInfo(@PathVariable("intertcatid") Long intertcatid)
+    {
+        return success(ivrLibIntentcategoryService.selectIvrLibIntentcategoryByIntertcatid(intertcatid));
+    }
+
+    /**
+     * 鏂板AI鎰忓浘搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:add')")
+    @Log(title = "AI鎰忓浘搴撳垎绫�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        return toAjax(ivrLibIntentcategoryService.insertIvrLibIntentcategory(ivrLibIntentcategory));
+    }
+
+    /**
+     * 淇敼AI鎰忓浘搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:edit')")
+    @Log(title = "AI鎰忓浘搴撳垎绫�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        return toAjax(ivrLibIntentcategoryService.updateIvrLibIntentcategory(ivrLibIntentcategory));
+    }
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:remove')")
+    @Log(title = "AI鎰忓浘搴撳垎绫�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{intertcatids}")
+    public AjaxResult remove(@PathVariable Long[] intertcatids)
+    {
+        return toAjax(ivrLibIntentcategoryService.deleteIvrLibIntentcategoryByIntertcatids(intertcatids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java
new file mode 100644
index 0000000..51cc817
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrLibScript;
+import com.smartor.service.IIvrLibScriptService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI璇濇湳搴揅ontroller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrlibscript")
+public class IvrLibScriptController extends BaseController
+{
+    @Autowired
+    private IIvrLibScriptService ivrLibScriptService;
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrLibScript ivrLibScript)
+    {
+        startPage();
+        List<IvrLibScript> list = ivrLibScriptService.selectIvrLibScriptList(ivrLibScript);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI璇濇湳搴撳垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:export')")
+    @Log(title = "AI璇濇湳搴�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrLibScript ivrLibScript)
+    {
+        List<IvrLibScript> list = ivrLibScriptService.selectIvrLibScriptList(ivrLibScript);
+        ExcelUtil<IvrLibScript> util = new ExcelUtil<IvrLibScript>(IvrLibScript.class);
+        util.exportExcel(response, list, "AI璇濇湳搴撴暟鎹�");
+    }
+
+    /**
+     * 鑾峰彇AI璇濇湳搴撹缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:query')")
+    @GetMapping(value = "/{scriptid}")
+    public AjaxResult getInfo(@PathVariable("scriptid") Long scriptid)
+    {
+        return success(ivrLibScriptService.selectIvrLibScriptByScriptid(scriptid));
+    }
+
+    /**
+     * 鏂板AI璇濇湳搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:add')")
+    @Log(title = "AI璇濇湳搴�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrLibScript ivrLibScript)
+    {
+        return toAjax(ivrLibScriptService.insertIvrLibScript(ivrLibScript));
+    }
+
+    /**
+     * 淇敼AI璇濇湳搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:edit')")
+    @Log(title = "AI璇濇湳搴�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrLibScript ivrLibScript)
+    {
+        return toAjax(ivrLibScriptService.updateIvrLibScript(ivrLibScript));
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:remove')")
+    @Log(title = "AI璇濇湳搴�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{scriptids}")
+    public AjaxResult remove(@PathVariable Long[] scriptids)
+    {
+        return toAjax(ivrLibScriptService.deleteIvrLibScriptByScriptids(scriptids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java
new file mode 100644
index 0000000..17a8968
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrLibScriptcategory;
+import com.smartor.service.IIvrLibScriptcategoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI璇濇湳搴撳垎绫籆ontroller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrlibscriptcategory")
+public class IvrLibScriptcategoryController extends BaseController
+{
+    @Autowired
+    private IIvrLibScriptcategoryService ivrLibScriptcategoryService;
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫诲垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        startPage();
+        List<IvrLibScriptcategory> list = ivrLibScriptcategoryService.selectIvrLibScriptcategoryList(ivrLibScriptcategory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI璇濇湳搴撳垎绫诲垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:export')")
+    @Log(title = "AI璇濇湳搴撳垎绫�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        List<IvrLibScriptcategory> list = ivrLibScriptcategoryService.selectIvrLibScriptcategoryList(ivrLibScriptcategory);
+        ExcelUtil<IvrLibScriptcategory> util = new ExcelUtil<IvrLibScriptcategory>(IvrLibScriptcategory.class);
+        util.exportExcel(response, list, "AI璇濇湳搴撳垎绫绘暟鎹�");
+    }
+
+    /**
+     * 鑾峰彇AI璇濇湳搴撳垎绫昏缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:query')")
+    @GetMapping(value = "/{categoryid}")
+    public AjaxResult getInfo(@PathVariable("categoryid") Long categoryid)
+    {
+        return success(ivrLibScriptcategoryService.selectIvrLibScriptcategoryByCategoryid(categoryid));
+    }
+
+    /**
+     * 鏂板AI璇濇湳搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:add')")
+    @Log(title = "AI璇濇湳搴撳垎绫�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        return toAjax(ivrLibScriptcategoryService.insertIvrLibScriptcategory(ivrLibScriptcategory));
+    }
+
+    /**
+     * 淇敼AI璇濇湳搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:edit')")
+    @Log(title = "AI璇濇湳搴撳垎绫�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        return toAjax(ivrLibScriptcategoryService.updateIvrLibScriptcategory(ivrLibScriptcategory));
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撳垎绫�
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:remove')")
+    @Log(title = "AI璇濇湳搴撳垎绫�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{categoryids}")
+    public AjaxResult remove(@PathVariable Long[] categoryids)
+    {
+        return toAjax(ivrLibScriptcategoryService.deleteIvrLibScriptcategoryByCategoryids(categoryids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java
new file mode 100644
index 0000000..a0b9037
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrLibScriptmodel;
+import com.smartor.service.IIvrLibScriptmodelService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI璇濇湳妯″潡Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrlibscriptmodel")
+public class IvrLibScriptmodelController extends BaseController
+{
+    @Autowired
+    private IIvrLibScriptmodelService ivrLibScriptmodelService;
+
+    /**
+     * 鏌ヨAI璇濇湳妯″潡鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        startPage();
+        List<IvrLibScriptmodel> list = ivrLibScriptmodelService.selectIvrLibScriptmodelList(ivrLibScriptmodel);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI璇濇湳妯″潡鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:export')")
+    @Log(title = "AI璇濇湳妯″潡", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        List<IvrLibScriptmodel> list = ivrLibScriptmodelService.selectIvrLibScriptmodelList(ivrLibScriptmodel);
+        ExcelUtil<IvrLibScriptmodel> util = new ExcelUtil<IvrLibScriptmodel>(IvrLibScriptmodel.class);
+        util.exportExcel(response, list, "AI璇濇湳妯″潡鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI璇濇湳妯″潡璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:query')")
+    @GetMapping(value = "/{modelid}")
+    public AjaxResult getInfo(@PathVariable("modelid") Long modelid)
+    {
+        return success(ivrLibScriptmodelService.selectIvrLibScriptmodelByModelid(modelid));
+    }
+
+    /**
+     * 鏂板AI璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:add')")
+    @Log(title = "AI璇濇湳妯″潡", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        return toAjax(ivrLibScriptmodelService.insertIvrLibScriptmodel(ivrLibScriptmodel));
+    }
+
+    /**
+     * 淇敼AI璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:edit')")
+    @Log(title = "AI璇濇湳妯″潡", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        return toAjax(ivrLibScriptmodelService.updateIvrLibScriptmodel(ivrLibScriptmodel));
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:remove')")
+    @Log(title = "AI璇濇湳妯″潡", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{modelids}")
+    public AjaxResult remove(@PathVariable Long[] modelids)
+    {
+        return toAjax(ivrLibScriptmodelService.deleteIvrLibScriptmodelByModelids(modelids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java
new file mode 100644
index 0000000..5cdca3c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrScene;
+import com.smartor.service.IIvrSceneService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠鍦烘櫙绠$悊Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrscene")
+public class IvrSceneController extends BaseController
+{
+    @Autowired
+    private IIvrSceneService ivrSceneService;
+
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrScene ivrScene)
+    {
+        startPage();
+        List<IvrScene> list = ivrSceneService.selectIvrSceneList(ivrScene);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠鍦烘櫙绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:export')")
+    @Log(title = "AI澶栧懠鍦烘櫙绠$悊", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrScene ivrScene)
+    {
+        List<IvrScene> list = ivrSceneService.selectIvrSceneList(ivrScene);
+        ExcelUtil<IvrScene> util = new ExcelUtil<IvrScene>(IvrScene.class);
+        util.exportExcel(response, list, "AI澶栧懠鍦烘櫙绠$悊鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠鍦烘櫙绠$悊璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:query')")
+    @GetMapping(value = "/{sceneid}")
+    public AjaxResult getInfo(@PathVariable("sceneid") Long sceneid)
+    {
+        return success(ivrSceneService.selectIvrSceneBySceneid(sceneid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠鍦烘櫙绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:add')")
+    @Log(title = "AI澶栧懠鍦烘櫙绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrScene ivrScene)
+    {
+        return toAjax(ivrSceneService.insertIvrScene(ivrScene));
+    }
+
+    /**
+     * 淇敼AI澶栧懠鍦烘櫙绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:edit')")
+    @Log(title = "AI澶栧懠鍦烘櫙绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrScene ivrScene)
+    {
+        return toAjax(ivrSceneService.updateIvrScene(ivrScene));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍦烘櫙绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:remove')")
+    @Log(title = "AI澶栧懠鍦烘櫙绠$悊", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{sceneids}")
+    public AjaxResult remove(@PathVariable Long[] sceneids)
+    {
+        return toAjax(ivrSceneService.deleteIvrSceneBySceneids(sceneids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java
new file mode 100644
index 0000000..2d22615
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneExecuteconfig;
+import com.smartor.service.IIvrSceneExecuteconfigService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠鎵ц閰嶇疆Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrexecuteconfig")
+public class IvrSceneExecuteconfigController extends BaseController
+{
+    @Autowired
+    private IIvrSceneExecuteconfigService ivrSceneExecuteconfigService;
+
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        startPage();
+        List<IvrSceneExecuteconfig> list = ivrSceneExecuteconfigService.selectIvrSceneExecuteconfigList(ivrSceneExecuteconfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠鎵ц閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:export')")
+    @Log(title = "AI澶栧懠鎵ц閰嶇疆", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        List<IvrSceneExecuteconfig> list = ivrSceneExecuteconfigService.selectIvrSceneExecuteconfigList(ivrSceneExecuteconfig);
+        ExcelUtil<IvrSceneExecuteconfig> util = new ExcelUtil<IvrSceneExecuteconfig>(IvrSceneExecuteconfig.class);
+        util.exportExcel(response, list, "AI澶栧懠鎵ц閰嶇疆鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠鎵ц閰嶇疆璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:query')")
+    @GetMapping(value = "/{scenecfgid}")
+    public AjaxResult getInfo(@PathVariable("scenecfgid") Long scenecfgid)
+    {
+        return success(ivrSceneExecuteconfigService.selectIvrSceneExecuteconfigByScenecfgid(scenecfgid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠鎵ц閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:add')")
+    @Log(title = "AI澶栧懠鎵ц閰嶇疆", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        return toAjax(ivrSceneExecuteconfigService.insertIvrSceneExecuteconfig(ivrSceneExecuteconfig));
+    }
+
+    /**
+     * 淇敼AI澶栧懠鎵ц閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:edit')")
+    @Log(title = "AI澶栧懠鎵ц閰嶇疆", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        return toAjax(ivrSceneExecuteconfigService.updateIvrSceneExecuteconfig(ivrSceneExecuteconfig));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎵ц閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:remove')")
+    @Log(title = "AI澶栧懠鎵ц閰嶇疆", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{scenecfgids}")
+    public AjaxResult remove(@PathVariable Long[] scenecfgids)
+    {
+        return toAjax(ivrSceneExecuteconfigService.deleteIvrSceneExecuteconfigByScenecfgids(scenecfgids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java
new file mode 100644
index 0000000..87c2999
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneFlow;
+import com.smartor.service.IIvrSceneFlowService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠娴佺▼Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrflow")
+public class IvrSceneFlowController extends BaseController
+{
+    @Autowired
+    private IIvrSceneFlowService ivrSceneFlowService;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneFlow ivrSceneFlow)
+    {
+        startPage();
+        List<IvrSceneFlow> list = ivrSceneFlowService.selectIvrSceneFlowList(ivrSceneFlow);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠娴佺▼鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:export')")
+    @Log(title = "AI澶栧懠娴佺▼", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneFlow ivrSceneFlow)
+    {
+        List<IvrSceneFlow> list = ivrSceneFlowService.selectIvrSceneFlowList(ivrSceneFlow);
+        ExcelUtil<IvrSceneFlow> util = new ExcelUtil<IvrSceneFlow>(IvrSceneFlow.class);
+        util.exportExcel(response, list, "AI澶栧懠娴佺▼鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠娴佺▼璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:query')")
+    @GetMapping(value = "/{flowid}")
+    public AjaxResult getInfo(@PathVariable("flowid") Long flowid)
+    {
+        return success(ivrSceneFlowService.selectIvrSceneFlowByFlowid(flowid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:add')")
+    @Log(title = "AI澶栧懠娴佺▼", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneFlow ivrSceneFlow)
+    {
+        return toAjax(ivrSceneFlowService.insertIvrSceneFlow(ivrSceneFlow));
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:edit')")
+    @Log(title = "AI澶栧懠娴佺▼", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneFlow ivrSceneFlow)
+    {
+        return toAjax(ivrSceneFlowService.updateIvrSceneFlow(ivrSceneFlow));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:remove')")
+    @Log(title = "AI澶栧懠娴佺▼", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{flowids}")
+    public AjaxResult remove(@PathVariable Long[] flowids)
+    {
+        return toAjax(ivrSceneFlowService.deleteIvrSceneFlowByFlowids(flowids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java
new file mode 100644
index 0000000..8779f5c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneFlownode;
+import com.smartor.service.IIvrSceneFlownodeService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrflownode")
+public class IvrSceneFlownodeController extends BaseController
+{
+    @Autowired
+    private IIvrSceneFlownodeService ivrSceneFlownodeService;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneFlownode ivrSceneFlownode)
+    {
+        startPage();
+        List<IvrSceneFlownode> list = ivrSceneFlownodeService.selectIvrSceneFlownodeList(ivrSceneFlownode);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠娴佺▼鑺傜偣鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:export')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneFlownode ivrSceneFlownode)
+    {
+        List<IvrSceneFlownode> list = ivrSceneFlownodeService.selectIvrSceneFlownodeList(ivrSceneFlownode);
+        ExcelUtil<IvrSceneFlownode> util = new ExcelUtil<IvrSceneFlownode>(IvrSceneFlownode.class);
+        util.exportExcel(response, list, "AI澶栧懠娴佺▼鑺傜偣鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠娴佺▼鑺傜偣璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:query')")
+    @GetMapping(value = "/{flownodeid}")
+    public AjaxResult getInfo(@PathVariable("flownodeid") Long flownodeid)
+    {
+        return success(ivrSceneFlownodeService.selectIvrSceneFlownodeByFlownodeid(flownodeid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:add')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneFlownode ivrSceneFlownode)
+    {
+        return toAjax(ivrSceneFlownodeService.insertIvrSceneFlownode(ivrSceneFlownode));
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:edit')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneFlownode ivrSceneFlownode)
+    {
+        return toAjax(ivrSceneFlownodeService.updateIvrSceneFlownode(ivrSceneFlownode));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:remove')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{flownodeids}")
+    public AjaxResult remove(@PathVariable Long[] flownodeids)
+    {
+        return toAjax(ivrSceneFlownodeService.deleteIvrSceneFlownodeByFlownodeids(flownodeids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java
new file mode 100644
index 0000000..4ca0c52
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneFlownodebranch;
+import com.smartor.service.IIvrSceneFlownodebranchService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣鍒嗘敮Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrflownodebranch")
+public class IvrSceneFlownodebranchController extends BaseController
+{
+    @Autowired
+    private IIvrSceneFlownodebranchService ivrSceneFlownodebranchService;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        startPage();
+        List<IvrSceneFlownodebranch> list = ivrSceneFlownodebranchService.selectIvrSceneFlownodebranchList(ivrSceneFlownodebranch);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠娴佺▼鑺傜偣鍒嗘敮鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:export')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣鍒嗘敮", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        List<IvrSceneFlownodebranch> list = ivrSceneFlownodebranchService.selectIvrSceneFlownodebranchList(ivrSceneFlownodebranch);
+        ExcelUtil<IvrSceneFlownodebranch> util = new ExcelUtil<IvrSceneFlownodebranch>(IvrSceneFlownodebranch.class);
+        util.exportExcel(response, list, "AI澶栧懠娴佺▼鑺傜偣鍒嗘敮鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠娴佺▼鑺傜偣鍒嗘敮璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:query')")
+    @GetMapping(value = "/{branchid}")
+    public AjaxResult getInfo(@PathVariable("branchid") Long branchid)
+    {
+        return success(ivrSceneFlownodebranchService.selectIvrSceneFlownodebranchByBranchid(branchid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:add')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣鍒嗘敮", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        return toAjax(ivrSceneFlownodebranchService.insertIvrSceneFlownodebranch(ivrSceneFlownodebranch));
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:edit')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣鍒嗘敮", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        return toAjax(ivrSceneFlownodebranchService.updateIvrSceneFlownodebranch(ivrSceneFlownodebranch));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:remove')")
+    @Log(title = "AI澶栧懠娴佺▼鑺傜偣鍒嗘敮", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{branchids}")
+    public AjaxResult remove(@PathVariable Long[] branchids)
+    {
+        return toAjax(ivrSceneFlownodebranchService.deleteIvrSceneFlownodebranchByBranchids(branchids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java
new file mode 100644
index 0000000..fe1f67c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneGlobalconfig;
+import com.smartor.service.IIvrSceneGlobalconfigService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠鍏ㄥ眬閰嶇疆Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrglobalconfig")
+public class IvrSceneGlobalconfigController extends BaseController
+{
+    @Autowired
+    private IIvrSceneGlobalconfigService ivrSceneGlobalconfigService;
+
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        startPage();
+        List<IvrSceneGlobalconfig> list = ivrSceneGlobalconfigService.selectIvrSceneGlobalconfigList(ivrSceneGlobalconfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠鍏ㄥ眬閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:export')")
+    @Log(title = "AI澶栧懠鍏ㄥ眬閰嶇疆", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        List<IvrSceneGlobalconfig> list = ivrSceneGlobalconfigService.selectIvrSceneGlobalconfigList(ivrSceneGlobalconfig);
+        ExcelUtil<IvrSceneGlobalconfig> util = new ExcelUtil<IvrSceneGlobalconfig>(IvrSceneGlobalconfig.class);
+        util.exportExcel(response, list, "AI澶栧懠鍏ㄥ眬閰嶇疆鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠鍏ㄥ眬閰嶇疆璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:query')")
+    @GetMapping(value = "/{gblconfigid}")
+    public AjaxResult getInfo(@PathVariable("gblconfigid") Long gblconfigid)
+    {
+        return success(ivrSceneGlobalconfigService.selectIvrSceneGlobalconfigByGblconfigid(gblconfigid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:add')")
+    @Log(title = "AI澶栧懠鍏ㄥ眬閰嶇疆", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        return toAjax(ivrSceneGlobalconfigService.insertIvrSceneGlobalconfig(ivrSceneGlobalconfig));
+    }
+
+    /**
+     * 淇敼AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:edit')")
+    @Log(title = "AI澶栧懠鍏ㄥ眬閰嶇疆", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        return toAjax(ivrSceneGlobalconfigService.updateIvrSceneGlobalconfig(ivrSceneGlobalconfig));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:remove')")
+    @Log(title = "AI澶栧懠鍏ㄥ眬閰嶇疆", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{gblconfigids}")
+    public AjaxResult remove(@PathVariable Long[] gblconfigids)
+    {
+        return toAjax(ivrSceneGlobalconfigService.deleteIvrSceneGlobalconfigByGblconfigids(gblconfigids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java
new file mode 100644
index 0000000..a1c9243
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneIntent;
+import com.smartor.service.IIvrSceneIntentService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠鎰忓浘Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrintent")
+public class IvrSceneIntentController extends BaseController
+{
+    @Autowired
+    private IIvrSceneIntentService ivrSceneIntentService;
+
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneIntent ivrSceneIntent)
+    {
+        startPage();
+        List<IvrSceneIntent> list = ivrSceneIntentService.selectIvrSceneIntentList(ivrSceneIntent);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠鎰忓浘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:export')")
+    @Log(title = "AI澶栧懠鎰忓浘", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneIntent ivrSceneIntent)
+    {
+        List<IvrSceneIntent> list = ivrSceneIntentService.selectIvrSceneIntentList(ivrSceneIntent);
+        ExcelUtil<IvrSceneIntent> util = new ExcelUtil<IvrSceneIntent>(IvrSceneIntent.class);
+        util.exportExcel(response, list, "AI澶栧懠鎰忓浘鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠鎰忓浘璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:query')")
+    @GetMapping(value = "/{sceneintentid}")
+    public AjaxResult getInfo(@PathVariable("sceneintentid") Long sceneintentid)
+    {
+        return success(ivrSceneIntentService.selectIvrSceneIntentBySceneintentid(sceneintentid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠鎰忓浘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:add')")
+    @Log(title = "AI澶栧懠鎰忓浘", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneIntent ivrSceneIntent)
+    {
+        return toAjax(ivrSceneIntentService.insertIvrSceneIntent(ivrSceneIntent));
+    }
+
+    /**
+     * 淇敼AI澶栧懠鎰忓浘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:edit')")
+    @Log(title = "AI澶栧懠鎰忓浘", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneIntent ivrSceneIntent)
+    {
+        return toAjax(ivrSceneIntentService.updateIvrSceneIntent(ivrSceneIntent));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎰忓浘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:remove')")
+    @Log(title = "AI澶栧懠鎰忓浘", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{sceneintentids}")
+    public AjaxResult remove(@PathVariable Long[] sceneintentids)
+    {
+        return toAjax(ivrSceneIntentService.deleteIvrSceneIntentBySceneintentids(sceneintentids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java
new file mode 100644
index 0000000..79ea468
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneRecall;
+import com.smartor.service.IIvrSceneRecallService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠閲嶆嫧閰嶇疆Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrrecall")
+public class IvrSceneRecallController extends BaseController
+{
+    @Autowired
+    private IIvrSceneRecallService ivrSceneRecallService;
+
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneRecall ivrSceneRecall)
+    {
+        startPage();
+        List<IvrSceneRecall> list = ivrSceneRecallService.selectIvrSceneRecallList(ivrSceneRecall);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠閲嶆嫧閰嶇疆鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:export')")
+    @Log(title = "AI澶栧懠閲嶆嫧閰嶇疆", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneRecall ivrSceneRecall)
+    {
+        List<IvrSceneRecall> list = ivrSceneRecallService.selectIvrSceneRecallList(ivrSceneRecall);
+        ExcelUtil<IvrSceneRecall> util = new ExcelUtil<IvrSceneRecall>(IvrSceneRecall.class);
+        util.exportExcel(response, list, "AI澶栧懠閲嶆嫧閰嶇疆鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠閲嶆嫧閰嶇疆璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:query')")
+    @GetMapping(value = "/{recallid}")
+    public AjaxResult getInfo(@PathVariable("recallid") Long recallid)
+    {
+        return success(ivrSceneRecallService.selectIvrSceneRecallByRecallid(recallid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:add')")
+    @Log(title = "AI澶栧懠閲嶆嫧閰嶇疆", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneRecall ivrSceneRecall)
+    {
+        return toAjax(ivrSceneRecallService.insertIvrSceneRecall(ivrSceneRecall));
+    }
+
+    /**
+     * 淇敼AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:edit')")
+    @Log(title = "AI澶栧懠閲嶆嫧閰嶇疆", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneRecall ivrSceneRecall)
+    {
+        return toAjax(ivrSceneRecallService.updateIvrSceneRecall(ivrSceneRecall));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:remove')")
+    @Log(title = "AI澶栧懠閲嶆嫧閰嶇疆", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{recallids}")
+    public AjaxResult remove(@PathVariable Long[] recallids)
+    {
+        return toAjax(ivrSceneRecallService.deleteIvrSceneRecallByRecallids(recallids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java
new file mode 100644
index 0000000..34a2f12
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneScript;
+import com.smartor.service.IIvrSceneScriptService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠璇濇湳Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrscript")
+public class IvrSceneScriptController extends BaseController
+{
+    @Autowired
+    private IIvrSceneScriptService ivrSceneScriptService;
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneScript ivrSceneScript)
+    {
+        startPage();
+        List<IvrSceneScript> list = ivrSceneScriptService.selectIvrSceneScriptList(ivrSceneScript);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠璇濇湳鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:export')")
+    @Log(title = "AI澶栧懠璇濇湳", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneScript ivrSceneScript)
+    {
+        List<IvrSceneScript> list = ivrSceneScriptService.selectIvrSceneScriptList(ivrSceneScript);
+        ExcelUtil<IvrSceneScript> util = new ExcelUtil<IvrSceneScript>(IvrSceneScript.class);
+        util.exportExcel(response, list, "AI澶栧懠璇濇湳鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠璇濇湳璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:query')")
+    @GetMapping(value = "/{scenescrid}")
+    public AjaxResult getInfo(@PathVariable("scenescrid") Long scenescrid)
+    {
+        return success(ivrSceneScriptService.selectIvrSceneScriptByScenescrid(scenescrid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:add')")
+    @Log(title = "AI澶栧懠璇濇湳", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneScript ivrSceneScript)
+    {
+        return toAjax(ivrSceneScriptService.insertIvrSceneScript(ivrSceneScript));
+    }
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:edit')")
+    @Log(title = "AI澶栧懠璇濇湳", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneScript ivrSceneScript)
+    {
+        return toAjax(ivrSceneScriptService.updateIvrSceneScript(ivrSceneScript));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:remove')")
+    @Log(title = "AI澶栧懠璇濇湳", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{scenescrids}")
+    public AjaxResult remove(@PathVariable Long[] scenescrids)
+    {
+        return toAjax(ivrSceneScriptService.deleteIvrSceneScriptByScenescrids(scenescrids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java
new file mode 100644
index 0000000..8c4b668
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrSceneScriptmodel;
+import com.smartor.service.IIvrSceneScriptmodelService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI澶栧懠璇濇湳妯″潡Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrscriptmodel")
+public class IvrSceneScriptmodelController extends BaseController
+{
+    @Autowired
+    private IIvrSceneScriptmodelService ivrSceneScriptmodelService;
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        startPage();
+        List<IvrSceneScriptmodel> list = ivrSceneScriptmodelService.selectIvrSceneScriptmodelList(ivrSceneScriptmodel);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI澶栧懠璇濇湳妯″潡鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:export')")
+    @Log(title = "AI澶栧懠璇濇湳妯″潡", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        List<IvrSceneScriptmodel> list = ivrSceneScriptmodelService.selectIvrSceneScriptmodelList(ivrSceneScriptmodel);
+        ExcelUtil<IvrSceneScriptmodel> util = new ExcelUtil<IvrSceneScriptmodel>(IvrSceneScriptmodel.class);
+        util.exportExcel(response, list, "AI澶栧懠璇濇湳妯″潡鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI澶栧懠璇濇湳妯″潡璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:query')")
+    @GetMapping(value = "/{scenemodid}")
+    public AjaxResult getInfo(@PathVariable("scenemodid") Long scenemodid)
+    {
+        return success(ivrSceneScriptmodelService.selectIvrSceneScriptmodelByScenemodid(scenemodid));
+    }
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:add')")
+    @Log(title = "AI澶栧懠璇濇湳妯″潡", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        return toAjax(ivrSceneScriptmodelService.insertIvrSceneScriptmodel(ivrSceneScriptmodel));
+    }
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:edit')")
+    @Log(title = "AI澶栧懠璇濇湳妯″潡", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        return toAjax(ivrSceneScriptmodelService.updateIvrSceneScriptmodel(ivrSceneScriptmodel));
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳妯″潡
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:remove')")
+    @Log(title = "AI澶栧懠璇濇湳妯″潡", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{scenemodids}")
+    public AjaxResult remove(@PathVariable Long[] scenemodids)
+    {
+        return toAjax(ivrSceneScriptmodelService.deleteIvrSceneScriptmodelByScenemodids(scenemodids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java
new file mode 100644
index 0000000..529640b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.IvrScenecategory;
+import com.smartor.service.IIvrScenecategoryService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/ivrscenecategory")
+public class IvrScenecategoryController extends BaseController
+{
+    @Autowired
+    private IIvrScenecategoryService ivrScenecategoryService;
+
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(IvrScenecategory ivrScenecategory)
+    {
+        startPage();
+        List<IvrScenecategory> list = ivrScenecategoryService.selectIvrScenecategoryList(ivrScenecategory);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:export')")
+    @Log(title = "AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IvrScenecategory ivrScenecategory)
+    {
+        List<IvrScenecategory> list = ivrScenecategoryService.selectIvrScenecategoryList(ivrScenecategory);
+        ExcelUtil<IvrScenecategory> util = new ExcelUtil<IvrScenecategory>(IvrScenecategory.class);
+        util.exportExcel(response, list, "AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:query')")
+    @GetMapping(value = "/{scenecatid}")
+    public AjaxResult getInfo(@PathVariable("scenecatid") Long scenecatid)
+    {
+        return success(ivrScenecategoryService.selectIvrScenecategoryByScenecatid(scenecatid));
+    }
+
+    /**
+     * 鏂板AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:add')")
+    @Log(title = "AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody IvrScenecategory ivrScenecategory)
+    {
+        return toAjax(ivrScenecategoryService.insertIvrScenecategory(ivrScenecategory));
+    }
+
+    /**
+     * 淇敼AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:edit')")
+    @Log(title = "AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody IvrScenecategory ivrScenecategory)
+    {
+        return toAjax(ivrScenecategoryService.updateIvrScenecategory(ivrScenecategory));
+    }
+
+    /**
+     * 鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:remove')")
+    @Log(title = "AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{scenecatids}")
+    public AjaxResult remove(@PathVariable Long[] scenecatids)
+    {
+        return toAjax(ivrScenecategoryService.deleteIvrScenecategoryByScenecatids(scenecatids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java
new file mode 100644
index 0000000..8eae13a
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.SmsParam;
+import com.smartor.service.ISmsParamService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鐭俊鍙傛暟Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/smsparam")
+public class SmsParamController extends BaseController
+{
+    @Autowired
+    private ISmsParamService smsParamService;
+
+    /**
+     * 鏌ヨ鐭俊鍙傛暟鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SmsParam smsParam)
+    {
+        startPage();
+        List<SmsParam> list = smsParamService.selectSmsParamList(smsParam);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鐭俊鍙傛暟鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:export')")
+    @Log(title = "鐭俊鍙傛暟", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SmsParam smsParam)
+    {
+        List<SmsParam> list = smsParamService.selectSmsParamList(smsParam);
+        ExcelUtil<SmsParam> util = new ExcelUtil<SmsParam>(SmsParam.class);
+        util.exportExcel(response, list, "鐭俊鍙傛暟鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鐭俊鍙傛暟璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:query')")
+    @GetMapping(value = "/{paramid}")
+    public AjaxResult getInfo(@PathVariable("paramid") Long paramid)
+    {
+        return success(smsParamService.selectSmsParamByParamid(paramid));
+    }
+
+    /**
+     * 鏂板鐭俊鍙傛暟
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:add')")
+    @Log(title = "鐭俊鍙傛暟", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SmsParam smsParam)
+    {
+        return toAjax(smsParamService.insertSmsParam(smsParam));
+    }
+
+    /**
+     * 淇敼鐭俊鍙傛暟
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:edit')")
+    @Log(title = "鐭俊鍙傛暟", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SmsParam smsParam)
+    {
+        return toAjax(smsParamService.updateSmsParam(smsParam));
+    }
+
+    /**
+     * 鍒犻櫎鐭俊鍙傛暟
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsparam:remove')")
+    @Log(title = "鐭俊鍙傛暟", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{paramids}")
+    public AjaxResult remove(@PathVariable Long[] paramids)
+    {
+        return toAjax(smsParamService.deleteSmsParamByParamids(paramids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java
new file mode 100644
index 0000000..db31000
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.SmsRecords;
+import com.smartor.service.ISmsRecordsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鐭俊璁板綍Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/smsrecords")
+public class SmsRecordsController extends BaseController
+{
+    @Autowired
+    private ISmsRecordsService smsRecordsService;
+
+    /**
+     * 鏌ヨ鐭俊璁板綍鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SmsRecords smsRecords)
+    {
+        startPage();
+        List<SmsRecords> list = smsRecordsService.selectSmsRecordsList(smsRecords);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鐭俊璁板綍鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:export')")
+    @Log(title = "鐭俊璁板綍", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SmsRecords smsRecords)
+    {
+        List<SmsRecords> list = smsRecordsService.selectSmsRecordsList(smsRecords);
+        ExcelUtil<SmsRecords> util = new ExcelUtil<SmsRecords>(SmsRecords.class);
+        util.exportExcel(response, list, "鐭俊璁板綍鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鐭俊璁板綍璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:query')")
+    @GetMapping(value = "/{recordid}")
+    public AjaxResult getInfo(@PathVariable("recordid") Long recordid)
+    {
+        return success(smsRecordsService.selectSmsRecordsByRecordid(recordid));
+    }
+
+    /**
+     * 鏂板鐭俊璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:add')")
+    @Log(title = "鐭俊璁板綍", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SmsRecords smsRecords)
+    {
+        return toAjax(smsRecordsService.insertSmsRecords(smsRecords));
+    }
+
+    /**
+     * 淇敼鐭俊璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:edit')")
+    @Log(title = "鐭俊璁板綍", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SmsRecords smsRecords)
+    {
+        return toAjax(smsRecordsService.updateSmsRecords(smsRecords));
+    }
+
+    /**
+     * 鍒犻櫎鐭俊璁板綍
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:remove')")
+    @Log(title = "鐭俊璁板綍", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{recordids}")
+    public AjaxResult remove(@PathVariable Long[] recordids)
+    {
+        return toAjax(smsRecordsService.deleteSmsRecordsByRecordids(recordids));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java
new file mode 100644
index 0000000..49e4ad8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java
@@ -0,0 +1,104 @@
+package com.smartor.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.smartor.domain.SmsTemplet;
+import com.smartor.service.ISmsTempletService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 鐭俊妯℃澘Controller
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/smartor/smstemplet")
+public class SmsTempletController extends BaseController
+{
+    @Autowired
+    private ISmsTempletService smsTempletService;
+
+    /**
+     * 鏌ヨ鐭俊妯℃澘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SmsTemplet smsTemplet)
+    {
+        startPage();
+        List<SmsTemplet> list = smsTempletService.selectSmsTempletList(smsTemplet);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鐭俊妯℃澘鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:export')")
+    @Log(title = "鐭俊妯℃澘", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SmsTemplet smsTemplet)
+    {
+        List<SmsTemplet> list = smsTempletService.selectSmsTempletList(smsTemplet);
+        ExcelUtil<SmsTemplet> util = new ExcelUtil<SmsTemplet>(SmsTemplet.class);
+        util.exportExcel(response, list, "鐭俊妯℃澘鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鐭俊妯℃澘璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:query')")
+    @GetMapping(value = "/{templetid}")
+    public AjaxResult getInfo(@PathVariable("templetid") Long templetid)
+    {
+        return success(smsTempletService.selectSmsTempletByTempletid(templetid));
+    }
+
+    /**
+     * 鏂板鐭俊妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:add')")
+    @Log(title = "鐭俊妯℃澘", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SmsTemplet smsTemplet)
+    {
+        return toAjax(smsTempletService.insertSmsTemplet(smsTemplet));
+    }
+
+    /**
+     * 淇敼鐭俊妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:edit')")
+    @Log(title = "鐭俊妯℃澘", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SmsTemplet smsTemplet)
+    {
+        return toAjax(smsTempletService.updateSmsTemplet(smsTemplet));
+    }
+
+    /**
+     * 鍒犻櫎鐭俊妯℃澘
+     */
+    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:remove')")
+    @Log(title = "鐭俊妯℃澘", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{templetids}")
+    public AjaxResult remove(@PathVariable Long[] templetids)
+    {
+        return toAjax(smsTempletService.deleteSmsTempletByTempletids(templetids));
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/BaseSmsaccount.java b/smartor/src/main/java/com/smartor/domain/BaseSmsaccount.java
new file mode 100644
index 0000000..1f9588d
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/BaseSmsaccount.java
@@ -0,0 +1,156 @@
+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;
+
+/**
+ * 鐭俊璐﹀彿瀵硅薄 base_smsaccount
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class BaseSmsaccount extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long smsacountid;
+
+    /**  鏍囩鍚嶇О  */
+    @Excel(name = " 鏍囩鍚嶇О ")
+    private String smsname;
+
+    /**  骞冲彴璐﹀彿  */
+    @Excel(name = " 骞冲彴璐﹀彿 ")
+    private String account;
+
+    /**  骞冲彴瀵嗙爜  */
+    @Excel(name = " 骞冲彴瀵嗙爜 ")
+    private String password;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  鏄惁寮�鍚�  */
+    @Excel(name = " 鏄惁寮�鍚� ")
+    private Long isenable;
+
+    public void setSmsacountid(Long smsacountid) 
+    {
+        this.smsacountid = smsacountid;
+    }
+
+    public Long getSmsacountid() 
+    {
+        return smsacountid;
+    }
+    public void setSmsname(String smsname) 
+    {
+        this.smsname = smsname;
+    }
+
+    public String getSmsname() 
+    {
+        return smsname;
+    }
+    public void setAccount(String account) 
+    {
+        this.account = account;
+    }
+
+    public String getAccount() 
+    {
+        return account;
+    }
+    public void setPassword(String password) 
+    {
+        this.password = password;
+    }
+
+    public String getPassword() 
+    {
+        return password;
+    }
+    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 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 setIsenable(Long isenable) 
+    {
+        this.isenable = isenable;
+    }
+
+    public Long getIsenable() 
+    {
+        return isenable;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("smsacountid", getSmsacountid())
+            .append("smsname", getSmsname())
+            .append("account", getAccount())
+            .append("password", getPassword())
+            .append("remark", getRemark())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("isenable", getIsenable())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibIntent.java b/smartor/src/main/java/com/smartor/domain/IvrLibIntent.java
new file mode 100644
index 0000000..8ae2359
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibIntent.java
@@ -0,0 +1,155 @@
+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;
+
+/**
+ * AI鎰忓浘搴撳璞� ivr_lib_intent
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrLibIntent extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long intentid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鎰忓浘鍚嶇О  */
+    @Excel(name = " 鎰忓浘鍚嶇О ")
+    private String intentionname;
+
+    /**  鍒嗙被ID  */
+    @Excel(name = " 鍒嗙被ID ")
+    private Long categoryid;
+
+    /**  鎰忓浘鍒嗙被鍚嶇О  */
+    @Excel(name = " 鎰忓浘鍒嗙被鍚嶇О ")
+    private String categoryname;
+
+    /**  鎰忓浘鍏抽敭瀛楋紙姝e垯锛�  */
+    @Excel(name = " 鎰忓浘鍏抽敭瀛�", readConverterExp = "姝�=鍒�")
+    private String intentionword;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setIntentid(Long intentid) 
+    {
+        this.intentid = intentid;
+    }
+
+    public Long getIntentid() 
+    {
+        return intentid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setIntentionname(String intentionname) 
+    {
+        this.intentionname = intentionname;
+    }
+
+    public String getIntentionname() 
+    {
+        return intentionname;
+    }
+    public void setCategoryid(Long categoryid) 
+    {
+        this.categoryid = categoryid;
+    }
+
+    public Long getCategoryid() 
+    {
+        return categoryid;
+    }
+    public void setCategoryname(String categoryname) 
+    {
+        this.categoryname = categoryname;
+    }
+
+    public String getCategoryname() 
+    {
+        return categoryname;
+    }
+    public void setIntentionword(String intentionword) 
+    {
+        this.intentionword = intentionword;
+    }
+
+    public String getIntentionword() 
+    {
+        return intentionword;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("intentid", getIntentid())
+            .append("orgid", getOrgid())
+            .append("intentionname", getIntentionname())
+            .append("categoryid", getCategoryid())
+            .append("categoryname", getCategoryname())
+            .append("intentionword", getIntentionword())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibIntentcategory.java b/smartor/src/main/java/com/smartor/domain/IvrLibIntentcategory.java
new file mode 100644
index 0000000..009b311
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibIntentcategory.java
@@ -0,0 +1,113 @@
+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;
+
+/**
+ * AI鎰忓浘搴撳垎绫诲璞� ivr_lib_intentcategory
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrLibIntentcategory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long intertcatid;
+
+    /**  鍒嗙被鍚嶇О  */
+    @Excel(name = " 鍒嗙被鍚嶇О ")
+    private String categoryname;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setIntertcatid(Long intertcatid) 
+    {
+        this.intertcatid = intertcatid;
+    }
+
+    public Long getIntertcatid() 
+    {
+        return intertcatid;
+    }
+    public void setCategoryname(String categoryname) 
+    {
+        this.categoryname = categoryname;
+    }
+
+    public String getCategoryname() 
+    {
+        return categoryname;
+    }
+    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 setIsupload(Long isupload) 
+    {
+        this.isupload = isupload;
+    }
+
+    public Long getIsupload() 
+    {
+        return isupload;
+    }
+    public void setUploadTime(Date uploadTime) 
+    {
+        this.uploadTime = uploadTime;
+    }
+
+    public Date getUploadTime() 
+    {
+        return uploadTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("intertcatid", getIntertcatid())
+            .append("categoryname", getCategoryname())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibScript.java b/smartor/src/main/java/com/smartor/domain/IvrLibScript.java
new file mode 100644
index 0000000..01752f3
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibScript.java
@@ -0,0 +1,183 @@
+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;
+
+/**
+ * AI璇濇湳搴撳璞� ivr_lib_script
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrLibScript extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long scriptid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒嗙被  */
+    @Excel(name = " 鍒嗙被 ")
+    private Long categoryid;
+
+    /**  鍒嗙被鍚嶇О  */
+    @Excel(name = " 鍒嗙被鍚嶇О ")
+    private String categoryname;
+
+    /**  璇濇湳鍐呭锛堝畬鏁达級  */
+    @Excel(name = " 璇濇湳鍐呭", readConverterExp = "瀹�=鏁�")
+    private String speakbody;
+
+    /**  璇濇湳鏂囦欢璺緞锛堝畬鏁达級  */
+    @Excel(name = " 璇濇湳鏂囦欢璺緞", readConverterExp = "瀹�=鏁�")
+    private String speakfilepath;
+
+    /**  鏄惁鍏ㄥ眬銆�0鍚�1鏄��  */
+    @Excel(name = " 鏄惁鍏ㄥ眬銆�0鍚�1鏄�� ")
+    private Long isall;
+
+    /**  璇濇湳鍚嶇О  */
+    @Excel(name = " 璇濇湳鍚嶇О ")
+    private String speakname;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setScriptid(Long scriptid) 
+    {
+        this.scriptid = scriptid;
+    }
+
+    public Long getScriptid() 
+    {
+        return scriptid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setCategoryid(Long categoryid) 
+    {
+        this.categoryid = categoryid;
+    }
+
+    public Long getCategoryid() 
+    {
+        return categoryid;
+    }
+    public void setCategoryname(String categoryname) 
+    {
+        this.categoryname = categoryname;
+    }
+
+    public String getCategoryname() 
+    {
+        return categoryname;
+    }
+    public void setSpeakbody(String speakbody) 
+    {
+        this.speakbody = speakbody;
+    }
+
+    public String getSpeakbody() 
+    {
+        return speakbody;
+    }
+    public void setSpeakfilepath(String speakfilepath) 
+    {
+        this.speakfilepath = speakfilepath;
+    }
+
+    public String getSpeakfilepath() 
+    {
+        return speakfilepath;
+    }
+    public void setIsall(Long isall) 
+    {
+        this.isall = isall;
+    }
+
+    public Long getIsall() 
+    {
+        return isall;
+    }
+    public void setSpeakname(String speakname) 
+    {
+        this.speakname = speakname;
+    }
+
+    public String getSpeakname() 
+    {
+        return speakname;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scriptid", getScriptid())
+            .append("orgid", getOrgid())
+            .append("categoryid", getCategoryid())
+            .append("categoryname", getCategoryname())
+            .append("speakbody", getSpeakbody())
+            .append("speakfilepath", getSpeakfilepath())
+            .append("isall", getIsall())
+            .append("speakname", getSpeakname())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibScriptcategory.java b/smartor/src/main/java/com/smartor/domain/IvrLibScriptcategory.java
new file mode 100644
index 0000000..5b47c17
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibScriptcategory.java
@@ -0,0 +1,113 @@
+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;
+
+/**
+ * AI璇濇湳搴撳垎绫诲璞� ivr_lib_scriptcategory
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrLibScriptcategory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long categoryid;
+
+    /**  鍒嗙被鍚嶇О  */
+    @Excel(name = " 鍒嗙被鍚嶇О ")
+    private String categoryname;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setCategoryid(Long categoryid) 
+    {
+        this.categoryid = categoryid;
+    }
+
+    public Long getCategoryid() 
+    {
+        return categoryid;
+    }
+    public void setCategoryname(String categoryname) 
+    {
+        this.categoryname = categoryname;
+    }
+
+    public String getCategoryname() 
+    {
+        return categoryname;
+    }
+    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 setIsupload(Long isupload) 
+    {
+        this.isupload = isupload;
+    }
+
+    public Long getIsupload() 
+    {
+        return isupload;
+    }
+    public void setUploadTime(Date uploadTime) 
+    {
+        this.uploadTime = uploadTime;
+    }
+
+    public Date getUploadTime() 
+    {
+        return uploadTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("categoryid", getCategoryid())
+            .append("categoryname", getCategoryname())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibScriptmodel.java b/smartor/src/main/java/com/smartor/domain/IvrLibScriptmodel.java
new file mode 100644
index 0000000..a7ee2b0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibScriptmodel.java
@@ -0,0 +1,253 @@
+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;
+
+/**
+ * AI璇濇湳妯″潡瀵硅薄 ivr_lib_scriptmodel
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrLibScriptmodel extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long modelid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  璇濇湳ID  */
+    @Excel(name = " 璇濇湳ID ")
+    private Long scriptid;
+
+    /**  璇濇湳绫诲瀷銆�0:鏅�氳瘽鏈� 1:鍙橀噺璇濇湳銆�  */
+    @Excel(name = " 璇濇湳绫诲瀷銆�0:鏅�氳瘽鏈� 1:鍙橀噺璇濇湳銆� ")
+    private Long speaktype;
+
+    /**  璇濇湳鍐呭  */
+    @Excel(name = " 璇濇湳鍐呭 ")
+    private String speakbody;
+
+    /**  璇煶绫诲瀷銆�0:鐪熶汉褰曢煶 1:鍚堟垚璇煶銆�  */
+    @Excel(name = " 璇煶绫诲瀷銆�0:鐪熶汉褰曢煶 1:鍚堟垚璇煶銆� ")
+    private Long voicetype;
+
+    /**  璇煶鏂囦欢  */
+    @Excel(name = " 璇煶鏂囦欢 ")
+    private String speakfilepath;
+
+    /**  鍚堟垚鍘傚晢  */
+    @Excel(name = " 鍚堟垚鍘傚晢 ")
+    private String manufactor;
+
+    /**  澹伴煶绫诲瀷  */
+    @Excel(name = " 澹伴煶绫诲瀷 ")
+    private String soundtype;
+
+    /**  璇��  */
+    @Excel(name = " 璇�� ")
+    private Long speechnum;
+
+    /**  闊抽珮  */
+    @Excel(name = " 闊抽珮 ")
+    private Long pitch;
+
+    /**  闊抽噺  */
+    @Excel(name = " 闊抽噺 ")
+    private Long volume;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  鍙橀噺璇濇湳鍙橀噺  */
+    @Excel(name = " 鍙橀噺璇濇湳鍙橀噺 ")
+    private String speakvariable;
+
+    public void setModelid(Long modelid) 
+    {
+        this.modelid = modelid;
+    }
+
+    public Long getModelid() 
+    {
+        return modelid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setScriptid(Long scriptid) 
+    {
+        this.scriptid = scriptid;
+    }
+
+    public Long getScriptid() 
+    {
+        return scriptid;
+    }
+    public void setSpeaktype(Long speaktype) 
+    {
+        this.speaktype = speaktype;
+    }
+
+    public Long getSpeaktype() 
+    {
+        return speaktype;
+    }
+    public void setSpeakbody(String speakbody) 
+    {
+        this.speakbody = speakbody;
+    }
+
+    public String getSpeakbody() 
+    {
+        return speakbody;
+    }
+    public void setVoicetype(Long voicetype) 
+    {
+        this.voicetype = voicetype;
+    }
+
+    public Long getVoicetype() 
+    {
+        return voicetype;
+    }
+    public void setSpeakfilepath(String speakfilepath) 
+    {
+        this.speakfilepath = speakfilepath;
+    }
+
+    public String getSpeakfilepath() 
+    {
+        return speakfilepath;
+    }
+    public void setManufactor(String manufactor) 
+    {
+        this.manufactor = manufactor;
+    }
+
+    public String getManufactor() 
+    {
+        return manufactor;
+    }
+    public void setSoundtype(String soundtype) 
+    {
+        this.soundtype = soundtype;
+    }
+
+    public String getSoundtype() 
+    {
+        return soundtype;
+    }
+    public void setSpeechnum(Long speechnum) 
+    {
+        this.speechnum = speechnum;
+    }
+
+    public Long getSpeechnum() 
+    {
+        return speechnum;
+    }
+    public void setPitch(Long pitch) 
+    {
+        this.pitch = pitch;
+    }
+
+    public Long getPitch() 
+    {
+        return pitch;
+    }
+    public void setVolume(Long volume) 
+    {
+        this.volume = volume;
+    }
+
+    public Long getVolume() 
+    {
+        return volume;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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 setSpeakvariable(String speakvariable) 
+    {
+        this.speakvariable = speakvariable;
+    }
+
+    public String getSpeakvariable() 
+    {
+        return speakvariable;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("modelid", getModelid())
+            .append("orgid", getOrgid())
+            .append("scriptid", getScriptid())
+            .append("speaktype", getSpeaktype())
+            .append("speakbody", getSpeakbody())
+            .append("voicetype", getVoicetype())
+            .append("speakfilepath", getSpeakfilepath())
+            .append("manufactor", getManufactor())
+            .append("soundtype", getSoundtype())
+            .append("speechnum", getSpeechnum())
+            .append("pitch", getPitch())
+            .append("volume", getVolume())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("speakvariable", getSpeakvariable())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrScene.java b/smartor/src/main/java/com/smartor/domain/IvrScene.java
new file mode 100644
index 0000000..032a38b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrScene.java
@@ -0,0 +1,281 @@
+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;
+
+/**
+ * AI澶栧懠鍦烘櫙绠$悊瀵硅薄 ivr_scene
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrScene extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long sceneid;
+
+    /**  鍒嗙被ID  */
+    @Excel(name = " 鍒嗙被ID ")
+    private String categoryid;
+
+    /**  鍦烘櫙鍚嶇О  */
+    @Excel(name = " 鍦烘櫙鍚嶇О ")
+    private String scenename;
+
+    /**  鐗堟湰鍙�  */
+    @Excel(name = " 鐗堟湰鍙� ")
+    private String version;
+
+    /**  鍏宠仈ID锛堥棶鍗凤級  */
+    @Excel(name = " 鍏宠仈ID", readConverterExp = "闂�=鍗�")
+    private Long relationid;
+
+    /**  鍧愬腑ID;澶氫釜鍧愬腑閫楀彿  */
+    @Excel(name = " 鍧愬腑ID;澶氫釜鍧愬腑閫楀彿 ")
+    private String seatsid;
+
+    /**  鍦烘櫙缂栧彿;鍚屼竴鍦烘櫙鍞竴锛岀敤浜庡尯鍒嗙増鏈�  */
+    @Excel(name = " 鍦烘櫙缂栧彿;鍚屼竴鍦烘櫙鍞竴锛岀敤浜庡尯鍒嗙増鏈� ")
+    private String scenecode;
+
+    /**  鐗堟湰鏄惁鍚敤;0.鍚� 1.鏄�  */
+    @Excel(name = " 鐗堟湰鏄惁鍚敤;0.鍚� 1.鏄� ")
+    private Long versionenable;
+
+    /**  鏄惁鍚敤;0.鍚� 1.鏄�  */
+    @Excel(name = " 鏄惁鍚敤;0.鍚� 1.鏄� ")
+    private Long isenable;
+
+    /**  鏄惁鍙戝竷  */
+    @Excel(name = " 鏄惁鍙戝竷 ")
+    private String isrelease;
+
+    /**  鏈�闀挎墽琛屽懆鏈�;0-15姝f暣鏁帮紝榛樿涓�5  */
+    @Excel(name = " 鏈�闀挎墽琛屽懆鏈�;0-15姝f暣鏁帮紝榛樿涓�5 ")
+    private Long executecycle;
+
+    /**  鏄惁澶嶆牳;0.鍚� 1.鏄�  */
+    @Excel(name = " 鏄惁澶嶆牳;0.鍚� 1.鏄� ")
+    private Long isreview;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  鍙戝竷璇存槑  */
+    @Excel(name = " 鍙戝竷璇存槑 ")
+    private String releasenotes;
+
+    /**  鑽夌ID  */
+    @Excel(name = " 鑽夌ID ")
+    private Long draftid;
+
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setCategoryid(String categoryid) 
+    {
+        this.categoryid = categoryid;
+    }
+
+    public String getCategoryid() 
+    {
+        return categoryid;
+    }
+    public void setScenename(String scenename) 
+    {
+        this.scenename = scenename;
+    }
+
+    public String getScenename() 
+    {
+        return scenename;
+    }
+    public void setVersion(String version) 
+    {
+        this.version = version;
+    }
+
+    public String getVersion() 
+    {
+        return version;
+    }
+    public void setRelationid(Long relationid) 
+    {
+        this.relationid = relationid;
+    }
+
+    public Long getRelationid() 
+    {
+        return relationid;
+    }
+    public void setSeatsid(String seatsid) 
+    {
+        this.seatsid = seatsid;
+    }
+
+    public String getSeatsid() 
+    {
+        return seatsid;
+    }
+    public void setScenecode(String scenecode) 
+    {
+        this.scenecode = scenecode;
+    }
+
+    public String getScenecode() 
+    {
+        return scenecode;
+    }
+    public void setVersionenable(Long versionenable) 
+    {
+        this.versionenable = versionenable;
+    }
+
+    public Long getVersionenable() 
+    {
+        return versionenable;
+    }
+    public void setIsenable(Long isenable) 
+    {
+        this.isenable = isenable;
+    }
+
+    public Long getIsenable() 
+    {
+        return isenable;
+    }
+    public void setIsrelease(String isrelease) 
+    {
+        this.isrelease = isrelease;
+    }
+
+    public String getIsrelease() 
+    {
+        return isrelease;
+    }
+    public void setExecutecycle(Long executecycle) 
+    {
+        this.executecycle = executecycle;
+    }
+
+    public Long getExecutecycle() 
+    {
+        return executecycle;
+    }
+    public void setIsreview(Long isreview) 
+    {
+        this.isreview = isreview;
+    }
+
+    public Long getIsreview() 
+    {
+        return isreview;
+    }
+    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 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 setReleasenotes(String releasenotes) 
+    {
+        this.releasenotes = releasenotes;
+    }
+
+    public String getReleasenotes() 
+    {
+        return releasenotes;
+    }
+    public void setDraftid(Long draftid) 
+    {
+        this.draftid = draftid;
+    }
+
+    public Long getDraftid() 
+    {
+        return draftid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("sceneid", getSceneid())
+            .append("categoryid", getCategoryid())
+            .append("scenename", getScenename())
+            .append("version", getVersion())
+            .append("relationid", getRelationid())
+            .append("seatsid", getSeatsid())
+            .append("scenecode", getScenecode())
+            .append("versionenable", getVersionenable())
+            .append("isenable", getIsenable())
+            .append("isrelease", getIsrelease())
+            .append("executecycle", getExecutecycle())
+            .append("isreview", getIsreview())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("releasenotes", getReleasenotes())
+            .append("draftid", getDraftid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneExecuteconfig.java b/smartor/src/main/java/com/smartor/domain/IvrSceneExecuteconfig.java
new file mode 100644
index 0000000..a1c7cf2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneExecuteconfig.java
@@ -0,0 +1,239 @@
+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;
+
+/**
+ * AI澶栧懠鎵ц閰嶇疆瀵硅薄 ivr_scene_executeconfig
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneExecuteconfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long scenecfgid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎  */
+    @Excel(name = " 鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎 ")
+    private Long sourcetype;
+
+    /**  鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID  */
+    @Excel(name = " 鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID ")
+    private Long globalid;
+
+    /**  澶栧懠鑺傜偣ID  */
+    @Excel(name = " 澶栧懠鑺傜偣ID ")
+    private Long flownodebranchid;
+
+    /**  鎵ц绫诲瀷;0.闂嵎绛旀 1.鎮h�呮爣绛�  */
+    @Excel(name = " 鎵ц绫诲瀷;0.闂嵎绛旀 1.鎮h�呮爣绛� ")
+    private Long executetype;
+
+    /**  鎵ц鏉′欢;涓洪棶鍗锋椂濉棶鍗烽鐩�/涓烘偅鑰呮爣绛炬椂涓嶅~  */
+    @Excel(name = " 鎵ц鏉′欢;涓洪棶鍗锋椂濉棶鍗烽鐩�/涓烘偅鑰呮爣绛炬椂涓嶅~ ")
+    private String executeconditions;
+
+    /**  鎵ц缁撴灉;鍗曢�夐涓婚敭/澶氶�夐涓婚敭/濉┖棰樻枃鏈�/鏍囩涓婚敭鍙閫�/澶氶�夐�楀彿闅斿紑  */
+    @Excel(name = " 鎵ц缁撴灉;鍗曢�夐涓婚敭/澶氶�夐涓婚敭/濉┖棰樻枃鏈�/鏍囩涓婚敭鍙閫�/澶氶�夐�楀彿闅斿紑 ")
+    private String executeresult;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @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 Long sceneid;
+
+    /**  鎵ц鏉′欢浠g爜;涓洪棶鍗锋椂濉棶鍗烽鐩瓹ode  */
+    @Excel(name = " 鎵ц鏉′欢浠g爜;涓洪棶鍗锋椂濉棶鍗烽鐩瓹ode ")
+    private String executeconditionscode;
+
+    /**  鎵ц缁撴灉浠g爜;鍗曢�夐涓婚敭/澶氶�夐涓婚敭鐨勯�夐」Code  */
+    @Excel(name = " 鎵ц缁撴灉浠g爜;鍗曢�夐涓婚敭/澶氶�夐涓婚敭鐨勯�夐」Code ")
+    private String executeresultcode;
+
+    /**  娴佺▼鑺傜偣ID  */
+    @Excel(name = " 娴佺▼鑺傜偣ID ")
+    private Long flownodeid;
+
+    public void setScenecfgid(Long scenecfgid) 
+    {
+        this.scenecfgid = scenecfgid;
+    }
+
+    public Long getScenecfgid() 
+    {
+        return scenecfgid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setSourcetype(Long sourcetype) 
+    {
+        this.sourcetype = sourcetype;
+    }
+
+    public Long getSourcetype() 
+    {
+        return sourcetype;
+    }
+    public void setGlobalid(Long globalid) 
+    {
+        this.globalid = globalid;
+    }
+
+    public Long getGlobalid() 
+    {
+        return globalid;
+    }
+    public void setFlownodebranchid(Long flownodebranchid) 
+    {
+        this.flownodebranchid = flownodebranchid;
+    }
+
+    public Long getFlownodebranchid() 
+    {
+        return flownodebranchid;
+    }
+    public void setExecutetype(Long executetype) 
+    {
+        this.executetype = executetype;
+    }
+
+    public Long getExecutetype() 
+    {
+        return executetype;
+    }
+    public void setExecuteconditions(String executeconditions) 
+    {
+        this.executeconditions = executeconditions;
+    }
+
+    public String getExecuteconditions() 
+    {
+        return executeconditions;
+    }
+    public void setExecuteresult(String executeresult) 
+    {
+        this.executeresult = executeresult;
+    }
+
+    public String getExecuteresult() 
+    {
+        return executeresult;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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 setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setExecuteconditionscode(String executeconditionscode) 
+    {
+        this.executeconditionscode = executeconditionscode;
+    }
+
+    public String getExecuteconditionscode() 
+    {
+        return executeconditionscode;
+    }
+    public void setExecuteresultcode(String executeresultcode) 
+    {
+        this.executeresultcode = executeresultcode;
+    }
+
+    public String getExecuteresultcode() 
+    {
+        return executeresultcode;
+    }
+    public void setFlownodeid(Long flownodeid) 
+    {
+        this.flownodeid = flownodeid;
+    }
+
+    public Long getFlownodeid() 
+    {
+        return flownodeid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scenecfgid", getScenecfgid())
+            .append("orgid", getOrgid())
+            .append("sourcetype", getSourcetype())
+            .append("globalid", getGlobalid())
+            .append("flownodebranchid", getFlownodebranchid())
+            .append("executetype", getExecutetype())
+            .append("executeconditions", getExecuteconditions())
+            .append("executeresult", getExecuteresult())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("sceneid", getSceneid())
+            .append("executeconditionscode", getExecuteconditionscode())
+            .append("executeresultcode", getExecuteresultcode())
+            .append("flownodeid", getFlownodeid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneFlow.java b/smartor/src/main/java/com/smartor/domain/IvrSceneFlow.java
new file mode 100644
index 0000000..82621f7
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneFlow.java
@@ -0,0 +1,239 @@
+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;
+
+/**
+ * AI澶栧懠娴佺▼瀵硅薄 ivr_scene_flow
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneFlow extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long flowid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  AI澶栧懠鍦烘櫙ID  */
+    @Excel(name = " AI澶栧懠鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  娴佺▼鍚嶇О  */
+    @Excel(name = " 娴佺▼鍚嶇О ")
+    private String flowname;
+
+    /**  鍏宠仈闂嵎ID  */
+    @Excel(name = " 鍏宠仈闂嵎ID ")
+    private Long relevantqsid;
+
+    /**  鍏宠仈棰樼洰ID锛堝閫夐�楀彿闅斿紑锛�  */
+    @Excel(name = " 鍏宠仈棰樼洰ID", readConverterExp = "澶�=閫夐�楀彿闅斿紑")
+    private String relevanttopicid;
+
+    /**  鍏宠仈棰樼洰Code锛堝閫夐�楀彿闅斿紑;涓庡叧鑱旈鐩甀D瀵瑰簲  */
+    @Excel(name = " 鍏宠仈棰樼洰Code", readConverterExp = " 鍏宠仈棰樼洰Code锛堝閫夐�楀彿闅斿紑;涓庡叧鑱旈鐩甀D瀵瑰簲 ")
+    private String relevanttopiccode;
+
+    /**  鏄惁鏍¢獙;0鍚� 1鏄�  */
+    @Excel(name = " 鏄惁鏍¢獙;0鍚� 1鏄� ")
+    private Long ischeck;
+
+    /**  娴佺▼鍥綣SON鏁版嵁  */
+    @Excel(name = " 娴佺▼鍥綣SON鏁版嵁 ")
+    private String flowdata;
+
+    /**  搴忓彿  */
+    @Excel(name = " 搴忓彿 ")
+    private Long sort;
+
+    /**  璧峰鑺傜偣ID  */
+    @Excel(name = " 璧峰鑺傜偣ID ")
+    private Long startnode;
+
+    /**  鎷疯礉ID  */
+    @Excel(name = " 鎷疯礉ID ")
+    private Long oldid;
+
+    public void setFlowid(Long flowid) 
+    {
+        this.flowid = flowid;
+    }
+
+    public Long getFlowid() 
+    {
+        return flowid;
+    }
+    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 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 setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setFlowname(String flowname) 
+    {
+        this.flowname = flowname;
+    }
+
+    public String getFlowname() 
+    {
+        return flowname;
+    }
+    public void setRelevantqsid(Long relevantqsid) 
+    {
+        this.relevantqsid = relevantqsid;
+    }
+
+    public Long getRelevantqsid() 
+    {
+        return relevantqsid;
+    }
+    public void setRelevanttopicid(String relevanttopicid) 
+    {
+        this.relevanttopicid = relevanttopicid;
+    }
+
+    public String getRelevanttopicid() 
+    {
+        return relevanttopicid;
+    }
+    public void setRelevanttopiccode(String relevanttopiccode) 
+    {
+        this.relevanttopiccode = relevanttopiccode;
+    }
+
+    public String getRelevanttopiccode() 
+    {
+        return relevanttopiccode;
+    }
+    public void setIscheck(Long ischeck) 
+    {
+        this.ischeck = ischeck;
+    }
+
+    public Long getIscheck() 
+    {
+        return ischeck;
+    }
+    public void setFlowdata(String flowdata) 
+    {
+        this.flowdata = flowdata;
+    }
+
+    public String getFlowdata() 
+    {
+        return flowdata;
+    }
+    public void setSort(Long sort) 
+    {
+        this.sort = sort;
+    }
+
+    public Long getSort() 
+    {
+        return sort;
+    }
+    public void setStartnode(Long startnode) 
+    {
+        this.startnode = startnode;
+    }
+
+    public Long getStartnode() 
+    {
+        return startnode;
+    }
+    public void setOldid(Long oldid) 
+    {
+        this.oldid = oldid;
+    }
+
+    public Long getOldid() 
+    {
+        return oldid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("flowid", getFlowid())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("sceneid", getSceneid())
+            .append("flowname", getFlowname())
+            .append("relevantqsid", getRelevantqsid())
+            .append("relevanttopicid", getRelevanttopicid())
+            .append("relevanttopiccode", getRelevanttopiccode())
+            .append("ischeck", getIscheck())
+            .append("flowdata", getFlowdata())
+            .append("sort", getSort())
+            .append("startnode", getStartnode())
+            .append("oldid", getOldid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneFlownode.java b/smartor/src/main/java/com/smartor/domain/IvrSceneFlownode.java
new file mode 100644
index 0000000..1a8969a
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneFlownode.java
@@ -0,0 +1,295 @@
+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;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣瀵硅薄 ivr_scene_flownode
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneFlownode extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long flownodeid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  AI澶栧懠鍦烘櫙ID  */
+    @Excel(name = " AI澶栧懠鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  娴佺▼ID  */
+    @Excel(name = " 娴佺▼ID ")
+    private Long flowid;
+
+    /**  鑺傜偣绫诲瀷;0.鏅�氳妭鐐� 1.璺宠浆鑺傜偣 2.寰幆鑺傜偣  */
+    @Excel(name = " 鑺傜偣绫诲瀷;0.鏅�氳妭鐐� 1.璺宠浆鑺傜偣 2.寰幆鑺傜偣 ")
+    private Long nodetype;
+
+    /**  鑺傜偣鍚嶇О  */
+    @Excel(name = " 鑺傜偣鍚嶇О ")
+    private String nodename;
+
+    /**  鍋滈】鏃堕暱锛坢s锛�;1ms-1500ms  */
+    @Excel(name = " 鍋滈】鏃堕暱", readConverterExp = "m=s")
+    private Long maxsentencesilence;
+
+    /**  绛夊緟鏃堕暱锛坰锛�;1s-60s  */
+    @Excel(name = " 绛夊緟鏃堕暱", readConverterExp = "s=")
+    private String waittime;
+
+    /**  璇濇湳绫诲瀷;寰幆鑺傜偣鐢� 0.鍘熻妭鐐硅瘽鏈� 1.浣跨敤鏂拌瘽鏈�  */
+    @Excel(name = " 璇濇湳绫诲瀷;寰幆鑺傜偣鐢� 0.鍘熻妭鐐硅瘽鏈� 1.浣跨敤鏂拌瘽鏈� ")
+    private Long corpustype;
+
+    /**  鏂拌瘽鏈瓑寰呮椂闀匡紙s锛�;寰幆鑺傜偣鐢�  */
+    @Excel(name = " 鏂拌瘽鏈瓑寰呮椂闀�", readConverterExp = "s=")
+    private String corpuswaittime;
+
+    /**  鏈�澶ч噸澶嶆鏁�;寰幆鑺傜偣鐢�  */
+    @Excel(name = " 鏈�澶ч噸澶嶆鏁�;寰幆鑺傜偣鐢� ")
+    private Long maxrepetition;
+
+    /**  璺宠浆绫诲瀷;璺宠浆鑺傜偣鐢� 0.鎸傛満 1.璺宠浆娴佺▼  */
+    @Excel(name = " 璺宠浆绫诲瀷;璺宠浆鑺傜偣鐢� 0.鎸傛満 1.璺宠浆娴佺▼ ")
+    private Long jumptype;
+
+    /**  璺宠浆鑷�;璺宠浆鑺傜偣鐢� 鐩墠鏀炬祦绋婭D  */
+    @Excel(name = " 璺宠浆鑷�;璺宠浆鑺傜偣鐢� 鐩墠鏀炬祦绋婭D ")
+    private String jumpto;
+
+    /**  娴佺▼鍥剧敓鎴怚D  */
+    @Excel(name = " 娴佺▼鍥剧敓鎴怚D ")
+    private String flowcode;
+
+    /**  璺宠浆鐩爣鑺傜偣ID  */
+    @Excel(name = " 璺宠浆鐩爣鑺傜偣ID ")
+    private Long targetid;
+
+    /**  鎷疯礉ID  */
+    @Excel(name = " 鎷疯礉ID ")
+    private Long oldid;
+
+    public void setFlownodeid(Long flownodeid) 
+    {
+        this.flownodeid = flownodeid;
+    }
+
+    public Long getFlownodeid() 
+    {
+        return flownodeid;
+    }
+    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 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 setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setFlowid(Long flowid) 
+    {
+        this.flowid = flowid;
+    }
+
+    public Long getFlowid() 
+    {
+        return flowid;
+    }
+    public void setNodetype(Long nodetype) 
+    {
+        this.nodetype = nodetype;
+    }
+
+    public Long getNodetype() 
+    {
+        return nodetype;
+    }
+    public void setNodename(String nodename) 
+    {
+        this.nodename = nodename;
+    }
+
+    public String getNodename() 
+    {
+        return nodename;
+    }
+    public void setMaxsentencesilence(Long maxsentencesilence) 
+    {
+        this.maxsentencesilence = maxsentencesilence;
+    }
+
+    public Long getMaxsentencesilence() 
+    {
+        return maxsentencesilence;
+    }
+    public void setWaittime(String waittime) 
+    {
+        this.waittime = waittime;
+    }
+
+    public String getWaittime() 
+    {
+        return waittime;
+    }
+    public void setCorpustype(Long corpustype) 
+    {
+        this.corpustype = corpustype;
+    }
+
+    public Long getCorpustype() 
+    {
+        return corpustype;
+    }
+    public void setCorpuswaittime(String corpuswaittime) 
+    {
+        this.corpuswaittime = corpuswaittime;
+    }
+
+    public String getCorpuswaittime() 
+    {
+        return corpuswaittime;
+    }
+    public void setMaxrepetition(Long maxrepetition) 
+    {
+        this.maxrepetition = maxrepetition;
+    }
+
+    public Long getMaxrepetition() 
+    {
+        return maxrepetition;
+    }
+    public void setJumptype(Long jumptype) 
+    {
+        this.jumptype = jumptype;
+    }
+
+    public Long getJumptype() 
+    {
+        return jumptype;
+    }
+    public void setJumpto(String jumpto) 
+    {
+        this.jumpto = jumpto;
+    }
+
+    public String getJumpto() 
+    {
+        return jumpto;
+    }
+    public void setFlowcode(String flowcode) 
+    {
+        this.flowcode = flowcode;
+    }
+
+    public String getFlowcode() 
+    {
+        return flowcode;
+    }
+    public void setTargetid(Long targetid) 
+    {
+        this.targetid = targetid;
+    }
+
+    public Long getTargetid() 
+    {
+        return targetid;
+    }
+    public void setOldid(Long oldid) 
+    {
+        this.oldid = oldid;
+    }
+
+    public Long getOldid() 
+    {
+        return oldid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("flownodeid", getFlownodeid())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("sceneid", getSceneid())
+            .append("flowid", getFlowid())
+            .append("nodetype", getNodetype())
+            .append("nodename", getNodename())
+            .append("maxsentencesilence", getMaxsentencesilence())
+            .append("waittime", getWaittime())
+            .append("corpustype", getCorpustype())
+            .append("corpuswaittime", getCorpuswaittime())
+            .append("maxrepetition", getMaxrepetition())
+            .append("jumptype", getJumptype())
+            .append("jumpto", getJumpto())
+            .append("flowcode", getFlowcode())
+            .append("targetid", getTargetid())
+            .append("oldid", getOldid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneFlownodebranch.java b/smartor/src/main/java/com/smartor/domain/IvrSceneFlownodebranch.java
new file mode 100644
index 0000000..8170601
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneFlownodebranch.java
@@ -0,0 +1,225 @@
+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;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣鍒嗘敮瀵硅薄 ivr_scene_flownodebranch
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneFlownodebranch extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long branchid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  AI澶栧懠鍦烘櫙ID  */
+    @Excel(name = " AI澶栧懠鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  娴佺▼ID  */
+    @Excel(name = " 娴佺▼ID ")
+    private Long flowid;
+
+    /**  鑺傜偣ID  */
+    @Excel(name = " 鑺傜偣ID ")
+    private Long flownodeid;
+
+    /**  鍒嗘敮鍚嶇О  */
+    @Excel(name = " 鍒嗘敮鍚嶇О ")
+    private String branchname;
+
+    /**  鏄惁鍚敤;0.鍚� 1.鏄�  */
+    @Excel(name = " 鏄惁鍚敤;0.鍚� 1.鏄� ")
+    private Long isenable;
+
+    /**  鎺掑簭  */
+    @Excel(name = " 鎺掑簭 ")
+    private Long sort;
+
+    /**  鍒嗘敮绫诲瀷;1 浠讳綍鍥炲锛�2鏃犲洖澶嶏紝3鏈瘑鍒� 9.鏅�氬垎鏀�  */
+    @Excel(name = " 鍒嗘敮绫诲瀷;1 浠讳綍鍥炲锛�2鏃犲洖澶嶏紝3鏈瘑鍒� 9.鏅�氬垎鏀� ")
+    private Long nodetype;
+
+    /**  璺宠浆鐩爣鑺傜偣ID  */
+    @Excel(name = " 璺宠浆鐩爣鑺傜偣ID ")
+    private Long targetid;
+
+    /**  鎷疯礉ID  */
+    @Excel(name = " 鎷疯礉ID ")
+    private Long oldid;
+
+    public void setBranchid(Long branchid) 
+    {
+        this.branchid = branchid;
+    }
+
+    public Long getBranchid() 
+    {
+        return branchid;
+    }
+    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 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 setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setFlowid(Long flowid) 
+    {
+        this.flowid = flowid;
+    }
+
+    public Long getFlowid() 
+    {
+        return flowid;
+    }
+    public void setFlownodeid(Long flownodeid) 
+    {
+        this.flownodeid = flownodeid;
+    }
+
+    public Long getFlownodeid() 
+    {
+        return flownodeid;
+    }
+    public void setBranchname(String branchname) 
+    {
+        this.branchname = branchname;
+    }
+
+    public String getBranchname() 
+    {
+        return branchname;
+    }
+    public void setIsenable(Long isenable) 
+    {
+        this.isenable = isenable;
+    }
+
+    public Long getIsenable() 
+    {
+        return isenable;
+    }
+    public void setSort(Long sort) 
+    {
+        this.sort = sort;
+    }
+
+    public Long getSort() 
+    {
+        return sort;
+    }
+    public void setNodetype(Long nodetype) 
+    {
+        this.nodetype = nodetype;
+    }
+
+    public Long getNodetype() 
+    {
+        return nodetype;
+    }
+    public void setTargetid(Long targetid) 
+    {
+        this.targetid = targetid;
+    }
+
+    public Long getTargetid() 
+    {
+        return targetid;
+    }
+    public void setOldid(Long oldid) 
+    {
+        this.oldid = oldid;
+    }
+
+    public Long getOldid() 
+    {
+        return oldid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("branchid", getBranchid())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("sceneid", getSceneid())
+            .append("flowid", getFlowid())
+            .append("flownodeid", getFlownodeid())
+            .append("branchname", getBranchname())
+            .append("isenable", getIsenable())
+            .append("sort", getSort())
+            .append("nodetype", getNodetype())
+            .append("targetid", getTargetid())
+            .append("oldid", getOldid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneGlobalconfig.java b/smartor/src/main/java/com/smartor/domain/IvrSceneGlobalconfig.java
new file mode 100644
index 0000000..d864088
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneGlobalconfig.java
@@ -0,0 +1,211 @@
+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;
+
+/**
+ * AI澶栧懠鍏ㄥ眬閰嶇疆瀵硅薄 ivr_scene_globalconfig
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneGlobalconfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long gblconfigid;
+
+    /**  AI澶栧懠鍦烘櫙ID  */
+    @Excel(name = " AI澶栧懠鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  閰嶇疆鍚嶇О  */
+    @Excel(name = " 閰嶇疆鍚嶇О ")
+    private String configname;
+
+    /**  閰嶇疆鎻忚堪  */
+    @Excel(name = " 閰嶇疆鎻忚堪 ")
+    private String description;
+
+    /**  浼樺厛绾�  */
+    @Excel(name = " 浼樺厛绾� ")
+    private Long sort;
+
+    /**  浼樺厛鎵ц绫诲瀷;1.鍒嗘敮鍔ㄤ綔 2.閰嶇疆鍔ㄤ綔  */
+    @Excel(name = " 浼樺厛鎵ц绫诲瀷;1.鍒嗘敮鍔ㄤ綔 2.閰嶇疆鍔ㄤ綔 ")
+    private Long executetype;
+
+    /**  鏄惁鍚敤;0.鍚� 1.鏄�  */
+    @Excel(name = " 鏄惁鍚敤;0.鍚� 1.鏄� ")
+    private Long isenable;
+
+    /**  璺宠浆绫诲瀷;0.鎸傛満 1.閲嶅鑺傜偣  */
+    @Excel(name = " 璺宠浆绫诲瀷;0.鎸傛満 1.閲嶅鑺傜偣 ")
+    private Long jumpto;
+
+    /**  閲嶅娆℃暟  */
+    @Excel(name = " 閲嶅娆℃暟 ")
+    private Long repeatcount;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setGblconfigid(Long gblconfigid) 
+    {
+        this.gblconfigid = gblconfigid;
+    }
+
+    public Long getGblconfigid() 
+    {
+        return gblconfigid;
+    }
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setConfigname(String configname) 
+    {
+        this.configname = configname;
+    }
+
+    public String getConfigname() 
+    {
+        return configname;
+    }
+    public void setDescription(String description) 
+    {
+        this.description = description;
+    }
+
+    public String getDescription() 
+    {
+        return description;
+    }
+    public void setSort(Long sort) 
+    {
+        this.sort = sort;
+    }
+
+    public Long getSort() 
+    {
+        return sort;
+    }
+    public void setExecutetype(Long executetype) 
+    {
+        this.executetype = executetype;
+    }
+
+    public Long getExecutetype() 
+    {
+        return executetype;
+    }
+    public void setIsenable(Long isenable) 
+    {
+        this.isenable = isenable;
+    }
+
+    public Long getIsenable() 
+    {
+        return isenable;
+    }
+    public void setJumpto(Long jumpto) 
+    {
+        this.jumpto = jumpto;
+    }
+
+    public Long getJumpto() 
+    {
+        return jumpto;
+    }
+    public void setRepeatcount(Long repeatcount) 
+    {
+        this.repeatcount = repeatcount;
+    }
+
+    public Long getRepeatcount() 
+    {
+        return repeatcount;
+    }
+    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 setIsupload(Long isupload) 
+    {
+        this.isupload = isupload;
+    }
+
+    public Long getIsupload() 
+    {
+        return isupload;
+    }
+    public void setUploadTime(Date uploadTime) 
+    {
+        this.uploadTime = uploadTime;
+    }
+
+    public Date getUploadTime() 
+    {
+        return uploadTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("gblconfigid", getGblconfigid())
+            .append("sceneid", getSceneid())
+            .append("configname", getConfigname())
+            .append("description", getDescription())
+            .append("sort", getSort())
+            .append("executetype", getExecutetype())
+            .append("isenable", getIsenable())
+            .append("jumpto", getJumpto())
+            .append("repeatcount", getRepeatcount())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneIntent.java b/smartor/src/main/java/com/smartor/domain/IvrSceneIntent.java
new file mode 100644
index 0000000..2493b15
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneIntent.java
@@ -0,0 +1,309 @@
+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;
+
+/**
+ * AI澶栧懠鎰忓浘瀵硅薄 ivr_scene_intent
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneIntent extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long sceneintentid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎  */
+    @Excel(name = " 鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎 ")
+    private Long sourcetype;
+
+    /**  鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID  */
+    @Excel(name = " 鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID ")
+    private Long gbiconfigid;
+
+    /**  鍦烘櫙ID  */
+    @Excel(name = " 鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  娴佺▼ID  */
+    @Excel(name = " 娴佺▼ID ")
+    private Long flowid;
+
+    /**  娴佺▼鑺傜偣ID  */
+    @Excel(name = " 娴佺▼鑺傜偣ID ")
+    private Long flownodeid;
+
+    /**  娴佺▼鑺傜偣鍒嗘敮ID  */
+    @Excel(name = " 娴佺▼鑺傜偣鍒嗘敮ID ")
+    private Long flownodebranchid;
+
+    /**  寮曠敤鎰忓浘妯℃澘ID  */
+    @Excel(name = " 寮曠敤鎰忓浘妯℃澘ID ")
+    private Long templateid;
+
+    /**  鎰忓浘鍚嶇О  */
+    @Excel(name = " 鎰忓浘鍚嶇О ")
+    private String intentionname;
+
+    /**  鎰忓浘鍏抽敭瀛楋紙姝e垯锛�  */
+    @Excel(name = " 鎰忓浘鍏抽敭瀛�", readConverterExp = "姝�=鍒�")
+    private String intentionword;
+
+    /**  鏉′欢绫诲瀷;0.鎰忓浘璇嗗埆 1.鎮h�呮爣绛�  */
+    @Excel(name = " 鏉′欢绫诲瀷;0.鎰忓浘璇嗗埆 1.鎮h�呮爣绛� ")
+    private Long conditionstype;
+
+    /**  楠岃瘉瑙勫垯;澶氶�夐�楀彿闅斿紑锛�1銆�2銆�3锛夛紱鐩稿簲绫诲瀷鐨勪富閿�  */
+    @Excel(name = " 楠岃瘉瑙勫垯;澶氶�夐�楀彿闅斿紑", readConverterExp = "1=銆�2銆�3")
+    private String verifyrule;
+
+    /**  瀛愪笖鎴�;0.鎴� 1.涓�  */
+    @Excel(name = " 瀛愪笖鎴�;0.鎴� 1.涓� ")
+    private Long orand;
+
+    /**  鐖舵潯浠�  */
+    @Excel(name = " 鐖舵潯浠� ")
+    private String parentresultconditionsid;
+
+    /**  鐖剁骇鍒嗙粍  */
+    @Excel(name = " 鐖剁骇鍒嗙粍 ")
+    private Long groupnumber;
+
+    /**  鐖朵笖鎴�  */
+    @Excel(name = " 鐖朵笖鎴� ")
+    private Long grouporand;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setSceneintentid(Long sceneintentid) 
+    {
+        this.sceneintentid = sceneintentid;
+    }
+
+    public Long getSceneintentid() 
+    {
+        return sceneintentid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setSourcetype(Long sourcetype) 
+    {
+        this.sourcetype = sourcetype;
+    }
+
+    public Long getSourcetype() 
+    {
+        return sourcetype;
+    }
+    public void setGbiconfigid(Long gbiconfigid) 
+    {
+        this.gbiconfigid = gbiconfigid;
+    }
+
+    public Long getGbiconfigid() 
+    {
+        return gbiconfigid;
+    }
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setFlowid(Long flowid) 
+    {
+        this.flowid = flowid;
+    }
+
+    public Long getFlowid() 
+    {
+        return flowid;
+    }
+    public void setFlownodeid(Long flownodeid) 
+    {
+        this.flownodeid = flownodeid;
+    }
+
+    public Long getFlownodeid() 
+    {
+        return flownodeid;
+    }
+    public void setFlownodebranchid(Long flownodebranchid) 
+    {
+        this.flownodebranchid = flownodebranchid;
+    }
+
+    public Long getFlownodebranchid() 
+    {
+        return flownodebranchid;
+    }
+    public void setTemplateid(Long templateid) 
+    {
+        this.templateid = templateid;
+    }
+
+    public Long getTemplateid() 
+    {
+        return templateid;
+    }
+    public void setIntentionname(String intentionname) 
+    {
+        this.intentionname = intentionname;
+    }
+
+    public String getIntentionname() 
+    {
+        return intentionname;
+    }
+    public void setIntentionword(String intentionword) 
+    {
+        this.intentionword = intentionword;
+    }
+
+    public String getIntentionword() 
+    {
+        return intentionword;
+    }
+    public void setConditionstype(Long conditionstype) 
+    {
+        this.conditionstype = conditionstype;
+    }
+
+    public Long getConditionstype() 
+    {
+        return conditionstype;
+    }
+    public void setVerifyrule(String verifyrule) 
+    {
+        this.verifyrule = verifyrule;
+    }
+
+    public String getVerifyrule() 
+    {
+        return verifyrule;
+    }
+    public void setOrand(Long orand) 
+    {
+        this.orand = orand;
+    }
+
+    public Long getOrand() 
+    {
+        return orand;
+    }
+    public void setParentresultconditionsid(String parentresultconditionsid) 
+    {
+        this.parentresultconditionsid = parentresultconditionsid;
+    }
+
+    public String getParentresultconditionsid() 
+    {
+        return parentresultconditionsid;
+    }
+    public void setGroupnumber(Long groupnumber) 
+    {
+        this.groupnumber = groupnumber;
+    }
+
+    public Long getGroupnumber() 
+    {
+        return groupnumber;
+    }
+    public void setGrouporand(Long grouporand) 
+    {
+        this.grouporand = grouporand;
+    }
+
+    public Long getGrouporand() 
+    {
+        return grouporand;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("sceneintentid", getSceneintentid())
+            .append("orgid", getOrgid())
+            .append("sourcetype", getSourcetype())
+            .append("gbiconfigid", getGbiconfigid())
+            .append("sceneid", getSceneid())
+            .append("flowid", getFlowid())
+            .append("flownodeid", getFlownodeid())
+            .append("flownodebranchid", getFlownodebranchid())
+            .append("templateid", getTemplateid())
+            .append("intentionname", getIntentionname())
+            .append("intentionword", getIntentionword())
+            .append("conditionstype", getConditionstype())
+            .append("verifyrule", getVerifyrule())
+            .append("orand", getOrand())
+            .append("parentresultconditionsid", getParentresultconditionsid())
+            .append("groupnumber", getGroupnumber())
+            .append("grouporand", getGrouporand())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneRecall.java b/smartor/src/main/java/com/smartor/domain/IvrSceneRecall.java
new file mode 100644
index 0000000..4d02533
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneRecall.java
@@ -0,0 +1,169 @@
+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;
+
+/**
+ * AI澶栧懠閲嶆嫧閰嶇疆瀵硅薄 ivr_scene_recall
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneRecall extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long recallid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍦烘櫙ID  */
+    @Excel(name = " 鍦烘櫙ID ")
+    private Long sceneid;
+
+    /**  閲嶆嫧鎯呮櫙绫诲瀷;0.浠诲姟鎵ц澶辫触 1.鏈帴閫� 2.鏃犱汉鎺ュ惉 3.鎮h�呮嫆缁� 4.鎺ラ�氭棤搴旂瓟 澶氶�� 閫楀彿闅斿紑  */
+    @Excel(name = " 閲嶆嫧鎯呮櫙绫诲瀷;0.浠诲姟鎵ц澶辫触 1.鏈帴閫� 2.鏃犱汉鎺ュ惉 3.鎮h�呮嫆缁� 4.鎺ラ�氭棤搴旂瓟 澶氶�� 閫楀彿闅斿紑 ")
+    private String recalltype;
+
+    /**  娆℃暟  */
+    @Excel(name = " 娆℃暟 ")
+    private Long recallcount;
+
+    /**  閲嶆嫧闂撮殧  */
+    @Excel(name = " 閲嶆嫧闂撮殧 ")
+    private Long recallinterval;
+
+    /**  閲嶆嫧鏃堕棿鍗曚綅;0.鍒嗛挓 1.绉� 2.灏忔椂  */
+    @Excel(name = " 閲嶆嫧鏃堕棿鍗曚綅;0.鍒嗛挓 1.绉� 2.灏忔椂 ")
+    private Long recallunit;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setRecallid(Long recallid) 
+    {
+        this.recallid = recallid;
+    }
+
+    public Long getRecallid() 
+    {
+        return recallid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setRecalltype(String recalltype) 
+    {
+        this.recalltype = recalltype;
+    }
+
+    public String getRecalltype() 
+    {
+        return recalltype;
+    }
+    public void setRecallcount(Long recallcount) 
+    {
+        this.recallcount = recallcount;
+    }
+
+    public Long getRecallcount() 
+    {
+        return recallcount;
+    }
+    public void setRecallinterval(Long recallinterval) 
+    {
+        this.recallinterval = recallinterval;
+    }
+
+    public Long getRecallinterval() 
+    {
+        return recallinterval;
+    }
+    public void setRecallunit(Long recallunit) 
+    {
+        this.recallunit = recallunit;
+    }
+
+    public Long getRecallunit() 
+    {
+        return recallunit;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("recallid", getRecallid())
+            .append("orgid", getOrgid())
+            .append("sceneid", getSceneid())
+            .append("recalltype", getRecalltype())
+            .append("recallcount", getRecallcount())
+            .append("recallinterval", getRecallinterval())
+            .append("recallunit", getRecallunit())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneScript.java b/smartor/src/main/java/com/smartor/domain/IvrSceneScript.java
new file mode 100644
index 0000000..a27711f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneScript.java
@@ -0,0 +1,225 @@
+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;
+
+/**
+ * AI澶栧懠璇濇湳瀵硅薄 ivr_scene_script
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneScript extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long scenescrid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎  */
+    @Excel(name = " 鏉ユ簮绫诲瀷;0.鍏ㄥ眬 1.涓荤嚎 ")
+    private Long sourcetype;
+
+    /**  鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID  */
+    @Excel(name = " 鍏ㄥ眬閰嶇疆ID;鍏ㄥ眬閰嶇疆ID ")
+    private Long globalid;
+
+    /**  鍦烘櫙id  */
+    @Excel(name = " 鍦烘櫙id ")
+    private Long sceneid;
+
+    /**  娴佺▼ID  */
+    @Excel(name = " 娴佺▼ID ")
+    private Long flowid;
+
+    /**  娴佺▼鑺傜偣ID  */
+    @Excel(name = " 娴佺▼鑺傜偣ID ")
+    private Long flownodeid;
+
+    /**  寮曠敤璇濇湳妯℃澘ID  */
+    @Excel(name = " 寮曠敤璇濇湳妯℃澘ID ")
+    private Long templateid;
+
+    /**  璇濇湳鍐呭锛堝畬鏁达級  */
+    @Excel(name = " 璇濇湳鍐呭", readConverterExp = "瀹�=鏁�")
+    private String speakbody;
+
+    /**  璇濇湳鏂囦欢璺緞锛堝畬鏁达級  */
+    @Excel(name = " 璇濇湳鏂囦欢璺緞", readConverterExp = "瀹�=鏁�")
+    private String speakfilepath;
+
+    /**  璇濇湳鍚嶇О  */
+    @Excel(name = " 璇濇湳鍚嶇О ")
+    private String speakname;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setScenescrid(Long scenescrid) 
+    {
+        this.scenescrid = scenescrid;
+    }
+
+    public Long getScenescrid() 
+    {
+        return scenescrid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setSourcetype(Long sourcetype) 
+    {
+        this.sourcetype = sourcetype;
+    }
+
+    public Long getSourcetype() 
+    {
+        return sourcetype;
+    }
+    public void setGlobalid(Long globalid) 
+    {
+        this.globalid = globalid;
+    }
+
+    public Long getGlobalid() 
+    {
+        return globalid;
+    }
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+    public void setFlowid(Long flowid) 
+    {
+        this.flowid = flowid;
+    }
+
+    public Long getFlowid() 
+    {
+        return flowid;
+    }
+    public void setFlownodeid(Long flownodeid) 
+    {
+        this.flownodeid = flownodeid;
+    }
+
+    public Long getFlownodeid() 
+    {
+        return flownodeid;
+    }
+    public void setTemplateid(Long templateid) 
+    {
+        this.templateid = templateid;
+    }
+
+    public Long getTemplateid() 
+    {
+        return templateid;
+    }
+    public void setSpeakbody(String speakbody) 
+    {
+        this.speakbody = speakbody;
+    }
+
+    public String getSpeakbody() 
+    {
+        return speakbody;
+    }
+    public void setSpeakfilepath(String speakfilepath) 
+    {
+        this.speakfilepath = speakfilepath;
+    }
+
+    public String getSpeakfilepath() 
+    {
+        return speakfilepath;
+    }
+    public void setSpeakname(String speakname) 
+    {
+        this.speakname = speakname;
+    }
+
+    public String getSpeakname() 
+    {
+        return speakname;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scenescrid", getScenescrid())
+            .append("orgid", getOrgid())
+            .append("sourcetype", getSourcetype())
+            .append("globalid", getGlobalid())
+            .append("sceneid", getSceneid())
+            .append("flowid", getFlowid())
+            .append("flownodeid", getFlownodeid())
+            .append("templateid", getTemplateid())
+            .append("speakbody", getSpeakbody())
+            .append("speakfilepath", getSpeakfilepath())
+            .append("speakname", getSpeakname())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrSceneScriptmodel.java b/smartor/src/main/java/com/smartor/domain/IvrSceneScriptmodel.java
new file mode 100644
index 0000000..c09a48f
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrSceneScriptmodel.java
@@ -0,0 +1,267 @@
+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;
+
+/**
+ * AI澶栧懠璇濇湳妯″潡瀵硅薄 ivr_scene_scriptmodel
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrSceneScriptmodel extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long scenemodid;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  璇濇湳ID  */
+    @Excel(name = " 璇濇湳ID ")
+    private Long scenescrid;
+
+    /**  璇濇湳绫诲瀷銆�0:鏅�氳瘽鏈� 1:鍙橀噺璇濇湳銆�  */
+    @Excel(name = " 璇濇湳绫诲瀷銆�0:鏅�氳瘽鏈� 1:鍙橀噺璇濇湳銆� ")
+    private Long speaktype;
+
+    /**  璇濇湳鍐呭  */
+    @Excel(name = " 璇濇湳鍐呭 ")
+    private String speakbody;
+
+    /**  璇煶绫诲瀷銆�0:鐪熶汉褰曢煶 1:鍚堟垚璇煶銆�  */
+    @Excel(name = " 璇煶绫诲瀷銆�0:鐪熶汉褰曢煶 1:鍚堟垚璇煶銆� ")
+    private Long voicetype;
+
+    /**  璇煶鏂囦欢  */
+    @Excel(name = " 璇煶鏂囦欢 ")
+    private String speakfilepath;
+
+    /**  鍚堟垚鍘傚晢  */
+    @Excel(name = " 鍚堟垚鍘傚晢 ")
+    private String manufactor;
+
+    /**  澹伴煶绫诲瀷  */
+    @Excel(name = " 澹伴煶绫诲瀷 ")
+    private String soundtype;
+
+    /**  璇��  */
+    @Excel(name = " 璇�� ")
+    private Long speechnum;
+
+    /**  闊抽珮  */
+    @Excel(name = " 闊抽珮 ")
+    private Long pitch;
+
+    /**  闊抽噺  */
+    @Excel(name = " 闊抽噺 ")
+    private Long volume;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    /**  鍙橀噺璇濇湳鍙橀噺  */
+    @Excel(name = " 鍙橀噺璇濇湳鍙橀噺 ")
+    private String speakvariable;
+
+    /**  鍦烘櫙ID  */
+    @Excel(name = " 鍦烘櫙ID ")
+    private Long sceneid;
+
+    public void setScenemodid(Long scenemodid) 
+    {
+        this.scenemodid = scenemodid;
+    }
+
+    public Long getScenemodid() 
+    {
+        return scenemodid;
+    }
+    public void setOrgid(String orgid) 
+    {
+        this.orgid = orgid;
+    }
+
+    public String getOrgid() 
+    {
+        return orgid;
+    }
+    public void setScenescrid(Long scenescrid) 
+    {
+        this.scenescrid = scenescrid;
+    }
+
+    public Long getScenescrid() 
+    {
+        return scenescrid;
+    }
+    public void setSpeaktype(Long speaktype) 
+    {
+        this.speaktype = speaktype;
+    }
+
+    public Long getSpeaktype() 
+    {
+        return speaktype;
+    }
+    public void setSpeakbody(String speakbody) 
+    {
+        this.speakbody = speakbody;
+    }
+
+    public String getSpeakbody() 
+    {
+        return speakbody;
+    }
+    public void setVoicetype(Long voicetype) 
+    {
+        this.voicetype = voicetype;
+    }
+
+    public Long getVoicetype() 
+    {
+        return voicetype;
+    }
+    public void setSpeakfilepath(String speakfilepath) 
+    {
+        this.speakfilepath = speakfilepath;
+    }
+
+    public String getSpeakfilepath() 
+    {
+        return speakfilepath;
+    }
+    public void setManufactor(String manufactor) 
+    {
+        this.manufactor = manufactor;
+    }
+
+    public String getManufactor() 
+    {
+        return manufactor;
+    }
+    public void setSoundtype(String soundtype) 
+    {
+        this.soundtype = soundtype;
+    }
+
+    public String getSoundtype() 
+    {
+        return soundtype;
+    }
+    public void setSpeechnum(Long speechnum) 
+    {
+        this.speechnum = speechnum;
+    }
+
+    public Long getSpeechnum() 
+    {
+        return speechnum;
+    }
+    public void setPitch(Long pitch) 
+    {
+        this.pitch = pitch;
+    }
+
+    public Long getPitch() 
+    {
+        return pitch;
+    }
+    public void setVolume(Long volume) 
+    {
+        this.volume = volume;
+    }
+
+    public Long getVolume() 
+    {
+        return volume;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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 setSpeakvariable(String speakvariable) 
+    {
+        this.speakvariable = speakvariable;
+    }
+
+    public String getSpeakvariable() 
+    {
+        return speakvariable;
+    }
+    public void setSceneid(Long sceneid) 
+    {
+        this.sceneid = sceneid;
+    }
+
+    public Long getSceneid() 
+    {
+        return sceneid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scenemodid", getScenemodid())
+            .append("orgid", getOrgid())
+            .append("scenescrid", getScenescrid())
+            .append("speaktype", getSpeaktype())
+            .append("speakbody", getSpeakbody())
+            .append("voicetype", getVoicetype())
+            .append("speakfilepath", getSpeakfilepath())
+            .append("manufactor", getManufactor())
+            .append("soundtype", getSoundtype())
+            .append("speechnum", getSpeechnum())
+            .append("pitch", getPitch())
+            .append("volume", getVolume())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .append("speakvariable", getSpeakvariable())
+            .append("sceneid", getSceneid())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrScenecategory.java b/smartor/src/main/java/com/smartor/domain/IvrScenecategory.java
new file mode 100644
index 0000000..d4642a9
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/IvrScenecategory.java
@@ -0,0 +1,113 @@
+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;
+
+/**
+ * AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被瀵硅薄 ivr_scenecategory
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class IvrScenecategory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /**  鑷ID  */
+    private Long scenecatid;
+
+    /**  鍒嗙被鍚嶇О  */
+    @Excel(name = " 鍒嗙被鍚嶇О ")
+    private String categoryname;
+
+    /**  鏈烘瀯ID  */
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**  鍒犻櫎鏍囪  */
+    private String delFlag;
+
+    /**  涓婁紶鏍囪  */
+    @Excel(name = " 涓婁紶鏍囪 ")
+    private Long isupload;
+
+    /**  涓婁紶鏃堕棿  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 涓婁紶鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setScenecatid(Long scenecatid) 
+    {
+        this.scenecatid = scenecatid;
+    }
+
+    public Long getScenecatid() 
+    {
+        return scenecatid;
+    }
+    public void setCategoryname(String categoryname) 
+    {
+        this.categoryname = categoryname;
+    }
+
+    public String getCategoryname() 
+    {
+        return categoryname;
+    }
+    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 setIsupload(Long isupload) 
+    {
+        this.isupload = isupload;
+    }
+
+    public Long getIsupload() 
+    {
+        return isupload;
+    }
+    public void setUploadTime(Date uploadTime) 
+    {
+        this.uploadTime = uploadTime;
+    }
+
+    public Date getUploadTime() 
+    {
+        return uploadTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("scenecatid", getScenecatid())
+            .append("categoryname", getCategoryname())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SmsParam.java b/smartor/src/main/java/com/smartor/domain/SmsParam.java
new file mode 100644
index 0000000..cb50289
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SmsParam.java
@@ -0,0 +1,140 @@
+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;
+
+/**
+ * 鐭俊鍙傛暟瀵硅薄 sms_param
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class SmsParam extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long paramid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String paramname;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String paramval;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String descirbe;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long usestatus;
+
+    /** $column.columnComment */
+    private String delFlag;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long isupload;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date uploadTime;
+
+    public void setParamid(Long paramid) 
+    {
+        this.paramid = paramid;
+    }
+
+    public Long getParamid() 
+    {
+        return paramid;
+    }
+    public void setParamname(String paramname) 
+    {
+        this.paramname = paramname;
+    }
+
+    public String getParamname() 
+    {
+        return paramname;
+    }
+    public void setParamval(String paramval) 
+    {
+        this.paramval = paramval;
+    }
+
+    public String getParamval() 
+    {
+        return paramval;
+    }
+    public void setDescirbe(String descirbe) 
+    {
+        this.descirbe = descirbe;
+    }
+
+    public String getDescirbe() 
+    {
+        return descirbe;
+    }
+    public void setUsestatus(Long usestatus) 
+    {
+        this.usestatus = usestatus;
+    }
+
+    public Long getUsestatus() 
+    {
+        return usestatus;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("paramid", getParamid())
+            .append("paramname", getParamname())
+            .append("paramval", getParamval())
+            .append("descirbe", getDescirbe())
+            .append("usestatus", getUsestatus())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SmsRecords.java b/smartor/src/main/java/com/smartor/domain/SmsRecords.java
new file mode 100644
index 0000000..b07d505
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SmsRecords.java
@@ -0,0 +1,340 @@
+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;
+
+/**
+ * 鐭俊璁板綍瀵硅薄 sms_records
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class SmsRecords extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long recordid;
+
+    /**  */
+    @Excel(name = "")
+    private String userid;
+
+    /**  */
+    @Excel(name = "")
+    private String username;
+
+    /**  */
+    @Excel(name = "")
+    private String phone;
+
+    /**  */
+    @Excel(name = "")
+    private String msgno;
+
+    /**  */
+    @Excel(name = "")
+    private String msg;
+
+    /**  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date inserttime;
+
+    /**  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date sendtime;
+
+    /**  */
+    @Excel(name = "")
+    private Long sendfailedcount;
+
+    /**  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date resulttime;
+
+    /**  */
+    @Excel(name = "")
+    private String resultmsg;
+
+    /**  */
+    @Excel(name = "")
+    private Long sendstate;
+
+    /**  */
+    @Excel(name = "")
+    private Long inserttype;
+
+    /**  */
+    @Excel(name = "")
+    private Long insertsystem;
+
+    /**  */
+    @Excel(name = "")
+    private String insertmodule;
+
+    /**  */
+    @Excel(name = "")
+    private String moduleid;
+
+    /**  */
+    @Excel(name = "")
+    private String msgidentify;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long accountid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String orgid;
+
+    /**  */
+    private String delFlag;
+
+    /**  */
+    @Excel(name = "")
+    private Long isupload;
+
+    /**  */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date uploadTime;
+
+    public void setRecordid(Long recordid) 
+    {
+        this.recordid = recordid;
+    }
+
+    public Long getRecordid() 
+    {
+        return recordid;
+    }
+    public void setUserid(String userid) 
+    {
+        this.userid = userid;
+    }
+
+    public String getUserid() 
+    {
+        return userid;
+    }
+    public void setUsername(String username) 
+    {
+        this.username = username;
+    }
+
+    public String getUsername() 
+    {
+        return username;
+    }
+    public void setPhone(String phone) 
+    {
+        this.phone = phone;
+    }
+
+    public String getPhone() 
+    {
+        return phone;
+    }
+    public void setMsgno(String msgno) 
+    {
+        this.msgno = msgno;
+    }
+
+    public String getMsgno() 
+    {
+        return msgno;
+    }
+    public void setMsg(String msg) 
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg() 
+    {
+        return msg;
+    }
+    public void setInserttime(Date inserttime) 
+    {
+        this.inserttime = inserttime;
+    }
+
+    public Date getInserttime() 
+    {
+        return inserttime;
+    }
+    public void setSendtime(Date sendtime) 
+    {
+        this.sendtime = sendtime;
+    }
+
+    public Date getSendtime() 
+    {
+        return sendtime;
+    }
+    public void setSendfailedcount(Long sendfailedcount) 
+    {
+        this.sendfailedcount = sendfailedcount;
+    }
+
+    public Long getSendfailedcount() 
+    {
+        return sendfailedcount;
+    }
+    public void setResulttime(Date resulttime) 
+    {
+        this.resulttime = resulttime;
+    }
+
+    public Date getResulttime() 
+    {
+        return resulttime;
+    }
+    public void setResultmsg(String resultmsg) 
+    {
+        this.resultmsg = resultmsg;
+    }
+
+    public String getResultmsg() 
+    {
+        return resultmsg;
+    }
+    public void setSendstate(Long sendstate) 
+    {
+        this.sendstate = sendstate;
+    }
+
+    public Long getSendstate() 
+    {
+        return sendstate;
+    }
+    public void setInserttype(Long inserttype) 
+    {
+        this.inserttype = inserttype;
+    }
+
+    public Long getInserttype() 
+    {
+        return inserttype;
+    }
+    public void setInsertsystem(Long insertsystem) 
+    {
+        this.insertsystem = insertsystem;
+    }
+
+    public Long getInsertsystem() 
+    {
+        return insertsystem;
+    }
+    public void setInsertmodule(String insertmodule) 
+    {
+        this.insertmodule = insertmodule;
+    }
+
+    public String getInsertmodule() 
+    {
+        return insertmodule;
+    }
+    public void setModuleid(String moduleid) 
+    {
+        this.moduleid = moduleid;
+    }
+
+    public String getModuleid() 
+    {
+        return moduleid;
+    }
+    public void setMsgidentify(String msgidentify) 
+    {
+        this.msgidentify = msgidentify;
+    }
+
+    public String getMsgidentify() 
+    {
+        return msgidentify;
+    }
+    public void setAccountid(Long accountid) 
+    {
+        this.accountid = accountid;
+    }
+
+    public Long getAccountid() 
+    {
+        return accountid;
+    }
+    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 setIsupload(Long isupload) 
+    {
+        this.isupload = isupload;
+    }
+
+    public Long getIsupload() 
+    {
+        return isupload;
+    }
+    public void setUploadTime(Date uploadTime) 
+    {
+        this.uploadTime = uploadTime;
+    }
+
+    public Date getUploadTime() 
+    {
+        return uploadTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("recordid", getRecordid())
+            .append("userid", getUserid())
+            .append("username", getUsername())
+            .append("phone", getPhone())
+            .append("msgno", getMsgno())
+            .append("msg", getMsg())
+            .append("inserttime", getInserttime())
+            .append("sendtime", getSendtime())
+            .append("sendfailedcount", getSendfailedcount())
+            .append("resulttime", getResulttime())
+            .append("resultmsg", getResultmsg())
+            .append("sendstate", getSendstate())
+            .append("inserttype", getInserttype())
+            .append("insertsystem", getInsertsystem())
+            .append("insertmodule", getInsertmodule())
+            .append("moduleid", getModuleid())
+            .append("msgidentify", getMsgidentify())
+            .append("accountid", getAccountid())
+            .append("orgid", getOrgid())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SmsTemplet.java b/smartor/src/main/java/com/smartor/domain/SmsTemplet.java
new file mode 100644
index 0000000..fab9ae1
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/SmsTemplet.java
@@ -0,0 +1,126 @@
+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;
+
+/**
+ * 鐭俊妯℃澘瀵硅薄 sms_templet
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public class SmsTemplet extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long templetid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String templetno;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String templetname;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String templetcontent;
+
+    /** $column.columnComment */
+    private String delFlag;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long isupload;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date uploadTime;
+
+    public void setTempletid(Long templetid) 
+    {
+        this.templetid = templetid;
+    }
+
+    public Long getTempletid() 
+    {
+        return templetid;
+    }
+    public void setTempletno(String templetno) 
+    {
+        this.templetno = templetno;
+    }
+
+    public String getTempletno() 
+    {
+        return templetno;
+    }
+    public void setTempletname(String templetname) 
+    {
+        this.templetname = templetname;
+    }
+
+    public String getTempletname() 
+    {
+        return templetname;
+    }
+    public void setTempletcontent(String templetcontent) 
+    {
+        this.templetcontent = templetcontent;
+    }
+
+    public String getTempletcontent() 
+    {
+        return templetcontent;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+    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;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("templetid", getTempletid())
+            .append("templetno", getTempletno())
+            .append("templetname", getTempletname())
+            .append("templetcontent", getTempletcontent())
+            .append("delFlag", getDelFlag())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("isupload", getIsupload())
+            .append("uploadTime", getUploadTime())
+            .toString();
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java b/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java
new file mode 100644
index 0000000..22d29a8
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/BaseSmsaccountMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.BaseSmsaccount;
+
+/**
+ * 鐭俊璐﹀彿Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface BaseSmsaccountMapper 
+{
+    /**
+     * 鏌ヨ鐭俊璐﹀彿
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 鐭俊璐﹀彿
+     */
+    public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid);
+
+    /**
+     * 鏌ヨ鐭俊璐﹀彿鍒楄〃
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 鐭俊璐﹀彿闆嗗悎
+     */
+    public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 鏂板鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 淇敼鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 鍒犻櫎鐭俊璐﹀彿
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBaseSmsaccountBySmsacountid(Long smsacountid);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璐﹀彿
+     * 
+     * @param smsacountids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibIntentMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibIntentMapper.java
new file mode 100644
index 0000000..f61cc79
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibIntentMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrLibIntent;
+
+/**
+ * AI鎰忓浘搴揗apper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrLibIntentMapper 
+{
+    /**
+     * 鏌ヨAI鎰忓浘搴�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return AI鎰忓浘搴�
+     */
+    public IvrLibIntent selectIvrLibIntentByIntentid(Long intentid);
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垪琛�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return AI鎰忓浘搴撻泦鍚�
+     */
+    public List<IvrLibIntent> selectIvrLibIntentList(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 鏂板AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibIntent(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 淇敼AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibIntent(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentByIntentid(Long intentid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴�
+     * 
+     * @param intentids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentByIntentids(Long[] intentids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibIntentcategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibIntentcategoryMapper.java
new file mode 100644
index 0000000..a87dd7d
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibIntentcategoryMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrLibIntentcategory;
+
+/**
+ * AI鎰忓浘搴撳垎绫籑apper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrLibIntentcategoryMapper 
+{
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return AI鎰忓浘搴撳垎绫�
+     */
+    public IvrLibIntentcategory selectIvrLibIntentcategoryByIntertcatid(Long intertcatid);
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return AI鎰忓浘搴撳垎绫婚泦鍚�
+     */
+    public List<IvrLibIntentcategory> selectIvrLibIntentcategoryList(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 鏂板AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 淇敼AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentcategoryByIntertcatid(Long intertcatid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentcategoryByIntertcatids(Long[] intertcatids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibScriptMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptMapper.java
new file mode 100644
index 0000000..522d5e6
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScript;
+
+/**
+ * AI璇濇湳搴揗apper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrLibScriptMapper 
+{
+    /**
+     * 鏌ヨAI璇濇湳搴�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return AI璇濇湳搴�
+     */
+    public IvrLibScript selectIvrLibScriptByScriptid(Long scriptid);
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垪琛�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return AI璇濇湳搴撻泦鍚�
+     */
+    public List<IvrLibScript> selectIvrLibScriptList(IvrLibScript ivrLibScript);
+
+    /**
+     * 鏂板AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScript(IvrLibScript ivrLibScript);
+
+    /**
+     * 淇敼AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScript(IvrLibScript ivrLibScript);
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptByScriptid(Long scriptid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴�
+     * 
+     * @param scriptids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptByScriptids(Long[] scriptids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibScriptcategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptcategoryMapper.java
new file mode 100644
index 0000000..9e1da20
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptcategoryMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScriptcategory;
+
+/**
+ * AI璇濇湳搴撳垎绫籑apper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrLibScriptcategoryMapper 
+{
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return AI璇濇湳搴撳垎绫�
+     */
+    public IvrLibScriptcategory selectIvrLibScriptcategoryByCategoryid(Long categoryid);
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return AI璇濇湳搴撳垎绫婚泦鍚�
+     */
+    public List<IvrLibScriptcategory> selectIvrLibScriptcategoryList(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 鏂板AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 淇敼AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptcategoryByCategoryid(Long categoryid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptcategoryByCategoryids(Long[] categoryids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrLibScriptmodelMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptmodelMapper.java
new file mode 100644
index 0000000..14ce706
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrLibScriptmodelMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScriptmodel;
+
+/**
+ * AI璇濇湳妯″潡Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrLibScriptmodelMapper 
+{
+    /**
+     * 鏌ヨAI璇濇湳妯″潡
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return AI璇濇湳妯″潡
+     */
+    public IvrLibScriptmodel selectIvrLibScriptmodelByModelid(Long modelid);
+
+    /**
+     * 鏌ヨAI璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return AI璇濇湳妯″潡闆嗗悎
+     */
+    public List<IvrLibScriptmodel> selectIvrLibScriptmodelList(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 鏂板AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 淇敼AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 鍒犻櫎AI璇濇湳妯″潡
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptmodelByModelid(Long modelid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳妯″潡
+     * 
+     * @param modelids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptmodelByModelids(Long[] modelids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneExecuteconfigMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneExecuteconfigMapper.java
new file mode 100644
index 0000000..200068b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneExecuteconfigMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneExecuteconfig;
+
+/**
+ * AI澶栧懠鎵ц閰嶇疆Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneExecuteconfigMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return AI澶栧懠鎵ц閰嶇疆
+     */
+    public IvrSceneExecuteconfig selectIvrSceneExecuteconfigByScenecfgid(Long scenecfgid);
+
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return AI澶栧懠鎵ц閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneExecuteconfig> selectIvrSceneExecuteconfigList(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 鏂板AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 淇敼AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneExecuteconfigByScenecfgid(Long scenecfgid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneExecuteconfigByScenecfgids(Long[] scenecfgids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneFlowMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlowMapper.java
new file mode 100644
index 0000000..00b7cc0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlowMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlow;
+
+/**
+ * AI澶栧懠娴佺▼Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneFlowMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return AI澶栧懠娴佺▼
+     */
+    public IvrSceneFlow selectIvrSceneFlowByFlowid(Long flowid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鍒楄〃
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return AI澶栧懠娴佺▼闆嗗悎
+     */
+    public List<IvrSceneFlow> selectIvrSceneFlowList(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlow(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlow(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlowByFlowid(Long flowid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼
+     * 
+     * @param flowids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlowByFlowids(Long[] flowids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodeMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodeMapper.java
new file mode 100644
index 0000000..52db482
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodeMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlownode;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneFlownodeMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣
+     */
+    public IvrSceneFlownode selectIvrSceneFlownodeByFlownodeid(Long flownodeid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒楄〃
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return AI澶栧懠娴佺▼鑺傜偣闆嗗悎
+     */
+    public List<IvrSceneFlownode> selectIvrSceneFlownodeList(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodeByFlownodeid(Long flownodeid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodeByFlownodeids(Long[] flownodeids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodebranchMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodebranchMapper.java
new file mode 100644
index 0000000..d3f073b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneFlownodebranchMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlownodebranch;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣鍒嗘敮Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneFlownodebranchMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    public IvrSceneFlownodebranch selectIvrSceneFlownodebranchByBranchid(Long branchid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮鍒楄〃
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮闆嗗悎
+     */
+    public List<IvrSceneFlownodebranch> selectIvrSceneFlownodebranchList(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodebranchByBranchid(Long branchid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodebranchByBranchids(Long[] branchids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneGlobalconfigMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneGlobalconfigMapper.java
new file mode 100644
index 0000000..b1987fb
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneGlobalconfigMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneGlobalconfig;
+
+/**
+ * AI澶栧懠鍏ㄥ眬閰嶇疆Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneGlobalconfigMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    public IvrSceneGlobalconfig selectIvrSceneGlobalconfigByGblconfigid(Long gblconfigid);
+
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneGlobalconfig> selectIvrSceneGlobalconfigList(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 鏂板AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 淇敼AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneGlobalconfigByGblconfigid(Long gblconfigid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneGlobalconfigByGblconfigids(Long[] gblconfigids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneIntentMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneIntentMapper.java
new file mode 100644
index 0000000..ced291b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneIntentMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneIntent;
+
+/**
+ * AI澶栧懠鎰忓浘Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneIntentMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return AI澶栧懠鎰忓浘
+     */
+    public IvrSceneIntent selectIvrSceneIntentBySceneintentid(Long sceneintentid);
+
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘鍒楄〃
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return AI澶栧懠鎰忓浘闆嗗悎
+     */
+    public List<IvrSceneIntent> selectIvrSceneIntentList(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 鏂板AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneIntent(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 淇敼AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneIntent(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneIntentBySceneintentid(Long sceneintentid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneIntentBySceneintentids(Long[] sceneintentids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneMapper.java
new file mode 100644
index 0000000..c47c601
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrScene;
+
+/**
+ * AI澶栧懠鍦烘櫙绠$悊Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return AI澶栧懠鍦烘櫙绠$悊
+     */
+    public IvrScene selectIvrSceneBySceneid(Long sceneid);
+
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊鍒楄〃
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return AI澶栧懠鍦烘櫙绠$悊闆嗗悎
+     */
+    public List<IvrScene> selectIvrSceneList(IvrScene ivrScene);
+
+    /**
+     * 鏂板AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    public int insertIvrScene(IvrScene ivrScene);
+
+    /**
+     * 淇敼AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    public int updateIvrScene(IvrScene ivrScene);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneBySceneid(Long sceneid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneBySceneids(Long[] sceneids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneRecallMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneRecallMapper.java
new file mode 100644
index 0000000..071cca0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneRecallMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneRecall;
+
+/**
+ * AI澶栧懠閲嶆嫧閰嶇疆Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneRecallMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    public IvrSceneRecall selectIvrSceneRecallByRecallid(Long recallid);
+
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return AI澶栧懠閲嶆嫧閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneRecall> selectIvrSceneRecallList(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 鏂板AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneRecall(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 淇敼AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneRecall(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneRecallByRecallid(Long recallid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneRecallByRecallids(Long[] recallids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptMapper.java
new file mode 100644
index 0000000..005fc8e
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneScript;
+
+/**
+ * AI澶栧懠璇濇湳Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneScriptMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return AI澶栧懠璇濇湳
+     */
+    public IvrSceneScript selectIvrSceneScriptByScenescrid(Long scenescrid);
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳鍒楄〃
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return AI澶栧懠璇濇湳闆嗗悎
+     */
+    public List<IvrSceneScript> selectIvrSceneScriptList(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneScript(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneScript(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptByScenescrid(Long scenescrid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳
+     * 
+     * @param scenescrids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptByScenescrids(Long[] scenescrids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptmodelMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptmodelMapper.java
new file mode 100644
index 0000000..e6031ac
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrSceneScriptmodelMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneScriptmodel;
+
+/**
+ * AI澶栧懠璇濇湳妯″潡Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrSceneScriptmodelMapper 
+{
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return AI澶栧懠璇濇湳妯″潡
+     */
+    public IvrSceneScriptmodel selectIvrSceneScriptmodelByScenemodid(Long scenemodid);
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return AI澶栧懠璇濇湳妯″潡闆嗗悎
+     */
+    public List<IvrSceneScriptmodel> selectIvrSceneScriptmodelList(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptmodelByScenemodid(Long scenemodid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptmodelByScenemodids(Long[] scenemodids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/IvrScenecategoryMapper.java b/smartor/src/main/java/com/smartor/mapper/IvrScenecategoryMapper.java
new file mode 100644
index 0000000..4287570
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/IvrScenecategoryMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.IvrScenecategory;
+
+/**
+ * AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IvrScenecategoryMapper 
+{
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    public IvrScenecategory selectIvrScenecategoryByScenecatid(Long scenecatid);
+
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鍒楄〃
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被闆嗗悎
+     */
+    public List<IvrScenecategory> selectIvrScenecategoryList(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 鏂板AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertIvrScenecategory(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 淇敼AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateIvrScenecategory(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrScenecategoryByScenecatid(Long scenecatid);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrScenecategoryByScenecatids(Long[] scenecatids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SmsParamMapper.java b/smartor/src/main/java/com/smartor/mapper/SmsParamMapper.java
new file mode 100644
index 0000000..044002c
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SmsParamMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.SmsParam;
+
+/**
+ * 鐭俊鍙傛暟Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface SmsParamMapper 
+{
+    /**
+     * 鏌ヨ鐭俊鍙傛暟
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 鐭俊鍙傛暟
+     */
+    public SmsParam selectSmsParamByParamid(Long paramid);
+
+    /**
+     * 鏌ヨ鐭俊鍙傛暟鍒楄〃
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 鐭俊鍙傛暟闆嗗悎
+     */
+    public List<SmsParam> selectSmsParamList(SmsParam smsParam);
+
+    /**
+     * 鏂板鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    public int insertSmsParam(SmsParam smsParam);
+
+    /**
+     * 淇敼鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    public int updateSmsParam(SmsParam smsParam);
+
+    /**
+     * 鍒犻櫎鐭俊鍙傛暟
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsParamByParamid(Long paramid);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊鍙傛暟
+     * 
+     * @param paramids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsParamByParamids(Long[] paramids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SmsRecordsMapper.java b/smartor/src/main/java/com/smartor/mapper/SmsRecordsMapper.java
new file mode 100644
index 0000000..fdc5c91
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SmsRecordsMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.SmsRecords;
+
+/**
+ * 鐭俊璁板綍Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface SmsRecordsMapper 
+{
+    /**
+     * 鏌ヨ鐭俊璁板綍
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 鐭俊璁板綍
+     */
+    public SmsRecords selectSmsRecordsByRecordid(Long recordid);
+
+    /**
+     * 鏌ヨ鐭俊璁板綍鍒楄〃
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 鐭俊璁板綍闆嗗悎
+     */
+    public List<SmsRecords> selectSmsRecordsList(SmsRecords smsRecords);
+
+    /**
+     * 鏂板鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    public int insertSmsRecords(SmsRecords smsRecords);
+
+    /**
+     * 淇敼鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    public int updateSmsRecords(SmsRecords smsRecords);
+
+    /**
+     * 鍒犻櫎鐭俊璁板綍
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsRecordsByRecordid(Long recordid);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璁板綍
+     * 
+     * @param recordids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsRecordsByRecordids(Long[] recordids);
+}
diff --git a/smartor/src/main/java/com/smartor/mapper/SmsTempletMapper.java b/smartor/src/main/java/com/smartor/mapper/SmsTempletMapper.java
new file mode 100644
index 0000000..c39464e
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/mapper/SmsTempletMapper.java
@@ -0,0 +1,61 @@
+package com.smartor.mapper;
+
+import java.util.List;
+import com.smartor.domain.SmsTemplet;
+
+/**
+ * 鐭俊妯℃澘Mapper鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface SmsTempletMapper 
+{
+    /**
+     * 鏌ヨ鐭俊妯℃澘
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 鐭俊妯℃澘
+     */
+    public SmsTemplet selectSmsTempletByTempletid(Long templetid);
+
+    /**
+     * 鏌ヨ鐭俊妯℃澘鍒楄〃
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 鐭俊妯℃澘闆嗗悎
+     */
+    public List<SmsTemplet> selectSmsTempletList(SmsTemplet smsTemplet);
+
+    /**
+     * 鏂板鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    public int insertSmsTemplet(SmsTemplet smsTemplet);
+
+    /**
+     * 淇敼鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    public int updateSmsTemplet(SmsTemplet smsTemplet);
+
+    /**
+     * 鍒犻櫎鐭俊妯℃澘
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsTempletByTempletid(Long templetid);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊妯℃澘
+     * 
+     * @param templetids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsTempletByTempletids(Long[] templetids);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java b/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
new file mode 100644
index 0000000..8ca0692
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.BaseSmsaccount;
+
+/**
+ * 鐭俊璐﹀彿Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IBaseSmsaccountService 
+{
+    /**
+     * 鏌ヨ鐭俊璐﹀彿
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 鐭俊璐﹀彿
+     */
+    public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid);
+
+    /**
+     * 鏌ヨ鐭俊璐﹀彿鍒楄〃
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 鐭俊璐﹀彿闆嗗悎
+     */
+    public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 鏂板鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 淇敼鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璐﹀彿
+     * 
+     * @param smsacountids 闇�瑕佸垹闄ょ殑鐭俊璐﹀彿涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids);
+
+    /**
+     * 鍒犻櫎鐭俊璐﹀彿淇℃伅
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBaseSmsaccountBySmsacountid(Long smsacountid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrLibIntentService.java b/smartor/src/main/java/com/smartor/service/IIvrLibIntentService.java
new file mode 100644
index 0000000..c8df0f7
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrLibIntentService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrLibIntent;
+
+/**
+ * AI鎰忓浘搴揝ervice鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrLibIntentService 
+{
+    /**
+     * 鏌ヨAI鎰忓浘搴�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return AI鎰忓浘搴�
+     */
+    public IvrLibIntent selectIvrLibIntentByIntentid(Long intentid);
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垪琛�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return AI鎰忓浘搴撻泦鍚�
+     */
+    public List<IvrLibIntent> selectIvrLibIntentList(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 鏂板AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibIntent(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 淇敼AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibIntent(IvrLibIntent ivrLibIntent);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴�
+     * 
+     * @param intentids 闇�瑕佸垹闄ょ殑AI鎰忓浘搴撲富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentByIntentids(Long[] intentids);
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撲俊鎭�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentByIntentid(Long intentid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrLibIntentcategoryService.java b/smartor/src/main/java/com/smartor/service/IIvrLibIntentcategoryService.java
new file mode 100644
index 0000000..7c9f11e
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrLibIntentcategoryService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrLibIntentcategory;
+
+/**
+ * AI鎰忓浘搴撳垎绫籗ervice鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrLibIntentcategoryService 
+{
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return AI鎰忓浘搴撳垎绫�
+     */
+    public IvrLibIntentcategory selectIvrLibIntentcategoryByIntertcatid(Long intertcatid);
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return AI鎰忓浘搴撳垎绫婚泦鍚�
+     */
+    public List<IvrLibIntentcategory> selectIvrLibIntentcategoryList(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 鏂板AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 淇敼AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatids 闇�瑕佸垹闄ょ殑AI鎰忓浘搴撳垎绫讳富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentcategoryByIntertcatids(Long[] intertcatids);
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撳垎绫讳俊鎭�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibIntentcategoryByIntertcatid(Long intertcatid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrLibScriptService.java b/smartor/src/main/java/com/smartor/service/IIvrLibScriptService.java
new file mode 100644
index 0000000..d93b886
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrLibScriptService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScript;
+
+/**
+ * AI璇濇湳搴揝ervice鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrLibScriptService 
+{
+    /**
+     * 鏌ヨAI璇濇湳搴�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return AI璇濇湳搴�
+     */
+    public IvrLibScript selectIvrLibScriptByScriptid(Long scriptid);
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垪琛�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return AI璇濇湳搴撻泦鍚�
+     */
+    public List<IvrLibScript> selectIvrLibScriptList(IvrLibScript ivrLibScript);
+
+    /**
+     * 鏂板AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScript(IvrLibScript ivrLibScript);
+
+    /**
+     * 淇敼AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScript(IvrLibScript ivrLibScript);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴�
+     * 
+     * @param scriptids 闇�瑕佸垹闄ょ殑AI璇濇湳搴撲富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptByScriptids(Long[] scriptids);
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撲俊鎭�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptByScriptid(Long scriptid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrLibScriptcategoryService.java b/smartor/src/main/java/com/smartor/service/IIvrLibScriptcategoryService.java
new file mode 100644
index 0000000..ccfee2b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrLibScriptcategoryService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScriptcategory;
+
+/**
+ * AI璇濇湳搴撳垎绫籗ervice鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrLibScriptcategoryService 
+{
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return AI璇濇湳搴撳垎绫�
+     */
+    public IvrLibScriptcategory selectIvrLibScriptcategoryByCategoryid(Long categoryid);
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return AI璇濇湳搴撳垎绫婚泦鍚�
+     */
+    public List<IvrLibScriptcategory> selectIvrLibScriptcategoryList(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 鏂板AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 淇敼AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryids 闇�瑕佸垹闄ょ殑AI璇濇湳搴撳垎绫讳富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptcategoryByCategoryids(Long[] categoryids);
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撳垎绫讳俊鎭�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptcategoryByCategoryid(Long categoryid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrLibScriptmodelService.java b/smartor/src/main/java/com/smartor/service/IIvrLibScriptmodelService.java
new file mode 100644
index 0000000..f76f991
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrLibScriptmodelService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrLibScriptmodel;
+
+/**
+ * AI璇濇湳妯″潡Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrLibScriptmodelService 
+{
+    /**
+     * 鏌ヨAI璇濇湳妯″潡
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return AI璇濇湳妯″潡
+     */
+    public IvrLibScriptmodel selectIvrLibScriptmodelByModelid(Long modelid);
+
+    /**
+     * 鏌ヨAI璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return AI璇濇湳妯″潡闆嗗悎
+     */
+    public List<IvrLibScriptmodel> selectIvrLibScriptmodelList(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 鏂板AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int insertIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 淇敼AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int updateIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel);
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳妯″潡
+     * 
+     * @param modelids 闇�瑕佸垹闄ょ殑AI璇濇湳妯″潡涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptmodelByModelids(Long[] modelids);
+
+    /**
+     * 鍒犻櫎AI璇濇湳妯″潡淇℃伅
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrLibScriptmodelByModelid(Long modelid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneExecuteconfigService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneExecuteconfigService.java
new file mode 100644
index 0000000..1e0cdce
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneExecuteconfigService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneExecuteconfig;
+
+/**
+ * AI澶栧懠鎵ц閰嶇疆Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneExecuteconfigService 
+{
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return AI澶栧懠鎵ц閰嶇疆
+     */
+    public IvrSceneExecuteconfig selectIvrSceneExecuteconfigByScenecfgid(Long scenecfgid);
+
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return AI澶栧懠鎵ц閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneExecuteconfig> selectIvrSceneExecuteconfigList(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 鏂板AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 淇敼AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgids 闇�瑕佸垹闄ょ殑AI澶栧懠鎵ц閰嶇疆涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneExecuteconfigByScenecfgids(Long[] scenecfgids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎵ц閰嶇疆淇℃伅
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneExecuteconfigByScenecfgid(Long scenecfgid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneFlowService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneFlowService.java
new file mode 100644
index 0000000..99e61aa
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneFlowService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlow;
+
+/**
+ * AI澶栧懠娴佺▼Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneFlowService 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return AI澶栧懠娴佺▼
+     */
+    public IvrSceneFlow selectIvrSceneFlowByFlowid(Long flowid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鍒楄〃
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return AI澶栧懠娴佺▼闆嗗悎
+     */
+    public List<IvrSceneFlow> selectIvrSceneFlowList(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlow(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlow(IvrSceneFlow ivrSceneFlow);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼
+     * 
+     * @param flowids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlowByFlowids(Long[] flowids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼淇℃伅
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlowByFlowid(Long flowid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodeService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodeService.java
new file mode 100644
index 0000000..3e17aa4
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodeService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlownode;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneFlownodeService 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣
+     */
+    public IvrSceneFlownode selectIvrSceneFlownodeByFlownodeid(Long flownodeid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒楄〃
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return AI澶栧懠娴佺▼鑺傜偣闆嗗悎
+     */
+    public List<IvrSceneFlownode> selectIvrSceneFlownodeList(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼鑺傜偣涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodeByFlownodeids(Long[] flownodeids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣淇℃伅
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodeByFlownodeid(Long flownodeid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodebranchService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodebranchService.java
new file mode 100644
index 0000000..c6a8210
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneFlownodebranchService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneFlownodebranch;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣鍒嗘敮Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneFlownodebranchService 
+{
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    public IvrSceneFlownodebranch selectIvrSceneFlownodebranchByBranchid(Long branchid);
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮鍒楄〃
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮闆嗗悎
+     */
+    public List<IvrSceneFlownodebranch> selectIvrSceneFlownodebranchList(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodebranchByBranchids(Long[] branchids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮淇℃伅
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneFlownodebranchByBranchid(Long branchid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneGlobalconfigService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneGlobalconfigService.java
new file mode 100644
index 0000000..da4b3b6
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneGlobalconfigService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneGlobalconfig;
+
+/**
+ * AI澶栧懠鍏ㄥ眬閰嶇疆Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneGlobalconfigService 
+{
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    public IvrSceneGlobalconfig selectIvrSceneGlobalconfigByGblconfigid(Long gblconfigid);
+
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneGlobalconfig> selectIvrSceneGlobalconfigList(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 鏂板AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 淇敼AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigids 闇�瑕佸垹闄ょ殑AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneGlobalconfigByGblconfigids(Long[] gblconfigids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆淇℃伅
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneGlobalconfigByGblconfigid(Long gblconfigid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneIntentService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneIntentService.java
new file mode 100644
index 0000000..af1ffcc
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneIntentService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneIntent;
+
+/**
+ * AI澶栧懠鎰忓浘Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneIntentService 
+{
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return AI澶栧懠鎰忓浘
+     */
+    public IvrSceneIntent selectIvrSceneIntentBySceneintentid(Long sceneintentid);
+
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘鍒楄〃
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return AI澶栧懠鎰忓浘闆嗗悎
+     */
+    public List<IvrSceneIntent> selectIvrSceneIntentList(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 鏂板AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneIntent(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 淇敼AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneIntent(IvrSceneIntent ivrSceneIntent);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentids 闇�瑕佸垹闄ょ殑AI澶栧懠鎰忓浘涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneIntentBySceneintentids(Long[] sceneintentids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎰忓浘淇℃伅
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneIntentBySceneintentid(Long sceneintentid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneRecallService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneRecallService.java
new file mode 100644
index 0000000..2144c0a
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneRecallService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneRecall;
+
+/**
+ * AI澶栧懠閲嶆嫧閰嶇疆Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneRecallService 
+{
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    public IvrSceneRecall selectIvrSceneRecallByRecallid(Long recallid);
+
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return AI澶栧懠閲嶆嫧閰嶇疆闆嗗悎
+     */
+    public List<IvrSceneRecall> selectIvrSceneRecallList(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 鏂板AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneRecall(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 淇敼AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneRecall(IvrSceneRecall ivrSceneRecall);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallids 闇�瑕佸垹闄ょ殑AI澶栧懠閲嶆嫧閰嶇疆涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneRecallByRecallids(Long[] recallids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆淇℃伅
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneRecallByRecallid(Long recallid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneScriptService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneScriptService.java
new file mode 100644
index 0000000..adc7078
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneScriptService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneScript;
+
+/**
+ * AI澶栧懠璇濇湳Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneScriptService 
+{
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return AI澶栧懠璇濇湳
+     */
+    public IvrSceneScript selectIvrSceneScriptByScenescrid(Long scenescrid);
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳鍒楄〃
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return AI澶栧懠璇濇湳闆嗗悎
+     */
+    public List<IvrSceneScript> selectIvrSceneScriptList(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneScript(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneScript(IvrSceneScript ivrSceneScript);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳
+     * 
+     * @param scenescrids 闇�瑕佸垹闄ょ殑AI澶栧懠璇濇湳涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptByScenescrids(Long[] scenescrids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳淇℃伅
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptByScenescrid(Long scenescrid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneScriptmodelService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneScriptmodelService.java
new file mode 100644
index 0000000..c93210c
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneScriptmodelService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrSceneScriptmodel;
+
+/**
+ * AI澶栧懠璇濇湳妯″潡Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneScriptmodelService 
+{
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return AI澶栧懠璇濇湳妯″潡
+     */
+    public IvrSceneScriptmodel selectIvrSceneScriptmodelByScenemodid(Long scenemodid);
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return AI澶栧懠璇濇湳妯″潡闆嗗悎
+     */
+    public List<IvrSceneScriptmodel> selectIvrSceneScriptmodelList(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int insertIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    public int updateIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodids 闇�瑕佸垹闄ょ殑AI澶栧懠璇濇湳妯″潡涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptmodelByScenemodids(Long[] scenemodids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳妯″潡淇℃伅
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneScriptmodelByScenemodid(Long scenemodid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrSceneService.java b/smartor/src/main/java/com/smartor/service/IIvrSceneService.java
new file mode 100644
index 0000000..7d0cecd
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrSceneService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrScene;
+
+/**
+ * AI澶栧懠鍦烘櫙绠$悊Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrSceneService 
+{
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return AI澶栧懠鍦烘櫙绠$悊
+     */
+    public IvrScene selectIvrSceneBySceneid(Long sceneid);
+
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊鍒楄〃
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return AI澶栧懠鍦烘櫙绠$悊闆嗗悎
+     */
+    public List<IvrScene> selectIvrSceneList(IvrScene ivrScene);
+
+    /**
+     * 鏂板AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    public int insertIvrScene(IvrScene ivrScene);
+
+    /**
+     * 淇敼AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    public int updateIvrScene(IvrScene ivrScene);
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneids 闇�瑕佸垹闄ょ殑AI澶栧懠鍦烘櫙绠$悊涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneBySceneids(Long[] sceneids);
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍦烘櫙绠$悊淇℃伅
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrSceneBySceneid(Long sceneid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/IIvrScenecategoryService.java b/smartor/src/main/java/com/smartor/service/IIvrScenecategoryService.java
new file mode 100644
index 0000000..981494c
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/IIvrScenecategoryService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.IvrScenecategory;
+
+/**
+ * AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface IIvrScenecategoryService 
+{
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    public IvrScenecategory selectIvrScenecategoryByScenecatid(Long scenecatid);
+
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鍒楄〃
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被闆嗗悎
+     */
+    public List<IvrScenecategory> selectIvrScenecategoryList(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 鏂板AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    public int insertIvrScenecategory(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 淇敼AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    public int updateIvrScenecategory(IvrScenecategory ivrScenecategory);
+
+    /**
+     * 鎵归噺鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatids 闇�瑕佸垹闄ょ殑AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteIvrScenecategoryByScenecatids(Long[] scenecatids);
+
+    /**
+     * 鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被淇℃伅
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteIvrScenecategoryByScenecatid(Long scenecatid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISmsParamService.java b/smartor/src/main/java/com/smartor/service/ISmsParamService.java
new file mode 100644
index 0000000..437c0b7
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISmsParamService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.SmsParam;
+
+/**
+ * 鐭俊鍙傛暟Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface ISmsParamService 
+{
+    /**
+     * 鏌ヨ鐭俊鍙傛暟
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 鐭俊鍙傛暟
+     */
+    public SmsParam selectSmsParamByParamid(Long paramid);
+
+    /**
+     * 鏌ヨ鐭俊鍙傛暟鍒楄〃
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 鐭俊鍙傛暟闆嗗悎
+     */
+    public List<SmsParam> selectSmsParamList(SmsParam smsParam);
+
+    /**
+     * 鏂板鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    public int insertSmsParam(SmsParam smsParam);
+
+    /**
+     * 淇敼鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    public int updateSmsParam(SmsParam smsParam);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊鍙傛暟
+     * 
+     * @param paramids 闇�瑕佸垹闄ょ殑鐭俊鍙傛暟涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsParamByParamids(Long[] paramids);
+
+    /**
+     * 鍒犻櫎鐭俊鍙傛暟淇℃伅
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsParamByParamid(Long paramid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISmsRecordsService.java b/smartor/src/main/java/com/smartor/service/ISmsRecordsService.java
new file mode 100644
index 0000000..2669621
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISmsRecordsService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.SmsRecords;
+
+/**
+ * 鐭俊璁板綍Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface ISmsRecordsService 
+{
+    /**
+     * 鏌ヨ鐭俊璁板綍
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 鐭俊璁板綍
+     */
+    public SmsRecords selectSmsRecordsByRecordid(Long recordid);
+
+    /**
+     * 鏌ヨ鐭俊璁板綍鍒楄〃
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 鐭俊璁板綍闆嗗悎
+     */
+    public List<SmsRecords> selectSmsRecordsList(SmsRecords smsRecords);
+
+    /**
+     * 鏂板鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    public int insertSmsRecords(SmsRecords smsRecords);
+
+    /**
+     * 淇敼鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    public int updateSmsRecords(SmsRecords smsRecords);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璁板綍
+     * 
+     * @param recordids 闇�瑕佸垹闄ょ殑鐭俊璁板綍涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsRecordsByRecordids(Long[] recordids);
+
+    /**
+     * 鍒犻櫎鐭俊璁板綍淇℃伅
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsRecordsByRecordid(Long recordid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/ISmsTempletService.java b/smartor/src/main/java/com/smartor/service/ISmsTempletService.java
new file mode 100644
index 0000000..55059d4
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/ISmsTempletService.java
@@ -0,0 +1,61 @@
+package com.smartor.service;
+
+import java.util.List;
+import com.smartor.domain.SmsTemplet;
+
+/**
+ * 鐭俊妯℃澘Service鎺ュ彛
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+public interface ISmsTempletService 
+{
+    /**
+     * 鏌ヨ鐭俊妯℃澘
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 鐭俊妯℃澘
+     */
+    public SmsTemplet selectSmsTempletByTempletid(Long templetid);
+
+    /**
+     * 鏌ヨ鐭俊妯℃澘鍒楄〃
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 鐭俊妯℃澘闆嗗悎
+     */
+    public List<SmsTemplet> selectSmsTempletList(SmsTemplet smsTemplet);
+
+    /**
+     * 鏂板鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    public int insertSmsTemplet(SmsTemplet smsTemplet);
+
+    /**
+     * 淇敼鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    public int updateSmsTemplet(SmsTemplet smsTemplet);
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊妯℃澘
+     * 
+     * @param templetids 闇�瑕佸垹闄ょ殑鐭俊妯℃澘涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSmsTempletByTempletids(Long[] templetids);
+
+    /**
+     * 鍒犻櫎鐭俊妯℃澘淇℃伅
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteSmsTempletByTempletid(Long templetid);
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
new file mode 100644
index 0000000..ff65db8
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.BaseSmsaccountMapper;
+import com.smartor.domain.BaseSmsaccount;
+import com.smartor.service.IBaseSmsaccountService;
+
+/**
+ * 鐭俊璐﹀彿Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class BaseSmsaccountServiceImpl implements IBaseSmsaccountService 
+{
+    @Autowired
+    private BaseSmsaccountMapper baseSmsaccountMapper;
+
+    /**
+     * 鏌ヨ鐭俊璐﹀彿
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 鐭俊璐﹀彿
+     */
+    @Override
+    public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid)
+    {
+        return baseSmsaccountMapper.selectBaseSmsaccountBySmsacountid(smsacountid);
+    }
+
+    /**
+     * 鏌ヨ鐭俊璐﹀彿鍒楄〃
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 鐭俊璐﹀彿
+     */
+    @Override
+    public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount)
+    {
+        return baseSmsaccountMapper.selectBaseSmsaccountList(baseSmsaccount);
+    }
+
+    /**
+     * 鏂板鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount)
+    {
+        baseSmsaccount.setCreateTime(DateUtils.getNowDate());
+        return baseSmsaccountMapper.insertBaseSmsaccount(baseSmsaccount);
+    }
+
+    /**
+     * 淇敼鐭俊璐﹀彿
+     * 
+     * @param baseSmsaccount 鐭俊璐﹀彿
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount)
+    {
+        baseSmsaccount.setUpdateTime(DateUtils.getNowDate());
+        return baseSmsaccountMapper.updateBaseSmsaccount(baseSmsaccount);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璐﹀彿
+     * 
+     * @param smsacountids 闇�瑕佸垹闄ょ殑鐭俊璐﹀彿涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids)
+    {
+        return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountids(smsacountids);
+    }
+
+    /**
+     * 鍒犻櫎鐭俊璐﹀彿淇℃伅
+     * 
+     * @param smsacountid 鐭俊璐﹀彿涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBaseSmsaccountBySmsacountid(Long smsacountid)
+    {
+        return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountid(smsacountid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentServiceImpl.java
new file mode 100644
index 0000000..aed4c31
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrLibIntentMapper;
+import com.smartor.domain.IvrLibIntent;
+import com.smartor.service.IIvrLibIntentService;
+
+/**
+ * AI鎰忓浘搴揝ervice涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrLibIntentServiceImpl implements IIvrLibIntentService 
+{
+    @Autowired
+    private IvrLibIntentMapper ivrLibIntentMapper;
+
+    /**
+     * 鏌ヨAI鎰忓浘搴�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return AI鎰忓浘搴�
+     */
+    @Override
+    public IvrLibIntent selectIvrLibIntentByIntentid(Long intentid)
+    {
+        return ivrLibIntentMapper.selectIvrLibIntentByIntentid(intentid);
+    }
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垪琛�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return AI鎰忓浘搴�
+     */
+    @Override
+    public List<IvrLibIntent> selectIvrLibIntentList(IvrLibIntent ivrLibIntent)
+    {
+        return ivrLibIntentMapper.selectIvrLibIntentList(ivrLibIntent);
+    }
+
+    /**
+     * 鏂板AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrLibIntent(IvrLibIntent ivrLibIntent)
+    {
+        ivrLibIntent.setCreateTime(DateUtils.getNowDate());
+        return ivrLibIntentMapper.insertIvrLibIntent(ivrLibIntent);
+    }
+
+    /**
+     * 淇敼AI鎰忓浘搴�
+     * 
+     * @param ivrLibIntent AI鎰忓浘搴�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrLibIntent(IvrLibIntent ivrLibIntent)
+    {
+        ivrLibIntent.setUpdateTime(DateUtils.getNowDate());
+        return ivrLibIntentMapper.updateIvrLibIntent(ivrLibIntent);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴�
+     * 
+     * @param intentids 闇�瑕佸垹闄ょ殑AI鎰忓浘搴撲富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibIntentByIntentids(Long[] intentids)
+    {
+        return ivrLibIntentMapper.deleteIvrLibIntentByIntentids(intentids);
+    }
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撲俊鎭�
+     * 
+     * @param intentid AI鎰忓浘搴撲富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibIntentByIntentid(Long intentid)
+    {
+        return ivrLibIntentMapper.deleteIvrLibIntentByIntentid(intentid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentcategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentcategoryServiceImpl.java
new file mode 100644
index 0000000..dc6c76c
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibIntentcategoryServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrLibIntentcategoryMapper;
+import com.smartor.domain.IvrLibIntentcategory;
+import com.smartor.service.IIvrLibIntentcategoryService;
+
+/**
+ * AI鎰忓浘搴撳垎绫籗ervice涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrLibIntentcategoryServiceImpl implements IIvrLibIntentcategoryService 
+{
+    @Autowired
+    private IvrLibIntentcategoryMapper ivrLibIntentcategoryMapper;
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return AI鎰忓浘搴撳垎绫�
+     */
+    @Override
+    public IvrLibIntentcategory selectIvrLibIntentcategoryByIntertcatid(Long intertcatid)
+    {
+        return ivrLibIntentcategoryMapper.selectIvrLibIntentcategoryByIntertcatid(intertcatid);
+    }
+
+    /**
+     * 鏌ヨAI鎰忓浘搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return AI鎰忓浘搴撳垎绫�
+     */
+    @Override
+    public List<IvrLibIntentcategory> selectIvrLibIntentcategoryList(IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        return ivrLibIntentcategoryMapper.selectIvrLibIntentcategoryList(ivrLibIntentcategory);
+    }
+
+    /**
+     * 鏂板AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        ivrLibIntentcategory.setCreateTime(DateUtils.getNowDate());
+        return ivrLibIntentcategoryMapper.insertIvrLibIntentcategory(ivrLibIntentcategory);
+    }
+
+    /**
+     * 淇敼AI鎰忓浘搴撳垎绫�
+     * 
+     * @param ivrLibIntentcategory AI鎰忓浘搴撳垎绫�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrLibIntentcategory(IvrLibIntentcategory ivrLibIntentcategory)
+    {
+        ivrLibIntentcategory.setUpdateTime(DateUtils.getNowDate());
+        return ivrLibIntentcategoryMapper.updateIvrLibIntentcategory(ivrLibIntentcategory);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI鎰忓浘搴撳垎绫�
+     * 
+     * @param intertcatids 闇�瑕佸垹闄ょ殑AI鎰忓浘搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibIntentcategoryByIntertcatids(Long[] intertcatids)
+    {
+        return ivrLibIntentcategoryMapper.deleteIvrLibIntentcategoryByIntertcatids(intertcatids);
+    }
+
+    /**
+     * 鍒犻櫎AI鎰忓浘搴撳垎绫讳俊鎭�
+     * 
+     * @param intertcatid AI鎰忓浘搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibIntentcategoryByIntertcatid(Long intertcatid)
+    {
+        return ivrLibIntentcategoryMapper.deleteIvrLibIntentcategoryByIntertcatid(intertcatid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptServiceImpl.java
new file mode 100644
index 0000000..d729dd3
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrLibScriptMapper;
+import com.smartor.domain.IvrLibScript;
+import com.smartor.service.IIvrLibScriptService;
+
+/**
+ * AI璇濇湳搴揝ervice涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrLibScriptServiceImpl implements IIvrLibScriptService 
+{
+    @Autowired
+    private IvrLibScriptMapper ivrLibScriptMapper;
+
+    /**
+     * 鏌ヨAI璇濇湳搴�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return AI璇濇湳搴�
+     */
+    @Override
+    public IvrLibScript selectIvrLibScriptByScriptid(Long scriptid)
+    {
+        return ivrLibScriptMapper.selectIvrLibScriptByScriptid(scriptid);
+    }
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垪琛�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return AI璇濇湳搴�
+     */
+    @Override
+    public List<IvrLibScript> selectIvrLibScriptList(IvrLibScript ivrLibScript)
+    {
+        return ivrLibScriptMapper.selectIvrLibScriptList(ivrLibScript);
+    }
+
+    /**
+     * 鏂板AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrLibScript(IvrLibScript ivrLibScript)
+    {
+        ivrLibScript.setCreateTime(DateUtils.getNowDate());
+        return ivrLibScriptMapper.insertIvrLibScript(ivrLibScript);
+    }
+
+    /**
+     * 淇敼AI璇濇湳搴�
+     * 
+     * @param ivrLibScript AI璇濇湳搴�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrLibScript(IvrLibScript ivrLibScript)
+    {
+        ivrLibScript.setUpdateTime(DateUtils.getNowDate());
+        return ivrLibScriptMapper.updateIvrLibScript(ivrLibScript);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴�
+     * 
+     * @param scriptids 闇�瑕佸垹闄ょ殑AI璇濇湳搴撲富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptByScriptids(Long[] scriptids)
+    {
+        return ivrLibScriptMapper.deleteIvrLibScriptByScriptids(scriptids);
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撲俊鎭�
+     * 
+     * @param scriptid AI璇濇湳搴撲富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptByScriptid(Long scriptid)
+    {
+        return ivrLibScriptMapper.deleteIvrLibScriptByScriptid(scriptid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptcategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptcategoryServiceImpl.java
new file mode 100644
index 0000000..0132812
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptcategoryServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrLibScriptcategoryMapper;
+import com.smartor.domain.IvrLibScriptcategory;
+import com.smartor.service.IIvrLibScriptcategoryService;
+
+/**
+ * AI璇濇湳搴撳垎绫籗ervice涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrLibScriptcategoryServiceImpl implements IIvrLibScriptcategoryService 
+{
+    @Autowired
+    private IvrLibScriptcategoryMapper ivrLibScriptcategoryMapper;
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return AI璇濇湳搴撳垎绫�
+     */
+    @Override
+    public IvrLibScriptcategory selectIvrLibScriptcategoryByCategoryid(Long categoryid)
+    {
+        return ivrLibScriptcategoryMapper.selectIvrLibScriptcategoryByCategoryid(categoryid);
+    }
+
+    /**
+     * 鏌ヨAI璇濇湳搴撳垎绫诲垪琛�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return AI璇濇湳搴撳垎绫�
+     */
+    @Override
+    public List<IvrLibScriptcategory> selectIvrLibScriptcategoryList(IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        return ivrLibScriptcategoryMapper.selectIvrLibScriptcategoryList(ivrLibScriptcategory);
+    }
+
+    /**
+     * 鏂板AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        ivrLibScriptcategory.setCreateTime(DateUtils.getNowDate());
+        return ivrLibScriptcategoryMapper.insertIvrLibScriptcategory(ivrLibScriptcategory);
+    }
+
+    /**
+     * 淇敼AI璇濇湳搴撳垎绫�
+     * 
+     * @param ivrLibScriptcategory AI璇濇湳搴撳垎绫�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrLibScriptcategory(IvrLibScriptcategory ivrLibScriptcategory)
+    {
+        ivrLibScriptcategory.setUpdateTime(DateUtils.getNowDate());
+        return ivrLibScriptcategoryMapper.updateIvrLibScriptcategory(ivrLibScriptcategory);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳搴撳垎绫�
+     * 
+     * @param categoryids 闇�瑕佸垹闄ょ殑AI璇濇湳搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptcategoryByCategoryids(Long[] categoryids)
+    {
+        return ivrLibScriptcategoryMapper.deleteIvrLibScriptcategoryByCategoryids(categoryids);
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳搴撳垎绫讳俊鎭�
+     * 
+     * @param categoryid AI璇濇湳搴撳垎绫讳富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptcategoryByCategoryid(Long categoryid)
+    {
+        return ivrLibScriptcategoryMapper.deleteIvrLibScriptcategoryByCategoryid(categoryid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptmodelServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptmodelServiceImpl.java
new file mode 100644
index 0000000..4190abf
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibScriptmodelServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrLibScriptmodelMapper;
+import com.smartor.domain.IvrLibScriptmodel;
+import com.smartor.service.IIvrLibScriptmodelService;
+
+/**
+ * AI璇濇湳妯″潡Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrLibScriptmodelServiceImpl implements IIvrLibScriptmodelService 
+{
+    @Autowired
+    private IvrLibScriptmodelMapper ivrLibScriptmodelMapper;
+
+    /**
+     * 鏌ヨAI璇濇湳妯″潡
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return AI璇濇湳妯″潡
+     */
+    @Override
+    public IvrLibScriptmodel selectIvrLibScriptmodelByModelid(Long modelid)
+    {
+        return ivrLibScriptmodelMapper.selectIvrLibScriptmodelByModelid(modelid);
+    }
+
+    /**
+     * 鏌ヨAI璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return AI璇濇湳妯″潡
+     */
+    @Override
+    public List<IvrLibScriptmodel> selectIvrLibScriptmodelList(IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        return ivrLibScriptmodelMapper.selectIvrLibScriptmodelList(ivrLibScriptmodel);
+    }
+
+    /**
+     * 鏂板AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        ivrLibScriptmodel.setCreateTime(DateUtils.getNowDate());
+        return ivrLibScriptmodelMapper.insertIvrLibScriptmodel(ivrLibScriptmodel);
+    }
+
+    /**
+     * 淇敼AI璇濇湳妯″潡
+     * 
+     * @param ivrLibScriptmodel AI璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrLibScriptmodel(IvrLibScriptmodel ivrLibScriptmodel)
+    {
+        ivrLibScriptmodel.setUpdateTime(DateUtils.getNowDate());
+        return ivrLibScriptmodelMapper.updateIvrLibScriptmodel(ivrLibScriptmodel);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI璇濇湳妯″潡
+     * 
+     * @param modelids 闇�瑕佸垹闄ょ殑AI璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptmodelByModelids(Long[] modelids)
+    {
+        return ivrLibScriptmodelMapper.deleteIvrLibScriptmodelByModelids(modelids);
+    }
+
+    /**
+     * 鍒犻櫎AI璇濇湳妯″潡淇℃伅
+     * 
+     * @param modelid AI璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrLibScriptmodelByModelid(Long modelid)
+    {
+        return ivrLibScriptmodelMapper.deleteIvrLibScriptmodelByModelid(modelid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneExecuteconfigServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneExecuteconfigServiceImpl.java
new file mode 100644
index 0000000..326ecd2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneExecuteconfigServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneExecuteconfigMapper;
+import com.smartor.domain.IvrSceneExecuteconfig;
+import com.smartor.service.IIvrSceneExecuteconfigService;
+
+/**
+ * AI澶栧懠鎵ц閰嶇疆Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneExecuteconfigServiceImpl implements IIvrSceneExecuteconfigService 
+{
+    @Autowired
+    private IvrSceneExecuteconfigMapper ivrSceneExecuteconfigMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return AI澶栧懠鎵ц閰嶇疆
+     */
+    @Override
+    public IvrSceneExecuteconfig selectIvrSceneExecuteconfigByScenecfgid(Long scenecfgid)
+    {
+        return ivrSceneExecuteconfigMapper.selectIvrSceneExecuteconfigByScenecfgid(scenecfgid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠鎵ц閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return AI澶栧懠鎵ц閰嶇疆
+     */
+    @Override
+    public List<IvrSceneExecuteconfig> selectIvrSceneExecuteconfigList(IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        return ivrSceneExecuteconfigMapper.selectIvrSceneExecuteconfigList(ivrSceneExecuteconfig);
+    }
+
+    /**
+     * 鏂板AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        ivrSceneExecuteconfig.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneExecuteconfigMapper.insertIvrSceneExecuteconfig(ivrSceneExecuteconfig);
+    }
+
+    /**
+     * 淇敼AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param ivrSceneExecuteconfig AI澶栧懠鎵ц閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneExecuteconfig(IvrSceneExecuteconfig ivrSceneExecuteconfig)
+    {
+        ivrSceneExecuteconfig.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneExecuteconfigMapper.updateIvrSceneExecuteconfig(ivrSceneExecuteconfig);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎵ц閰嶇疆
+     * 
+     * @param scenecfgids 闇�瑕佸垹闄ょ殑AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneExecuteconfigByScenecfgids(Long[] scenecfgids)
+    {
+        return ivrSceneExecuteconfigMapper.deleteIvrSceneExecuteconfigByScenecfgids(scenecfgids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎵ц閰嶇疆淇℃伅
+     * 
+     * @param scenecfgid AI澶栧懠鎵ц閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneExecuteconfigByScenecfgid(Long scenecfgid)
+    {
+        return ivrSceneExecuteconfigMapper.deleteIvrSceneExecuteconfigByScenecfgid(scenecfgid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlowServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlowServiceImpl.java
new file mode 100644
index 0000000..5368cae
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlowServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneFlowMapper;
+import com.smartor.domain.IvrSceneFlow;
+import com.smartor.service.IIvrSceneFlowService;
+
+/**
+ * AI澶栧懠娴佺▼Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneFlowServiceImpl implements IIvrSceneFlowService 
+{
+    @Autowired
+    private IvrSceneFlowMapper ivrSceneFlowMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return AI澶栧懠娴佺▼
+     */
+    @Override
+    public IvrSceneFlow selectIvrSceneFlowByFlowid(Long flowid)
+    {
+        return ivrSceneFlowMapper.selectIvrSceneFlowByFlowid(flowid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鍒楄〃
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return AI澶栧懠娴佺▼
+     */
+    @Override
+    public List<IvrSceneFlow> selectIvrSceneFlowList(IvrSceneFlow ivrSceneFlow)
+    {
+        return ivrSceneFlowMapper.selectIvrSceneFlowList(ivrSceneFlow);
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneFlow(IvrSceneFlow ivrSceneFlow)
+    {
+        ivrSceneFlow.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneFlowMapper.insertIvrSceneFlow(ivrSceneFlow);
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼
+     * 
+     * @param ivrSceneFlow AI澶栧懠娴佺▼
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneFlow(IvrSceneFlow ivrSceneFlow)
+    {
+        ivrSceneFlow.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneFlowMapper.updateIvrSceneFlow(ivrSceneFlow);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼
+     * 
+     * @param flowids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlowByFlowids(Long[] flowids)
+    {
+        return ivrSceneFlowMapper.deleteIvrSceneFlowByFlowids(flowids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼淇℃伅
+     * 
+     * @param flowid AI澶栧懠娴佺▼涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlowByFlowid(Long flowid)
+    {
+        return ivrSceneFlowMapper.deleteIvrSceneFlowByFlowid(flowid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodeServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodeServiceImpl.java
new file mode 100644
index 0000000..8c97b0c
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodeServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneFlownodeMapper;
+import com.smartor.domain.IvrSceneFlownode;
+import com.smartor.service.IIvrSceneFlownodeService;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneFlownodeServiceImpl implements IIvrSceneFlownodeService 
+{
+    @Autowired
+    private IvrSceneFlownodeMapper ivrSceneFlownodeMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣
+     */
+    @Override
+    public IvrSceneFlownode selectIvrSceneFlownodeByFlownodeid(Long flownodeid)
+    {
+        return ivrSceneFlownodeMapper.selectIvrSceneFlownodeByFlownodeid(flownodeid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒楄〃
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return AI澶栧懠娴佺▼鑺傜偣
+     */
+    @Override
+    public List<IvrSceneFlownode> selectIvrSceneFlownodeList(IvrSceneFlownode ivrSceneFlownode)
+    {
+        return ivrSceneFlownodeMapper.selectIvrSceneFlownodeList(ivrSceneFlownode);
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode)
+    {
+        ivrSceneFlownode.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneFlownodeMapper.insertIvrSceneFlownode(ivrSceneFlownode);
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param ivrSceneFlownode AI澶栧懠娴佺▼鑺傜偣
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneFlownode(IvrSceneFlownode ivrSceneFlownode)
+    {
+        ivrSceneFlownode.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneFlownodeMapper.updateIvrSceneFlownode(ivrSceneFlownode);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣
+     * 
+     * @param flownodeids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlownodeByFlownodeids(Long[] flownodeids)
+    {
+        return ivrSceneFlownodeMapper.deleteIvrSceneFlownodeByFlownodeids(flownodeids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣淇℃伅
+     * 
+     * @param flownodeid AI澶栧懠娴佺▼鑺傜偣涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlownodeByFlownodeid(Long flownodeid)
+    {
+        return ivrSceneFlownodeMapper.deleteIvrSceneFlownodeByFlownodeid(flownodeid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodebranchServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodebranchServiceImpl.java
new file mode 100644
index 0000000..6a26707
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneFlownodebranchServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneFlownodebranchMapper;
+import com.smartor.domain.IvrSceneFlownodebranch;
+import com.smartor.service.IIvrSceneFlownodebranchService;
+
+/**
+ * AI澶栧懠娴佺▼鑺傜偣鍒嗘敮Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneFlownodebranchServiceImpl implements IIvrSceneFlownodebranchService 
+{
+    @Autowired
+    private IvrSceneFlownodebranchMapper ivrSceneFlownodebranchMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    @Override
+    public IvrSceneFlownodebranch selectIvrSceneFlownodebranchByBranchid(Long branchid)
+    {
+        return ivrSceneFlownodebranchMapper.selectIvrSceneFlownodebranchByBranchid(branchid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠娴佺▼鑺傜偣鍒嗘敮鍒楄〃
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     */
+    @Override
+    public List<IvrSceneFlownodebranch> selectIvrSceneFlownodebranchList(IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        return ivrSceneFlownodebranchMapper.selectIvrSceneFlownodebranchList(ivrSceneFlownodebranch);
+    }
+
+    /**
+     * 鏂板AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        ivrSceneFlownodebranch.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneFlownodebranchMapper.insertIvrSceneFlownodebranch(ivrSceneFlownodebranch);
+    }
+
+    /**
+     * 淇敼AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param ivrSceneFlownodebranch AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneFlownodebranch(IvrSceneFlownodebranch ivrSceneFlownodebranch)
+    {
+        ivrSceneFlownodebranch.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneFlownodebranchMapper.updateIvrSceneFlownodebranch(ivrSceneFlownodebranch);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮
+     * 
+     * @param branchids 闇�瑕佸垹闄ょ殑AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlownodebranchByBranchids(Long[] branchids)
+    {
+        return ivrSceneFlownodebranchMapper.deleteIvrSceneFlownodebranchByBranchids(branchids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠娴佺▼鑺傜偣鍒嗘敮淇℃伅
+     * 
+     * @param branchid AI澶栧懠娴佺▼鑺傜偣鍒嗘敮涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneFlownodebranchByBranchid(Long branchid)
+    {
+        return ivrSceneFlownodebranchMapper.deleteIvrSceneFlownodebranchByBranchid(branchid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneGlobalconfigServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneGlobalconfigServiceImpl.java
new file mode 100644
index 0000000..add56f9
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneGlobalconfigServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneGlobalconfigMapper;
+import com.smartor.domain.IvrSceneGlobalconfig;
+import com.smartor.service.IIvrSceneGlobalconfigService;
+
+/**
+ * AI澶栧懠鍏ㄥ眬閰嶇疆Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneGlobalconfigServiceImpl implements IIvrSceneGlobalconfigService 
+{
+    @Autowired
+    private IvrSceneGlobalconfigMapper ivrSceneGlobalconfigMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    @Override
+    public IvrSceneGlobalconfig selectIvrSceneGlobalconfigByGblconfigid(Long gblconfigid)
+    {
+        return ivrSceneGlobalconfigMapper.selectIvrSceneGlobalconfigByGblconfigid(gblconfigid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠鍏ㄥ眬閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return AI澶栧懠鍏ㄥ眬閰嶇疆
+     */
+    @Override
+    public List<IvrSceneGlobalconfig> selectIvrSceneGlobalconfigList(IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        return ivrSceneGlobalconfigMapper.selectIvrSceneGlobalconfigList(ivrSceneGlobalconfig);
+    }
+
+    /**
+     * 鏂板AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        ivrSceneGlobalconfig.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneGlobalconfigMapper.insertIvrSceneGlobalconfig(ivrSceneGlobalconfig);
+    }
+
+    /**
+     * 淇敼AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param ivrSceneGlobalconfig AI澶栧懠鍏ㄥ眬閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneGlobalconfig(IvrSceneGlobalconfig ivrSceneGlobalconfig)
+    {
+        ivrSceneGlobalconfig.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneGlobalconfigMapper.updateIvrSceneGlobalconfig(ivrSceneGlobalconfig);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆
+     * 
+     * @param gblconfigids 闇�瑕佸垹闄ょ殑AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneGlobalconfigByGblconfigids(Long[] gblconfigids)
+    {
+        return ivrSceneGlobalconfigMapper.deleteIvrSceneGlobalconfigByGblconfigids(gblconfigids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍏ㄥ眬閰嶇疆淇℃伅
+     * 
+     * @param gblconfigid AI澶栧懠鍏ㄥ眬閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneGlobalconfigByGblconfigid(Long gblconfigid)
+    {
+        return ivrSceneGlobalconfigMapper.deleteIvrSceneGlobalconfigByGblconfigid(gblconfigid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneIntentServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneIntentServiceImpl.java
new file mode 100644
index 0000000..b40cdbf
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneIntentServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneIntentMapper;
+import com.smartor.domain.IvrSceneIntent;
+import com.smartor.service.IIvrSceneIntentService;
+
+/**
+ * AI澶栧懠鎰忓浘Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneIntentServiceImpl implements IIvrSceneIntentService 
+{
+    @Autowired
+    private IvrSceneIntentMapper ivrSceneIntentMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return AI澶栧懠鎰忓浘
+     */
+    @Override
+    public IvrSceneIntent selectIvrSceneIntentBySceneintentid(Long sceneintentid)
+    {
+        return ivrSceneIntentMapper.selectIvrSceneIntentBySceneintentid(sceneintentid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠鎰忓浘鍒楄〃
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return AI澶栧懠鎰忓浘
+     */
+    @Override
+    public List<IvrSceneIntent> selectIvrSceneIntentList(IvrSceneIntent ivrSceneIntent)
+    {
+        return ivrSceneIntentMapper.selectIvrSceneIntentList(ivrSceneIntent);
+    }
+
+    /**
+     * 鏂板AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneIntent(IvrSceneIntent ivrSceneIntent)
+    {
+        ivrSceneIntent.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneIntentMapper.insertIvrSceneIntent(ivrSceneIntent);
+    }
+
+    /**
+     * 淇敼AI澶栧懠鎰忓浘
+     * 
+     * @param ivrSceneIntent AI澶栧懠鎰忓浘
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneIntent(IvrSceneIntent ivrSceneIntent)
+    {
+        ivrSceneIntent.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneIntentMapper.updateIvrSceneIntent(ivrSceneIntent);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鎰忓浘
+     * 
+     * @param sceneintentids 闇�瑕佸垹闄ょ殑AI澶栧懠鎰忓浘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneIntentBySceneintentids(Long[] sceneintentids)
+    {
+        return ivrSceneIntentMapper.deleteIvrSceneIntentBySceneintentids(sceneintentids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鎰忓浘淇℃伅
+     * 
+     * @param sceneintentid AI澶栧懠鎰忓浘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneIntentBySceneintentid(Long sceneintentid)
+    {
+        return ivrSceneIntentMapper.deleteIvrSceneIntentBySceneintentid(sceneintentid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneRecallServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneRecallServiceImpl.java
new file mode 100644
index 0000000..4daf64b
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneRecallServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneRecallMapper;
+import com.smartor.domain.IvrSceneRecall;
+import com.smartor.service.IIvrSceneRecallService;
+
+/**
+ * AI澶栧懠閲嶆嫧閰嶇疆Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneRecallServiceImpl implements IIvrSceneRecallService 
+{
+    @Autowired
+    private IvrSceneRecallMapper ivrSceneRecallMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    @Override
+    public IvrSceneRecall selectIvrSceneRecallByRecallid(Long recallid)
+    {
+        return ivrSceneRecallMapper.selectIvrSceneRecallByRecallid(recallid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠閲嶆嫧閰嶇疆鍒楄〃
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return AI澶栧懠閲嶆嫧閰嶇疆
+     */
+    @Override
+    public List<IvrSceneRecall> selectIvrSceneRecallList(IvrSceneRecall ivrSceneRecall)
+    {
+        return ivrSceneRecallMapper.selectIvrSceneRecallList(ivrSceneRecall);
+    }
+
+    /**
+     * 鏂板AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneRecall(IvrSceneRecall ivrSceneRecall)
+    {
+        ivrSceneRecall.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneRecallMapper.insertIvrSceneRecall(ivrSceneRecall);
+    }
+
+    /**
+     * 淇敼AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param ivrSceneRecall AI澶栧懠閲嶆嫧閰嶇疆
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneRecall(IvrSceneRecall ivrSceneRecall)
+    {
+        ivrSceneRecall.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneRecallMapper.updateIvrSceneRecall(ivrSceneRecall);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆
+     * 
+     * @param recallids 闇�瑕佸垹闄ょ殑AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneRecallByRecallids(Long[] recallids)
+    {
+        return ivrSceneRecallMapper.deleteIvrSceneRecallByRecallids(recallids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠閲嶆嫧閰嶇疆淇℃伅
+     * 
+     * @param recallid AI澶栧懠閲嶆嫧閰嶇疆涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneRecallByRecallid(Long recallid)
+    {
+        return ivrSceneRecallMapper.deleteIvrSceneRecallByRecallid(recallid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptServiceImpl.java
new file mode 100644
index 0000000..55a4f20
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneScriptMapper;
+import com.smartor.domain.IvrSceneScript;
+import com.smartor.service.IIvrSceneScriptService;
+
+/**
+ * AI澶栧懠璇濇湳Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneScriptServiceImpl implements IIvrSceneScriptService 
+{
+    @Autowired
+    private IvrSceneScriptMapper ivrSceneScriptMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return AI澶栧懠璇濇湳
+     */
+    @Override
+    public IvrSceneScript selectIvrSceneScriptByScenescrid(Long scenescrid)
+    {
+        return ivrSceneScriptMapper.selectIvrSceneScriptByScenescrid(scenescrid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳鍒楄〃
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return AI澶栧懠璇濇湳
+     */
+    @Override
+    public List<IvrSceneScript> selectIvrSceneScriptList(IvrSceneScript ivrSceneScript)
+    {
+        return ivrSceneScriptMapper.selectIvrSceneScriptList(ivrSceneScript);
+    }
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneScript(IvrSceneScript ivrSceneScript)
+    {
+        ivrSceneScript.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneScriptMapper.insertIvrSceneScript(ivrSceneScript);
+    }
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳
+     * 
+     * @param ivrSceneScript AI澶栧懠璇濇湳
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneScript(IvrSceneScript ivrSceneScript)
+    {
+        ivrSceneScript.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneScriptMapper.updateIvrSceneScript(ivrSceneScript);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳
+     * 
+     * @param scenescrids 闇�瑕佸垹闄ょ殑AI澶栧懠璇濇湳涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneScriptByScenescrids(Long[] scenescrids)
+    {
+        return ivrSceneScriptMapper.deleteIvrSceneScriptByScenescrids(scenescrids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳淇℃伅
+     * 
+     * @param scenescrid AI澶栧懠璇濇湳涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneScriptByScenescrid(Long scenescrid)
+    {
+        return ivrSceneScriptMapper.deleteIvrSceneScriptByScenescrid(scenescrid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptmodelServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptmodelServiceImpl.java
new file mode 100644
index 0000000..c9efad0
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneScriptmodelServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneScriptmodelMapper;
+import com.smartor.domain.IvrSceneScriptmodel;
+import com.smartor.service.IIvrSceneScriptmodelService;
+
+/**
+ * AI澶栧懠璇濇湳妯″潡Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneScriptmodelServiceImpl implements IIvrSceneScriptmodelService 
+{
+    @Autowired
+    private IvrSceneScriptmodelMapper ivrSceneScriptmodelMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return AI澶栧懠璇濇湳妯″潡
+     */
+    @Override
+    public IvrSceneScriptmodel selectIvrSceneScriptmodelByScenemodid(Long scenemodid)
+    {
+        return ivrSceneScriptmodelMapper.selectIvrSceneScriptmodelByScenemodid(scenemodid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠璇濇湳妯″潡鍒楄〃
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return AI澶栧懠璇濇湳妯″潡
+     */
+    @Override
+    public List<IvrSceneScriptmodel> selectIvrSceneScriptmodelList(IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        return ivrSceneScriptmodelMapper.selectIvrSceneScriptmodelList(ivrSceneScriptmodel);
+    }
+
+    /**
+     * 鏂板AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        ivrSceneScriptmodel.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneScriptmodelMapper.insertIvrSceneScriptmodel(ivrSceneScriptmodel);
+    }
+
+    /**
+     * 淇敼AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param ivrSceneScriptmodel AI澶栧懠璇濇湳妯″潡
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrSceneScriptmodel(IvrSceneScriptmodel ivrSceneScriptmodel)
+    {
+        ivrSceneScriptmodel.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneScriptmodelMapper.updateIvrSceneScriptmodel(ivrSceneScriptmodel);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠璇濇湳妯″潡
+     * 
+     * @param scenemodids 闇�瑕佸垹闄ょ殑AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneScriptmodelByScenemodids(Long[] scenemodids)
+    {
+        return ivrSceneScriptmodelMapper.deleteIvrSceneScriptmodelByScenemodids(scenemodids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠璇濇湳妯″潡淇℃伅
+     * 
+     * @param scenemodid AI澶栧懠璇濇湳妯″潡涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneScriptmodelByScenemodid(Long scenemodid)
+    {
+        return ivrSceneScriptmodelMapper.deleteIvrSceneScriptmodelByScenemodid(scenemodid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrSceneServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrSceneServiceImpl.java
new file mode 100644
index 0000000..00315e2
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrSceneServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrSceneMapper;
+import com.smartor.domain.IvrScene;
+import com.smartor.service.IIvrSceneService;
+
+/**
+ * AI澶栧懠鍦烘櫙绠$悊Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrSceneServiceImpl implements IIvrSceneService 
+{
+    @Autowired
+    private IvrSceneMapper ivrSceneMapper;
+
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return AI澶栧懠鍦烘櫙绠$悊
+     */
+    @Override
+    public IvrScene selectIvrSceneBySceneid(Long sceneid)
+    {
+        return ivrSceneMapper.selectIvrSceneBySceneid(sceneid);
+    }
+
+    /**
+     * 鏌ヨAI澶栧懠鍦烘櫙绠$悊鍒楄〃
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return AI澶栧懠鍦烘櫙绠$悊
+     */
+    @Override
+    public List<IvrScene> selectIvrSceneList(IvrScene ivrScene)
+    {
+        return ivrSceneMapper.selectIvrSceneList(ivrScene);
+    }
+
+    /**
+     * 鏂板AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrScene(IvrScene ivrScene)
+    {
+        ivrScene.setCreateTime(DateUtils.getNowDate());
+        return ivrSceneMapper.insertIvrScene(ivrScene);
+    }
+
+    /**
+     * 淇敼AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param ivrScene AI澶栧懠鍦烘櫙绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrScene(IvrScene ivrScene)
+    {
+        ivrScene.setUpdateTime(DateUtils.getNowDate());
+        return ivrSceneMapper.updateIvrScene(ivrScene);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI澶栧懠鍦烘櫙绠$悊
+     * 
+     * @param sceneids 闇�瑕佸垹闄ょ殑AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneBySceneids(Long[] sceneids)
+    {
+        return ivrSceneMapper.deleteIvrSceneBySceneids(sceneids);
+    }
+
+    /**
+     * 鍒犻櫎AI澶栧懠鍦烘櫙绠$悊淇℃伅
+     * 
+     * @param sceneid AI澶栧懠鍦烘櫙绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrSceneBySceneid(Long sceneid)
+    {
+        return ivrSceneMapper.deleteIvrSceneBySceneid(sceneid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrScenecategoryServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrScenecategoryServiceImpl.java
new file mode 100644
index 0000000..470aac4
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrScenecategoryServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.IvrScenecategoryMapper;
+import com.smartor.domain.IvrScenecategory;
+import com.smartor.service.IIvrScenecategoryService;
+
+/**
+ * AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class IvrScenecategoryServiceImpl implements IIvrScenecategoryService 
+{
+    @Autowired
+    private IvrScenecategoryMapper ivrScenecategoryMapper;
+
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    @Override
+    public IvrScenecategory selectIvrScenecategoryByScenecatid(Long scenecatid)
+    {
+        return ivrScenecategoryMapper.selectIvrScenecategoryByScenecatid(scenecatid);
+    }
+
+    /**
+     * 鏌ヨAI鏈嶅姟鍦烘櫙绠$悊鍒嗙被鍒楄〃
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     */
+    @Override
+    public List<IvrScenecategory> selectIvrScenecategoryList(IvrScenecategory ivrScenecategory)
+    {
+        return ivrScenecategoryMapper.selectIvrScenecategoryList(ivrScenecategory);
+    }
+
+    /**
+     * 鏂板AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertIvrScenecategory(IvrScenecategory ivrScenecategory)
+    {
+        ivrScenecategory.setCreateTime(DateUtils.getNowDate());
+        return ivrScenecategoryMapper.insertIvrScenecategory(ivrScenecategory);
+    }
+
+    /**
+     * 淇敼AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param ivrScenecategory AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateIvrScenecategory(IvrScenecategory ivrScenecategory)
+    {
+        ivrScenecategory.setUpdateTime(DateUtils.getNowDate());
+        return ivrScenecategoryMapper.updateIvrScenecategory(ivrScenecategory);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被
+     * 
+     * @param scenecatids 闇�瑕佸垹闄ょ殑AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrScenecategoryByScenecatids(Long[] scenecatids)
+    {
+        return ivrScenecategoryMapper.deleteIvrScenecategoryByScenecatids(scenecatids);
+    }
+
+    /**
+     * 鍒犻櫎AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被淇℃伅
+     * 
+     * @param scenecatid AI鏈嶅姟鍦烘櫙绠$悊鍒嗙被涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteIvrScenecategoryByScenecatid(Long scenecatid)
+    {
+        return ivrScenecategoryMapper.deleteIvrScenecategoryByScenecatid(scenecatid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SmsParamServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SmsParamServiceImpl.java
new file mode 100644
index 0000000..776f9ad
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SmsParamServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.SmsParamMapper;
+import com.smartor.domain.SmsParam;
+import com.smartor.service.ISmsParamService;
+
+/**
+ * 鐭俊鍙傛暟Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class SmsParamServiceImpl implements ISmsParamService 
+{
+    @Autowired
+    private SmsParamMapper smsParamMapper;
+
+    /**
+     * 鏌ヨ鐭俊鍙傛暟
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 鐭俊鍙傛暟
+     */
+    @Override
+    public SmsParam selectSmsParamByParamid(Long paramid)
+    {
+        return smsParamMapper.selectSmsParamByParamid(paramid);
+    }
+
+    /**
+     * 鏌ヨ鐭俊鍙傛暟鍒楄〃
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 鐭俊鍙傛暟
+     */
+    @Override
+    public List<SmsParam> selectSmsParamList(SmsParam smsParam)
+    {
+        return smsParamMapper.selectSmsParamList(smsParam);
+    }
+
+    /**
+     * 鏂板鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmsParam(SmsParam smsParam)
+    {
+        smsParam.setCreateTime(DateUtils.getNowDate());
+        return smsParamMapper.insertSmsParam(smsParam);
+    }
+
+    /**
+     * 淇敼鐭俊鍙傛暟
+     * 
+     * @param smsParam 鐭俊鍙傛暟
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmsParam(SmsParam smsParam)
+    {
+        smsParam.setUpdateTime(DateUtils.getNowDate());
+        return smsParamMapper.updateSmsParam(smsParam);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊鍙傛暟
+     * 
+     * @param paramids 闇�瑕佸垹闄ょ殑鐭俊鍙傛暟涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsParamByParamids(Long[] paramids)
+    {
+        return smsParamMapper.deleteSmsParamByParamids(paramids);
+    }
+
+    /**
+     * 鍒犻櫎鐭俊鍙傛暟淇℃伅
+     * 
+     * @param paramid 鐭俊鍙傛暟涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsParamByParamid(Long paramid)
+    {
+        return smsParamMapper.deleteSmsParamByParamid(paramid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SmsRecordsServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SmsRecordsServiceImpl.java
new file mode 100644
index 0000000..766e5ac
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SmsRecordsServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.SmsRecordsMapper;
+import com.smartor.domain.SmsRecords;
+import com.smartor.service.ISmsRecordsService;
+
+/**
+ * 鐭俊璁板綍Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class SmsRecordsServiceImpl implements ISmsRecordsService 
+{
+    @Autowired
+    private SmsRecordsMapper smsRecordsMapper;
+
+    /**
+     * 鏌ヨ鐭俊璁板綍
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 鐭俊璁板綍
+     */
+    @Override
+    public SmsRecords selectSmsRecordsByRecordid(Long recordid)
+    {
+        return smsRecordsMapper.selectSmsRecordsByRecordid(recordid);
+    }
+
+    /**
+     * 鏌ヨ鐭俊璁板綍鍒楄〃
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 鐭俊璁板綍
+     */
+    @Override
+    public List<SmsRecords> selectSmsRecordsList(SmsRecords smsRecords)
+    {
+        return smsRecordsMapper.selectSmsRecordsList(smsRecords);
+    }
+
+    /**
+     * 鏂板鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmsRecords(SmsRecords smsRecords)
+    {
+        smsRecords.setCreateTime(DateUtils.getNowDate());
+        return smsRecordsMapper.insertSmsRecords(smsRecords);
+    }
+
+    /**
+     * 淇敼鐭俊璁板綍
+     * 
+     * @param smsRecords 鐭俊璁板綍
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmsRecords(SmsRecords smsRecords)
+    {
+        smsRecords.setUpdateTime(DateUtils.getNowDate());
+        return smsRecordsMapper.updateSmsRecords(smsRecords);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊璁板綍
+     * 
+     * @param recordids 闇�瑕佸垹闄ょ殑鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsRecordsByRecordids(Long[] recordids)
+    {
+        return smsRecordsMapper.deleteSmsRecordsByRecordids(recordids);
+    }
+
+    /**
+     * 鍒犻櫎鐭俊璁板綍淇℃伅
+     * 
+     * @param recordid 鐭俊璁板綍涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsRecordsByRecordid(Long recordid)
+    {
+        return smsRecordsMapper.deleteSmsRecordsByRecordid(recordid);
+    }
+}
diff --git a/smartor/src/main/java/com/smartor/service/impl/SmsTempletServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SmsTempletServiceImpl.java
new file mode 100644
index 0000000..dd05e90
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/service/impl/SmsTempletServiceImpl.java
@@ -0,0 +1,96 @@
+package com.smartor.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.smartor.mapper.SmsTempletMapper;
+import com.smartor.domain.SmsTemplet;
+import com.smartor.service.ISmsTempletService;
+
+/**
+ * 鐭俊妯℃澘Service涓氬姟灞傚鐞�
+ * 
+ * @author smartor
+ * @date 2023-03-06
+ */
+@Service
+public class SmsTempletServiceImpl implements ISmsTempletService 
+{
+    @Autowired
+    private SmsTempletMapper smsTempletMapper;
+
+    /**
+     * 鏌ヨ鐭俊妯℃澘
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 鐭俊妯℃澘
+     */
+    @Override
+    public SmsTemplet selectSmsTempletByTempletid(Long templetid)
+    {
+        return smsTempletMapper.selectSmsTempletByTempletid(templetid);
+    }
+
+    /**
+     * 鏌ヨ鐭俊妯℃澘鍒楄〃
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 鐭俊妯℃澘
+     */
+    @Override
+    public List<SmsTemplet> selectSmsTempletList(SmsTemplet smsTemplet)
+    {
+        return smsTempletMapper.selectSmsTempletList(smsTemplet);
+    }
+
+    /**
+     * 鏂板鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertSmsTemplet(SmsTemplet smsTemplet)
+    {
+        smsTemplet.setCreateTime(DateUtils.getNowDate());
+        return smsTempletMapper.insertSmsTemplet(smsTemplet);
+    }
+
+    /**
+     * 淇敼鐭俊妯℃澘
+     * 
+     * @param smsTemplet 鐭俊妯℃澘
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateSmsTemplet(SmsTemplet smsTemplet)
+    {
+        smsTemplet.setUpdateTime(DateUtils.getNowDate());
+        return smsTempletMapper.updateSmsTemplet(smsTemplet);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鐭俊妯℃澘
+     * 
+     * @param templetids 闇�瑕佸垹闄ょ殑鐭俊妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsTempletByTempletids(Long[] templetids)
+    {
+        return smsTempletMapper.deleteSmsTempletByTempletids(templetids);
+    }
+
+    /**
+     * 鍒犻櫎鐭俊妯℃澘淇℃伅
+     * 
+     * @param templetid 鐭俊妯℃澘涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteSmsTempletByTempletid(Long templetid)
+    {
+        return smsTempletMapper.deleteSmsTempletByTempletid(templetid);
+    }
+}
diff --git a/smartor/src/main/resources/mapper/smartor/BaseSmsaccountMapper.xml b/smartor/src/main/resources/mapper/smartor/BaseSmsaccountMapper.xml
new file mode 100644
index 0000000..272c3f3
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/BaseSmsaccountMapper.xml
@@ -0,0 +1,110 @@
+<?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.BaseSmsaccountMapper">
+    
+    <resultMap type="BaseSmsaccount" id="BaseSmsaccountResult">
+        <result property="smsacountid"    column="smsacountid"    />
+        <result property="smsname"    column="smsname"    />
+        <result property="account"    column="account"    />
+        <result property="password"    column="password"    />
+        <result property="remark"    column="remark"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="isenable"    column="isenable"    />
+    </resultMap>
+
+    <sql id="selectBaseSmsaccountVo">
+        select smsacountid, smsname, account, password, remark, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, isenable from base_smsaccount
+    </sql>
+
+    <select id="selectBaseSmsaccountList" parameterType="BaseSmsaccount" resultMap="BaseSmsaccountResult">
+        <include refid="selectBaseSmsaccountVo"/>
+        <where>  
+            <if test="smsname != null  and smsname != ''"> and smsname like concat('%', #{smsname}, '%')</if>
+            <if test="account != null  and account != ''"> and account = #{account}</if>
+            <if test="password != null  and password != ''"> and password = #{password}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="isenable != null "> and isenable = #{isenable}</if>
+        </where>
+    </select>
+    
+    <select id="selectBaseSmsaccountBySmsacountid" parameterType="Long" resultMap="BaseSmsaccountResult">
+        <include refid="selectBaseSmsaccountVo"/>
+        where smsacountid = #{smsacountid}
+    </select>
+        
+    <insert id="insertBaseSmsaccount" parameterType="BaseSmsaccount" useGeneratedKeys="true" keyProperty="smsacountid">
+        insert into base_smsaccount
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="smsname != null">smsname,</if>
+            <if test="account != null">account,</if>
+            <if test="password != null">password,</if>
+            <if test="remark != null">remark,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="isenable != null">isenable,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="smsname != null">#{smsname},</if>
+            <if test="account != null">#{account},</if>
+            <if test="password != null">#{password},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="isenable != null">#{isenable},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBaseSmsaccount" parameterType="BaseSmsaccount">
+        update base_smsaccount
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="smsname != null">smsname = #{smsname},</if>
+            <if test="account != null">account = #{account},</if>
+            <if test="password != null">password = #{password},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="isenable != null">isenable = #{isenable},</if>
+        </trim>
+        where smsacountid = #{smsacountid}
+    </update>
+
+    <delete id="deleteBaseSmsaccountBySmsacountid" parameterType="Long">
+        delete from base_smsaccount where smsacountid = #{smsacountid}
+    </delete>
+
+    <delete id="deleteBaseSmsaccountBySmsacountids" parameterType="String">
+        delete from base_smsaccount where smsacountid in 
+        <foreach item="smsacountid" collection="array" open="(" separator="," close=")">
+            #{smsacountid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibIntentMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibIntentMapper.xml
new file mode 100644
index 0000000..53e7f50
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibIntentMapper.xml
@@ -0,0 +1,106 @@
+<?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.IvrLibIntentMapper">
+    
+    <resultMap type="IvrLibIntent" id="IvrLibIntentResult">
+        <result property="intentid"    column="intentid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="intentionname"    column="intentionname"    />
+        <result property="categoryid"    column="categoryid"    />
+        <result property="categoryname"    column="categoryname"    />
+        <result property="intentionword"    column="intentionword"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrLibIntentVo">
+        select intentid, orgid, intentionname, categoryid, categoryname, intentionword, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_lib_intent
+    </sql>
+
+    <select id="selectIvrLibIntentList" parameterType="IvrLibIntent" resultMap="IvrLibIntentResult">
+        <include refid="selectIvrLibIntentVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="intentionname != null  and intentionname != ''"> and intentionname like concat('%', #{intentionname}, '%')</if>
+            <if test="categoryid != null "> and categoryid = #{categoryid}</if>
+            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
+            <if test="intentionword != null  and intentionword != ''"> and intentionword = #{intentionword}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrLibIntentByIntentid" parameterType="Long" resultMap="IvrLibIntentResult">
+        <include refid="selectIvrLibIntentVo"/>
+        where intentid = #{intentid}
+    </select>
+        
+    <insert id="insertIvrLibIntent" parameterType="IvrLibIntent" useGeneratedKeys="true" keyProperty="intentid">
+        insert into ivr_lib_intent
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="intentionname != null">intentionname,</if>
+            <if test="categoryid != null">categoryid,</if>
+            <if test="categoryname != null">categoryname,</if>
+            <if test="intentionword != null">intentionword,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="intentionname != null">#{intentionname},</if>
+            <if test="categoryid != null">#{categoryid},</if>
+            <if test="categoryname != null">#{categoryname},</if>
+            <if test="intentionword != null">#{intentionword},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrLibIntent" parameterType="IvrLibIntent">
+        update ivr_lib_intent
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="intentionname != null">intentionname = #{intentionname},</if>
+            <if test="categoryid != null">categoryid = #{categoryid},</if>
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="intentionword != null">intentionword = #{intentionword},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where intentid = #{intentid}
+    </update>
+
+    <delete id="deleteIvrLibIntentByIntentid" parameterType="Long">
+        delete from ivr_lib_intent where intentid = #{intentid}
+    </delete>
+
+    <delete id="deleteIvrLibIntentByIntentids" parameterType="String">
+        delete from ivr_lib_intent where intentid in 
+        <foreach item="intentid" collection="array" open="(" separator="," close=")">
+            #{intentid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibIntentcategoryMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibIntentcategoryMapper.xml
new file mode 100644
index 0000000..aeb6339
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibIntentcategoryMapper.xml
@@ -0,0 +1,91 @@
+<?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.IvrLibIntentcategoryMapper">
+    
+    <resultMap type="IvrLibIntentcategory" id="IvrLibIntentcategoryResult">
+        <result property="intertcatid"    column="intertcatid"    />
+        <result property="categoryname"    column="categoryname"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrLibIntentcategoryVo">
+        select intertcatid, categoryname, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_lib_intentcategory
+    </sql>
+
+    <select id="selectIvrLibIntentcategoryList" parameterType="IvrLibIntentcategory" resultMap="IvrLibIntentcategoryResult">
+        <include refid="selectIvrLibIntentcategoryVo"/>
+        <where>  
+            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrLibIntentcategoryByIntertcatid" parameterType="Long" resultMap="IvrLibIntentcategoryResult">
+        <include refid="selectIvrLibIntentcategoryVo"/>
+        where intertcatid = #{intertcatid}
+    </select>
+        
+    <insert id="insertIvrLibIntentcategory" parameterType="IvrLibIntentcategory" useGeneratedKeys="true" keyProperty="intertcatid">
+        insert into ivr_lib_intentcategory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">categoryname,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">#{categoryname},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrLibIntentcategory" parameterType="IvrLibIntentcategory">
+        update ivr_lib_intentcategory
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where intertcatid = #{intertcatid}
+    </update>
+
+    <delete id="deleteIvrLibIntentcategoryByIntertcatid" parameterType="Long">
+        delete from ivr_lib_intentcategory where intertcatid = #{intertcatid}
+    </delete>
+
+    <delete id="deleteIvrLibIntentcategoryByIntertcatids" parameterType="String">
+        delete from ivr_lib_intentcategory where intertcatid in 
+        <foreach item="intertcatid" collection="array" open="(" separator="," close=")">
+            #{intertcatid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibScriptMapper.xml
new file mode 100644
index 0000000..58821ad
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibScriptMapper.xml
@@ -0,0 +1,116 @@
+<?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.IvrLibScriptMapper">
+    
+    <resultMap type="IvrLibScript" id="IvrLibScriptResult">
+        <result property="scriptid"    column="scriptid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="categoryid"    column="categoryid"    />
+        <result property="categoryname"    column="categoryname"    />
+        <result property="speakbody"    column="speakbody"    />
+        <result property="speakfilepath"    column="speakfilepath"    />
+        <result property="isall"    column="isall"    />
+        <result property="speakname"    column="speakname"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrLibScriptVo">
+        select scriptid, orgid, categoryid, categoryname, speakbody, speakfilepath, isall, speakname, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_lib_script
+    </sql>
+
+    <select id="selectIvrLibScriptList" parameterType="IvrLibScript" resultMap="IvrLibScriptResult">
+        <include refid="selectIvrLibScriptVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="categoryid != null "> and categoryid = #{categoryid}</if>
+            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
+            <if test="speakbody != null  and speakbody != ''"> and speakbody = #{speakbody}</if>
+            <if test="speakfilepath != null  and speakfilepath != ''"> and speakfilepath = #{speakfilepath}</if>
+            <if test="isall != null "> and isall = #{isall}</if>
+            <if test="speakname != null  and speakname != ''"> and speakname like concat('%', #{speakname}, '%')</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrLibScriptByScriptid" parameterType="Long" resultMap="IvrLibScriptResult">
+        <include refid="selectIvrLibScriptVo"/>
+        where scriptid = #{scriptid}
+    </select>
+        
+    <insert id="insertIvrLibScript" parameterType="IvrLibScript" useGeneratedKeys="true" keyProperty="scriptid">
+        insert into ivr_lib_script
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="categoryid != null">categoryid,</if>
+            <if test="categoryname != null">categoryname,</if>
+            <if test="speakbody != null">speakbody,</if>
+            <if test="speakfilepath != null">speakfilepath,</if>
+            <if test="isall != null">isall,</if>
+            <if test="speakname != null">speakname,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="categoryid != null">#{categoryid},</if>
+            <if test="categoryname != null">#{categoryname},</if>
+            <if test="speakbody != null">#{speakbody},</if>
+            <if test="speakfilepath != null">#{speakfilepath},</if>
+            <if test="isall != null">#{isall},</if>
+            <if test="speakname != null">#{speakname},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrLibScript" parameterType="IvrLibScript">
+        update ivr_lib_script
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="categoryid != null">categoryid = #{categoryid},</if>
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="speakbody != null">speakbody = #{speakbody},</if>
+            <if test="speakfilepath != null">speakfilepath = #{speakfilepath},</if>
+            <if test="isall != null">isall = #{isall},</if>
+            <if test="speakname != null">speakname = #{speakname},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where scriptid = #{scriptid}
+    </update>
+
+    <delete id="deleteIvrLibScriptByScriptid" parameterType="Long">
+        delete from ivr_lib_script where scriptid = #{scriptid}
+    </delete>
+
+    <delete id="deleteIvrLibScriptByScriptids" parameterType="String">
+        delete from ivr_lib_script where scriptid in 
+        <foreach item="scriptid" collection="array" open="(" separator="," close=")">
+            #{scriptid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibScriptcategoryMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibScriptcategoryMapper.xml
new file mode 100644
index 0000000..d527a9a
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibScriptcategoryMapper.xml
@@ -0,0 +1,91 @@
+<?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.IvrLibScriptcategoryMapper">
+    
+    <resultMap type="IvrLibScriptcategory" id="IvrLibScriptcategoryResult">
+        <result property="categoryid"    column="categoryid"    />
+        <result property="categoryname"    column="categoryname"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrLibScriptcategoryVo">
+        select categoryid, categoryname, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_lib_scriptcategory
+    </sql>
+
+    <select id="selectIvrLibScriptcategoryList" parameterType="IvrLibScriptcategory" resultMap="IvrLibScriptcategoryResult">
+        <include refid="selectIvrLibScriptcategoryVo"/>
+        <where>  
+            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrLibScriptcategoryByCategoryid" parameterType="Long" resultMap="IvrLibScriptcategoryResult">
+        <include refid="selectIvrLibScriptcategoryVo"/>
+        where categoryid = #{categoryid}
+    </select>
+        
+    <insert id="insertIvrLibScriptcategory" parameterType="IvrLibScriptcategory" useGeneratedKeys="true" keyProperty="categoryid">
+        insert into ivr_lib_scriptcategory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">categoryname,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">#{categoryname},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrLibScriptcategory" parameterType="IvrLibScriptcategory">
+        update ivr_lib_scriptcategory
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where categoryid = #{categoryid}
+    </update>
+
+    <delete id="deleteIvrLibScriptcategoryByCategoryid" parameterType="Long">
+        delete from ivr_lib_scriptcategory where categoryid = #{categoryid}
+    </delete>
+
+    <delete id="deleteIvrLibScriptcategoryByCategoryids" parameterType="String">
+        delete from ivr_lib_scriptcategory where categoryid in 
+        <foreach item="categoryid" collection="array" open="(" separator="," close=")">
+            #{categoryid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibScriptmodelMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibScriptmodelMapper.xml
new file mode 100644
index 0000000..4b2dc26
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibScriptmodelMapper.xml
@@ -0,0 +1,141 @@
+<?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.IvrLibScriptmodelMapper">
+    
+    <resultMap type="IvrLibScriptmodel" id="IvrLibScriptmodelResult">
+        <result property="modelid"    column="modelid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="scriptid"    column="scriptid"    />
+        <result property="speaktype"    column="speaktype"    />
+        <result property="speakbody"    column="speakbody"    />
+        <result property="voicetype"    column="voicetype"    />
+        <result property="speakfilepath"    column="speakfilepath"    />
+        <result property="manufactor"    column="manufactor"    />
+        <result property="soundtype"    column="soundtype"    />
+        <result property="speechnum"    column="speechnum"    />
+        <result property="pitch"    column="pitch"    />
+        <result property="volume"    column="volume"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="speakvariable"    column="speakvariable"    />
+    </resultMap>
+
+    <sql id="selectIvrLibScriptmodelVo">
+        select modelid, orgid, scriptid, speaktype, speakbody, voicetype, speakfilepath, manufactor, soundtype, speechnum, pitch, volume, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, speakvariable from ivr_lib_scriptmodel
+    </sql>
+
+    <select id="selectIvrLibScriptmodelList" parameterType="IvrLibScriptmodel" resultMap="IvrLibScriptmodelResult">
+        <include refid="selectIvrLibScriptmodelVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="scriptid != null "> and scriptid = #{scriptid}</if>
+            <if test="speaktype != null "> and speaktype = #{speaktype}</if>
+            <if test="speakbody != null  and speakbody != ''"> and speakbody = #{speakbody}</if>
+            <if test="voicetype != null "> and voicetype = #{voicetype}</if>
+            <if test="speakfilepath != null  and speakfilepath != ''"> and speakfilepath = #{speakfilepath}</if>
+            <if test="manufactor != null  and manufactor != ''"> and manufactor = #{manufactor}</if>
+            <if test="soundtype != null  and soundtype != ''"> and soundtype = #{soundtype}</if>
+            <if test="speechnum != null "> and speechnum = #{speechnum}</if>
+            <if test="pitch != null "> and pitch = #{pitch}</if>
+            <if test="volume != null "> and volume = #{volume}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="speakvariable != null  and speakvariable != ''"> and speakvariable = #{speakvariable}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrLibScriptmodelByModelid" parameterType="Long" resultMap="IvrLibScriptmodelResult">
+        <include refid="selectIvrLibScriptmodelVo"/>
+        where modelid = #{modelid}
+    </select>
+        
+    <insert id="insertIvrLibScriptmodel" parameterType="IvrLibScriptmodel" useGeneratedKeys="true" keyProperty="modelid">
+        insert into ivr_lib_scriptmodel
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="scriptid != null">scriptid,</if>
+            <if test="speaktype != null">speaktype,</if>
+            <if test="speakbody != null">speakbody,</if>
+            <if test="voicetype != null">voicetype,</if>
+            <if test="speakfilepath != null">speakfilepath,</if>
+            <if test="manufactor != null">manufactor,</if>
+            <if test="soundtype != null">soundtype,</if>
+            <if test="speechnum != null">speechnum,</if>
+            <if test="pitch != null">pitch,</if>
+            <if test="volume != null">volume,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="speakvariable != null">speakvariable,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="scriptid != null">#{scriptid},</if>
+            <if test="speaktype != null">#{speaktype},</if>
+            <if test="speakbody != null">#{speakbody},</if>
+            <if test="voicetype != null">#{voicetype},</if>
+            <if test="speakfilepath != null">#{speakfilepath},</if>
+            <if test="manufactor != null">#{manufactor},</if>
+            <if test="soundtype != null">#{soundtype},</if>
+            <if test="speechnum != null">#{speechnum},</if>
+            <if test="pitch != null">#{pitch},</if>
+            <if test="volume != null">#{volume},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="speakvariable != null">#{speakvariable},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrLibScriptmodel" parameterType="IvrLibScriptmodel">
+        update ivr_lib_scriptmodel
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="scriptid != null">scriptid = #{scriptid},</if>
+            <if test="speaktype != null">speaktype = #{speaktype},</if>
+            <if test="speakbody != null">speakbody = #{speakbody},</if>
+            <if test="voicetype != null">voicetype = #{voicetype},</if>
+            <if test="speakfilepath != null">speakfilepath = #{speakfilepath},</if>
+            <if test="manufactor != null">manufactor = #{manufactor},</if>
+            <if test="soundtype != null">soundtype = #{soundtype},</if>
+            <if test="speechnum != null">speechnum = #{speechnum},</if>
+            <if test="pitch != null">pitch = #{pitch},</if>
+            <if test="volume != null">volume = #{volume},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="speakvariable != null">speakvariable = #{speakvariable},</if>
+        </trim>
+        where modelid = #{modelid}
+    </update>
+
+    <delete id="deleteIvrLibScriptmodelByModelid" parameterType="Long">
+        delete from ivr_lib_scriptmodel where modelid = #{modelid}
+    </delete>
+
+    <delete id="deleteIvrLibScriptmodelByModelids" parameterType="String">
+        delete from ivr_lib_scriptmodel where modelid in 
+        <foreach item="modelid" collection="array" open="(" separator="," close=")">
+            #{modelid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneExecuteconfigMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneExecuteconfigMapper.xml
new file mode 100644
index 0000000..11d5970
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneExecuteconfigMapper.xml
@@ -0,0 +1,136 @@
+<?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.IvrSceneExecuteconfigMapper">
+    
+    <resultMap type="IvrSceneExecuteconfig" id="IvrSceneExecuteconfigResult">
+        <result property="scenecfgid"    column="scenecfgid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="sourcetype"    column="sourcetype"    />
+        <result property="globalid"    column="globalid"    />
+        <result property="flownodebranchid"    column="flownodebranchid"    />
+        <result property="executetype"    column="executetype"    />
+        <result property="executeconditions"    column="executeconditions"    />
+        <result property="executeresult"    column="executeresult"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="executeconditionscode"    column="executeconditionscode"    />
+        <result property="executeresultcode"    column="executeresultcode"    />
+        <result property="flownodeid"    column="flownodeid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneExecuteconfigVo">
+        select scenecfgid, orgid, sourcetype, globalid, flownodebranchid, executetype, executeconditions, executeresult, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, sceneid, executeconditionscode, executeresultcode, flownodeid from ivr_scene_executeconfig
+    </sql>
+
+    <select id="selectIvrSceneExecuteconfigList" parameterType="IvrSceneExecuteconfig" resultMap="IvrSceneExecuteconfigResult">
+        <include refid="selectIvrSceneExecuteconfigVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="sourcetype != null "> and sourcetype = #{sourcetype}</if>
+            <if test="globalid != null "> and globalid = #{globalid}</if>
+            <if test="flownodebranchid != null "> and flownodebranchid = #{flownodebranchid}</if>
+            <if test="executetype != null "> and executetype = #{executetype}</if>
+            <if test="executeconditions != null  and executeconditions != ''"> and executeconditions = #{executeconditions}</if>
+            <if test="executeresult != null  and executeresult != ''"> and executeresult = #{executeresult}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="executeconditionscode != null  and executeconditionscode != ''"> and executeconditionscode = #{executeconditionscode}</if>
+            <if test="executeresultcode != null  and executeresultcode != ''"> and executeresultcode = #{executeresultcode}</if>
+            <if test="flownodeid != null "> and flownodeid = #{flownodeid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneExecuteconfigByScenecfgid" parameterType="Long" resultMap="IvrSceneExecuteconfigResult">
+        <include refid="selectIvrSceneExecuteconfigVo"/>
+        where scenecfgid = #{scenecfgid}
+    </select>
+        
+    <insert id="insertIvrSceneExecuteconfig" parameterType="IvrSceneExecuteconfig" useGeneratedKeys="true" keyProperty="scenecfgid">
+        insert into ivr_scene_executeconfig
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="sourcetype != null">sourcetype,</if>
+            <if test="globalid != null">globalid,</if>
+            <if test="flownodebranchid != null">flownodebranchid,</if>
+            <if test="executetype != null">executetype,</if>
+            <if test="executeconditions != null">executeconditions,</if>
+            <if test="executeresult != null">executeresult,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="executeconditionscode != null">executeconditionscode,</if>
+            <if test="executeresultcode != null">executeresultcode,</if>
+            <if test="flownodeid != null">flownodeid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="sourcetype != null">#{sourcetype},</if>
+            <if test="globalid != null">#{globalid},</if>
+            <if test="flownodebranchid != null">#{flownodebranchid},</if>
+            <if test="executetype != null">#{executetype},</if>
+            <if test="executeconditions != null">#{executeconditions},</if>
+            <if test="executeresult != null">#{executeresult},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="executeconditionscode != null">#{executeconditionscode},</if>
+            <if test="executeresultcode != null">#{executeresultcode},</if>
+            <if test="flownodeid != null">#{flownodeid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneExecuteconfig" parameterType="IvrSceneExecuteconfig">
+        update ivr_scene_executeconfig
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="sourcetype != null">sourcetype = #{sourcetype},</if>
+            <if test="globalid != null">globalid = #{globalid},</if>
+            <if test="flownodebranchid != null">flownodebranchid = #{flownodebranchid},</if>
+            <if test="executetype != null">executetype = #{executetype},</if>
+            <if test="executeconditions != null">executeconditions = #{executeconditions},</if>
+            <if test="executeresult != null">executeresult = #{executeresult},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="executeconditionscode != null">executeconditionscode = #{executeconditionscode},</if>
+            <if test="executeresultcode != null">executeresultcode = #{executeresultcode},</if>
+            <if test="flownodeid != null">flownodeid = #{flownodeid},</if>
+        </trim>
+        where scenecfgid = #{scenecfgid}
+    </update>
+
+    <delete id="deleteIvrSceneExecuteconfigByScenecfgid" parameterType="Long">
+        delete from ivr_scene_executeconfig where scenecfgid = #{scenecfgid}
+    </delete>
+
+    <delete id="deleteIvrSceneExecuteconfigByScenecfgids" parameterType="String">
+        delete from ivr_scene_executeconfig where scenecfgid in 
+        <foreach item="scenecfgid" collection="array" open="(" separator="," close=")">
+            #{scenecfgid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneFlowMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneFlowMapper.xml
new file mode 100644
index 0000000..0b28510
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneFlowMapper.xml
@@ -0,0 +1,136 @@
+<?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.IvrSceneFlowMapper">
+    
+    <resultMap type="IvrSceneFlow" id="IvrSceneFlowResult">
+        <result property="flowid"    column="flowid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="flowname"    column="flowname"    />
+        <result property="relevantqsid"    column="relevantqsid"    />
+        <result property="relevanttopicid"    column="relevanttopicid"    />
+        <result property="relevanttopiccode"    column="relevanttopiccode"    />
+        <result property="ischeck"    column="ischeck"    />
+        <result property="flowdata"    column="flowdata"    />
+        <result property="sort"    column="sort"    />
+        <result property="startnode"    column="startnode"    />
+        <result property="oldid"    column="oldid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneFlowVo">
+        select flowid, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, sceneid, flowname, relevantqsid, relevanttopicid, relevanttopiccode, ischeck, flowdata, sort, startnode, oldid from ivr_scene_flow
+    </sql>
+
+    <select id="selectIvrSceneFlowList" parameterType="IvrSceneFlow" resultMap="IvrSceneFlowResult">
+        <include refid="selectIvrSceneFlowVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="flowname != null  and flowname != ''"> and flowname like concat('%', #{flowname}, '%')</if>
+            <if test="relevantqsid != null "> and relevantqsid = #{relevantqsid}</if>
+            <if test="relevanttopicid != null  and relevanttopicid != ''"> and relevanttopicid = #{relevanttopicid}</if>
+            <if test="relevanttopiccode != null  and relevanttopiccode != ''"> and relevanttopiccode = #{relevanttopiccode}</if>
+            <if test="ischeck != null "> and ischeck = #{ischeck}</if>
+            <if test="flowdata != null  and flowdata != ''"> and flowdata = #{flowdata}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="startnode != null "> and startnode = #{startnode}</if>
+            <if test="oldid != null "> and oldid = #{oldid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneFlowByFlowid" parameterType="Long" resultMap="IvrSceneFlowResult">
+        <include refid="selectIvrSceneFlowVo"/>
+        where flowid = #{flowid}
+    </select>
+        
+    <insert id="insertIvrSceneFlow" parameterType="IvrSceneFlow" useGeneratedKeys="true" keyProperty="flowid">
+        insert into ivr_scene_flow
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="flowname != null">flowname,</if>
+            <if test="relevantqsid != null">relevantqsid,</if>
+            <if test="relevanttopicid != null">relevanttopicid,</if>
+            <if test="relevanttopiccode != null">relevanttopiccode,</if>
+            <if test="ischeck != null">ischeck,</if>
+            <if test="flowdata != null">flowdata,</if>
+            <if test="sort != null">sort,</if>
+            <if test="startnode != null">startnode,</if>
+            <if test="oldid != null">oldid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="flowname != null">#{flowname},</if>
+            <if test="relevantqsid != null">#{relevantqsid},</if>
+            <if test="relevanttopicid != null">#{relevanttopicid},</if>
+            <if test="relevanttopiccode != null">#{relevanttopiccode},</if>
+            <if test="ischeck != null">#{ischeck},</if>
+            <if test="flowdata != null">#{flowdata},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="startnode != null">#{startnode},</if>
+            <if test="oldid != null">#{oldid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneFlow" parameterType="IvrSceneFlow">
+        update ivr_scene_flow
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="flowname != null">flowname = #{flowname},</if>
+            <if test="relevantqsid != null">relevantqsid = #{relevantqsid},</if>
+            <if test="relevanttopicid != null">relevanttopicid = #{relevanttopicid},</if>
+            <if test="relevanttopiccode != null">relevanttopiccode = #{relevanttopiccode},</if>
+            <if test="ischeck != null">ischeck = #{ischeck},</if>
+            <if test="flowdata != null">flowdata = #{flowdata},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="startnode != null">startnode = #{startnode},</if>
+            <if test="oldid != null">oldid = #{oldid},</if>
+        </trim>
+        where flowid = #{flowid}
+    </update>
+
+    <delete id="deleteIvrSceneFlowByFlowid" parameterType="Long">
+        delete from ivr_scene_flow where flowid = #{flowid}
+    </delete>
+
+    <delete id="deleteIvrSceneFlowByFlowids" parameterType="String">
+        delete from ivr_scene_flow where flowid in 
+        <foreach item="flowid" collection="array" open="(" separator="," close=")">
+            #{flowid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodeMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodeMapper.xml
new file mode 100644
index 0000000..8fc2c64
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodeMapper.xml
@@ -0,0 +1,156 @@
+<?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.IvrSceneFlownodeMapper">
+    
+    <resultMap type="IvrSceneFlownode" id="IvrSceneFlownodeResult">
+        <result property="flownodeid"    column="flownodeid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="flowid"    column="flowid"    />
+        <result property="nodetype"    column="nodetype"    />
+        <result property="nodename"    column="nodename"    />
+        <result property="maxsentencesilence"    column="maxsentencesilence"    />
+        <result property="waittime"    column="waittime"    />
+        <result property="corpustype"    column="corpustype"    />
+        <result property="corpuswaittime"    column="corpuswaittime"    />
+        <result property="maxrepetition"    column="maxrepetition"    />
+        <result property="jumptype"    column="jumptype"    />
+        <result property="jumpto"    column="jumpto"    />
+        <result property="flowcode"    column="flowcode"    />
+        <result property="targetid"    column="targetid"    />
+        <result property="oldid"    column="oldid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneFlownodeVo">
+        select flownodeid, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, sceneid, flowid, nodetype, nodename, maxsentencesilence, waittime, corpustype, corpuswaittime, maxrepetition, jumptype, jumpto, flowcode, targetid, oldid from ivr_scene_flownode
+    </sql>
+
+    <select id="selectIvrSceneFlownodeList" parameterType="IvrSceneFlownode" resultMap="IvrSceneFlownodeResult">
+        <include refid="selectIvrSceneFlownodeVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="flowid != null "> and flowid = #{flowid}</if>
+            <if test="nodetype != null "> and nodetype = #{nodetype}</if>
+            <if test="nodename != null  and nodename != ''"> and nodename like concat('%', #{nodename}, '%')</if>
+            <if test="maxsentencesilence != null "> and maxsentencesilence = #{maxsentencesilence}</if>
+            <if test="waittime != null  and waittime != ''"> and waittime = #{waittime}</if>
+            <if test="corpustype != null "> and corpustype = #{corpustype}</if>
+            <if test="corpuswaittime != null  and corpuswaittime != ''"> and corpuswaittime = #{corpuswaittime}</if>
+            <if test="maxrepetition != null "> and maxrepetition = #{maxrepetition}</if>
+            <if test="jumptype != null "> and jumptype = #{jumptype}</if>
+            <if test="jumpto != null  and jumpto != ''"> and jumpto = #{jumpto}</if>
+            <if test="flowcode != null  and flowcode != ''"> and flowcode = #{flowcode}</if>
+            <if test="targetid != null "> and targetid = #{targetid}</if>
+            <if test="oldid != null "> and oldid = #{oldid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneFlownodeByFlownodeid" parameterType="Long" resultMap="IvrSceneFlownodeResult">
+        <include refid="selectIvrSceneFlownodeVo"/>
+        where flownodeid = #{flownodeid}
+    </select>
+        
+    <insert id="insertIvrSceneFlownode" parameterType="IvrSceneFlownode" useGeneratedKeys="true" keyProperty="flownodeid">
+        insert into ivr_scene_flownode
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="flowid != null">flowid,</if>
+            <if test="nodetype != null">nodetype,</if>
+            <if test="nodename != null">nodename,</if>
+            <if test="maxsentencesilence != null">maxsentencesilence,</if>
+            <if test="waittime != null">waittime,</if>
+            <if test="corpustype != null">corpustype,</if>
+            <if test="corpuswaittime != null">corpuswaittime,</if>
+            <if test="maxrepetition != null">maxrepetition,</if>
+            <if test="jumptype != null">jumptype,</if>
+            <if test="jumpto != null">jumpto,</if>
+            <if test="flowcode != null">flowcode,</if>
+            <if test="targetid != null">targetid,</if>
+            <if test="oldid != null">oldid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="flowid != null">#{flowid},</if>
+            <if test="nodetype != null">#{nodetype},</if>
+            <if test="nodename != null">#{nodename},</if>
+            <if test="maxsentencesilence != null">#{maxsentencesilence},</if>
+            <if test="waittime != null">#{waittime},</if>
+            <if test="corpustype != null">#{corpustype},</if>
+            <if test="corpuswaittime != null">#{corpuswaittime},</if>
+            <if test="maxrepetition != null">#{maxrepetition},</if>
+            <if test="jumptype != null">#{jumptype},</if>
+            <if test="jumpto != null">#{jumpto},</if>
+            <if test="flowcode != null">#{flowcode},</if>
+            <if test="targetid != null">#{targetid},</if>
+            <if test="oldid != null">#{oldid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneFlownode" parameterType="IvrSceneFlownode">
+        update ivr_scene_flownode
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="flowid != null">flowid = #{flowid},</if>
+            <if test="nodetype != null">nodetype = #{nodetype},</if>
+            <if test="nodename != null">nodename = #{nodename},</if>
+            <if test="maxsentencesilence != null">maxsentencesilence = #{maxsentencesilence},</if>
+            <if test="waittime != null">waittime = #{waittime},</if>
+            <if test="corpustype != null">corpustype = #{corpustype},</if>
+            <if test="corpuswaittime != null">corpuswaittime = #{corpuswaittime},</if>
+            <if test="maxrepetition != null">maxrepetition = #{maxrepetition},</if>
+            <if test="jumptype != null">jumptype = #{jumptype},</if>
+            <if test="jumpto != null">jumpto = #{jumpto},</if>
+            <if test="flowcode != null">flowcode = #{flowcode},</if>
+            <if test="targetid != null">targetid = #{targetid},</if>
+            <if test="oldid != null">oldid = #{oldid},</if>
+        </trim>
+        where flownodeid = #{flownodeid}
+    </update>
+
+    <delete id="deleteIvrSceneFlownodeByFlownodeid" parameterType="Long">
+        delete from ivr_scene_flownode where flownodeid = #{flownodeid}
+    </delete>
+
+    <delete id="deleteIvrSceneFlownodeByFlownodeids" parameterType="String">
+        delete from ivr_scene_flownode where flownodeid in 
+        <foreach item="flownodeid" collection="array" open="(" separator="," close=")">
+            #{flownodeid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodebranchMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodebranchMapper.xml
new file mode 100644
index 0000000..e66ddbe
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneFlownodebranchMapper.xml
@@ -0,0 +1,131 @@
+<?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.IvrSceneFlownodebranchMapper">
+    
+    <resultMap type="IvrSceneFlownodebranch" id="IvrSceneFlownodebranchResult">
+        <result property="branchid"    column="branchid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="flowid"    column="flowid"    />
+        <result property="flownodeid"    column="flownodeid"    />
+        <result property="branchname"    column="branchname"    />
+        <result property="isenable"    column="isenable"    />
+        <result property="sort"    column="sort"    />
+        <result property="nodetype"    column="nodetype"    />
+        <result property="targetid"    column="targetid"    />
+        <result property="oldid"    column="oldid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneFlownodebranchVo">
+        select branchid, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, sceneid, flowid, flownodeid, branchname, isenable, sort, nodetype, targetid, oldid from ivr_scene_flownodebranch
+    </sql>
+
+    <select id="selectIvrSceneFlownodebranchList" parameterType="IvrSceneFlownodebranch" resultMap="IvrSceneFlownodebranchResult">
+        <include refid="selectIvrSceneFlownodebranchVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="flowid != null "> and flowid = #{flowid}</if>
+            <if test="flownodeid != null "> and flownodeid = #{flownodeid}</if>
+            <if test="branchname != null  and branchname != ''"> and branchname like concat('%', #{branchname}, '%')</if>
+            <if test="isenable != null "> and isenable = #{isenable}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="nodetype != null "> and nodetype = #{nodetype}</if>
+            <if test="targetid != null "> and targetid = #{targetid}</if>
+            <if test="oldid != null "> and oldid = #{oldid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneFlownodebranchByBranchid" parameterType="Long" resultMap="IvrSceneFlownodebranchResult">
+        <include refid="selectIvrSceneFlownodebranchVo"/>
+        where branchid = #{branchid}
+    </select>
+        
+    <insert id="insertIvrSceneFlownodebranch" parameterType="IvrSceneFlownodebranch" useGeneratedKeys="true" keyProperty="branchid">
+        insert into ivr_scene_flownodebranch
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="flowid != null">flowid,</if>
+            <if test="flownodeid != null">flownodeid,</if>
+            <if test="branchname != null">branchname,</if>
+            <if test="isenable != null">isenable,</if>
+            <if test="sort != null">sort,</if>
+            <if test="nodetype != null">nodetype,</if>
+            <if test="targetid != null">targetid,</if>
+            <if test="oldid != null">oldid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="flowid != null">#{flowid},</if>
+            <if test="flownodeid != null">#{flownodeid},</if>
+            <if test="branchname != null">#{branchname},</if>
+            <if test="isenable != null">#{isenable},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="nodetype != null">#{nodetype},</if>
+            <if test="targetid != null">#{targetid},</if>
+            <if test="oldid != null">#{oldid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneFlownodebranch" parameterType="IvrSceneFlownodebranch">
+        update ivr_scene_flownodebranch
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="flowid != null">flowid = #{flowid},</if>
+            <if test="flownodeid != null">flownodeid = #{flownodeid},</if>
+            <if test="branchname != null">branchname = #{branchname},</if>
+            <if test="isenable != null">isenable = #{isenable},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="nodetype != null">nodetype = #{nodetype},</if>
+            <if test="targetid != null">targetid = #{targetid},</if>
+            <if test="oldid != null">oldid = #{oldid},</if>
+        </trim>
+        where branchid = #{branchid}
+    </update>
+
+    <delete id="deleteIvrSceneFlownodebranchByBranchid" parameterType="Long">
+        delete from ivr_scene_flownodebranch where branchid = #{branchid}
+    </delete>
+
+    <delete id="deleteIvrSceneFlownodebranchByBranchids" parameterType="String">
+        delete from ivr_scene_flownodebranch where branchid in 
+        <foreach item="branchid" collection="array" open="(" separator="," close=")">
+            #{branchid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneGlobalconfigMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneGlobalconfigMapper.xml
new file mode 100644
index 0000000..d849ca6
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneGlobalconfigMapper.xml
@@ -0,0 +1,126 @@
+<?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.IvrSceneGlobalconfigMapper">
+    
+    <resultMap type="IvrSceneGlobalconfig" id="IvrSceneGlobalconfigResult">
+        <result property="gblconfigid"    column="gblconfigid"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="configname"    column="configname"    />
+        <result property="description"    column="description"    />
+        <result property="sort"    column="sort"    />
+        <result property="executetype"    column="executetype"    />
+        <result property="isenable"    column="isenable"    />
+        <result property="jumpto"    column="jumpto"    />
+        <result property="repeatcount"    column="repeatcount"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneGlobalconfigVo">
+        select gblconfigid, sceneid, configname, description, sort, executetype, isenable, jumpto, repeatcount, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_scene_globalconfig
+    </sql>
+
+    <select id="selectIvrSceneGlobalconfigList" parameterType="IvrSceneGlobalconfig" resultMap="IvrSceneGlobalconfigResult">
+        <include refid="selectIvrSceneGlobalconfigVo"/>
+        <where>  
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="configname != null  and configname != ''"> and configname like concat('%', #{configname}, '%')</if>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="executetype != null "> and executetype = #{executetype}</if>
+            <if test="isenable != null "> and isenable = #{isenable}</if>
+            <if test="jumpto != null "> and jumpto = #{jumpto}</if>
+            <if test="repeatcount != null "> and repeatcount = #{repeatcount}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneGlobalconfigByGblconfigid" parameterType="Long" resultMap="IvrSceneGlobalconfigResult">
+        <include refid="selectIvrSceneGlobalconfigVo"/>
+        where gblconfigid = #{gblconfigid}
+    </select>
+        
+    <insert id="insertIvrSceneGlobalconfig" parameterType="IvrSceneGlobalconfig" useGeneratedKeys="true" keyProperty="gblconfigid">
+        insert into ivr_scene_globalconfig
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sceneid != null">sceneid,</if>
+            <if test="configname != null">configname,</if>
+            <if test="description != null">description,</if>
+            <if test="sort != null">sort,</if>
+            <if test="executetype != null">executetype,</if>
+            <if test="isenable != null">isenable,</if>
+            <if test="jumpto != null">jumpto,</if>
+            <if test="repeatcount != null">repeatcount,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="configname != null">#{configname},</if>
+            <if test="description != null">#{description},</if>
+            <if test="sort != null">#{sort},</if>
+            <if test="executetype != null">#{executetype},</if>
+            <if test="isenable != null">#{isenable},</if>
+            <if test="jumpto != null">#{jumpto},</if>
+            <if test="repeatcount != null">#{repeatcount},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneGlobalconfig" parameterType="IvrSceneGlobalconfig">
+        update ivr_scene_globalconfig
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="configname != null">configname = #{configname},</if>
+            <if test="description != null">description = #{description},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="executetype != null">executetype = #{executetype},</if>
+            <if test="isenable != null">isenable = #{isenable},</if>
+            <if test="jumpto != null">jumpto = #{jumpto},</if>
+            <if test="repeatcount != null">repeatcount = #{repeatcount},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where gblconfigid = #{gblconfigid}
+    </update>
+
+    <delete id="deleteIvrSceneGlobalconfigByGblconfigid" parameterType="Long">
+        delete from ivr_scene_globalconfig where gblconfigid = #{gblconfigid}
+    </delete>
+
+    <delete id="deleteIvrSceneGlobalconfigByGblconfigids" parameterType="String">
+        delete from ivr_scene_globalconfig where gblconfigid in 
+        <foreach item="gblconfigid" collection="array" open="(" separator="," close=")">
+            #{gblconfigid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneIntentMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneIntentMapper.xml
new file mode 100644
index 0000000..b468835
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneIntentMapper.xml
@@ -0,0 +1,161 @@
+<?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.IvrSceneIntentMapper">
+    
+    <resultMap type="IvrSceneIntent" id="IvrSceneIntentResult">
+        <result property="sceneintentid"    column="sceneintentid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="sourcetype"    column="sourcetype"    />
+        <result property="gbiconfigid"    column="gbiconfigid"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="flowid"    column="flowid"    />
+        <result property="flownodeid"    column="flownodeid"    />
+        <result property="flownodebranchid"    column="flownodebranchid"    />
+        <result property="templateid"    column="templateid"    />
+        <result property="intentionname"    column="intentionname"    />
+        <result property="intentionword"    column="intentionword"    />
+        <result property="conditionstype"    column="conditionstype"    />
+        <result property="verifyrule"    column="verifyrule"    />
+        <result property="orand"    column="orand"    />
+        <result property="parentresultconditionsid"    column="parentresultconditionsid"    />
+        <result property="groupnumber"    column="groupnumber"    />
+        <result property="grouporand"    column="grouporand"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneIntentVo">
+        select sceneintentid, orgid, sourcetype, gbiconfigid, sceneid, flowid, flownodeid, flownodebranchid, templateid, intentionname, intentionword, conditionstype, verifyrule, orand, parentresultconditionsid, groupnumber, grouporand, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_scene_intent
+    </sql>
+
+    <select id="selectIvrSceneIntentList" parameterType="IvrSceneIntent" resultMap="IvrSceneIntentResult">
+        <include refid="selectIvrSceneIntentVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="sourcetype != null "> and sourcetype = #{sourcetype}</if>
+            <if test="gbiconfigid != null "> and gbiconfigid = #{gbiconfigid}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="flowid != null "> and flowid = #{flowid}</if>
+            <if test="flownodeid != null "> and flownodeid = #{flownodeid}</if>
+            <if test="flownodebranchid != null "> and flownodebranchid = #{flownodebranchid}</if>
+            <if test="templateid != null "> and templateid = #{templateid}</if>
+            <if test="intentionname != null  and intentionname != ''"> and intentionname like concat('%', #{intentionname}, '%')</if>
+            <if test="intentionword != null  and intentionword != ''"> and intentionword = #{intentionword}</if>
+            <if test="conditionstype != null "> and conditionstype = #{conditionstype}</if>
+            <if test="verifyrule != null  and verifyrule != ''"> and verifyrule = #{verifyrule}</if>
+            <if test="orand != null "> and orand = #{orand}</if>
+            <if test="parentresultconditionsid != null  and parentresultconditionsid != ''"> and parentresultconditionsid = #{parentresultconditionsid}</if>
+            <if test="groupnumber != null "> and groupnumber = #{groupnumber}</if>
+            <if test="grouporand != null "> and grouporand = #{grouporand}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneIntentBySceneintentid" parameterType="Long" resultMap="IvrSceneIntentResult">
+        <include refid="selectIvrSceneIntentVo"/>
+        where sceneintentid = #{sceneintentid}
+    </select>
+        
+    <insert id="insertIvrSceneIntent" parameterType="IvrSceneIntent" useGeneratedKeys="true" keyProperty="sceneintentid">
+        insert into ivr_scene_intent
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="sourcetype != null">sourcetype,</if>
+            <if test="gbiconfigid != null">gbiconfigid,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="flowid != null">flowid,</if>
+            <if test="flownodeid != null">flownodeid,</if>
+            <if test="flownodebranchid != null">flownodebranchid,</if>
+            <if test="templateid != null">templateid,</if>
+            <if test="intentionname != null">intentionname,</if>
+            <if test="intentionword != null">intentionword,</if>
+            <if test="conditionstype != null">conditionstype,</if>
+            <if test="verifyrule != null">verifyrule,</if>
+            <if test="orand != null">orand,</if>
+            <if test="parentresultconditionsid != null">parentresultconditionsid,</if>
+            <if test="groupnumber != null">groupnumber,</if>
+            <if test="grouporand != null">grouporand,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="sourcetype != null">#{sourcetype},</if>
+            <if test="gbiconfigid != null">#{gbiconfigid},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="flowid != null">#{flowid},</if>
+            <if test="flownodeid != null">#{flownodeid},</if>
+            <if test="flownodebranchid != null">#{flownodebranchid},</if>
+            <if test="templateid != null">#{templateid},</if>
+            <if test="intentionname != null">#{intentionname},</if>
+            <if test="intentionword != null">#{intentionword},</if>
+            <if test="conditionstype != null">#{conditionstype},</if>
+            <if test="verifyrule != null">#{verifyrule},</if>
+            <if test="orand != null">#{orand},</if>
+            <if test="parentresultconditionsid != null">#{parentresultconditionsid},</if>
+            <if test="groupnumber != null">#{groupnumber},</if>
+            <if test="grouporand != null">#{grouporand},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneIntent" parameterType="IvrSceneIntent">
+        update ivr_scene_intent
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="sourcetype != null">sourcetype = #{sourcetype},</if>
+            <if test="gbiconfigid != null">gbiconfigid = #{gbiconfigid},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="flowid != null">flowid = #{flowid},</if>
+            <if test="flownodeid != null">flownodeid = #{flownodeid},</if>
+            <if test="flownodebranchid != null">flownodebranchid = #{flownodebranchid},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="intentionname != null">intentionname = #{intentionname},</if>
+            <if test="intentionword != null">intentionword = #{intentionword},</if>
+            <if test="conditionstype != null">conditionstype = #{conditionstype},</if>
+            <if test="verifyrule != null">verifyrule = #{verifyrule},</if>
+            <if test="orand != null">orand = #{orand},</if>
+            <if test="parentresultconditionsid != null">parentresultconditionsid = #{parentresultconditionsid},</if>
+            <if test="groupnumber != null">groupnumber = #{groupnumber},</if>
+            <if test="grouporand != null">grouporand = #{grouporand},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where sceneintentid = #{sceneintentid}
+    </update>
+
+    <delete id="deleteIvrSceneIntentBySceneintentid" parameterType="Long">
+        delete from ivr_scene_intent where sceneintentid = #{sceneintentid}
+    </delete>
+
+    <delete id="deleteIvrSceneIntentBySceneintentids" parameterType="String">
+        delete from ivr_scene_intent where sceneintentid in 
+        <foreach item="sceneintentid" collection="array" open="(" separator="," close=")">
+            #{sceneintentid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneMapper.xml
new file mode 100644
index 0000000..e4700a3
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneMapper.xml
@@ -0,0 +1,151 @@
+<?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.IvrSceneMapper">
+    
+    <resultMap type="IvrScene" id="IvrSceneResult">
+        <result property="sceneid"    column="sceneid"    />
+        <result property="categoryid"    column="categoryid"    />
+        <result property="scenename"    column="scenename"    />
+        <result property="version"    column="version"    />
+        <result property="relationid"    column="relationid"    />
+        <result property="seatsid"    column="seatsid"    />
+        <result property="scenecode"    column="scenecode"    />
+        <result property="versionenable"    column="versionenable"    />
+        <result property="isenable"    column="isenable"    />
+        <result property="isrelease"    column="isrelease"    />
+        <result property="executecycle"    column="executecycle"    />
+        <result property="isreview"    column="isreview"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="releasenotes"    column="releasenotes"    />
+        <result property="draftid"    column="draftid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneVo">
+        select sceneid, categoryid, scenename, version, relationid, seatsid, scenecode, versionenable, isenable, isrelease, executecycle, isreview, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, releasenotes, draftid from ivr_scene
+    </sql>
+
+    <select id="selectIvrSceneList" parameterType="IvrScene" resultMap="IvrSceneResult">
+        <include refid="selectIvrSceneVo"/>
+        <where>  
+            <if test="categoryid != null  and categoryid != ''"> and categoryid = #{categoryid}</if>
+            <if test="scenename != null  and scenename != ''"> and scenename like concat('%', #{scenename}, '%')</if>
+            <if test="version != null  and version != ''"> and version = #{version}</if>
+            <if test="relationid != null "> and relationid = #{relationid}</if>
+            <if test="seatsid != null  and seatsid != ''"> and seatsid = #{seatsid}</if>
+            <if test="scenecode != null  and scenecode != ''"> and scenecode = #{scenecode}</if>
+            <if test="versionenable != null "> and versionenable = #{versionenable}</if>
+            <if test="isenable != null "> and isenable = #{isenable}</if>
+            <if test="isrelease != null  and isrelease != ''"> and isrelease = #{isrelease}</if>
+            <if test="executecycle != null "> and executecycle = #{executecycle}</if>
+            <if test="isreview != null "> and isreview = #{isreview}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="releasenotes != null  and releasenotes != ''"> and releasenotes = #{releasenotes}</if>
+            <if test="draftid != null "> and draftid = #{draftid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneBySceneid" parameterType="Long" resultMap="IvrSceneResult">
+        <include refid="selectIvrSceneVo"/>
+        where sceneid = #{sceneid}
+    </select>
+        
+    <insert id="insertIvrScene" parameterType="IvrScene" useGeneratedKeys="true" keyProperty="sceneid">
+        insert into ivr_scene
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="categoryid != null">categoryid,</if>
+            <if test="scenename != null">scenename,</if>
+            <if test="version != null">version,</if>
+            <if test="relationid != null">relationid,</if>
+            <if test="seatsid != null">seatsid,</if>
+            <if test="scenecode != null">scenecode,</if>
+            <if test="versionenable != null">versionenable,</if>
+            <if test="isenable != null">isenable,</if>
+            <if test="isrelease != null">isrelease,</if>
+            <if test="executecycle != null">executecycle,</if>
+            <if test="isreview != null">isreview,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="releasenotes != null">releasenotes,</if>
+            <if test="draftid != null">draftid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="categoryid != null">#{categoryid},</if>
+            <if test="scenename != null">#{scenename},</if>
+            <if test="version != null">#{version},</if>
+            <if test="relationid != null">#{relationid},</if>
+            <if test="seatsid != null">#{seatsid},</if>
+            <if test="scenecode != null">#{scenecode},</if>
+            <if test="versionenable != null">#{versionenable},</if>
+            <if test="isenable != null">#{isenable},</if>
+            <if test="isrelease != null">#{isrelease},</if>
+            <if test="executecycle != null">#{executecycle},</if>
+            <if test="isreview != null">#{isreview},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="releasenotes != null">#{releasenotes},</if>
+            <if test="draftid != null">#{draftid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrScene" parameterType="IvrScene">
+        update ivr_scene
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="categoryid != null">categoryid = #{categoryid},</if>
+            <if test="scenename != null">scenename = #{scenename},</if>
+            <if test="version != null">version = #{version},</if>
+            <if test="relationid != null">relationid = #{relationid},</if>
+            <if test="seatsid != null">seatsid = #{seatsid},</if>
+            <if test="scenecode != null">scenecode = #{scenecode},</if>
+            <if test="versionenable != null">versionenable = #{versionenable},</if>
+            <if test="isenable != null">isenable = #{isenable},</if>
+            <if test="isrelease != null">isrelease = #{isrelease},</if>
+            <if test="executecycle != null">executecycle = #{executecycle},</if>
+            <if test="isreview != null">isreview = #{isreview},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="releasenotes != null">releasenotes = #{releasenotes},</if>
+            <if test="draftid != null">draftid = #{draftid},</if>
+        </trim>
+        where sceneid = #{sceneid}
+    </update>
+
+    <delete id="deleteIvrSceneBySceneid" parameterType="Long">
+        delete from ivr_scene where sceneid = #{sceneid}
+    </delete>
+
+    <delete id="deleteIvrSceneBySceneids" parameterType="String">
+        delete from ivr_scene where sceneid in 
+        <foreach item="sceneid" collection="array" open="(" separator="," close=")">
+            #{sceneid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneRecallMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneRecallMapper.xml
new file mode 100644
index 0000000..fe060f5
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneRecallMapper.xml
@@ -0,0 +1,111 @@
+<?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.IvrSceneRecallMapper">
+    
+    <resultMap type="IvrSceneRecall" id="IvrSceneRecallResult">
+        <result property="recallid"    column="recallid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="recalltype"    column="recalltype"    />
+        <result property="recallcount"    column="recallcount"    />
+        <result property="recallinterval"    column="recallinterval"    />
+        <result property="recallunit"    column="recallunit"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneRecallVo">
+        select recallid, orgid, sceneid, recalltype, recallcount, recallinterval, recallunit, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_scene_recall
+    </sql>
+
+    <select id="selectIvrSceneRecallList" parameterType="IvrSceneRecall" resultMap="IvrSceneRecallResult">
+        <include refid="selectIvrSceneRecallVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="recalltype != null  and recalltype != ''"> and recalltype = #{recalltype}</if>
+            <if test="recallcount != null "> and recallcount = #{recallcount}</if>
+            <if test="recallinterval != null "> and recallinterval = #{recallinterval}</if>
+            <if test="recallunit != null "> and recallunit = #{recallunit}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneRecallByRecallid" parameterType="Long" resultMap="IvrSceneRecallResult">
+        <include refid="selectIvrSceneRecallVo"/>
+        where recallid = #{recallid}
+    </select>
+        
+    <insert id="insertIvrSceneRecall" parameterType="IvrSceneRecall" useGeneratedKeys="true" keyProperty="recallid">
+        insert into ivr_scene_recall
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="recalltype != null">recalltype,</if>
+            <if test="recallcount != null">recallcount,</if>
+            <if test="recallinterval != null">recallinterval,</if>
+            <if test="recallunit != null">recallunit,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="recalltype != null">#{recalltype},</if>
+            <if test="recallcount != null">#{recallcount},</if>
+            <if test="recallinterval != null">#{recallinterval},</if>
+            <if test="recallunit != null">#{recallunit},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneRecall" parameterType="IvrSceneRecall">
+        update ivr_scene_recall
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="recalltype != null">recalltype = #{recalltype},</if>
+            <if test="recallcount != null">recallcount = #{recallcount},</if>
+            <if test="recallinterval != null">recallinterval = #{recallinterval},</if>
+            <if test="recallunit != null">recallunit = #{recallunit},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where recallid = #{recallid}
+    </update>
+
+    <delete id="deleteIvrSceneRecallByRecallid" parameterType="Long">
+        delete from ivr_scene_recall where recallid = #{recallid}
+    </delete>
+
+    <delete id="deleteIvrSceneRecallByRecallids" parameterType="String">
+        delete from ivr_scene_recall where recallid in 
+        <foreach item="recallid" collection="array" open="(" separator="," close=")">
+            #{recallid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneScriptMapper.xml
new file mode 100644
index 0000000..3142849
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneScriptMapper.xml
@@ -0,0 +1,131 @@
+<?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.IvrSceneScriptMapper">
+    
+    <resultMap type="IvrSceneScript" id="IvrSceneScriptResult">
+        <result property="scenescrid"    column="scenescrid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="sourcetype"    column="sourcetype"    />
+        <result property="globalid"    column="globalid"    />
+        <result property="sceneid"    column="sceneid"    />
+        <result property="flowid"    column="flowid"    />
+        <result property="flownodeid"    column="flownodeid"    />
+        <result property="templateid"    column="templateid"    />
+        <result property="speakbody"    column="speakbody"    />
+        <result property="speakfilepath"    column="speakfilepath"    />
+        <result property="speakname"    column="speakname"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneScriptVo">
+        select scenescrid, orgid, sourcetype, globalid, sceneid, flowid, flownodeid, templateid, speakbody, speakfilepath, speakname, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_scene_script
+    </sql>
+
+    <select id="selectIvrSceneScriptList" parameterType="IvrSceneScript" resultMap="IvrSceneScriptResult">
+        <include refid="selectIvrSceneScriptVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="sourcetype != null "> and sourcetype = #{sourcetype}</if>
+            <if test="globalid != null "> and globalid = #{globalid}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+            <if test="flowid != null "> and flowid = #{flowid}</if>
+            <if test="flownodeid != null "> and flownodeid = #{flownodeid}</if>
+            <if test="templateid != null "> and templateid = #{templateid}</if>
+            <if test="speakbody != null  and speakbody != ''"> and speakbody = #{speakbody}</if>
+            <if test="speakfilepath != null  and speakfilepath != ''"> and speakfilepath = #{speakfilepath}</if>
+            <if test="speakname != null  and speakname != ''"> and speakname like concat('%', #{speakname}, '%')</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneScriptByScenescrid" parameterType="Long" resultMap="IvrSceneScriptResult">
+        <include refid="selectIvrSceneScriptVo"/>
+        where scenescrid = #{scenescrid}
+    </select>
+        
+    <insert id="insertIvrSceneScript" parameterType="IvrSceneScript" useGeneratedKeys="true" keyProperty="scenescrid">
+        insert into ivr_scene_script
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="sourcetype != null">sourcetype,</if>
+            <if test="globalid != null">globalid,</if>
+            <if test="sceneid != null">sceneid,</if>
+            <if test="flowid != null">flowid,</if>
+            <if test="flownodeid != null">flownodeid,</if>
+            <if test="templateid != null">templateid,</if>
+            <if test="speakbody != null">speakbody,</if>
+            <if test="speakfilepath != null">speakfilepath,</if>
+            <if test="speakname != null">speakname,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="sourcetype != null">#{sourcetype},</if>
+            <if test="globalid != null">#{globalid},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+            <if test="flowid != null">#{flowid},</if>
+            <if test="flownodeid != null">#{flownodeid},</if>
+            <if test="templateid != null">#{templateid},</if>
+            <if test="speakbody != null">#{speakbody},</if>
+            <if test="speakfilepath != null">#{speakfilepath},</if>
+            <if test="speakname != null">#{speakname},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneScript" parameterType="IvrSceneScript">
+        update ivr_scene_script
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="sourcetype != null">sourcetype = #{sourcetype},</if>
+            <if test="globalid != null">globalid = #{globalid},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+            <if test="flowid != null">flowid = #{flowid},</if>
+            <if test="flownodeid != null">flownodeid = #{flownodeid},</if>
+            <if test="templateid != null">templateid = #{templateid},</if>
+            <if test="speakbody != null">speakbody = #{speakbody},</if>
+            <if test="speakfilepath != null">speakfilepath = #{speakfilepath},</if>
+            <if test="speakname != null">speakname = #{speakname},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where scenescrid = #{scenescrid}
+    </update>
+
+    <delete id="deleteIvrSceneScriptByScenescrid" parameterType="Long">
+        delete from ivr_scene_script where scenescrid = #{scenescrid}
+    </delete>
+
+    <delete id="deleteIvrSceneScriptByScenescrids" parameterType="String">
+        delete from ivr_scene_script where scenescrid in 
+        <foreach item="scenescrid" collection="array" open="(" separator="," close=")">
+            #{scenescrid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrSceneScriptmodelMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrSceneScriptmodelMapper.xml
new file mode 100644
index 0000000..4b305c4
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrSceneScriptmodelMapper.xml
@@ -0,0 +1,146 @@
+<?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.IvrSceneScriptmodelMapper">
+    
+    <resultMap type="IvrSceneScriptmodel" id="IvrSceneScriptmodelResult">
+        <result property="scenemodid"    column="scenemodid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="scenescrid"    column="scenescrid"    />
+        <result property="speaktype"    column="speaktype"    />
+        <result property="speakbody"    column="speakbody"    />
+        <result property="voicetype"    column="voicetype"    />
+        <result property="speakfilepath"    column="speakfilepath"    />
+        <result property="manufactor"    column="manufactor"    />
+        <result property="soundtype"    column="soundtype"    />
+        <result property="speechnum"    column="speechnum"    />
+        <result property="pitch"    column="pitch"    />
+        <result property="volume"    column="volume"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+        <result property="speakvariable"    column="speakvariable"    />
+        <result property="sceneid"    column="sceneid"    />
+    </resultMap>
+
+    <sql id="selectIvrSceneScriptmodelVo">
+        select scenemodid, orgid, scenescrid, speaktype, speakbody, voicetype, speakfilepath, manufactor, soundtype, speechnum, pitch, volume, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, speakvariable, sceneid from ivr_scene_scriptmodel
+    </sql>
+
+    <select id="selectIvrSceneScriptmodelList" parameterType="IvrSceneScriptmodel" resultMap="IvrSceneScriptmodelResult">
+        <include refid="selectIvrSceneScriptmodelVo"/>
+        <where>  
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="scenescrid != null "> and scenescrid = #{scenescrid}</if>
+            <if test="speaktype != null "> and speaktype = #{speaktype}</if>
+            <if test="speakbody != null  and speakbody != ''"> and speakbody = #{speakbody}</if>
+            <if test="voicetype != null "> and voicetype = #{voicetype}</if>
+            <if test="speakfilepath != null  and speakfilepath != ''"> and speakfilepath = #{speakfilepath}</if>
+            <if test="manufactor != null  and manufactor != ''"> and manufactor = #{manufactor}</if>
+            <if test="soundtype != null  and soundtype != ''"> and soundtype = #{soundtype}</if>
+            <if test="speechnum != null "> and speechnum = #{speechnum}</if>
+            <if test="pitch != null "> and pitch = #{pitch}</if>
+            <if test="volume != null "> and volume = #{volume}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+            <if test="speakvariable != null  and speakvariable != ''"> and speakvariable = #{speakvariable}</if>
+            <if test="sceneid != null "> and sceneid = #{sceneid}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrSceneScriptmodelByScenemodid" parameterType="Long" resultMap="IvrSceneScriptmodelResult">
+        <include refid="selectIvrSceneScriptmodelVo"/>
+        where scenemodid = #{scenemodid}
+    </select>
+        
+    <insert id="insertIvrSceneScriptmodel" parameterType="IvrSceneScriptmodel" useGeneratedKeys="true" keyProperty="scenemodid">
+        insert into ivr_scene_scriptmodel
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">orgid,</if>
+            <if test="scenescrid != null">scenescrid,</if>
+            <if test="speaktype != null">speaktype,</if>
+            <if test="speakbody != null">speakbody,</if>
+            <if test="voicetype != null">voicetype,</if>
+            <if test="speakfilepath != null">speakfilepath,</if>
+            <if test="manufactor != null">manufactor,</if>
+            <if test="soundtype != null">soundtype,</if>
+            <if test="speechnum != null">speechnum,</if>
+            <if test="pitch != null">pitch,</if>
+            <if test="volume != null">volume,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+            <if test="speakvariable != null">speakvariable,</if>
+            <if test="sceneid != null">sceneid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orgid != null">#{orgid},</if>
+            <if test="scenescrid != null">#{scenescrid},</if>
+            <if test="speaktype != null">#{speaktype},</if>
+            <if test="speakbody != null">#{speakbody},</if>
+            <if test="voicetype != null">#{voicetype},</if>
+            <if test="speakfilepath != null">#{speakfilepath},</if>
+            <if test="manufactor != null">#{manufactor},</if>
+            <if test="soundtype != null">#{soundtype},</if>
+            <if test="speechnum != null">#{speechnum},</if>
+            <if test="pitch != null">#{pitch},</if>
+            <if test="volume != null">#{volume},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+            <if test="speakvariable != null">#{speakvariable},</if>
+            <if test="sceneid != null">#{sceneid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrSceneScriptmodel" parameterType="IvrSceneScriptmodel">
+        update ivr_scene_scriptmodel
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="scenescrid != null">scenescrid = #{scenescrid},</if>
+            <if test="speaktype != null">speaktype = #{speaktype},</if>
+            <if test="speakbody != null">speakbody = #{speakbody},</if>
+            <if test="voicetype != null">voicetype = #{voicetype},</if>
+            <if test="speakfilepath != null">speakfilepath = #{speakfilepath},</if>
+            <if test="manufactor != null">manufactor = #{manufactor},</if>
+            <if test="soundtype != null">soundtype = #{soundtype},</if>
+            <if test="speechnum != null">speechnum = #{speechnum},</if>
+            <if test="pitch != null">pitch = #{pitch},</if>
+            <if test="volume != null">volume = #{volume},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+            <if test="speakvariable != null">speakvariable = #{speakvariable},</if>
+            <if test="sceneid != null">sceneid = #{sceneid},</if>
+        </trim>
+        where scenemodid = #{scenemodid}
+    </update>
+
+    <delete id="deleteIvrSceneScriptmodelByScenemodid" parameterType="Long">
+        delete from ivr_scene_scriptmodel where scenemodid = #{scenemodid}
+    </delete>
+
+    <delete id="deleteIvrSceneScriptmodelByScenemodids" parameterType="String">
+        delete from ivr_scene_scriptmodel where scenemodid in 
+        <foreach item="scenemodid" collection="array" open="(" separator="," close=")">
+            #{scenemodid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/IvrScenecategoryMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrScenecategoryMapper.xml
new file mode 100644
index 0000000..50d0717
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/IvrScenecategoryMapper.xml
@@ -0,0 +1,91 @@
+<?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.IvrScenecategoryMapper">
+    
+    <resultMap type="IvrScenecategory" id="IvrScenecategoryResult">
+        <result property="scenecatid"    column="scenecatid"    />
+        <result property="categoryname"    column="categoryname"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectIvrScenecategoryVo">
+        select scenecatid, categoryname, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from ivr_scenecategory
+    </sql>
+
+    <select id="selectIvrScenecategoryList" parameterType="IvrScenecategory" resultMap="IvrScenecategoryResult">
+        <include refid="selectIvrScenecategoryVo"/>
+        <where>  
+            <if test="categoryname != null  and categoryname != ''"> and categoryname like concat('%', #{categoryname}, '%')</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectIvrScenecategoryByScenecatid" parameterType="Long" resultMap="IvrScenecategoryResult">
+        <include refid="selectIvrScenecategoryVo"/>
+        where scenecatid = #{scenecatid}
+    </select>
+        
+    <insert id="insertIvrScenecategory" parameterType="IvrScenecategory" useGeneratedKeys="true" keyProperty="scenecatid">
+        insert into ivr_scenecategory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">categoryname,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null and delFlag != ''">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="categoryname != null">#{categoryname},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIvrScenecategory" parameterType="IvrScenecategory">
+        update ivr_scenecategory
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="categoryname != null">categoryname = #{categoryname},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where scenecatid = #{scenecatid}
+    </update>
+
+    <delete id="deleteIvrScenecategoryByScenecatid" parameterType="Long">
+        delete from ivr_scenecategory where scenecatid = #{scenecatid}
+    </delete>
+
+    <delete id="deleteIvrScenecategoryByScenecatids" parameterType="String">
+        delete from ivr_scenecategory where scenecatid in 
+        <foreach item="scenecatid" collection="array" open="(" separator="," close=")">
+            #{scenecatid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/SmsParamMapper.xml b/smartor/src/main/resources/mapper/smartor/SmsParamMapper.xml
new file mode 100644
index 0000000..bc8b056
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SmsParamMapper.xml
@@ -0,0 +1,103 @@
+<?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.SmsParamMapper">
+    
+    <resultMap type="SmsParam" id="SmsParamResult">
+        <result property="paramid"    column="paramid"    />
+        <result property="paramname"    column="paramname"    />
+        <result property="paramval"    column="paramval"    />
+        <result property="descirbe"    column="descirbe"    />
+        <result property="usestatus"    column="usestatus"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectSmsParamVo">
+        select paramid, paramname, paramval, descirbe, usestatus, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from sms_param
+    </sql>
+
+    <select id="selectSmsParamList" parameterType="SmsParam" resultMap="SmsParamResult">
+        <include refid="selectSmsParamVo"/>
+        <where>  
+            <if test="paramname != null  and paramname != ''"> and paramname like concat('%', #{paramname}, '%')</if>
+            <if test="paramval != null  and paramval != ''"> and paramval = #{paramval}</if>
+            <if test="descirbe != null  and descirbe != ''"> and descirbe = #{descirbe}</if>
+            <if test="usestatus != null "> and usestatus = #{usestatus}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectSmsParamByParamid" parameterType="Long" resultMap="SmsParamResult">
+        <include refid="selectSmsParamVo"/>
+        where paramid = #{paramid}
+    </select>
+        
+    <insert id="insertSmsParam" parameterType="SmsParam">
+        insert into sms_param
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="paramid != null">paramid,</if>
+            <if test="paramname != null">paramname,</if>
+            <if test="paramval != null">paramval,</if>
+            <if test="descirbe != null">descirbe,</if>
+            <if test="usestatus != null">usestatus,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="paramid != null">#{paramid},</if>
+            <if test="paramname != null">#{paramname},</if>
+            <if test="paramval != null">#{paramval},</if>
+            <if test="descirbe != null">#{descirbe},</if>
+            <if test="usestatus != null">#{usestatus},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSmsParam" parameterType="SmsParam">
+        update sms_param
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="paramname != null">paramname = #{paramname},</if>
+            <if test="paramval != null">paramval = #{paramval},</if>
+            <if test="descirbe != null">descirbe = #{descirbe},</if>
+            <if test="usestatus != null">usestatus = #{usestatus},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where paramid = #{paramid}
+    </update>
+
+    <delete id="deleteSmsParamByParamid" parameterType="Long">
+        delete from sms_param where paramid = #{paramid}
+    </delete>
+
+    <delete id="deleteSmsParamByParamids" parameterType="String">
+        delete from sms_param where paramid in 
+        <foreach item="paramid" collection="array" open="(" separator="," close=")">
+            #{paramid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/SmsRecordsMapper.xml b/smartor/src/main/resources/mapper/smartor/SmsRecordsMapper.xml
new file mode 100644
index 0000000..3e9cc65
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SmsRecordsMapper.xml
@@ -0,0 +1,173 @@
+<?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.SmsRecordsMapper">
+    
+    <resultMap type="SmsRecords" id="SmsRecordsResult">
+        <result property="recordid"    column="recordid"    />
+        <result property="userid"    column="userid"    />
+        <result property="username"    column="username"    />
+        <result property="phone"    column="phone"    />
+        <result property="msgno"    column="msgno"    />
+        <result property="msg"    column="msg"    />
+        <result property="inserttime"    column="inserttime"    />
+        <result property="sendtime"    column="sendtime"    />
+        <result property="sendfailedcount"    column="sendfailedcount"    />
+        <result property="resulttime"    column="resulttime"    />
+        <result property="resultmsg"    column="resultmsg"    />
+        <result property="sendstate"    column="sendstate"    />
+        <result property="inserttype"    column="inserttype"    />
+        <result property="insertsystem"    column="insertsystem"    />
+        <result property="insertmodule"    column="insertmodule"    />
+        <result property="moduleid"    column="moduleid"    />
+        <result property="msgidentify"    column="msgidentify"    />
+        <result property="accountid"    column="accountid"    />
+        <result property="orgid"    column="orgid"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectSmsRecordsVo">
+        select recordid, userid, username, phone, msgno, msg, inserttime, sendtime, sendfailedcount, resulttime, resultmsg, sendstate, inserttype, insertsystem, insertmodule, moduleid, msgidentify, accountid, orgid, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from sms_records
+    </sql>
+
+    <select id="selectSmsRecordsList" parameterType="SmsRecords" resultMap="SmsRecordsResult">
+        <include refid="selectSmsRecordsVo"/>
+        <where>  
+            <if test="userid != null  and userid != ''"> and userid = #{userid}</if>
+            <if test="username != null  and username != ''"> and username like concat('%', #{username}, '%')</if>
+            <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
+            <if test="msgno != null  and msgno != ''"> and msgno = #{msgno}</if>
+            <if test="msg != null  and msg != ''"> and msg = #{msg}</if>
+            <if test="inserttime != null "> and inserttime = #{inserttime}</if>
+            <if test="sendtime != null "> and sendtime = #{sendtime}</if>
+            <if test="sendfailedcount != null "> and sendfailedcount = #{sendfailedcount}</if>
+            <if test="resulttime != null "> and resulttime = #{resulttime}</if>
+            <if test="resultmsg != null  and resultmsg != ''"> and resultmsg = #{resultmsg}</if>
+            <if test="sendstate != null "> and sendstate = #{sendstate}</if>
+            <if test="inserttype != null "> and inserttype = #{inserttype}</if>
+            <if test="insertsystem != null "> and insertsystem = #{insertsystem}</if>
+            <if test="insertmodule != null  and insertmodule != ''"> and insertmodule = #{insertmodule}</if>
+            <if test="moduleid != null  and moduleid != ''"> and moduleid = #{moduleid}</if>
+            <if test="msgidentify != null  and msgidentify != ''"> and msgidentify = #{msgidentify}</if>
+            <if test="accountid != null "> and accountid = #{accountid}</if>
+            <if test="orgid != null  and orgid != ''"> and orgid = #{orgid}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectSmsRecordsByRecordid" parameterType="Long" resultMap="SmsRecordsResult">
+        <include refid="selectSmsRecordsVo"/>
+        where recordid = #{recordid}
+    </select>
+        
+    <insert id="insertSmsRecords" parameterType="SmsRecords">
+        insert into sms_records
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="recordid != null">recordid,</if>
+            <if test="userid != null">userid,</if>
+            <if test="username != null">username,</if>
+            <if test="phone != null">phone,</if>
+            <if test="msgno != null">msgno,</if>
+            <if test="msg != null">msg,</if>
+            <if test="inserttime != null">inserttime,</if>
+            <if test="sendtime != null">sendtime,</if>
+            <if test="sendfailedcount != null">sendfailedcount,</if>
+            <if test="resulttime != null">resulttime,</if>
+            <if test="resultmsg != null">resultmsg,</if>
+            <if test="sendstate != null">sendstate,</if>
+            <if test="inserttype != null">inserttype,</if>
+            <if test="insertsystem != null">insertsystem,</if>
+            <if test="insertmodule != null">insertmodule,</if>
+            <if test="moduleid != null">moduleid,</if>
+            <if test="msgidentify != null">msgidentify,</if>
+            <if test="accountid != null">accountid,</if>
+            <if test="orgid != null">orgid,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="recordid != null">#{recordid},</if>
+            <if test="userid != null">#{userid},</if>
+            <if test="username != null">#{username},</if>
+            <if test="phone != null">#{phone},</if>
+            <if test="msgno != null">#{msgno},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="inserttime != null">#{inserttime},</if>
+            <if test="sendtime != null">#{sendtime},</if>
+            <if test="sendfailedcount != null">#{sendfailedcount},</if>
+            <if test="resulttime != null">#{resulttime},</if>
+            <if test="resultmsg != null">#{resultmsg},</if>
+            <if test="sendstate != null">#{sendstate},</if>
+            <if test="inserttype != null">#{inserttype},</if>
+            <if test="insertsystem != null">#{insertsystem},</if>
+            <if test="insertmodule != null">#{insertmodule},</if>
+            <if test="moduleid != null">#{moduleid},</if>
+            <if test="msgidentify != null">#{msgidentify},</if>
+            <if test="accountid != null">#{accountid},</if>
+            <if test="orgid != null">#{orgid},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSmsRecords" parameterType="SmsRecords">
+        update sms_records
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="username != null">username = #{username},</if>
+            <if test="phone != null">phone = #{phone},</if>
+            <if test="msgno != null">msgno = #{msgno},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="inserttime != null">inserttime = #{inserttime},</if>
+            <if test="sendtime != null">sendtime = #{sendtime},</if>
+            <if test="sendfailedcount != null">sendfailedcount = #{sendfailedcount},</if>
+            <if test="resulttime != null">resulttime = #{resulttime},</if>
+            <if test="resultmsg != null">resultmsg = #{resultmsg},</if>
+            <if test="sendstate != null">sendstate = #{sendstate},</if>
+            <if test="inserttype != null">inserttype = #{inserttype},</if>
+            <if test="insertsystem != null">insertsystem = #{insertsystem},</if>
+            <if test="insertmodule != null">insertmodule = #{insertmodule},</if>
+            <if test="moduleid != null">moduleid = #{moduleid},</if>
+            <if test="msgidentify != null">msgidentify = #{msgidentify},</if>
+            <if test="accountid != null">accountid = #{accountid},</if>
+            <if test="orgid != null">orgid = #{orgid},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where recordid = #{recordid}
+    </update>
+
+    <delete id="deleteSmsRecordsByRecordid" parameterType="Long">
+        delete from sms_records where recordid = #{recordid}
+    </delete>
+
+    <delete id="deleteSmsRecordsByRecordids" parameterType="String">
+        delete from sms_records where recordid in 
+        <foreach item="recordid" collection="array" open="(" separator="," close=")">
+            #{recordid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/smartor/src/main/resources/mapper/smartor/SmsTempletMapper.xml b/smartor/src/main/resources/mapper/smartor/SmsTempletMapper.xml
new file mode 100644
index 0000000..d1844d0
--- /dev/null
+++ b/smartor/src/main/resources/mapper/smartor/SmsTempletMapper.xml
@@ -0,0 +1,98 @@
+<?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.SmsTempletMapper">
+    
+    <resultMap type="SmsTemplet" id="SmsTempletResult">
+        <result property="templetid"    column="templetid"    />
+        <result property="templetno"    column="templetno"    />
+        <result property="templetname"    column="templetname"    />
+        <result property="templetcontent"    column="templetcontent"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="isupload"    column="isupload"    />
+        <result property="uploadTime"    column="upload_time"    />
+    </resultMap>
+
+    <sql id="selectSmsTempletVo">
+        select templetid, templetno, templetname, templetcontent, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time from sms_templet
+    </sql>
+
+    <select id="selectSmsTempletList" parameterType="SmsTemplet" resultMap="SmsTempletResult">
+        <include refid="selectSmsTempletVo"/>
+        <where>  
+            <if test="templetno != null  and templetno != ''"> and templetno = #{templetno}</if>
+            <if test="templetname != null  and templetname != ''"> and templetname like concat('%', #{templetname}, '%')</if>
+            <if test="templetcontent != null  and templetcontent != ''"> and templetcontent = #{templetcontent}</if>
+            <if test="isupload != null "> and isupload = #{isupload}</if>
+            <if test="uploadTime != null "> and upload_time = #{uploadTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectSmsTempletByTempletid" parameterType="Long" resultMap="SmsTempletResult">
+        <include refid="selectSmsTempletVo"/>
+        where templetid = #{templetid}
+    </select>
+        
+    <insert id="insertSmsTemplet" parameterType="SmsTemplet">
+        insert into sms_templet
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="templetid != null">templetid,</if>
+            <if test="templetno != null">templetno,</if>
+            <if test="templetname != null">templetname,</if>
+            <if test="templetcontent != null">templetcontent,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="isupload != null">isupload,</if>
+            <if test="uploadTime != null">upload_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="templetid != null">#{templetid},</if>
+            <if test="templetno != null">#{templetno},</if>
+            <if test="templetname != null">#{templetname},</if>
+            <if test="templetcontent != null">#{templetcontent},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="isupload != null">#{isupload},</if>
+            <if test="uploadTime != null">#{uploadTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateSmsTemplet" parameterType="SmsTemplet">
+        update sms_templet
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="templetno != null">templetno = #{templetno},</if>
+            <if test="templetname != null">templetname = #{templetname},</if>
+            <if test="templetcontent != null">templetcontent = #{templetcontent},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="isupload != null">isupload = #{isupload},</if>
+            <if test="uploadTime != null">upload_time = #{uploadTime},</if>
+        </trim>
+        where templetid = #{templetid}
+    </update>
+
+    <delete id="deleteSmsTempletByTempletid" parameterType="Long">
+        delete from sms_templet where templetid = #{templetid}
+    </delete>
+
+    <delete id="deleteSmsTempletByTempletids" parameterType="String">
+        delete from sms_templet where templetid in 
+        <foreach item="templetid" collection="array" open="(" separator="," close=")">
+            #{templetid}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3