|  |  | 
 |  |  |     private HeLibraryMapper heLibraryMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; | 
 |  |  |     private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper; | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; | 
 |  |  |     private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; | 
 |  |  |     private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private RedisCache redisCache; | 
 |  |  | 
 |  |  |         //通过任务ID获取模板ID | 
 |  |  |         ServiceTask serviceTask = selectServiceTaskByTaskid(taskid); | 
 |  |  |         //通过模板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 null; | 
 |  |  |         SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); | 
 |  |  |         svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); | 
 |  |  |         svyTaskTemplateScript.setDelFlag("0"); | 
 |  |  |         List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); | 
 |  |  |         if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) { | 
 |  |  |             log.error("svyTaskTemplateScripts为空了,请尽快联系管理员处理"); | 
 |  |  |             throw new BaseException("svyTaskTemplateScripts为空了,请尽快联系管理员处理"); | 
 |  |  |         } | 
 |  |  |         PatArchive patArchive = null; | 
 |  |  |         if (StringUtils.isNotEmpty(zyserialnum)) { | 
 |  |  | 
 |  |  |             return map; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); | 
 |  |  |         List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); | 
 |  |  |         //将模板问题话术里的通配符替换 | 
 |  |  |         ObjectMapper objectMapper = new ObjectMapper(); | 
 |  |  |         Map<String, Map<String, String>> serviceTaskMap = null; | 
 |  |  | 
 |  |  |         for (Map<String, String> map : serviceTaskMap.values()) { | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |         for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { | 
 |  |  |         for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.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) : "")); | 
 |  |  |                         svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //替换患者个人信息数据 | 
 |  |  |                 log.error("问题id:{},   问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent()); | 
 |  |  |                 if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { | 
 |  |  |                     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() : "")); | 
 |  |  |                 log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent()); | 
 |  |  |                 if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.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); | 
 |  |  |                 SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption(); | 
 |  |  |                 svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getId()); | 
 |  |  |                 List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption); | 
 |  |  |                 svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         Map<String, Object> map = new HashMap<>(); | 
 |  |  |         map.put("result", null); | 
 |  |  |         map.put("svyLibTemplateScriptVOS", svyLibTemplateScriptVOS); | 
 |  |  |         map.put("svyLibTemplateScriptVOS", svyTaskTemplateScriptVOS); | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         //通过模板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<>(); | 
 |  |  |         SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); | 
 |  |  |         svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); | 
 |  |  |         svyTaskTemplateScript.setDelFlag("0"); | 
 |  |  |         List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); | 
 |  |  |         if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) { | 
 |  |  |             insertSvyTaskTempScript(null, serviceTask); | 
 |  |  |             svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); | 
 |  |  |             if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) { | 
 |  |  |                 throw new BaseException("请联系管理员,检查问题模板信息!"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); | 
 |  |  |         List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); | 
 |  |  |  | 
 |  |  |         //获取患者信息 | 
 |  |  |         PatArchive patArchive = null; | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //将模板问题话术里的通配符替换 | 
 |  |  |         for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { | 
 |  |  |         for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.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) : "")); | 
 |  |  |                         svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //替换患者个人信息数据 | 
 |  |  |                 log.error("问题id:{},   问题内容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent()); | 
 |  |  |                 if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { | 
 |  |  |                     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() : "")); | 
 |  |  |                 log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent()); | 
 |  |  |                 if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); | 
 |  |  |                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.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); | 
 |  |  |                 SvyTaskTemplateTargetoption svyTaskTemplateTargetoption = new SvyTaskTemplateTargetoption(); | 
 |  |  |                 svyTaskTemplateTargetoption.setScriptid(svyTaskTemplateScriptVO.getId()); | 
 |  |  |                 if (svyTaskTemplateTargetoption.getDynamiccruxs().size() == 0) | 
 |  |  |                     svyTaskTemplateTargetoption.setDynamiccruxs(null); | 
 |  |  |                 if (svyTaskTemplateTargetoption.getNodynamiccruxs().size() == 0) | 
 |  |  |                     svyTaskTemplateTargetoption.setNodynamiccruxs(null); | 
 |  |  |                 List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption); | 
 |  |  |                 if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoptions)) { | 
 |  |  |                     svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); | 
 |  |  |                 } else { | 
 |  |  |                     //如果选项没有查到,需要去基础模板库将选项查询出来,放到任务模板选项库中 | 
 |  |  |                     insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask); | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         Collections.sort(svyLibTemplateScriptVOS, Comparator.comparingLong(SvyLibTemplateScriptVO::getSort)); | 
 |  |  |         return svyLibTemplateScriptVOS; | 
 |  |  |         Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort)); | 
 |  |  |         return svyTaskTemplateScriptVOS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, ServiceTask serviceTask) { | 
 |  |  |         log.info("-------基础模板libtemplateid的值为:{}", serviceTask.getLibtemplateid()); | 
 |  |  |         if (StringUtils.isEmpty(serviceTask.getLibtemplateid())) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); | 
 |  |  |         svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid())); | 
 |  |  |         List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); | 
 |  |  |         log.info("-------基础模板svyLibTemplateScripts问题值为:{}", svyLibTemplateScripts.size()); | 
 |  |  |         for (SvyLibTemplateScript sll : svyLibTemplateScripts) { | 
 |  |  |             if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptVO)) { | 
 |  |  |                 if (sll.getScriptContent().trim().equals(svyTaskTemplateScriptVO.getScriptContent().trim())) { | 
 |  |  |                     SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption(); | 
 |  |  |                     sltto.setScriptid(sll.getId()); | 
 |  |  |                     List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto); | 
 |  |  |  | 
 |  |  |                     //将查出来的选项,放到svyTaskTemplateTargetoption中 | 
 |  |  |                     List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class); | 
 |  |  |                     for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) { | 
 |  |  |                         svyTaskTemplateTargetoptionList.get(i).setTemplateID(svyTaskTemplateScriptVO.getTemplateID()); | 
 |  |  |                         svyTaskTemplateTargetoptionList.get(i).setScriptid(svyTaskTemplateScriptVO.getId()); | 
 |  |  |                         svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i)); | 
 |  |  |                         log.info("-------新增完之后的选项ID值为:{}", svyTaskTemplateTargetoptionList.get(i).getId()); | 
 |  |  |                     } | 
 |  |  |                     svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptionList); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 //新增问题 | 
 |  |  |                 SvyTaskTemplateScript stts = DtoConversionUtils.sourceToTarget(sll, SvyTaskTemplateScript.class); | 
 |  |  |                 stts.setId(null); | 
 |  |  |                 stts.setTaskid(serviceTask.getTaskid()); | 
 |  |  |                 stts.setTemplateID(serviceTask.getTemplateid()); | 
 |  |  |                 svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(stts); | 
 |  |  |  | 
 |  |  |                 //新增问题选项 | 
 |  |  |                 SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption(); | 
 |  |  |                 sltto.setScriptid(sll.getId()); | 
 |  |  |                 List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto); | 
 |  |  |                 List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class); | 
 |  |  |                 for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) { | 
 |  |  |                     svyTaskTemplateTargetoptionList.get(i).setTemplateID(serviceTask.getTemplateid()); | 
 |  |  |                     svyTaskTemplateTargetoptionList.get(i).setScriptid(stts.getId()); | 
 |  |  |                     svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i)); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) { |