From be4f9dc87f5b839895e3c5c0e323d680a33e4820 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 14 九月 2026 11:09:59 +0800
Subject: [PATCH] 1.省立同德新增满意度接口(未开发完) 2.字段修改将isMust修改成ismandatory (是否必填  1必填   2不必填(默认))

---
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java                          |    2 
 smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml                      |   12 
 smartor/src/main/java/com/smartor/domain/SvyTopic.java                                         |    4 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java                  |   91 ++++--
 smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml                      |   12 
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java                             |    9 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java                            |    6 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java                          |   14 
 smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java                            |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java |   10 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java                    |    1 
 smartor/src/main/java/com/smartor/domain/VO/QuestionResultVO.java                              |    8 
 smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java                            |    2 
 smartor/src/main/java/com/smartor/domain/SvyTaskScript.java                                    |    4 
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java                             |    4 
 smartor/src/main/java/com/smartor/domain/VO/QuestionCountKsOrBqVO.java                         |   73 +++++
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java                          |    8 
 smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java                          |    2 
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                             |  347 +++++++++++++++-----------
 smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java                           |    4 
 smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java                          |    6 
 smartor/src/main/java/com/smartor/domain/DTO/QuestionCountKsOrBqDTO.java                       |   77 +++++
 smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml                      |   12 
 smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java                              |    4 
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java                  |   26 ++
 25 files changed, 507 insertions(+), 233 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
index 1141e12..6204bdb 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -12,6 +12,7 @@
 import com.smartor.domain.*;
 import com.smartor.domain.DTO.QuestionResultDTO;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
+import com.smartor.domain.VO.QuestionCountKsOrBqVO;
 import com.smartor.domain.VO.QuestionResultVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.service.IServiceSubtaskDetailService;
@@ -221,8 +222,7 @@
         // 鎸� questiontext 鍒嗙粍鍚庤浆鎹负 QuestionResultVO
         List<QuestionResultDTO> result = new ArrayList<>();
         if (!detailList.isEmpty()) {
-            Map<String, List<ServiceSubtaskDetailRatioExport>> groupedMap = detailList.stream()
-                    .collect(Collectors.groupingBy(ServiceSubtaskDetailRatioExport::getQuestiontext));
+            Map<String, List<ServiceSubtaskDetailRatioExport>> groupedMap = detailList.stream().collect(Collectors.groupingBy(ServiceSubtaskDetailRatioExport::getQuestiontext));
 
             groupedMap.forEach((questionText, exportList) -> {
                 QuestionResultDTO questionResultDTO = new QuestionResultDTO();
@@ -234,4 +234,10 @@
 
         return success(result);
     }
+
+    @ApiOperation("鐪佺珛鍚屽痉婊℃剰搴︽暟鎹粺璁¢�氳繃绉戝鎴栫梾鍖�")
+    @PostMapping("/statQuestionOptionByKsOrBq")
+    public Map<String, Object> statQuestionOptionByKsOrBq(@RequestBody QuestionCountKsOrBqVO questionResultVO) {
+        return success(serviceSubtaskService.statQuestionOptionByKsOrBq(questionResultVO));
+    }
 }
diff --git a/smartor/src/main/java/com/smartor/domain/DTO/QuestionCountKsOrBqDTO.java b/smartor/src/main/java/com/smartor/domain/DTO/QuestionCountKsOrBqDTO.java
new file mode 100644
index 0000000..cb497aa
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/DTO/QuestionCountKsOrBqDTO.java
@@ -0,0 +1,77 @@
+package com.smartor.domain.DTO;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.smartor.domain.ServiceSubtaskDetailRatioExport;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 闂嵎缁撴灉
+ *
+ * @author ruoyi
+ * @date 2024-02-02
+ */
+
+@ApiModel(value = "QuestionResultDTO", description = "闂嵎缁撴灉")
+@Data
+public class QuestionCountKsOrBqDTO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 闂嵎棰樼洰
+     */
+    @ApiModelProperty(value = "闂嵎棰樼洰")
+    private String qeustionText;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "浠诲姟id")
+    private Long taskid;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
+    private String deptname;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "鐥呭尯鍚嶇О")
+    private String leavehospitaldistrictname;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "閫夐」")
+    private String targetvalue;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "閫夐」缁撴灉")
+    private String asrtext;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "鍥炵瓟鏁伴噺")
+    private String answerCount;
+
+    /**
+     * 闂嵎缁撴灉闆嗗悎
+     */
+    @ApiModelProperty(value = "鍗曢寰楀垎")
+    private String singleScore;
+
+    /**
+     * 骞冲潎寰楀垎
+     */
+    @ApiModelProperty(value = "骞冲潎寰楀垎")
+    private String avgScore;
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
index 47e2ca5..31f78a4 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
@@ -329,9 +329,9 @@
     /**
      * 鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�
      */
-    @Excel(name = "鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    @ApiModelProperty(value = "鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    private String isMust;
+    @Excel(name = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
+    @ApiModelProperty(value = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
+    private String ismandatory;
 
     /**
      * 缁勫埆
diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
index 789d515..59b4950 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
@@ -357,9 +357,9 @@
     /**
      * 鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�
      */
-    @Excel(name = "鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    @ApiModelProperty(value = "鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    private String isMust;
+    @Excel(name = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)鏄惁蹇呭~锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
+    @ApiModelProperty(value = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)  缁欎汉宸ョ敤鐨勶紝AI涓嶇敤閬靛畧锛�")
+    private String ismandatory;
 
     /**
      * 闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級
diff --git a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java
index 1f699af..dcd0eae 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java
@@ -276,7 +276,7 @@
      */
     @Excel(name = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    ", readConverterExp = "缁�=浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧")
     @ApiModelProperty(value = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    private String isMust;
+    private String ismandatory;
 
     /**
      * 闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級
diff --git a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
index cc39114..b8d2389 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
@@ -320,7 +320,7 @@
      */
     @Excel(name = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    ", readConverterExp = "缁�=浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧")
     @ApiModelProperty(value = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�")
-    private String isMust;
+    private String ismandatory;
 
     /**
      * 闂缁撴灉锛堢粰鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨勶級
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java
index aaaf228..87845e4 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java
@@ -50,4 +50,30 @@
     @Excel(name = "浠诲姟缂栧彿")
     private String taskid;
 
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code")
+    private String deptcode;
+
+    /**
+     * 绉戝鍚嶇О
+     */
+    @Excel(name = "绉戝鍚嶇О")
+    @ApiModelProperty(value = "绉戝鍚嶇О")
+    private String deptname;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿")
+    private String leavehospitaldistrictcode;
+
+    /**
+     * 鍑洪櫌鐥呭尯鍚嶇О
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯鍚嶇О")
+    @Excel(name = " 鍑洪櫌鐥呭尯鍚嶇О ")
+    private String leavehospitaldistrictname;
 }
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java
index ed891b3..af2f444 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java
@@ -96,8 +96,8 @@
     /**
      * 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�
      */
-    @Excel(name = " 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
-    @ApiModelProperty("鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
+    @Excel(name = " 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
+    @ApiModelProperty("鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
     private String ismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
index 2bdbe3b..175c700 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
@@ -132,8 +132,8 @@
     /**
      * 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�
      */
-    @Excel(name = " 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
-    @ApiModelProperty("鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
+    @Excel(name = " 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
+    @ApiModelProperty("鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
     private String ismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java
index 4f69ffb..b76e6f3 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java
@@ -89,7 +89,7 @@
     /**
      * 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�
      */
-    @ApiModelProperty(value = "鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
+    @ApiModelProperty(value = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
     private String ismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java b/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
index f817668..dcdf6ef 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
@@ -64,8 +64,8 @@
     /**
      * 鏄惁蹇呭~
      */
-    @Excel(name = " 鏄惁蹇呭~ ")
-    @ApiModelProperty(value = "鏄惁蹇呭~")
+    @Excel(name = " 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿) ")
+    @ApiModelProperty(value = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
     private Long ismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java b/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
index 9b6fa47..5fe978c 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
@@ -78,8 +78,8 @@
     /**
      * 鏄庣粏鏄惁蹇呭~
      */
-    @Excel(name = " 鏄庣粏鏄惁蹇呭~ ")
-    @ApiModelProperty(value = "鏄庣粏鏄惁蹇呭~")
+    @Excel(name = " 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿) ")
+    @ApiModelProperty(value = "鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)")
     private Long detailismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java
index 076d5bf..1b2b967 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java
@@ -104,7 +104,7 @@
      * 鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�
      */
     @ApiModelProperty(value = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�  ")
-    private String isMust;
+    private String ismandatory;
 
     /**
      * 鏄惁瀛樺湪鎿嶄綔锛�1 鏂板 2淇敼 3鍒犻櫎
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
index 774b826..061e2e0 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
@@ -95,14 +95,6 @@
     @ApiModelProperty(value = "璇濇湳鍐呭")
     private String scriptContent;
 
-
-    /**
-     * 鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉�    锛堢粰浜哄伐鐢ㄧ殑锛孉I涓嶇敤閬靛畧锛�
-     */
-    @ApiModelProperty(value = "鏄惁蹇呭~,1:蹇呭~    2锛氬彲浠ヤ笉濉� ")
-    private String isMust;
-
-
     /**
      * 鍒犻櫎鏍囪
      */
@@ -311,10 +303,10 @@
     private Long categoryid;
 
     /**
-     * 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�
+     * 鏄惁蹇呭~  1蹇呭~   2涓嶅繀濉�
      */
-    @Excel(name = " 鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
-    @ApiModelProperty("鏄惁蹇呭~   0蹇呭~   1涓嶅繀濉�")
+    @Excel(name = " 鏄惁蹇呭~  1蹇呭~   2涓嶅繀濉�")
+    @ApiModelProperty("鏄惁蹇呭~  1蹇呭~   2涓嶅繀濉�")
     private String ismandatory;
 
 
diff --git a/smartor/src/main/java/com/smartor/domain/SvyTopic.java b/smartor/src/main/java/com/smartor/domain/SvyTopic.java
index f8773d1..3630d8a 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyTopic.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyTopic.java
@@ -55,9 +55,9 @@
     private Long sort;
 
     /**
-     * 鏄惁蹇呭~
+     * 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿)
      */
-    @Excel(name = " 鏄惁蹇呭~ ")
+    @Excel(name = " 鏄惁蹇呭~   1蹇呭~   2涓嶅繀濉�(榛樿) ")
     private Long ismandatory;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/VO/QuestionCountKsOrBqVO.java b/smartor/src/main/java/com/smartor/domain/VO/QuestionCountKsOrBqVO.java
new file mode 100644
index 0000000..c59a800
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/VO/QuestionCountKsOrBqVO.java
@@ -0,0 +1,73 @@
+package com.smartor.domain.VO;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.smartor.domain.ServiceSubtaskDetailRatioExport;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 闂缁熻鏍规嵁绉戝鎴栫梾鍖烘煡璇�
+ *
+ * @author ls
+ * @date 2026-09-11
+ */
+
+@ApiModel(value = "QuestionCountKsOrBqVO", description = "闂缁熻鏍规嵁绉戝鎴栫梾鍖烘煡璇�")
+@Data
+public class QuestionCountKsOrBqVO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 绉戝涓庣梾鍖虹殑鏌ヨ鏄痮r杩樻槸and:   1:and(榛樿)(绂婚櫌鐥呭尯涓庣闄㈢瀹ょ粍鍚�)     2:or(绂婚櫌鐥呭尯涓庣闄㈢瀹ょ粍鍚�)    3:and(绂婚櫌鐥呭尯涓庨殢璁跨瀹ょ粍鍚�)   4:or(绂婚櫌鐥呭尯涓庨殢璁跨瀹ょ粍鍚�)
+     */
+    @ApiModelProperty(value = "绉戝涓庣梾鍖虹殑鏌ヨ鏄痮r杩樻槸and:   1:and(榛樿)(绂婚櫌鐥呭尯涓庣闄㈢瀹ょ粍鍚�)     2:or(绂婚櫌鐥呭尯涓庣闄㈢瀹ょ粍鍚�)    3:and(绂婚櫌鐥呭尯涓庨殢璁跨瀹ょ粍鍚�)   4:or(绂婚櫌鐥呭尯涓庨殢璁跨瀹ょ粍鍚�)")
+    private String deptOrDistrict = "1";
+
+    /**
+     *
+     */
+    @ApiModelProperty(value = "涓婚敭id")
+    private Long subId;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯闆嗗悎(蹇呭~)")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code闆嗗悎")
+    private List<String> leaveldeptcodes;
+
+
+    /**
+     * 寮�濮嬪嚭闄㈡棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "寮�濮嬪畬鎴愭棩鏈�")
+    private Date startFinisTime;
+
+    /**
+     * 缁撴潫鍑洪櫌鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "缁撴潫瀹屾垚鏃ユ湡")
+    private Date endFinishTime;
+
+
+    @ApiModelProperty(value = "闂绫诲瀷锛�1.鍗曢�� 2澶氶�� 3闂瓟 4濉┖  5鍏跺畠锛�")
+    private String valueType;
+}
diff --git a/smartor/src/main/java/com/smartor/domain/VO/QuestionResultVO.java b/smartor/src/main/java/com/smartor/domain/VO/QuestionResultVO.java
index bd82a67..fb22abe 100644
--- a/smartor/src/main/java/com/smartor/domain/VO/QuestionResultVO.java
+++ b/smartor/src/main/java/com/smartor/domain/VO/QuestionResultVO.java
@@ -41,6 +41,13 @@
     @ApiModelProperty(value = "鍑洪櫌鐥呭尯闆嗗悎(蹇呭~)")
     private List<String> leavehospitaldistrictcodes;
 
+    /**
+     * 閮ㄩ棬code
+     */
+    @Excel(name = "  閮ㄩ棬code")
+    @ApiModelProperty(value = "閮ㄩ棬code闆嗗悎")
+    private List<String> leaveldeptcodes;
+
 
     /**
      * 涓婚敭id闆嗗悎
@@ -64,7 +71,6 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "缁撴潫鍑洪櫌鏃ユ湡")
     private Date endOutHospTime;
-
 
     /**
      * 闂鍐呭
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 3ea8b6c..7c54fe0 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -1,8 +1,10 @@
 package com.smartor.mapper;
 
 import com.smartor.domain.*;
+import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
 import com.smartor.domain.VO.PatSatisfactionReqVO;
 import com.smartor.domain.VO.HeLibraryCountVO;
+import com.smartor.domain.VO.QuestionCountKsOrBqVO;
 import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity;
@@ -274,4 +276,11 @@
      */
     List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(@Param("subtaskIds") List<Long> subtaskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime, @Param("scoreStart") Double scoreStart, @Param("scoreEnd") Double scoreEnd, @Param("questiontext") String questiontext, @Param("valueType") String valueType);
 
+    /**
+     * 鏍规嵁绉戝銆佺梾鍖恒�侀鐩被鍨嬬粺璁$殑绉戝銆佺梾鍖鸿瘎鍒�
+     * @param questionCountKsOrBqVO
+     * @return
+     */
+    List<QuestionCountKsOrBqDTO> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO);
+
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
index 0323b0d..c917f84 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
@@ -31,6 +31,7 @@
     public Map<String, Object> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail);
 
     public List<Map<String, Object>> getServiceSubtaskDetails(ServiceSubtaskDetailVO serviceSubtaskDetailVo);
+
     /**
      * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
      *
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index d1d22e1..61ebaaf 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -2,12 +2,10 @@
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.smartor.domain.*;
+import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
 import com.smartor.domain.DTO.QuestionResultDTO;
 import com.smartor.domain.ServiceSubtask;
-import com.smartor.domain.VO.HeLibraryCountVO;
-import com.smartor.domain.VO.QuestionResultVO;
-import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
-import com.smartor.domain.VO.TransferDeptVO;
+import com.smartor.domain.VO.*;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -236,6 +234,8 @@
      */
     public List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(List<Long> subtaskIds, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType);
 
+    public List<QuestionCountKsOrBqDTO> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO);
+
     public String scanGenerateSubtask(ServiceTask serviceTaskVo);
 
     public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index ad85650..fb0add6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -22,13 +22,11 @@
 import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.common.ScheduleSubtaskBuilder;
 import com.smartor.config.PhoneUtils;
+import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
 import com.smartor.domain.DTO.QuestionResultDTO;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
 import com.smartor.domain.*;
-import com.smartor.domain.VO.HeLibraryCountVO;
-import com.smartor.domain.VO.QuestionResultVO;
-import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
-import com.smartor.domain.VO.TransferDeptVO;
+import com.smartor.domain.VO.*;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.*;
@@ -672,10 +670,8 @@
             //濡傛灉涓嶅瓨鍦紝鍒欐柊澧�
             ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
             if (ObjectUtils.isNotEmpty(serviceTask)) {
-                serviceSubtask.setDeptcode(serviceTask.getDeptcode());
                 serviceSubtask.setTaskDesc(serviceTask.getTaskDesc());
                 serviceSubtask.setTaskName(serviceTask.getTaskName());
-                serviceSubtask.setDeptname(serviceTask.getDeptname());
                 serviceSubtask.setTemplatename(serviceTask.getTemplatename());
             }
 
@@ -2923,12 +2919,10 @@
                 collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrcode()).orElse("Unknown")));
                 break;
             case "management_doctor_code":
-                rawData = rawData.stream()
-                        .peek(item -> {
-                            item.setDrname(item.getManagementDoctor());
-                            item.setDrcode(item.getManagementDoctorCode());
-                        })
-                        .collect(Collectors.toList());
+                rawData = rawData.stream().peek(item -> {
+                    item.setDrname(item.getManagementDoctor());
+                    item.setDrcode(item.getManagementDoctorCode());
+                }).collect(Collectors.toList());
                 collect = rawData.stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getManagementDoctorCode()).orElse("Unknown")));
                 break;
             case "deptcode":
@@ -5012,7 +5006,7 @@
     }
 
     @Override
-    public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd,String valueType) {
+    public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType) {
         //鍏堟竻鐞嗕竴涓嬮噸澶嶆暟鎹�
         List<Long> repeatIds = serviceSubtaskDetailMapper.selectRepeatDetailIds();
         if (!CollectionUtils.isEmpty(repeatIds)) {
@@ -5028,14 +5022,10 @@
                 // 濡傛灉鏈夊鏉$洰鏍囧�硷紝鎷嗗垎鎴愬琛�
                 for (String value : values) {
                     //鍏堝幓 result 涓煡涓�涓嬶紝鏈夋病鏈夎繖涓� questiontext 鍜屽搴旂殑 targetvalue
-                    ServiceSubtaskDetailRatioExport existingExport = result.stream()
-                            .filter(e -> e.getQuestiontext().equals(export.getQuestiontext())
-                                    && value.trim().equals(e.getTargetvalue()))
-                            .findFirst()
-                            .orElse(null);
+                    ServiceSubtaskDetailRatioExport existingExport = result.stream().filter(e -> e.getQuestiontext().equals(export.getQuestiontext()) && value.trim().equals(e.getTargetvalue())).findFirst().orElse(null);
                     if (existingExport != null && existingExport.getRatio().equals("0") && existingExport.getCount().equals("0")) {
                         //濡傛灉瀛樺湪锛屽垯灏� result 閲岀殑杩欎釜闂鎵�瀵瑰簲鐨� Targetvalue=value 杩欐潯鏁版嵁鏇存柊鎴愬綋鍓嶈繖鏉℃暟鎹�
-                        if(value.equals(export.getOptionresult())) {
+                        if (value.equals(export.getOptionresult())) {
                             existingExport.setRatio(export.getRatio());
                             existingExport.setScore(export.getScore());
                             existingExport.setCount(export.getCount());
@@ -5063,15 +5053,62 @@
         return result;
     }
 
+    /*
+     * 鏍规嵁绉戝鎴栫梾鍖虹粺璁¢棶鍗烽�夐」(绉戝銆侀鐩煡璇㈢殑绉戝璇勫垎琛�)
+     */
     @Override
-    public List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(List<Long> subtaskIds, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd,String valueType) {
+    public List<QuestionCountKsOrBqDTO> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO) {
+        List<QuestionCountKsOrBqDTO> questionCountKsOrBqDTOS = serviceSubtaskMapper.statQuestionOptionByKsOrBq(questionCountKsOrBqVO);
+
+        // 澶勭悊 targetvalue锛氭寜 & 鍒嗗壊鎴愬鏉¤褰�
+        List<QuestionCountKsOrBqDTO> result = new ArrayList<>();
+        for (QuestionCountKsOrBqDTO questionCountKsOrBqDTO : questionCountKsOrBqDTOS) {
+            if (StringUtils.isNotEmpty(questionCountKsOrBqDTO.getTargetvalue()) && questionCountKsOrBqDTO.getTargetvalue().contains("&")) {
+                String[] values = questionCountKsOrBqDTO.getTargetvalue().split("&");
+                // 濡傛灉鏈夊鏉$洰鏍囧�硷紝鎷嗗垎鎴愬琛�
+                for (String value : values) {
+                    //鍏堝幓 result 涓煡涓�涓嬶紝鏈夋病鏈夎繖涓� questiontext 鍜屽搴旂殑 targetvalue
+                    QuestionCountKsOrBqDTO existingExport = result.stream().filter(e -> e.getQeustionText().equals(questionCountKsOrBqDTO.getQeustionText()) && value.trim().equals(e.getTargetvalue())).findFirst().orElse(null);
+                    if (existingExport != null && existingExport.getAnswerCount().equals("0") && existingExport.getSingleScore().equals("0")) {
+                        //濡傛灉瀛樺湪锛屽垯灏� result 閲岀殑杩欎釜闂鎵�瀵瑰簲鐨� Targetvalue=value 杩欐潯鏁版嵁鏇存柊鎴愬綋鍓嶈繖鏉℃暟鎹�
+                        if (value.equals(questionCountKsOrBqDTO.getAsrtext())) {
+                            existingExport.setAsrtext(questionCountKsOrBqDTO.getAsrtext());
+                            existingExport.setAnswerCount(questionCountKsOrBqDTO.getAnswerCount());
+                            existingExport.setSingleScore(questionCountKsOrBqDTO.getSingleScore());
+                            existingExport.setAvgScore(questionCountKsOrBqDTO.getAvgScore());
+                        }
+                    } else if (existingExport != null && !existingExport.getAnswerCount().equals("0")) {
+                        continue;
+                    } else {
+                        QuestionCountKsOrBqDTO qcDto = DtoConversionUtils.sourceToTarget(questionCountKsOrBqDTO, QuestionCountKsOrBqDTO.class);
+                        qcDto.setTargetvalue(value.trim()); // targetvalue 鏄剧ず鍗曚釜閫夐」
+                        if (!value.equals(qcDto.getAsrtext())) {
+                            existingExport.setAsrtext(null);
+                            existingExport.setAnswerCount("0");
+                            existingExport.setSingleScore("0");
+                            existingExport.setAvgScore("0");
+                        }
+                        result.add(qcDto);
+                    }
+                }
+            } else {
+                // targetvalue 涓嶅寘鍚� &锛岀洿鎺ユ坊鍔犲埌缁撴灉
+                result.add(questionCountKsOrBqDTO);
+            }
+        }
+
+        return result;
+    }
+
+    @Override
+    public List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(List<Long> subtaskIds, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType) {
         //鍏堟竻鐞嗕竴涓嬮噸澶嶆暟鎹�
         List<Long> repeatIds = serviceSubtaskDetailMapper.selectRepeatDetailIds();
         if (!CollectionUtils.isEmpty(repeatIds)) {
             serviceSubtaskDetailMapper.deleteRepeatDetailByIds(repeatIds);
         }
 
-        List<ServiceSubtaskDetailRatioExport> serviceSubtaskDetailRatioExports = serviceSubtaskMapper.statQuestionOptionBySubtaskIds(subtaskIds, startOutHospTime, endOutHospTime, scoreStart, scoreEnd, scriptContent,valueType);
+        List<ServiceSubtaskDetailRatioExport> serviceSubtaskDetailRatioExports = serviceSubtaskMapper.statQuestionOptionBySubtaskIds(subtaskIds, startOutHospTime, endOutHospTime, scoreStart, scoreEnd, scriptContent, valueType);
         // 澶勭悊 targetvalue锛氭寜 & 鍒嗗壊鎴愬鏉¤褰�
         List<ServiceSubtaskDetailRatioExport> result = new ArrayList<>();
         for (ServiceSubtaskDetailRatioExport export : serviceSubtaskDetailRatioExports) {
@@ -5080,14 +5117,10 @@
                 // 濡傛灉鏈夊鏉$洰鏍囧�硷紝鎷嗗垎鎴愬琛�
                 for (String value : values) {
                     //鍏堝幓 result 涓煡涓�涓嬶紝鏈夋病鏈夎繖涓� questiontext 鍜屽搴旂殑 targetvalue
-                    ServiceSubtaskDetailRatioExport existingExport = result.stream()
-                            .filter(e -> e.getQuestiontext().equals(export.getQuestiontext())
-                                    && value.trim().equals(e.getTargetvalue()))
-                            .findFirst()
-                            .orElse(null);
+                    ServiceSubtaskDetailRatioExport existingExport = result.stream().filter(e -> e.getQuestiontext().equals(export.getQuestiontext()) && value.trim().equals(e.getTargetvalue())).findFirst().orElse(null);
                     if (existingExport != null && existingExport.getRatio().equals("0") && existingExport.getCount().equals("0")) {
                         //濡傛灉瀛樺湪锛屽垯灏� result 閲岀殑杩欎釜闂鎵�瀵瑰簲鐨� Targetvalue=value 杩欐潯鏁版嵁鏇存柊鎴愬綋鍓嶈繖鏉℃暟鎹�
-                        if(value.equals(export.getOptionresult())) {
+                        if (value.equals(export.getOptionresult())) {
                             existingExport.setRatio(export.getRatio());
                             existingExport.setScore(export.getScore());
                             existingExport.setCount(export.getCount());
@@ -5813,11 +5846,11 @@
         if (StringUtils.isNotEmpty(questionResultVO.getServiceType()) && questionResultVO.getServiceType().equals("2")) {
             //鑾峰彇serviceSubtaskList涓殑鎵�鏈塼askid
             List<Long> taskIds = serviceSubtaskRes.stream().map(ServiceSubtaskRes::getTaskid).filter(ObjectUtils::isNotEmpty).distinct().collect(Collectors.toList());
-            serviceSubtaskDetailRatioExports = statQuestionOption(taskIds, questionResultVO.getStartOutHospTime(), questionResultVO.getEndOutHospTime(), questionResultVO.getQuestionContent(), questionResultVO.getStartScore(), questionResultVO.getEndScore(),questionResultVO.getValueType());
+            serviceSubtaskDetailRatioExports = statQuestionOption(taskIds, questionResultVO.getStartOutHospTime(), questionResultVO.getEndOutHospTime(), questionResultVO.getQuestionContent(), questionResultVO.getStartScore(), questionResultVO.getEndScore(), questionResultVO.getValueType());
         } else if (StringUtils.isNotEmpty(questionResultVO.getServiceType()) && questionResultVO.getServiceType().equals("6")) {
             //婊℃剰搴︾粺璁� 锛堥�氳繃 subtask 鐨� id 鍘荤粺璁★級
             List<Long> subtaskIds = serviceSubtaskRes.stream().map(ServiceSubtaskRes::getId).collect(Collectors.toList());
-            serviceSubtaskDetailRatioExports = statQuestionOptionBySubtaskIds(subtaskIds, questionResultVO.getStartOutHospTime(), questionResultVO.getEndOutHospTime(), questionResultVO.getQuestionContent(), questionResultVO.getStartScore(), questionResultVO.getEndScore(),questionResultVO.getValueType());
+            serviceSubtaskDetailRatioExports = statQuestionOptionBySubtaskIds(subtaskIds, questionResultVO.getStartOutHospTime(), questionResultVO.getEndOutHospTime(), questionResultVO.getQuestionContent(), questionResultVO.getStartScore(), questionResultVO.getEndScore(), questionResultVO.getValueType());
         }
         return serviceSubtaskDetailRatioExports;
     }
diff --git a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
index 935c7f2..f7d7118 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
@@ -40,7 +40,7 @@
         <result property="scriptTopic" column="script_topic"/>
         <result property="nextScriptno" column="next_scriptno"/>
         <result property="otherdata" column="otherdata"/>
-        <result property="isMust" column="is_must"/>
+        <result property="ismandatory" column="ismandatory"/>
         <result property="scriptDesc" column="script_desc"/>
         <result property="scriptType" column="script_type"/>
         <result property="branchFlag" column="branch_flag"/>
@@ -107,7 +107,7 @@
                next_scriptno,
                otherdata,
                score,
-               is_must,
+               ismandatory,
                playWavOnly,
                del_flag,
                update_by,
@@ -181,7 +181,7 @@
         <if test="guid != null  and guid != ''">and guid = #{guid}</if>
         <if test="targetid != null ">and targetid = #{targetid}</if>
         <if test="targetvalue != null  and targetvalue != ''">and targetvalue = #{targetvalue}</if>
-        <if test="isMust != null  and isMust != ''">and is_must = #{isMust}</if>
+        <if test="ismandatory != null  and ismandatory != ''">and ismandatory = #{ismandatory}</if>
         <if test="scriptType != null">and script_type = #{scriptType}</if>
         <if test="sort != null">and sort = #{sort}</if>
         <if test="score != null">and score = #{score}</if>
@@ -273,7 +273,7 @@
             <if test="scriptTopic != null">script_topic,</if>
             <if test="nextScriptno != null">next_scriptno,</if>
             <if test="otherdata != null">otherdata,</if>
-            <if test="isMust != null  and isMust != ''">is_must,</if>
+            <if test="ismandatory != null  and ismandatory != ''">ismandatory,</if>
             <if test="scriptDesc != null ">script_desc,</if>
             <if test="scriptType != null ">script_type,</if>
             <if test="branchFlag != null  and branchFlag != ''">branch_flag,</if>
@@ -329,7 +329,7 @@
             <if test="scriptTopic != null">#{scriptTopic},</if>
             <if test="nextScriptno != null">#{nextScriptno},</if>
             <if test="otherdata != null">#{otherdata},</if>
-            <if test="isMust != null  and isMust != ''">#{isMust},</if>
+            <if test="ismandatory != null  and ismandatory != ''">#{ismandatory},</if>
             <if test="scriptDesc != null ">#{scriptDesc},</if>
             <if test="scriptType != null ">#{scriptType},</if>
             <if test="branchFlag != null  and branchFlag != ''">#{branchFlag},</if>
@@ -394,7 +394,7 @@
             <if test="scriptTopic != null">script_topic = #{scriptTopic},</if>
             <if test="nextScriptno != null">next_scriptno = #{nextScriptno},</if>
             <if test="otherdata != null">otherdata = #{otherdata},</if>
-            <if test="isMust != null  and isMust != ''">is_must = #{isMust},</if>
+            <if test="ismandatory != null  and ismandatory != ''">ismandatory = #{ismandatory},</if>
             <if test="scriptDesc != null ">script_desc = #{scriptDesc},</if>
             <if test="scriptType != null ">script_type = #{scriptType},</if>
             <if test="isMydException != null  and isMydException != ''">is_myd_exception = #{isMydException},</if>
diff --git a/smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml
index 1daca12..bd05dd2 100644
--- a/smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml
@@ -36,7 +36,7 @@
         <result property="targetid" column="targetid"/>
         <result property="targetvalue" column="targetvalue"/>
         <result property="otherdata" column="otherdata"/>
-        <result property="isMust" column="is_must"/>
+        <result property="ismandatory" column="ismandatory"/>
         <result property="questionResult" column="question_result"/>
         <result property="branchFlag" column="branch_flag"/>
         <result property="branchNextscriptno" column="branch_nextscriptno"/>
@@ -99,7 +99,7 @@
                noClearlyText,
                noClearlyVoice,
                script_assortname,
-               targetOptions, language, playWavOnly, value_type, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pid, guid, targettype, targetid, targetvalue, otherdata, is_must, question_result
+               targetOptions, language, playWavOnly, value_type, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pid, guid, targettype, targetid, targetvalue, otherdata, ismandatory, question_result
         from ivr_task_template_script
     </sql>
 
@@ -157,7 +157,7 @@
         <if test="targetid != null ">and targetid = #{targetid}</if>
         <if test="targetvalue != null  and targetvalue != ''">and targetvalue = #{targetvalue}</if>
         <if test="otherdata != null  and otherdata != ''">and otherdata = #{otherdata}</if>
-        <if test="isMust != null  and isMust != ''">and is_must = #{isMust}</if>
+        <if test="ismandatory != null  and ismandatory != ''">and ismandatory = #{ismandatory}</if>
         <if test="questionResult != null  and questionResult != ''">and question_result = #{questionResult}</if>
         <if test="branchFlag != null  and branchFlag != ''">and branch_flag = #{branchFlag}</if>
         <if test="scriptType != null  and scriptType != ''">and script_type = #{scriptType}</if>
@@ -231,7 +231,7 @@
             <if test="targetid != null">targetid,</if>
             <if test="targetvalue != null">targetvalue,</if>
             <if test="otherdata != null">otherdata,</if>
-            <if test="isMust != null">is_must,</if>
+            <if test="ismandatory != null">ismandatory,</if>
             <if test="questionResult != null">question_result,</if>
             <if test="branchFlag != null  and branchFlag != ''">branch_flag,</if>
             <if test="branchNextscriptno != null  and branchNextscriptno != ''">branch_nextscriptno,</if>
@@ -287,7 +287,7 @@
             <if test="targetid != null">#{targetid},</if>
             <if test="targetvalue != null">#{targetvalue},</if>
             <if test="otherdata != null">#{otherdata},</if>
-            <if test="isMust != null">#{isMust},</if>
+            <if test="ismandatory != null">#{ismandatory},</if>
             <if test="questionResult != null">#{questionResult},</if>
             <if test="branchFlag != null  and branchFlag != ''">#{branchFlag},</if>
             <if test="branchNextscriptno != null  and branchNextscriptno != ''">#{branchNextscriptno},</if>
@@ -347,7 +347,7 @@
             <if test="targetid != null">targetid = #{targetid},</if>
             <if test="targetvalue != null">targetvalue = #{targetvalue},</if>
             <if test="otherdata != null">otherdata = #{otherdata},</if>
-            <if test="isMust != null">is_must = #{isMust},</if>
+            <if test="ismandatory != null">ismandatory = #{ismandatory},</if>
             <if test="questionResult != null">question_result = #{questionResult},</if>
             <if test="branchFlag != null  and branchFlag != ''">branch_flag = #{branchFlag},</if>
             <if test="branchNextscriptno != null  and branchNextscriptno != ''">branch_nextscriptno =
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 31c1134..c48146a 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -752,7 +752,8 @@
         <if test="groupKey != null and groupKey != ''">
             ss.${groupKey} as groupKey,
         </if>
-        SUM(CASE WHEN ss.finishtime IS NOT NULL AND DATE(ss.visit_time) &lt;= DATE(ss.finishtime) THEN 1 ELSE 0 END) / COUNT(*) AS finishRate,
+        SUM(CASE WHEN ss.finishtime IS NOT NULL AND DATE(ss.visit_time) &lt;= DATE(ss.finishtime) THEN 1 ELSE 0 END) /
+        COUNT(*) AS finishRate,
         <if test="rateDay != null">
             SUM(CASE WHEN ss.finishtime IS NOT NULL
             AND DATEDIFF(ss.finishtime, ss.endtime) &lt;= #{rateDay} + COALESCE(cp.compensate_days, 0)
@@ -1793,132 +1794,132 @@
 
     <select id="getSfStatisticsHyperlink" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
             resultMap="ServiceSubtaskResult">
-            select id,
-            visit_count,
-            is_visit_again,
-            type,
-            orgid,
-            drcode,
-            drname,
-            leavehospitaldistrictcode,
-            leavehospitaldistrictname,
-            deptcode,
-            deptname,
-            sendstate,
-            preachform,
-            current_preachform,
-            excep,
-            nurse_id,
-            nurse_name,
-            taskid,
-            task_name,
-            visit_time,
-            finishtime,
-            endtime,
-            senddate,
-            suggest,
-            result,
-            templateid,
-            templatename,
-            patid,
-            sendname,
-            send_type,
-            recordid,
-            exrecallcount,
-            continue_flag,
-            continue_time_now,
-            continue_content,
-            continue_count,
-            continue_time_next,
-            task_situation,
-            remark
-            from service_subtask
-            where 1=1
-            and del_flag = 0
-            <if test="orgid != null and orgid != ''">
-                and orgid = #{orgid}
+        select id,
+        visit_count,
+        is_visit_again,
+        type,
+        orgid,
+        drcode,
+        drname,
+        leavehospitaldistrictcode,
+        leavehospitaldistrictname,
+        deptcode,
+        deptname,
+        sendstate,
+        preachform,
+        current_preachform,
+        excep,
+        nurse_id,
+        nurse_name,
+        taskid,
+        task_name,
+        visit_time,
+        finishtime,
+        endtime,
+        senddate,
+        suggest,
+        result,
+        templateid,
+        templatename,
+        patid,
+        sendname,
+        send_type,
+        recordid,
+        exrecallcount,
+        continue_flag,
+        continue_time_now,
+        continue_content,
+        continue_count,
+        continue_time_next,
+        task_situation,
+        remark
+        from service_subtask
+        where 1=1
+        and del_flag = 0
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+            AND leavehospitaldistrictcode IN
+            <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{leavehospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND deptcode IN
+            <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="serviceType != null and serviceType.size() > 0">
+            AND service_type IN
+            <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                     close=")">
+                #{serviceType}
+            </foreach>
+        </if>
+        <if test="startTime != null and endTime!=null">
+            AND visit_time >= DATE(#{startTime})
+            AND visit_time &lt; DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
+        </if>
+        <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
+        <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
+        <if test="continueCount != null ">and continue_count = #{continueCount}</if>
+        <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP}</if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and type = #{type}
+        </if>
+        <if test="visitCount != null and visitCount == 1">
+            AND visit_count = 1
+        </if>
+        <if test="visitCount != null and visitCount > 1">
+            AND visit_count > 1
+        </if>
+        <if test="groupKey != null and groupKey != '' and groupKeyList != null and groupKeyList.size>0">
+            AND ${groupKey} IN
+            <foreach collection="groupKeyList" item="key" open="(" separator=","
+                     close=")">
+                #{key}
+            </foreach>
+        </if>
+        AND sendstate IS NOT NULL
+        <if test="sendstates != null and sendstates.size() > 0">
+            AND sendstate IN
+            <foreach collection="sendstates" item="state" open="(" separator="," close=")">
+                #{state}
+            </foreach>
+        </if>
+        <if test="currentPreachform != null">
+            AND current_preachform = #{currentPreachform}
+            <if test="followUpCountStyle != null and followUpCountStyle = '1'">
+                AND sendstate != 4
             </if>
-            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                AND leavehospitaldistrictcode IN
-                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                         close=")">
-                    #{leavehospitaldistrictcode}
-                </foreach>
-            </if>
-            <if test="deptcodes != null and deptcodes.size() > 0">
-                AND deptcode IN
-                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
-                         close=")">
-                    #{deptcode}
-                </foreach>
-            </if>
-            <if test="serviceType != null and serviceType.size() > 0">
-                AND service_type IN
-                <foreach collection="serviceType" item="serviceType" open="(" separator=","
-                         close=")">
-                    #{serviceType}
-                </foreach>
-            </if>
-            <if test="startTime != null and endTime!=null">
-                AND visit_time >= DATE(#{startTime})
-                AND visit_time &lt; DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
-            </if>
-            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
-            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
-            <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
-            <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
-            <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
-            <if test="continueCount != null ">and continue_count = #{continueCount}</if>
-            <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP}</if>
-            <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
-            <if test="type != null">
-                and type = #{type}
-            </if>
-            <if test="visitCount != null and visitCount == 1">
-                AND visit_count = 1
-            </if>
-            <if test="visitCount != null and visitCount > 1">
-                AND visit_count > 1
-            </if>
-            <if test="groupKey != null and groupKey != '' and groupKeyList != null and groupKeyList.size>0">
-                AND ${groupKey} IN
-                <foreach collection="groupKeyList" item="key" open="(" separator=","
-                         close=")">
-                    #{key}
-                </foreach>
-            </if>
-            AND sendstate IS NOT NULL
-            <if test="sendstates != null and sendstates.size() > 0">
-                AND sendstate IN
-                <foreach collection="sendstates" item="state" open="(" separator="," close=")">
-                    #{state}
-                </foreach>
-            </if>
-            <if test="currentPreachform != null">
-                AND current_preachform = #{currentPreachform}
-                <if test="followUpCountStyle != null and followUpCountStyle = '1'">
-                    AND sendstate != 4
-                </if>
-            </if>
-            <if test="excep != null and excep != ''">
-                AND excep = #{excep}
-            </if>
-            <if test="taskSituation != null">
-                AND task_situation = #{taskSituation}
-            </if>
-            <if test="drcode != null and drcode != ''">
-                AND drcode = #{drcode}
-            </if>
-            <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
-                AND leavehospitaldistrictcode = #{leavehospitaldistrictcode}
-            </if>
-            <if test="deptcode != null and deptcode != ''">
-                AND deptcode = #{deptcode}
-            </if>
-            order by endtime desc
-            <if test="pageSize != null  and pageNum != null">
-                limit ${pageSize} OFFSET ${pageNum}
-            </if>
+        </if>
+        <if test="excep != null and excep != ''">
+            AND excep = #{excep}
+        </if>
+        <if test="taskSituation != null">
+            AND task_situation = #{taskSituation}
+        </if>
+        <if test="drcode != null and drcode != ''">
+            AND drcode = #{drcode}
+        </if>
+        <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
+            AND leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+        </if>
+        <if test="deptcode != null and deptcode != ''">
+            AND deptcode = #{deptcode}
+        </if>
+        order by endtime desc
+        <if test="pageSize != null  and pageNum != null">
+            limit ${pageSize} OFFSET ${pageNum}
+        </if>
     </select>
 
     <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
@@ -2966,8 +2967,8 @@
     <select id="selectByScheduleIdAndLoop" resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where schedule_id = #{scheduleId}
-          and loop_count = #{loopCount}
-          and (del_flag is null or del_flag = '0')
+        and loop_count = #{loopCount}
+        and (del_flag is null or del_flag = '0')
         order by schedule_seq asc, id asc
     </select>
 
@@ -3134,6 +3135,10 @@
         t.task_name AS taskName,
         d.asrtext AS optionresult,
         d.score AS score,
+        s.deptcode AS deptcode,
+        s.deptname AS deptname,
+        s.leavehospitaldistrictcode AS leavehospitaldistrictcode,
+        s.leavehospitaldistrictname AS leavehospitaldistrictname,
         d.targetvalue AS targetvalue,
         d.value_type AS valueType,
         COUNT(*) AS count,
@@ -3144,43 +3149,47 @@
         INNER JOIN service_subtask_detail d ON d.sub_id = s.id
         INNER JOIN (
         SELECT
-            d.questiontext,
-            COUNT(*) AS total_count
+        d.questiontext,
+        COUNT(*) AS total_count
         FROM
-            service_task t
-            INNER JOIN service_subtask s ON s.taskid = t.taskid
-            INNER JOIN service_subtask_detail d ON d.sub_id = s.id
-            WHERE 1=1
-            <if test="subtaskIds != null and subtaskIds.size() > 0">
+        service_task t
+        INNER JOIN service_subtask s ON s.taskid = t.taskid
+        INNER JOIN service_subtask_detail d ON d.sub_id = s.id
+        WHERE 1=1
+        <if test="subtaskIds != null and subtaskIds.size() > 0">
             AND s.id IN
             <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
                 #{subtaskId}
             </foreach>
-            </if>
+        </if>
         <if test="valueType != null">AND d.value_type &gt;= #{valueType}</if>
         <if test="scoreStart != null">AND d.score = #{scoreStart}</if>
         <if test="scoreEnd != null">AND d.score &lt;= #{scoreEnd}</if>
-        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext}, '%')</if>
-            AND s.sendstate = 6
-            AND d.del_flag=0
-            GROUP BY d.questiontext
+        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext},
+            '%')
+        </if>
+        AND s.sendstate = 6
+        AND d.del_flag=0
+        GROUP BY d.questiontext
         ) t2 ON t2.questiontext = d.questiontext
         WHERE 1=1
         <if test="subtaskIds != null and subtaskIds.size() > 0">
-        AND s.id IN
-        <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
-            #{subtaskId}
-        </foreach>
+            AND s.id IN
+            <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
+                #{subtaskId}
+            </foreach>
         </if>
         AND s.sendstate = 6
         AND d.del_flag=0
         <if test="valueType != null">AND d.value_type &gt;= #{valueType}</if>
         <if test="scoreStart != null">AND d.score &gt;= #{scoreStart}</if>
         <if test="scoreEnd != null">AND d.score &lt;= #{scoreEnd}</if>
-        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext}, '%')</if>
-      <if test="startOutHospTime != null">
-        AND date_format(s.endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
-    </if>
+        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext},
+            '%')
+        </if>
+        <if test="startOutHospTime != null">
+            AND date_format(s.endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
+        </if>
         <if test="endOutHospTime != null">
             AND date_format(s.endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
         </if>
@@ -3195,6 +3204,48 @@
         t.taskid
     </select>
 
+    <select id="statQuestionOptionByKsOrBq" resultType="com.smartor.domain.DTO.QuestionCountKsOrBqDTO"
+            parameterType="com.smartor.domain.VO.QuestionCountKsOrBqVO">
+        SELECT questiontext,
+        d.taskid,
+        s.deptname,
+        s.leavehospitaldistrictname,
+        d.targetvalue,
+        d.asrtext,
+        COUNT(d.asrtext) AS answercount,
+        SUM(d.score) AS singleScore
+        FROM service_subtask_detail d,
+        service_task s
+        WHERE d.taskid = s.taskid
+        AND deptname IS NOT NULL
+        AND leavehospitaldistrictname IS NOT NULL
+        <if test="endFinishTime != null">
+            AND create_time &lt; #{endFinishTime}
+        </if>
+        <if test="startFinishTime != null">
+            AND create_time &gt;= #{startFinishTime}
+        </if>
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+            AND leavehospitaldistrictcode IN
+            <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                     separator=","
+                     close=")">
+                #{leavehospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+            AND deptcode IN
+            <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                     close=")">
+                #{leaveldeptcode}
+            </foreach>
+        </if>
+        GROUP BY d.questiontext,
+        d.taskid,
+        d.asrtext
+        ORDER BY d.taskid
+    </select>
+
     <select id="selectServiceSubtaskListDeadLine" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
diff --git a/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml b/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml
index cdfa059..6cfd428 100644
--- a/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml
@@ -15,7 +15,7 @@
         <result property="language" column="language"/>
         <result property="categoryName" column="categoryName"/>
         <result property="scriptContent" column="script_content"/>
-        <result property="isMust" column="is_must"/>
+        <result property="ismandatory" column="ismandatory"/>
         <result property="delFlag" column="del_flag"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
@@ -82,7 +82,7 @@
                scriptno,
                templateID,
                scriptid,
-               script_topic, language, categoryName, script_content, is_must, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pid, guid, value_type, targetoptions, script_type, targetid, targetvalue, next_scriptno, script_result, otherdata, picture_path
+               script_topic, language, categoryName, script_content, ismandatory, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pid, guid, value_type, targetoptions, script_type, targetid, targetvalue, next_scriptno, script_result, otherdata, picture_path
                 , duty_dept_person_name, duty_dept_person_code, report_dept_person_name, report_dept_person_code
                  , circulation_dept_person_code, circulation_dept_person_name
         from svy_task_template_script
@@ -118,7 +118,7 @@
                 '%')
             </if>
             <if test="scriptContent != null  and scriptContent != ''">and script_content = #{scriptContent}</if>
-            <if test="isMust != null  and isMust != ''">and is_must = #{isMust}</if>
+            <if test="ismandatory != null  and ismandatory != ''">and ismandatory = #{ismandatory}</if>
             <if test="isupload != null ">and isupload = #{isupload}</if>
             <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
             <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
@@ -180,7 +180,7 @@
             <if test="language != null">language,</if>
             <if test="categoryName != null">categoryName,</if>
             <if test="scriptContent != null">script_content,</if>
-            <if test="isMust != null">is_must,</if>
+            <if test="ismandatory != null">ismandatory,</if>
             <if test="delFlag != null">del_flag,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
@@ -233,7 +233,7 @@
             <if test="language != null">#{language},</if>
             <if test="categoryName != null">#{categoryName},</if>
             <if test="scriptContent != null">#{scriptContent},</if>
-            <if test="isMust != null">#{isMust},</if>
+            <if test="ismandatory != null">#{ismandatory},</if>
             <if test="delFlag != null">#{delFlag},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
@@ -290,7 +290,7 @@
             <if test="language != null">language = #{language},</if>
             <if test="categoryName != null">categoryName = #{categoryName},</if>
             <if test="scriptContent != null">script_content = #{scriptContent},</if>
-            <if test="isMust != null">is_must = #{isMust},</if>
+            <if test="ismandatory != null">ismandatory = #{ismandatory},</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>

--
Gitblit v1.9.3