| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.smartor.domain.SvyTask; |
| | | import com.smartor.mapper.SvyTaskMapper; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.ISvyTaskService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 综合问卷任务(任务)Service业务层处理 |
| | |
| | | * @author ruoyi |
| | | * @date 2024-06-12 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SvyTaskServiceImpl implements ISvyTaskService |
| | | { |
| | | public class SvyTaskServiceImpl implements ISvyTaskService { |
| | | @Autowired |
| | | private SvyTaskMapper svyTaskMapper; |
| | | |
| | | @Autowired |
| | | private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; |
| | | |
| | | @Autowired |
| | | private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; |
| | | |
| | | @Autowired |
| | | private SvyTaskSingleMapper svyTaskSingleMapper; |
| | | |
| | | @Autowired |
| | | private PatArchiveMapper patArchiveMapper; |
| | | |
| | | /** |
| | | * 查询综合问卷任务(任务) |
| | |
| | | * @return 综合问卷任务(任务) |
| | | */ |
| | | @Override |
| | | public SvyTask selectSvyTaskByTaskid(Long taskid) |
| | | { |
| | | public SvyTask selectSvyTaskByTaskid(Long taskid) { |
| | | return svyTaskMapper.selectSvyTaskByTaskid(taskid); |
| | | } |
| | | |
| | |
| | | * @return 综合问卷任务(任务) |
| | | */ |
| | | @Override |
| | | public List<SvyTask> selectSvyTaskList(SvyTask svyTask) |
| | | { |
| | | public List<SvyTask> selectSvyTaskList(SvyTask svyTask) { |
| | | return svyTaskMapper.selectSvyTaskList(svyTask); |
| | | } |
| | | |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int insertSvyTask(SvyTask svyTask) |
| | | { |
| | | public int insertSvyTask(SvyTask svyTask) { |
| | | svyTask.setCreateTime(DateUtils.getNowDate()); |
| | | return svyTaskMapper.insertSvyTask(svyTask); |
| | | } |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int updateSvyTask(SvyTask svyTask) |
| | | { |
| | | public int updateSvyTask(SvyTask svyTask) { |
| | | svyTask.setUpdateTime(DateUtils.getNowDate()); |
| | | return svyTaskMapper.updateSvyTask(svyTask); |
| | | } |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteSvyTaskByTaskids(Long[] taskids) |
| | | { |
| | | public int deleteSvyTaskByTaskids(Long[] taskids) { |
| | | return svyTaskMapper.deleteSvyTaskByTaskids(taskids); |
| | | } |
| | | |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteSvyTaskByTaskid(Long taskid) |
| | | { |
| | | public int deleteSvyTaskByTaskid(Long taskid) { |
| | | return svyTaskMapper.deleteSvyTaskByTaskid(taskid); |
| | | } |
| | | |
| | | @Override |
| | | public List<SvyLibTemplateScriptVO> getScriptInfoByCondition(Long taskid, Long patid) { |
| | | //通过任务ID获取模板ID |
| | | SvyTask svyTask = selectSvyTaskByTaskid(taskid); |
| | | |
| | | //通过模板ID获取问题信息 |
| | | SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); |
| | | svyLibTemplateScript.setId(Long.valueOf(svyTask.getTemplateid())); |
| | | svyLibTemplateScript.setDelFlag("0"); |
| | | List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) { |
| | | log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理"); |
| | | return new ArrayList<>(); |
| | | } |
| | | List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); |
| | | |
| | | //获取患者信息 |
| | | PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid); |
| | | |
| | | //通过患者信息和任务信息中的textParam对问题中的变量进行填充 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | Map<String, Map<String, String>> ivrTaskMap = null; |
| | | try { |
| | | ivrTaskMap = objectMapper.readValue(svyTask.getTextParam(), Map.class); |
| | | } catch (JsonProcessingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<Map<String, String>> mapList = new ArrayList<>(); |
| | | |
| | | for (Map<String, String> map : ivrTaskMap.values()) { |
| | | mapList.add(map); |
| | | } |
| | | |
| | | //将模板问题话术里的通配符替换 |
| | | for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { |
| | | if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { |
| | | for (Map<String, String> map : mapList) { |
| | | for (String key : map.keySet()) { |
| | | |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); |
| | | } |
| | | } |
| | | //替换患者个人信息数据 |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); |
| | | |
| | | //获取问题选项 |
| | | SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption(); |
| | | svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId()); |
| | | List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption); |
| | | svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); |
| | | } |
| | | } |
| | | |
| | | //只要打开了页面就算成功 |
| | | SvyTaskSingle svyTaskSingle = new SvyTaskSingle(); |
| | | svyTaskSingle.setTaskid(taskid); |
| | | svyTaskSingle.setPatid(patid); |
| | | svyTaskSingle.setResult("success"); |
| | | svyTaskSingle.setFinishtime(new Date()); |
| | | svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle); |
| | | |
| | | return svyLibTemplateScriptVOS; |
| | | } |
| | | } |