From d4e5b540d3600350c8c8519e2300f2c85d4186fb Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 19 三月 2025 18:17:09 +0800
Subject: [PATCH] 代码提交
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java | 10 +++
smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java | 3 +
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 3
smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml | 23 +++++++
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java | 51 ++++++++++++++++-
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java | 2
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 6 +
smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTarget.java | 42 ++++++++++++++
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java | 2
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java | 10 +++
10 files changed, 144 insertions(+), 8 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 647fa44..5bb9050 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
@@ -143,4 +143,14 @@
return toAjax(ServiceSubtaskDetailService.deleteServiceSubtaskDetailByCalldetailids(calldetailids));
}
+ /**
+ * 鎸囨爣缁熻
+ */
+ //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:add')")
+ @ApiOperation("鎸囨爣缁熻")
+ @GetMapping(value = "/countPatByTarget/{targetid}")
+ public AjaxResult countPatByTarget(@PathVariable("targetid") Long targetid) {
+ return success(ServiceSubtaskDetailService.countPatByTarget(targetid));
+ }
+
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
index 2a8632f..608c381 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
@@ -86,7 +86,7 @@
String tableOrAlias = ""; // 淇濆瓨涓昏〃鍚嶆垨鍒悕
if (matcher.find()) {
// 浼樺厛鍖归厤绗竴涓〃鍚嶆垨鍒悕
- tableOrAlias = matcher.group(3) != null ? matcher.group(3) : matcher.group(2);
+ tableOrAlias = matcher.group(3) != null && !matcher.group(3).equals("JOIN") ? matcher.group(3) : matcher.group(2);
}
// 濡傛灉鎵惧埌琛ㄥ悕鎴栧埆鍚嶏紝涓� WHERE 瀛愬彞娣诲姞鍓嶇紑
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTarget.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTarget.java
new file mode 100644
index 0000000..ac7e2ee
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTarget.java
@@ -0,0 +1,42 @@
+package com.smartor.domain;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鎸囨爣缁熻
+ *
+ * @author smartor
+ * @date 2023-03-24
+ */
+@Data
+@ApiModel(value = "ServiceSubtaskDetailTarget", description = "鎸囨爣缁熻")
+public class ServiceSubtaskDetailTarget extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+
+ @ApiModelProperty(value = "鎸囨爣ID")
+ private Long targetid;
+
+ @ApiModelProperty(value = "浠诲姟ID")
+ private Long taskid;
+
+ @ApiModelProperty(value = "鎸囨爣鍚嶇О")
+ private String targetname;
+
+ @ApiModelProperty(value = "鍗曢」鍚嶇О")
+ private String matchedtext;
+
+ @ApiModelProperty(value = "椤瑰嚭鐜版鏁� ")
+ private Long count;
+
+ @ApiModelProperty(value = "鍗犳瘮")
+ private String percentage;
+
+ @ApiModelProperty(value = "鎸囨爣鍑虹幇娆℃暟")
+ private String targetShowCount;
+
+
+}
diff --git a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
index 965443b..d8c1010 100644
--- a/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
+++ b/smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
@@ -29,6 +29,8 @@
@ApiModelProperty("鑷ID")
private Long id;
+ @ApiModelProperty(value = "瀵瑰簲鐨刬vr_liba_target鐨勪富閿�")
+ private Long targetid;
/**
* 閫夐」鍒嗘敮鏍囪瘑(0:鏃犲垎鏀�1:鏈夊垎鏀�)
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
index 905c1ef..f96af96 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
@@ -1,6 +1,7 @@
package com.smartor.mapper;
import com.smartor.domain.ServiceSubtaskDetail;
+import com.smartor.domain.ServiceSubtaskDetailTarget;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -62,4 +63,13 @@
* @return 缁撴灉
*/
public int deleteServiceSubtaskDetailByCalldetailids(String[] calldetailids);
+
+
+ /**
+ * 鎸囨爣缁熻
+ *
+ * @param targetid 鎸囨爣缁熻
+ * @return 鎸囨爣缁熻
+ */
+ public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid);
}
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
index d1e7ead..fc859f9 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
@@ -1,6 +1,7 @@
package com.smartor.service;
import com.smartor.domain.ServiceSubtaskDetail;
+import com.smartor.domain.ServiceSubtaskDetailTarget;
import java.util.List;
import java.util.Map;
@@ -68,4 +69,6 @@
* @return 缁撴灉
*/
public int deleteServiceSubtaskDetailByCalldetailid(String subtaskDetailid);
+
+ public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid);
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index d7b8332..7f4c48d 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -372,7 +372,7 @@
svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
}
}
- map.put("scriptResult", scriptInfoByCondition);
+ map.put("scriptResult", svyLibTemplateScriptVOList);
map.put("taskName", scriptInfoByCondition.get("taskName"));
return map;
} else if (scriptInfoByCondition.get("type").equals("3")) {
@@ -468,6 +468,7 @@
serviceSubtaskDetailVO.setTargetid(svyTaskTemplateScriptVO.getTargetid() != null ? svyTaskTemplateScriptVO.getTargetid().intValue() : null);
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
serviceSubtaskDetailVO.setScriptid(svyTaskTemplateScriptVO.getId());
+ serviceSubtaskDetailVO.setTemplatequestionnum(StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptno()) ? Long.valueOf(svyTaskTemplateScriptVO.getScriptno()) : null);
serviceSubtaskDetailVO.setValueType(svyTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetailVO.setComment(null);
serviceSubtaskDetailVO.setCreateTime(new Date());
@@ -532,7 +533,8 @@
serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
- serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId());
+ serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getScriptID());
+ serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetailVO.setComment(null);
serviceSubtaskDetailVO.setCreateTime(new Date());
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
index 292ff61..6554d27 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailServiceImpl.java
@@ -4,10 +4,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.ServiceSubtask;
+import com.smartor.domain.*;
import com.smartor.domain.ServiceSubtaskDetail;
-import com.smartor.domain.ServiceSubtaskDetail;
-import com.smartor.domain.ServiceTask;
import com.smartor.mapper.ServiceSubtaskDetailMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.service.IServiceSubtaskDetailService;
@@ -17,6 +15,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -234,4 +234,49 @@
return serviceTaskMap;
}
+
+ /*
+ * @param targetid
+ * @return 鎸囨爣缁熻
+ */
+ @Override
+ public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid) {
+ List<ServiceSubtaskDetailTarget> serviceSubtaskDetailTargets = ServiceSubtaskDetailMapper.countPatByTarget(targetid);
+ if (CollectionUtils.isNotEmpty(serviceSubtaskDetailTargets)) {
+ Long totalCount = serviceSubtaskDetailTargets.stream().filter(target -> target.getMatchedtext() == null || target.getMatchedtext().isEmpty()).mapToLong(target -> target.getCount() != null ? target.getCount() : 0) // 纭繚 count 涓� 0 濡傛灉涓� null
+ .sum();
+
+
+ Long allShowCount = 0L;
+
+ // 閬嶅巻鍒楄〃锛屽皢 matchedText 涓�""璧嬪�肩粰 null
+ for (ServiceSubtaskDetailTarget target : serviceSubtaskDetailTargets) {
+ if (target.getMatchedtext() == null) {
+ target.setCount(target.getCount() != null ? target.getCount() + totalCount : totalCount); // 缁� matchedText 涓� null 鐨勫璞¤祴鍊�
+ }
+ //鍏佽null鐩稿姞锛屼笉鍏佽""鐩稿姞
+ if (target.getMatchedtext() == null || !target.getMatchedtext().isEmpty()) {
+ allShowCount = allShowCount + target.getCount();
+ }
+ }
+
+ // 浣跨敤杩唬鍣ㄥ垹闄� matchedText 涓� "" 鐨勫璞�
+ Iterator<ServiceSubtaskDetailTarget> iterator = serviceSubtaskDetailTargets.iterator();
+ while (iterator.hasNext()) {
+ ServiceSubtaskDetailTarget target = iterator.next();
+ if (target.getMatchedtext() != null && target.getMatchedtext().isEmpty()) {
+ iterator.remove(); // 鍒犻櫎 matchedText 涓� "" 鐨勫璞�
+ }
+ }
+ for (ServiceSubtaskDetailTarget target : serviceSubtaskDetailTargets) {
+ target.setTargetShowCount(allShowCount.toString());
+ BigDecimal count = new BigDecimal(target.getCount() != null ? target.getCount().toString() : "0");
+ BigDecimal allCount = new BigDecimal(allShowCount.toString());
+ target.setPercentage(count.divide(allCount, 2, RoundingMode.HALF_UP).toString());
+ }
+ }
+
+ return serviceSubtaskDetailTargets;
+ }
+
}
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 b6a64e6..49c4259 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2201,12 +2201,13 @@
serviceSubtaskDetail.setEndTime(System.currentTimeMillis());
serviceSubtaskDetail.setSentEnd(1L);
serviceSubtaskDetail.setTemplateid(ivrTaskTemplate.getId().toString());
- serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
+ serviceSubtaskDetail.setTemplatequestionnum(ivrTaskTemplateScriptVO.getScriptno());
serviceSubtaskDetail.setQuestiontext(ivrTaskTemplateScriptVO.getIvrtext());
serviceSubtaskDetail.setQuestionvoice(phoneCallReqYQVO.getRecordpath());
serviceSubtaskDetail.setCategoryname(ivrTaskTemplateScriptVO.getScriptType());
serviceSubtaskDetail.setTargetoptions(ivrTaskTemplateScriptVO.getTargetOptions());
serviceSubtaskDetail.setExtemplateText(ivrTaskTemplateScriptVO.getExtemplateText());
+ serviceSubtaskDetail.setScriptid(ivrTaskTemplateScriptVO.getId());
int i = 1;
for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
index f0b9dd2..fdb1fa6 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -55,7 +55,13 @@
<result property="guid" column="guid"/>
<result property="extemplateText" column="extemplate_text"/>
</resultMap>
-
+ <resultMap type="com.smartor.domain.ServiceSubtaskDetailTarget" id="ServiceSubtaskDetailTargetResult">
+ <result property="targetid" column="targetid"/>
+ <result property="taskid" column="taskid"/>
+ <result property="targetname" column="targetname"/>
+ <result property="matchedtext" column="matchedtext"/>
+ <result property="count" column="count"/>
+ </resultMap>
<sql id="selectServiceSubtaskDetailVo">
select id,
sub_id,
@@ -394,4 +400,19 @@
#{id}
</foreach>
</delete>
+
+ <select id="countPatByTarget" parameterType="Long" resultMap="ServiceSubtaskDetailTargetResult">
+ SELECT
+ service_task.taskid,
+ service_subtask_detail.targetid,
+ ivr_liba_target.targetname,
+ service_subtask_detail.matchedtext,
+ count(service_subtask_detail.matchedtext) count
+ FROM service_subtask_detail
+ JOIN service_task ON service_task.taskid = service_subtask_detail.taskid
+ JOIN ivr_liba_target ON ivr_liba_target.id = service_subtask_detail.targetid
+ WHERE
+ targetid = #{targetid}
+ GROUP BY matchedtext
+ </select>
</mapper>
--
Gitblit v1.9.3