From bedd0a1cef215538df64470df6b8d4a022189136 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 28 八月 2024 14:05:16 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 173 +++++++++++++++++++++++++++------------------------------ 1 files changed, 82 insertions(+), 91 deletions(-) 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 908e483..d090405 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java @@ -1,12 +1,15 @@ package com.smartor.service.impl; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.smartor.mapper.ServiceSubtaskAnswerMapper; -import com.smartor.mapper.ServiceSubtaskMapper; +import com.smartor.mapper.ServiceSubtaskDetailMapper; +import com.smartor.mapper.SvyTaskTemplateTargetoptionMapper; import com.smartor.service.IServiceSubtaskAnswerService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -15,10 +18,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; /** * 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞� @@ -33,10 +33,13 @@ private ServiceSubtaskAnswerMapper serviceSubtaskAnswerMapper; @Autowired - private ServiceSubtaskMapper serviceSubtaskMapper; + private RedisCache redisCache; @Autowired - private RedisCache redisCache; + private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper; + + @Autowired + private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; @Value("${pri_key}") private String pri_key; @@ -117,53 +120,25 @@ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key)); Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key)); - allKeys = new HashSet<>(); - if (serviceSubTaskAnswerReq.getType() == 1) { -// allKeys.add(redisCache.getCacheObject(pid + "-" + tid + "-SFscriptCache")); - allKeys.add(pid + "-" + tid + "-SFscriptCache"); - } else if (serviceSubTaskAnswerReq.getType() == 2) { -// allKeys.add(redisCache.getCacheObject(pid + "-" + tid + "-WJscriptCache")); - allKeys.add(pid + "-" + tid + "-WJscriptCache"); - } + allKeys.add(pid + "-" + tid + "-WJscriptCache"); } Long nextScriptno = null; for (String key : allKeys) { String[] split = key.split("-"); - if (key.contains("-SFscriptCache")) { - //鍖呭惈浜�,璇存槑浜嗘槸闅忚闂 - List<IvrLibaTemplateScriptVO> cacheList = redisCache.getCacheObject(key); - for (int i = 0; i < cacheList.size(); i++) { - if (i == 0) { - // 璇存槑鏄涓�棰� - IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO = cacheList.get(0); - //灏嗙涓�棰樼殑淇℃伅鏀惧埌琛ㄤ腑 - setSFInfo(ivrLibaTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0])); - nextScriptno = cacheList.get(0).getNextScriptno(); - } else { - //涓嶆槸绗� 涓� 棰� - for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : cacheList) { - if (ivrLibaTemplateScriptVO.getId() == nextScriptno) { - setSFInfo(ivrLibaTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0])); - nextScriptno = ivrLibaTemplateScriptVO.getNextScriptno(); - } - } - } - } - } else if (key.contains("-WJscriptCache")) { - List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key); + if (key.contains("-WJscriptCache")) { + List<SvyTaskTemplateScriptVO> cacheList = redisCache.getCacheList(key); for (int i = 0; i < cacheList.size(); i++) { if (i == 0) { // 璇存槑鏄涓�棰� //灏嗙涓�棰樼殑淇℃伅鏀惧埌琛ㄤ腑 - setWJInfo(cacheList.get(0), Long.valueOf(split[1]), Long.valueOf(split[0])); - nextScriptno = Long.valueOf(cacheList.get(0).getNextScriptno()); + nextScriptno = setWJInfo(cacheList.get(0), Long.valueOf(split[1]), Long.valueOf(split[0])); } else { - for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : cacheList) { - if (svyLibTemplateScriptVO.getId() == nextScriptno) { + for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : cacheList) { + if (svyTaskTemplateScriptVO.getId() == nextScriptno) { //灏嗙涓�棰樼殑淇℃伅鏀惧埌琛ㄤ腑 - setWJInfo(svyLibTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0])); + setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0])); nextScriptno = Long.valueOf(cacheList.get(0).getNextScriptno()); } @@ -188,66 +163,82 @@ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key)); Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key)); - if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList())) { - //闅忚 - redisCache.setCacheObject(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList()); - } else if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyLibTemplateScriptVOList())) { - //闂嵎 - redisCache.setCacheObject(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOList()); - } + //闂嵎 + redisCache.setCacheObject(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyTaskTemplateScriptVOList()); return 1; } - - private void setSFInfo(IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO, Long taskid, Long patid) { - ServiceSubtaskAnswer serviceSubtaskAnswer = null; - String dx = ""; - if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptType()) && ivrLibaTemplateScriptVO.getScriptType().equals("1") || StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptType()) && ivrLibaTemplateScriptVO.getScriptType().equals("2")) { - //1銆�2涓哄崟閫夋垨澶氶�� - for (IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption : ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList()) { - //鑾峰彇鐢ㄦ埛閫変腑鐨勯�夐」鍙� - dx = dx + "," + ivrLibaTemplateTargetoption.getOptionNo().toString(); - } - } else { - //闈炲崟澶氶�� - if (CollectionUtils.isNotEmpty(ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList())) { - dx = ivrLibaTemplateScriptVO.getIvrLibaScriptTargetoptionList().get(0).getAppenddesc(); - } + @Override + public List<ServiceSubtaskDetailVO> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq) { + log.error("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq); + List<ServiceSubtaskDetailVO> serviceSubtaskDetailVOList = new ArrayList<>(); + ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail(); + serviceSubtaskDetail.setTaskid(serviceSubTaskQueryReq.getTaskid()); + serviceSubtaskDetail.setPatid(serviceSubTaskQueryReq.getPatId()); + serviceSubtaskDetail.setScriptid(serviceSubTaskQueryReq.getScriptid()); + List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail); + for (ServiceSubtaskDetail serviceSubtaskDetail1 : serviceSubtaskDetails) { + ServiceSubtaskDetailVO serviceSubtaskDetailVO = DtoConversionUtils.sourceToTarget(serviceSubtaskDetail1, ServiceSubtaskDetailVO.class); + SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption(); + svyTaskTemplateTargetoption.setScriptid(serviceSubtaskDetailVO.getScriptid()); + svyTaskTemplateTargetoption.setTaskid(serviceSubtaskDetailVO.getTaskid()); + List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption); + serviceSubtaskDetailVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); + serviceSubtaskDetailVOList.add(serviceSubtaskDetailVO); } - serviceSubtaskAnswer.setTaskid(taskid); - serviceSubtaskAnswer.setPatId(patid); - serviceSubtaskAnswer.setScriptid(ivrLibaTemplateScriptVO.getId()); - serviceSubtaskAnswer.setScriptType(Long.valueOf(ivrLibaTemplateScriptVO.getScriptType())); - serviceSubtaskAnswer.setAnswer(dx.substring(1)); - serviceSubtaskAnswer.setComment(null); - serviceSubtaskAnswer.setCreateTime(new Date()); - serviceSubtaskAnswer.setUpdateTime(new Date()); - serviceSubtaskAnswerMapper.insertServiceSubtaskAnswer(serviceSubtaskAnswer); + return serviceSubtaskDetailVOList; } - private void setWJInfo(SvyLibTemplateScriptVO svyLibTemplateScriptVO, Long taskid, Long patid) { - ServiceSubtaskAnswer serviceSubtaskAnswer = null; - String dx = ""; - if (svyLibTemplateScriptVO.getScriptType().equals("1") || svyLibTemplateScriptVO.getScriptType().equals("2")) { + private Long setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid) { + //涓嬮璺宠浆 + Long nextScriptNo = null; + + ServiceSubtaskDetailVO serviceSubtaskDetailVO = new ServiceSubtaskDetailVO(); + List<ServiceSubtaskOptionAnswer> answerList = new ArrayList<>(); + if (svyTaskTemplateScriptVO.getScriptType().equals("1") || svyTaskTemplateScriptVO.getScriptType().equals("2")) { //1銆�2涓哄崟閫夋垨澶氶�� - for (SvyLibTemplateTargetoption svyLibTemplateTargetoption : svyLibTemplateScriptVO.getSvyLibTemplateTargetoptions()) { - //鑾峰彇鐢ㄦ埛閫変腑鐨勯�夐」鍙� - dx = dx + "," + svyLibTemplateTargetoption.getOptionNo().toString(); + for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption : svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()) { + //灏嗛棶棰橀�夐」璁板綍涓嬫潵 + if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) { + serviceSubtaskDetailVO.setTargetvalue(svyTaskTemplateTargetoption.getTargetvalue()); + } else { + serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + " " + svyTaskTemplateTargetoption.getTargetvalue()); + } + + if (svyTaskTemplateTargetoption.getIsUserOperation() == true) { + //灏嗛�変腑鐨勭粨鏋滄斁鍒癮srtext涓� + if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) { + serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateTargetoption.getTargetvalue()); + } else { + //濡傛灉鏄閫夛紝绛旀闇�瑕佺敤 & 杩涜鎷兼帴 + serviceSubtaskDetailVO.setAsrtext(serviceSubtaskDetailVO.getAnswerps() + "&" + svyTaskTemplateTargetoption.getTargetvalue()); + } + if (svyTaskTemplateScriptVO.getScriptType().equals("1") && svyTaskTemplateScriptVO.getBranchFlag().equals("1")) { + //鏄崟閫夛紝骞朵笖鏄湁鍒嗘敮鐨� + nextScriptNo = svyTaskTemplateTargetoption.getNextQuestion(); + } else { + nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno(); + } + } } + serviceSubtaskDetailVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()); } else { //闈炲崟澶氶�� - if (CollectionUtils.isNotEmpty(svyLibTemplateScriptVO.getSvyLibTemplateTargetoptions())) { - dx = svyLibTemplateScriptVO.getSvyLibTemplateTargetoptions().get(0).getAppenddesc(); + if (CollectionUtils.isNotEmpty(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions())) { + serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult()); + nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno(); } } - serviceSubtaskAnswer.setTaskid(Long.valueOf(taskid)); - serviceSubtaskAnswer.setPatId(Long.valueOf(patid)); - serviceSubtaskAnswer.setScriptid(svyLibTemplateScriptVO.getId()); - serviceSubtaskAnswer.setScriptType(Long.valueOf(svyLibTemplateScriptVO.getScriptType())); - serviceSubtaskAnswer.setAnswer(dx.substring(1)); - serviceSubtaskAnswer.setComment(null); - serviceSubtaskAnswer.setCreateTime(new Date()); - serviceSubtaskAnswer.setUpdateTime(new Date()); - serviceSubtaskAnswerMapper.insertServiceSubtaskAnswer(serviceSubtaskAnswer); + serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid)); + serviceSubtaskDetailVO.setPatid(Long.valueOf(patid)); + serviceSubtaskDetailVO.setScriptid(svyTaskTemplateScriptVO.getId()); + serviceSubtaskDetailVO.setValueType(svyTaskTemplateScriptVO.getScriptType()); + serviceSubtaskDetailVO.setAsrtext(JSON.toJSONString(answerList)); + serviceSubtaskDetailVO.setComment(null); + serviceSubtaskDetailVO.setCreateTime(new Date()); + serviceSubtaskDetailVO.setUpdateTime(new Date()); + ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class); + serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail); + return nextScriptNo; } } -- Gitblit v1.9.3