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