| | |
| | | serviceSubtaskVO.setPatid(patid); |
| | | } |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = null; |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) { |
| | | if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) { |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setSendstate(1L); |
| | | serviceSubtask.setPatid(patid); |
| | | serviceSubtask.setTaskid(serviceTask.getTaskid()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask); |
| | | } |
| | | |
| | | //通过模板ID获取问题信息 |
| | | SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); |
| | | svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); |
| | | if (serviceSubtaskList.get(0).getTemplateid() != null) |
| | | svyTaskTemplateScript.setTemplateID(serviceSubtaskList.get(0).getTemplateid()); |
| | | else if (serviceTask.getTemplateid() != null) |
| | | svyTaskTemplateScript.setTemplateID(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("请联系管理员,检查问题模板信息!"); |
| | | } |
| | | } |
| | | svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); |
| | | if (CollectionUtils.isEmpty(serviceSubtaskList)) { |
| | | throw new BaseException("未找到患者子任务,taskid=" + serviceTask.getTaskid() |
| | | + ", patid=" + patid + ", subId=" + subId); |
| | | } |
| | | if (serviceSubtaskList.size() > 1) { |
| | | throw new BaseException("存在多条患者子任务,请传入子任务ID后再查询,taskid=" + serviceTask.getTaskid() |
| | | + ", patid=" + patid); |
| | | } |
| | | |
| | | ServiceSubtask serviceSubtask = serviceSubtaskList.get(0); |
| | | if (Long.valueOf(3L).equals(serviceSubtask.getSendstate()) && Boolean.TRUE.equals(isFinish)) { |
| | | ServiceSubtask updateSubtask = new ServiceSubtask(); |
| | | updateSubtask.setSendstate(1L); |
| | | updateSubtask.setPatid(patid); |
| | | updateSubtask.setTaskid(serviceTask.getTaskid()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByPatId(updateSubtask); |
| | | } |
| | | |
| | | // 子任务模板优先;子任务未设置时回退到任务模板。 |
| | | Long templateId = serviceSubtask.getTemplateid() != null |
| | | ? serviceSubtask.getTemplateid() : serviceTask.getTemplateid(); |
| | | if (templateId == null) { |
| | | throw new BaseException("任务未配置问卷模板,taskid=" + serviceTask.getTaskid()); |
| | | } |
| | | |
| | | // 查询与兜底复制必须使用同一个模板ID,否则会出现“复制到A、仍查B”的死循环。 |
| | | SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript(); |
| | | svyTaskTemplateScript.setTemplateID(templateId); |
| | | svyTaskTemplateScript.setDelFlag("0"); |
| | | List<SvyTaskTemplateScript> svyTaskTemplateScripts = |
| | | svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) { |
| | | log.warn("问卷任务模板问题为空,开始从模板库兜底复制, taskid={}, patid={}, subId={}, queryTemplateId={}, taskTemplateId={}, libTemplateId={}", |
| | | serviceTask.getTaskid(), patid, subId, templateId, |
| | | serviceTask.getTemplateid(), serviceTask.getLibtemplateid()); |
| | | insertSvyTaskTempScript(null, serviceTask, templateId); |
| | | svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript); |
| | | if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) { |
| | | throw new BaseException("请联系管理员,检查问题模板信息! taskid=" + serviceTask.getTaskid() |
| | | + ", templateId=" + templateId + ", libTemplateId=" + serviceTask.getLibtemplateid()); |
| | | } |
| | | } |
| | | List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = |
| | | DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class); |
| | | //获取患者信息 |
| | | PatArchive patArchive = null; |
| | | if (patfrom.equals("0")) patArchive = patArchiveMapper.selectPatArchiveByPatid(patid); |
| | |
| | | svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); |
| | | } else { |
| | | //如果选项没有查到,需要去基础模板库将选项查询出来,放到任务模板选项库中 |
| | | insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask); |
| | | insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask, templateId); |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, ServiceTask serviceTask) { |
| | | log.info("-------基础模板libtemplateid的值为:{}", serviceTask.getLibtemplateid()); |
| | | private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, |
| | | ServiceTask serviceTask, Long targetTemplateId) { |
| | | log.info("-------基础模板libtemplateid的值为:{},目标templateID为:{}", serviceTask.getLibtemplateid(), targetTemplateId); |
| | | if (targetTemplateId == null) { |
| | | log.warn("目标模板ID为空,无法复制基础模板问题, taskid={}", serviceTask.getTaskid()); |
| | | return; |
| | | } |
| | | if (StringUtils.isEmpty(serviceTask.getLibtemplateid())) { |
| | | return; |
| | | } |
| | |
| | | log.info("-------基础模板svyLibTemplateScripts问题值为:{}", svyLibTemplateScripts.size()); |
| | | for (SvyLibTemplateScript sll : svyLibTemplateScripts) { |
| | | if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptVO)) { |
| | | if (sll.getScriptContent().trim().equals(svyTaskTemplateScriptVO.getScriptContent().trim())) { |
| | | if (StringUtils.equals(StringUtils.trim(sll.getScriptContent()), |
| | | StringUtils.trim(svyTaskTemplateScriptVO.getScriptContent()))) { |
| | | 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).setTemplateID(targetTemplateId); |
| | | svyTaskTemplateTargetoptionList.get(i).setScriptid(svyTaskTemplateScriptVO.getId()); |
| | | svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i)); |
| | | log.info("-------新增完之后的选项ID值为:{}", svyTaskTemplateTargetoptionList.get(i).getId()); |
| | |
| | | SvyTaskTemplateScript stts = DtoConversionUtils.sourceToTarget(sll, SvyTaskTemplateScript.class); |
| | | stts.setId(null); |
| | | stts.setTaskid(serviceTask.getTaskid()); |
| | | stts.setTemplateID(serviceTask.getTemplateid()); |
| | | stts.setTemplateID(targetTemplateId); |
| | | svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(stts); |
| | | |
| | | //新增问题选项 |
| | |
| | | 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).setTemplateID(targetTemplateId); |
| | | svyTaskTemplateTargetoptionList.get(i).setScriptid(stts.getId()); |
| | | svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i)); |
| | | } |