| | |
| | | private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; |
| | | |
| | | @Autowired |
| | | private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper; |
| | | private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; |
| | | |
| | | @Autowired |
| | | private PatArchiveMapper patArchiveMapper; |
| | |
| | | private PatReservationRecordMapper patReservationRecordMapper; |
| | | |
| | | @Autowired |
| | | private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; |
| | | private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; |
| | | |
| | | @Autowired |
| | | private RedisCache redisCache; |
| | |
| | | } |
| | | } |
| | | |
| | | // 通过模板ID获取问题信息 |
| | | SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); |
| | | svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); |
| | | svyTaskTemplateScript.setDelFlag("0"); |
| | | List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) { |
| | | log.warn("svyTaskTemplateScripts为空,请尽快联系管理员处理"); |
| | | return Collections.emptyList(); |
| | | //通过模板ID获取问题信息 |
| | | SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); |
| | | svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid())); |
| | | svyLibTemplateScript.setDelFlag("0"); |
| | | List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) { |
| | | log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理"); |
| | | return new ArrayList<>(); |
| | | } |
| | | List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); |
| | | List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); |
| | | |
| | | // 获取患者信息 |
| | | //获取患者信息 |
| | | PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid); |
| | | |
| | | // 解析textParam |
| | | Map<String, Map<String, String>> ivrTaskMap = Collections.emptyMap(); |
| | | //通过患者信息和任务信息中的textParam对问题中的变量进行填充 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | Map<String, Map<String, String>> ivrTaskMap = null; |
| | | try { |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | ivrTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class); |
| | | } catch (Exception e) { |
| | | log.error("解析textParam失败", e); |
| | | } catch (JsonProcessingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<Map<String, String>> mapList = new ArrayList<>(ivrTaskMap.values()); |
| | | List<Map<String, String>> mapList = new ArrayList<>(); |
| | | |
| | | // 替换模板问题话术里的通配符 |
| | | for (SvyTaskTemplateScriptVO scriptVO : svyTaskTemplateScriptVOS) { |
| | | String content = scriptVO.getScriptContent(); |
| | | if (StringUtils.isNotEmpty(content)) { |
| | | // 替换变量 |
| | | 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 (Map.Entry<String, String> entry : map.entrySet()) { |
| | | String key = entry.getKey(); |
| | | String value = StringUtils.defaultString(entry.getValue()); |
| | | content = content.replace(key, value); |
| | | for (String key : map.keySet()) { |
| | | |
| | | svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); |
| | | } |
| | | } |
| | | // 替换患者个人信息 |
| | | content = content.replace("${name}", StringUtils.defaultString(patArchive.getName())) |
| | | .replace("${dzz}", StringUtils.defaultString(patArchive.getPlaceOfResidence())) |
| | | .replace("${dhh}", StringUtils.defaultString(patArchive.getTelcode())); |
| | | scriptVO.setScriptContent(content); |
| | | |
| | | // 获取问题选项 |
| | | SvyTaskTemplateTargetoption optionQuery = new SvyTaskTemplateTargetoption(); |
| | | optionQuery.setScriptid(scriptVO.getId()); |
| | | List<SvyTaskTemplateTargetoption> options = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(optionQuery); |
| | | //替换患者个人信息数据 |
| | | log.error("问题id:{}, 问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent()); |
| | | if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { |
| | | 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); |
| | | |
| | | // 判断预约人数 |
| | | for (SvyTaskTemplateTargetoption stt : options) { |
| | | for (SvyLibTemplateTargetoption stt : svyLibTemplateTargetoptions) { |
| | | Boolean full = patReservationRecordMapper.existsEqualNum(stt.getId()); |
| | | if (Boolean.TRUE.equals(full)) { |
| | | stt.setPerson(-1L); |
| | |
| | | stt.setJmid(id); |
| | | stt.setId(null); |
| | | } |
| | | scriptVO.setSvyTaskTemplateTargetoptions(options); |
| | | svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); |
| | | } |
| | | } |
| | | svyTaskTemplateScriptVOS.sort(Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort)); |
| | | return svyTaskTemplateScriptVOS; |
| | | svyLibTemplateScriptVOS.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort)); |
| | | return svyLibTemplateScriptVOS; |
| | | } |
| | | |
| | | private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) { |