|  |  | 
 |  |  |     private ServiceSubtaskMapper serviceSubtaskMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IvrTaskTemplateMapper ivrTaskTemplateMapper; | 
 |  |  |     private ServiceTaskdeptMapper serviceTaskdeptMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private PatArchiveImportMapper patArchiveImportMapper; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SvyTaskTemplateMapper svyTaskTemplateMapper; | 
 |  |  |     private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HeLibraryMapper heLibraryMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; | 
 |  |  |     private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private PatArchiveMapper patArchiveMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private PatMedInhospMapper patMedInhospMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private PatMedOuthospMapper patMedOuthospMapper; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; | 
 |  |  |     private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private RedisCache redisCache; | 
 |  |  | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     @Override | 
 |  |  |     public Boolean deleteServiceTaskByTaskid(Long taskid) { | 
 |  |  |         ServiceSubtask ServiceTaskcall = new ServiceSubtask(); | 
 |  |  |         ServiceTaskcall.setTaskid(taskid); | 
 |  |  |         ServiceTaskcall.setDelFlag("1"); | 
 |  |  |         Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(ServiceTaskcall); | 
 |  |  |         ServiceSubtask serviceSubtask = new ServiceSubtask(); | 
 |  |  |         serviceSubtask.setTaskid(taskid); | 
 |  |  |  | 
 |  |  |         //查询子任务 | 
 |  |  |         ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class); | 
 |  |  |         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |         for (ServiceSubtask ss : serviceSubtaskList) { | 
 |  |  |             log.error("sfSend需要移除的subId为:{}", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-exist", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-0", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-1", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-2", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-3", ss.getId().toString()); | 
 |  |  |             redisCache.removeElementFromList("cache-4", ss.getId().toString()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         serviceSubtask.setDelFlag("1"); | 
 |  |  |         Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask); | 
 |  |  |  | 
 |  |  |         //关联表删除 | 
 |  |  |         ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); | 
 |  |  |         serviceTaskdept.setTaskId(taskid); | 
 |  |  |         int i = serviceTaskdeptMapper.deleteServiceTaskdeptByTaskId(serviceTaskdept); | 
 |  |  |  | 
 |  |  |         Boolean isSuccess = false; | 
 |  |  |         if (!aBoolean) { | 
 |  |  |         if (!aBoolean || i <= 0) { | 
 |  |  |             new BaseException("任务删除失败"); | 
 |  |  |         } | 
 |  |  |         isSuccess = serviceTaskMapper.deleteServiceTaskByTaskid(taskid); | 
 |  |  |         return isSuccess; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取随访及时率 | 
 |  |  |      * | 
 |  |  |      * @param serviceSubtask | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Map<String, Object> selectTimelyRate(ServiceSubtask serviceSubtask) { | 
 |  |  |         if (serviceSubtask.getEndtime() != null && new Date().before(serviceSubtask.getEndtime())) { | 
 |  |  |             serviceSubtask.setEndtime(new Date()); | 
 |  |  |         } | 
 |  |  |         Double dob = serviceSubtaskMapper.selectTimelyRate(serviceSubtask); | 
 |  |  |         // 1. 查询全部数据(SQL不分页) | 
 |  |  |         List<ServiceSubtask> allList = serviceSubtaskMapper.selectTimelyRateDetail(serviceSubtask); | 
 |  |  |         // 2. Java代码分页 | 
 |  |  |         int pageNum = serviceSubtask.getPn() != null ? serviceSubtask.getPn() : 1; | 
 |  |  |         int pageSize = serviceSubtask.getPs() != null ? serviceSubtask.getPs() : 10; | 
 |  |  |         int fromIndex = (pageNum - 1) * pageSize; | 
 |  |  |         int toIndex = Math.min(fromIndex + pageSize, allList.size()); | 
 |  |  |         List<ServiceSubtask> pageList = new ArrayList<>(); | 
 |  |  |         if (fromIndex < allList.size()) { | 
 |  |  |             pageList = allList.subList(fromIndex, toIndex); | 
 |  |  |         } | 
 |  |  |         log.info("代码分页参数: pageNum={}, pageSize={}, fromIndex={}, toIndex={}, total={}", pageNum, pageSize, fromIndex, toIndex, allList.size()); | 
 |  |  |         Map<String, Object> map = new HashMap<>(); | 
 |  |  |         map.put("rate", dob); | 
 |  |  |         map.put("detail", pageList); | 
 |  |  |         map.put("total", allList.size()); // 可选:返回总数 | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |         ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); | 
 |  |  |         serviceSubtaskVO.setPatid(patid); | 
 |  |  |         serviceSubtaskVO.setTaskid(taskid); | 
 |  |  | //        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |         serviceSubtaskVO.setSendstate(3L); | 
 |  |  |         List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  | //        //查询患者是否重覆做题 | 
 |  |  | //        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { | 
 |  |  | //            Long submit = selectServiceSubtaskList.get(0).getSubmit(); | 
 |  |  | 
 |  |  |                 ServiceSubtask ss = new ServiceSubtask(); | 
 |  |  |                 ss.setTaskid(taskid); | 
 |  |  |                 ss.setPatid(patid); | 
 |  |  |                 ss.setSendstate(1L); | 
 |  |  |                 ss.setResult("success"); | 
 |  |  |                 ss.setFinishtime(new Date()); | 
 |  |  |                 serviceSubtaskMapper.updateServiceSubtaskByCondition(ss); | 
 |  |  |                 Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss); | 
 |  |  |                 if (integer != null && integer != 6) { | 
 |  |  |                     ss.setSendstate(1L); | 
 |  |  |                     serviceSubtaskMapper.updateServiceSubtaskByCondition(ss); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid()); | 
 |  |  |         if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) { | 
 |  |  |             //将当前方式的发送状态改成已领取 | 
 |  |  |             ServiceSubtask serviceSubtask = selectServiceSubtaskList.get(0); | 
 |  |  |             ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); | 
 |  |  |             serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform()); | 
 |  |  |             serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); | 
 |  |  |             serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); | 
 |  |  |             List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); | 
 |  |  |             if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { | 
 |  |  |                 ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); | 
 |  |  |                 ssp.setSendstate("3"); | 
 |  |  |                 serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb()); | 
 |  |  |         map.put("script", info); | 
 |  |  |         if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy()); | 
 |  |  |         map.put("type", serviceTask.getType()); | 
 |  |  |         map.put("taskName", serviceTask.getTaskName()); | 
 |  |  |         map.put("submit", "0"); | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) { | 
 |  |  |         //通过任务ID获取模板ID | 
 |  |  |         ServiceTask serviceTask = selectServiceTaskByTaskid(taskid); | 
 |  |  |         //通过模板ID获取问题信息 | 
 |  |  |         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)) { | 
 |  |  |             PatMedInhospVO patMedInhospVO = new PatMedInhospVO(); | 
 |  |  |             patMedInhospVO.setSerialnum(zyserialnum); | 
 |  |  |             List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO); | 
 |  |  |             if (CollectionUtils.isNotEmpty(patMedInhospList)) { | 
 |  |  |                 patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid()); | 
 |  |  |             } | 
 |  |  |         } else if (StringUtils.isNotEmpty(mzserialnum)) { | 
 |  |  |             PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); | 
 |  |  |             patMedOuthosp.setSerialnum(mzserialnum); | 
 |  |  |             List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); | 
 |  |  |             if (CollectionUtils.isNotEmpty(patMedOuthosps)) { | 
 |  |  |                 patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid()); | 
 |  |  |             } | 
 |  |  |         } else if (StringUtils.isNotEmpty(tsserialnum)) { | 
 |  |  |             PatArchive pa = new PatArchive(); | 
 |  |  |             pa.setPatientno(tsserialnum); | 
 |  |  |             List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(pa); | 
 |  |  |             if (CollectionUtils.isNotEmpty(patArchives)) patArchive = patArchives.get(0); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //判断一下今天是否已经做过题,做过就不让再做了 | 
 |  |  |         ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); | 
 |  |  |         serviceSubtaskVO.setTaskid(taskid); | 
 |  |  |         serviceSubtaskVO.setPatid(patArchive.getId()); | 
 |  |  |         serviceSubtaskVO.setVisitTime(new Date()); | 
 |  |  |         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |         if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() > 0) { | 
 |  |  |             Map<String, Object> map = new HashMap<>(); | 
 |  |  |             map.put("result", "今日已经做过满意度调查 ,无需再重复做答!"); | 
 |  |  |             return map; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); | 
 |  |  |         //将模板问题话术里的通配符替换 | 
 |  |  |         ObjectMapper objectMapper = new ObjectMapper(); | 
 |  |  |         Map<String, Map<String, String>> serviceTaskMap = null; | 
 |  |  |         try { | 
 |  |  |             serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class); | 
 |  |  |         } catch (JsonProcessingException e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         List<Map<String, String>> mapList = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |         for (Map<String, String> map : serviceTaskMap.values()) { | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |         for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) { | 
 |  |  |                 for (Map<String, String> map : mapList) { | 
 |  |  |                     for (String key : map.keySet()) { | 
 |  |  |  | 
 |  |  |                         svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //替换患者个人信息数据 | 
 |  |  |                 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() : "")); | 
 |  |  |                 } | 
 |  |  |                 //获取问题选项 | 
 |  |  |                 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", svyTaskTemplateScriptVOS); | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     public List sfInfo(ServiceTask serviceTask, Long patid, String patfrom) { | 
 |  |  |         //通过模板ID获取问题信息 | 
 |  |  |         IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript(); | 
 |  |  |         ivrLibaTemplateScript.setTemplateid(Long.valueOf(serviceTask.getLibtemplateid())); | 
 |  |  |         ivrLibaTemplateScript.setDelFlag("0"); | 
 |  |  |         List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript); | 
 |  |  |         if (CollectionUtils.isEmpty(ivrLibaTemplateScripts) || ivrLibaTemplateScripts.size() == 0) { | 
 |  |  |         IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript(); | 
 |  |  |         ivrTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); | 
 |  |  |         ivrTaskTemplateScript.setDelFlag("0"); | 
 |  |  |         List<IvrTaskTemplateScript> ivrTaskTemplateScripts = ivrTaskTemplateScriptMapper.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript); | 
 |  |  |         if (CollectionUtils.isEmpty(ivrTaskTemplateScripts) || ivrTaskTemplateScripts.size() == 0) { | 
 |  |  |             log.info("ivrLibaTemplateScripts为空了,请尽快联系管理员处理"); | 
 |  |  |             return new ArrayList<>(); | 
 |  |  |         } | 
 |  |  |         List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class); | 
 |  |  |         List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScripts, IvrTaskTemplateScriptVO.class); | 
 |  |  |  | 
 |  |  |         //获取患者信息 | 
 |  |  |         PatArchive patArchive = null; | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //将模板问题话术里的通配符替换 | 
 |  |  |         for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptContent())) { | 
 |  |  |         for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) { | 
 |  |  |             if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptContent())) { | 
 |  |  |                 for (Map<String, String> map : mapList) { | 
 |  |  |                     for (String key : map.keySet()) { | 
 |  |  |  | 
 |  |  |                         ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); | 
 |  |  |                         ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //替换患者个人信息数据 | 
 |  |  |                 ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); | 
 |  |  |                 ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); | 
 |  |  |                 ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); | 
 |  |  |                 ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); | 
 |  |  |                 ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); | 
 |  |  |                 ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); | 
 |  |  |  | 
 |  |  |                 //获取问题选项 | 
 |  |  |                 IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption(); | 
 |  |  |                 ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId()); | 
 |  |  |                 List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption); | 
 |  |  |                 ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions); | 
 |  |  |                 IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption(); | 
 |  |  |                 ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId()); | 
 |  |  |                 List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetOptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption); | 
 |  |  |                 ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingInt(IvrLibaTemplateScriptVO::getSort)); | 
 |  |  |         Collections.sort(ivrTaskTemplateScriptVOS, Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort)); | 
 |  |  |  | 
 |  |  |         return ivrLibaTemplateScriptVOS; | 
 |  |  |         return ivrTaskTemplateScriptVOS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |         serviceSubtaskVO.setPatid(patid); | 
 |  |  |         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |         if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) { | 
 |  |  |             if (serviceSubtaskList.get(0).getSendstate() != 6 && isFinish == true) { | 
 |  |  |             if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) { | 
 |  |  |                 ServiceSubtask serviceSubtask = new ServiceSubtask(); | 
 |  |  |                 serviceSubtask.setSendstate(7L); | 
 |  |  |                 serviceSubtask.setSendstate(1L); | 
 |  |  |                 serviceSubtask.setPatid(patid); | 
 |  |  |                 serviceSubtask.setTaskid(serviceTask.getTaskid()); | 
 |  |  |                 serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         //通过模板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为空了,请尽快联系管理员处理"); | 
 |  |  |         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.info("svyTaskTemplateScripts为空了,请尽快联系管理员处理"); | 
 |  |  |             return new ArrayList<>(); | 
 |  |  |         } | 
 |  |  |         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); | 
 |  |  |                 svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         Collections.sort(svyLibTemplateScriptVOS, Comparator.comparingLong(SvyLibTemplateScriptVO::getSort)); | 
 |  |  |         return svyLibTemplateScriptVOS; | 
 |  |  |         Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort)); | 
 |  |  |         return svyTaskTemplateScriptVOS; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) { | 
 |  |  | 
 |  |  |             ServiceSubtask serviceSubtask = new ServiceSubtask(); | 
 |  |  |             serviceSubtask.setTaskid(taskid); | 
 |  |  |             serviceSubtask.setPatid(patid); | 
 |  |  |             serviceSubtask.setResult("完成"); | 
 |  |  |             serviceSubtask.setFinishtime(new Date()); | 
 |  |  |             serviceSubtask.setUpdateTime(new Date()); | 
 |  |  |             log.error("serviceSubtask---xjInfo-的修改数据:{}", serviceSubtask); | 
 |  |  |             serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); | 
 |  |  |             Integer integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask); | 
 |  |  |             if (integer == 3) { | 
 |  |  |                 serviceSubtask.setResult("完成"); | 
 |  |  |                 serviceSubtask.setFinishtime(new Date()); | 
 |  |  |                 serviceSubtask.setSendstate(6L); | 
 |  |  |                 serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId)); | 
 |  |  |         List list = new ArrayList(); |