package com.smartor.service.impl;
|
|
import afu.org.checkerframework.checker.oigj.qual.O;
|
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.ServiceSubtaskDetailMapper;
|
import com.smartor.mapper.ServiceSubtaskMapper;
|
import com.smartor.mapper.SvyTaskTemplateTargetoptionMapper;
|
import com.smartor.service.IServiceSubtaskAnswerService;
|
import com.smartor.service.IServiceTaskService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.*;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 任务问卷问题选项Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2024-07-18
|
*/
|
@Slf4j
|
@Service
|
public class ServiceSubtaskAnswerServiceImpl implements IServiceSubtaskAnswerService {
|
@Autowired
|
private ServiceSubtaskAnswerMapper serviceSubtaskAnswerMapper;
|
|
@Autowired
|
private ServiceSubtaskMapper serviceSubtaskMapper;
|
|
@Autowired
|
private RedisCache redisCache;
|
|
@Autowired
|
private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper;
|
|
@Autowired
|
private IServiceTaskService serviceTaskService;
|
|
@Autowired
|
private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper;
|
|
@Value("${pri_key}")
|
private String pri_key;
|
|
/**
|
* 查询任务问卷问题选项
|
*
|
* @param id 任务问卷问题选项主键
|
* @return 任务问卷问题选项
|
*/
|
@Override
|
public ServiceSubtaskAnswer selectServiceSubtaskAnswerById(Long id) {
|
return serviceSubtaskAnswerMapper.selectServiceSubtaskAnswerById(id);
|
}
|
|
/**
|
* 查询任务问卷问题选项列表
|
*
|
* @param serviceSubtaskAnswer 任务问卷问题选项
|
* @return 任务问卷问题选项
|
*/
|
@Override
|
public List<ServiceSubtaskAnswer> selectServiceSubtaskAnswerList(ServiceSubtaskAnswer serviceSubtaskAnswer) {
|
return serviceSubtaskAnswerMapper.selectServiceSubtaskAnswerList(serviceSubtaskAnswer);
|
}
|
|
/**
|
* 新增任务问卷问题选项
|
*
|
* @param serviceSubtaskAnswer 任务问卷问题选项
|
* @return 结果
|
*/
|
@Override
|
public int insertServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer) {
|
serviceSubtaskAnswer.setCreateTime(DateUtils.getNowDate());
|
return serviceSubtaskAnswerMapper.insertServiceSubtaskAnswer(serviceSubtaskAnswer);
|
}
|
|
/**
|
* 修改任务问卷问题选项
|
*
|
* @param serviceSubtaskAnswer 任务问卷问题选项
|
* @return 结果
|
*/
|
@Override
|
public int updateServiceSubtaskAnswer(ServiceSubtaskAnswer serviceSubtaskAnswer) {
|
serviceSubtaskAnswer.setUpdateTime(DateUtils.getNowDate());
|
return serviceSubtaskAnswerMapper.updateServiceSubtaskAnswer(serviceSubtaskAnswer);
|
}
|
|
/**
|
* 批量删除任务问卷问题选项
|
*
|
* @param ids 需要删除的任务问卷问题选项主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteServiceSubtaskAnswerByIds(Long[] ids) {
|
return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerByIds(ids);
|
}
|
|
/**
|
* 删除任务问卷问题选项信息
|
*
|
* @param id 任务问卷问题选项主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteServiceSubtaskAnswerById(Long id) {
|
return serviceSubtaskAnswerMapper.deleteServiceSubtaskAnswerById(id);
|
}
|
|
|
@Override
|
public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq, Long flag) {
|
Long tid = null;
|
Long pid = null;
|
Double score = null;
|
Set<String> allKeys = redisCache.getAllKeys();
|
if (ObjectUtils.isNotEmpty(serviceSubTaskAnswerReq)) {
|
//需要立即执行
|
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
|
|
if (flag == 0) {
|
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key));
|
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key));
|
} else if (flag == 1) {
|
tid = Long.valueOf(serviceSubTaskAnswerReq.getParam1());
|
pid = Long.valueOf(serviceSubTaskAnswerReq.getParam2());
|
}
|
if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 2) {
|
allKeys = new HashSet<>();
|
allKeys.add(pid + "-" + tid + "-WJscriptCache");
|
} else if (serviceSubTaskAnswerReq.getType() != null && serviceSubTaskAnswerReq.getType() == 1) {
|
allKeys = new HashSet<>();
|
allKeys.add(pid + "-" + tid + "-SFscriptCache");
|
}
|
}
|
|
Long nextScriptno = null;
|
for (String key : allKeys) {
|
String[] split = key.split("-");
|
if (key.contains("-WJscriptCache")) {
|
List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key);
|
cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
|
log.error("问卷回答结果:{}", cacheList);
|
for (int i = 0; i < cacheList.size(); i++) {
|
if (i == 0) {
|
//这个时间要找到第一题
|
for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : cacheList) {
|
if (svyLibTemplateScriptVO.getSort() == 1L) {
|
//说明是第一题
|
SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), SvyTaskTemplateScriptVO.class);
|
List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = cacheList.get(0).getSvyLibTemplateTargetoptions();
|
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
|
svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
|
Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid);
|
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
|
if (score == null) {
|
score = Double.valueOf(map.get("score"));
|
} else {
|
score = score + Double.valueOf(map.get("score"));
|
}
|
}
|
}
|
|
} else {
|
SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), SvyTaskTemplateScriptVO.class);
|
List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
|
svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
|
|
if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort() == nextScriptno) {
|
log.error("svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
|
Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
|
log.error("map的信息为:{}", map);
|
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
|
if (score == null) {
|
score = Double.valueOf(map.get("score"));
|
} else {
|
score = score + Double.valueOf(map.get("score"));
|
}
|
}
|
}
|
}
|
} else if (key.contains("-SFscriptCache")) {
|
List<IvrLibaTemplateScriptVO> cacheList = redisCache.getCacheList(key);
|
cacheList.sort(Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort));
|
log.error("电话随访问卷回答结果:{}", cacheList);
|
for (int i = 0; i < cacheList.size(); i++) {
|
if (i == 0) {
|
//这个时间要找到第一题
|
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : cacheList) {
|
if (ivrLibaTemplateScriptVO.getSort() == 1L) {
|
//说明是第一题
|
IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), IvrTaskTemplateScriptVO.class);
|
List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = cacheList.get(0).getIvrLibaScriptTargetoptionList();
|
List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class);
|
ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
|
Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid);
|
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
|
if (score == null) {
|
score = Double.valueOf(map.get("score"));
|
} else {
|
score = score + Double.valueOf(map.get("score"));
|
}
|
}
|
}
|
|
} else {
|
IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), IvrTaskTemplateScriptVO.class);
|
List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getIvrLibaScriptTargetoptionList(), IvrTaskTemplateTargetoption.class);
|
ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
|
|
if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()) == nextScriptno) {
|
Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
|
log.error("map的信息为:{}", map);
|
nextScriptno = Long.valueOf(map.get("nextScriptNo"));
|
if (score == null) {
|
score = Double.valueOf(map.get("score"));
|
} else {
|
score = score + Double.valueOf(map.get("score"));
|
}
|
}
|
}
|
}
|
} else {
|
continue;
|
}
|
//将该key和value从redis中,删除
|
redisCache.deleteObject(key);
|
ServiceSubtask serviceSubtask = new ServiceSubtask();
|
serviceSubtask.setTaskid(tid);
|
serviceSubtask.setPatid(pid);
|
serviceSubtask.setSubmit(1L);
|
serviceSubtask.setSendstate(6L);
|
serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep());
|
serviceSubtask.setFinishtime(new Date());
|
serviceSubtask.setUpdateTime(new Date());
|
log.error("将该key和value从redis中,serviceSubtask的值为--------:{}", serviceSubtask);
|
if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score));
|
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
|
}
|
return 1;
|
}
|
|
|
/**
|
* 将问题保存到缓存中
|
*
|
* @param serviceSubTaskCacheReq
|
* @return
|
*/
|
@Override
|
public Integer saveQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) {
|
try {
|
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
|
Long tid = null;
|
Long pid = null;
|
if (flag == 0L) {
|
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
|
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
|
} else if (flag == 1L) {
|
tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
|
pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
|
}
|
if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 2) {
|
//问卷
|
redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache");
|
redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS());
|
//设置过期时间 3天
|
Long tims = Long.valueOf(3 * 24 * 3600);
|
boolean expire = redisCache.expire(pid + "-" + tid + "-WJscriptCache", tims);
|
return 1;
|
} else if (serviceSubTaskCacheReq.getType() != null && serviceSubTaskCacheReq.getType() == 1) {
|
//问卷
|
redisCache.deleteObject(pid + "-" + tid + "-SFscriptCache");
|
redisCache.setCacheListRight(pid + "-" + tid + "-SFscriptCache", serviceSubTaskCacheReq.getIvrLibaTemplateScriptVOList());
|
//设置过期时间 3天
|
Long tims = Long.valueOf(3 * 24 * 3600);
|
redisCache.expire(pid + "-" + tid + "-SFscriptCache", tims);
|
return 1;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("缓存保存失败:{}", e.getMessage());
|
return 0;
|
}
|
return 0;
|
}
|
|
@Override
|
public Map<String, Object> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq, Long flag) {
|
Map<String, Object> map = new HashMap<>();
|
RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
|
Long tid = null;
|
Long pid = null;
|
Long subId = null;
|
if (flag == 0L) {
|
tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
|
pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
|
//这个是有问题的,先这样,合并代码的时候没有把param6合进来
|
if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6())) {
|
subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
|
}
|
} else if (flag == 1L) {
|
tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
|
pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
|
if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6()))
|
subId = Long.valueOf(serviceSubTaskCacheReq.getParam6());
|
|
}
|
ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
|
serviceSubtaskVO.setTaskid(tid);
|
serviceSubtaskVO.setPatid(pid);
|
serviceSubtaskVO.setSubId(subId);
|
|
List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
|
if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
|
map.put("submit", 0);
|
} else {
|
map.put("submit", selectServiceSubtaskList.get(0).getSubmit());
|
if (selectServiceSubtaskList.get(0).getSubmit() == 1) {
|
return map;
|
}
|
}
|
//问卷
|
List<SvyLibTemplateScriptVO> svyTaskTemplateScriptVOList = redisCache.getCacheList(pid + "-" + tid + "-WJscriptCache");
|
map.put("result", svyTaskTemplateScriptVOList);
|
return map;
|
}
|
|
@Override
|
public Map<String, Object> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq) {
|
log.error("selectPatQuesTionResult的入参为:{}", serviceSubTaskQueryReq);
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
|
if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) {
|
log.error("-----------scriptInfoByCondition的值为:{}", scriptInfoByCondition);
|
if (scriptInfoByCondition.get("type").equals("1")) {
|
List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
|
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
|
Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), ivrLibaTemplateScriptVO.getId());
|
if (ObjectUtils.isNotEmpty(scriptResult)) {
|
ivrLibaTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
|
ivrLibaTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
|
}
|
}
|
map.put("scriptResult", ivrLibaTemplateScriptVOList);
|
map.put("taskName", scriptInfoByCondition.get("taskName"));
|
return map;
|
} else if (scriptInfoByCondition.get("type").equals("2")) {
|
List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
|
for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) {
|
Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId());
|
if (ObjectUtils.isNotEmpty(scriptResult)) {
|
if (StringUtils.isNotEmpty(scriptResult.get("asrtext")))
|
svyLibTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : "");
|
svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
|
}
|
}
|
map.put("scriptResult", scriptInfoByCondition);
|
map.put("taskName", scriptInfoByCondition.get("taskName"));
|
return map;
|
} else if (scriptInfoByCondition.get("type").equals("3")) {
|
//宣教不需要查看
|
List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script");
|
map.put("scriptResult", heLibraryList);
|
map.put("taskName", scriptInfoByCondition.get("taskName"));
|
return map;
|
}
|
}
|
return map;
|
}
|
|
private Map<String, String> getScriptResult(Long subid, Long pid, Long sid) {
|
Map<String, String> map = new HashMap<>();
|
ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail();
|
serviceSubtaskDetail.setSubId(subid);
|
serviceSubtaskDetail.setPatid(pid);
|
serviceSubtaskDetail.setScriptid(sid);
|
List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail);
|
if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) {
|
map.put("asrtext", serviceSubtaskDetails.get(0).getAsrtext());
|
map.put("asrtextId", serviceSubtaskDetails.get(0).getId());
|
return map;
|
}
|
return null;
|
}
|
|
private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid) {
|
ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
|
serviceSubtaskVO.setTaskid(taskid);
|
serviceSubtaskVO.setPatid(patid);
|
List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
|
|
String score = "0";
|
//下题跳转
|
String nextScriptNo = null;
|
ServiceSubtaskDetailVO serviceSubtaskDetailVO = new ServiceSubtaskDetailVO();
|
List<ServiceSubtaskOptionAnswer> answerList = new ArrayList<>();
|
if (svyTaskTemplateScriptVO.getScriptType().equals("1") || svyTaskTemplateScriptVO.getScriptType().equals("2")) {
|
//1、2为单选或多选
|
for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption : svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()) {
|
//将问题选项记录下来
|
if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
|
serviceSubtaskDetailVO.setTargetvalue(svyTaskTemplateTargetoption.getOptioncontent());
|
} else {
|
serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + svyTaskTemplateTargetoption.getOptioncontent());
|
}
|
// if (svyTaskTemplateTargetoption.getIsUserOperation() == true) {
|
// //将选中的结果放到asrtext中
|
// if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) {
|
// //和前端商量,前端会将选中的结果更新到问题上
|
//// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateTargetoption.getTargetvalue());
|
// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult());
|
// } else {
|
// //如果是多选,答案需要用 & 进行拼接(//和前端商量,前端会将选中的结果更新到问题上)
|
//// serviceSubtaskDetailVO.setAsrtext(serviceSubtaskDetailVO.getAnswerps() + "&" + svyTaskTemplateTargetoption.getTargetvalue());
|
// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult());
|
// }
|
// if (svyTaskTemplateScriptVO.getScriptType().equals("1") && svyTaskTemplateScriptVO.getBranchFlag().equals("1")) {
|
// //是单选,并且是有分支的(和前端商量,在外链结果保存时,会将选中的选项上的跳转更新到题目上)
|
//// nextScriptNo = svyTaskTemplateTargetoption.getNextQuestion().toString();
|
// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
|
// score = svyTaskTemplateTargetoption.getScore().toString();
|
// } else {
|
// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
|
// score = svyTaskTemplateScriptVO.getScore().toString();
|
// }
|
// }
|
}
|
nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
|
if (svyTaskTemplateScriptVO.getScore() != null) {
|
score = String.valueOf(svyTaskTemplateScriptVO.getScore());
|
}
|
serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult());
|
// if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) {
|
// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
|
// }
|
// serviceSubtaskDetailVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions());
|
} else {
|
//非单多选
|
if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptResult())) {
|
serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult());
|
if (svyTaskTemplateScriptVO.getScore() != null) {
|
score = String.valueOf(svyTaskTemplateScriptVO.getScore());
|
}
|
}
|
nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
|
}
|
ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
|
serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
|
serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
|
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
|
serviceSubtaskDetailVO.setScriptid(svyTaskTemplateScriptVO.getId());
|
serviceSubtaskDetailVO.setValueType(svyTaskTemplateScriptVO.getScriptType());
|
serviceSubtaskDetailVO.setComment(null);
|
serviceSubtaskDetailVO.setCreateTime(new Date());
|
serviceSubtaskDetailVO.setUpdateTime(new Date());
|
if (ObjectUtils.isNotEmpty(serviceTask)) {
|
serviceSubtaskDetailVO.setGuid(serviceTask.getGuid());
|
serviceSubtaskDetailVO.setOrgid(serviceTask.getOrgid());
|
}
|
serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
|
serviceSubtaskDetailVO.setTemplatequestionnum(svyTaskTemplateScriptVO.getId());
|
ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
|
serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
|
|
Map<String, String> map = new HashMap<>();
|
map.put("nextScriptNo", nextScriptNo);
|
map.put("score", score);
|
return map;
|
}
|
|
private Map<String, String> setSFInfo(IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, Long taskid, Long patid) {
|
ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
|
serviceSubtaskVO.setTaskid(taskid);
|
serviceSubtaskVO.setPatid(patid);
|
List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
|
|
String score = "0";
|
//下题跳转
|
String nextScriptNo = null;
|
ServiceSubtaskDetailVO serviceSubtaskDetailVO = new ServiceSubtaskDetailVO();
|
List<ServiceSubtaskOptionAnswer> answerList = new ArrayList<>();
|
if (ivrTaskTemplateScriptVO.getScriptType().equals("1") || ivrTaskTemplateScriptVO.getScriptType().equals("2")) {
|
//1、2为单选或多选
|
for (IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption : ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList()) {
|
//将问题选项记录下来
|
if (StringUtils.isEmpty(serviceSubtaskDetailVO.getTargetvalue())) {
|
serviceSubtaskDetailVO.setTargetvalue(ivrTaskTemplateTargetoption.getTargetvalue());
|
} else {
|
serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + ivrTaskTemplateTargetoption.getTargetvalue());
|
}
|
|
}
|
nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
|
if (ivrTaskTemplateScriptVO.getScore() != null) {
|
score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
|
}
|
if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
|
serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
|
serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
|
}
|
} else {
|
//非单多选
|
if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getQuestionResult())) {
|
serviceSubtaskDetailVO.setAsrtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
|
serviceSubtaskDetailVO.setMatchedtext(ivrTaskTemplateScriptVO.getQuestionResult().replaceAll("^\"|\"$", ""));
|
nextScriptNo = ivrTaskTemplateScriptVO.getNextScriptno().toString();
|
if (ivrTaskTemplateScriptVO.getScore() != null) {
|
score = String.valueOf(ivrTaskTemplateScriptVO.getScore());
|
}
|
}
|
}
|
serviceSubtaskDetailVO.setQuestiontext(ivrTaskTemplateScriptVO.getScriptContent());
|
serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
|
serviceSubtaskDetailVO.setPatid(Long.valueOf(patid));
|
serviceSubtaskDetailVO.setScriptid(ivrTaskTemplateScriptVO.getId());
|
serviceSubtaskDetailVO.setValueType(ivrTaskTemplateScriptVO.getScriptType());
|
serviceSubtaskDetailVO.setComment(null);
|
serviceSubtaskDetailVO.setCreateTime(new Date());
|
serviceSubtaskDetailVO.setGuid(ivrTaskTemplateScriptVO.getGuid());
|
serviceSubtaskDetailVO.setOrgid(ivrTaskTemplateScriptVO.getOrgid());
|
serviceSubtaskDetailVO.setUpdateTime(new Date());
|
serviceSubtaskDetailVO.setSubId(selectServiceSubtaskList.get(0).getId());
|
serviceSubtaskDetailVO.setTemplatequestionnum(ivrTaskTemplateScriptVO.getId());
|
ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
|
serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
|
|
Map<String, String> map = new HashMap<>();
|
map.put("nextScriptNo", nextScriptNo);
|
map.put("score", score);
|
return map;
|
}
|
}
|