| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.ISvyLibTemplateService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.smartor.service.ISvyLibTemplateService; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 问卷Service业务层处理 |
| | |
| | | @Autowired |
| | | private SvyLibTemplateMapper svyLibTemplateMapper; |
| | | @Autowired |
| | | private Icd10AssociationMapper icd10AssociationMapper; |
| | | private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; |
| | | @Autowired |
| | | private SvyLibScriptMapper svyLibScriptMapper; |
| | | @Autowired |
| | | private SvyLibScriptOptionMapper svyLibTopicoptionMapper; |
| | | private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; |
| | | @Autowired |
| | | private TempDetpRelevanceMapper tempDetpRelevanceMapper; |
| | | @Autowired |
| | | private SvyLibTemplateTagMapper svyLibTemplateTagMapper; |
| | | |
| | | /** |
| | | * 查询问卷 |
| | |
| | | @Override |
| | | public SvyLibTemplate selectSvyLibTemplateBySvyid(Long svyid) { |
| | | return svyLibTemplateMapper.selectSvyLibTemplateBySvyid(svyid); |
| | | } |
| | | |
| | | @Override |
| | | public List<SvyLibTemplate> getSviLibTemplate(SvyLibTemplate svyLibTemplate) { |
| | | SvyLibTemplateReq svyLibTemplateReq=new SvyLibTemplateReq(); |
| | | svyLibTemplateReq.setSvyid(svyLibTemplate.getSvyid()); |
| | | svyLibTemplateReq.setCategoryid(svyLibTemplate.getCategoryid()); |
| | | svyLibTemplateReq.setDescription(svyLibTemplate.getDescription()); |
| | | return svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq); |
| | | } |
| | | |
| | | /** |
| | |
| | | List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq); |
| | | //添加题目 |
| | | for (int i = 0; i < svyLibTemplates.size(); i++) { |
| | | SvyLibScript svyLibTopic = new SvyLibScript(); |
| | | svyLibTopic.setSvyid(svyLibTemplates.get(i).getSvyid()); |
| | | List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibTopic); |
| | | SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); |
| | | svyLibTemplateScript.setSvyid(svyLibTemplates.get(i).getSvyid()); |
| | | List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); |
| | | //获取题目选项 |
| | | a: |
| | | for (int j = 0; j < svyLibTopics.size(); j++) { |
| | | log.info("问题id为:{}", svyLibTopics.get(j).getSvyscriptId()); |
| | | if (StringUtils.isNotEmpty(svyLibTopics.get(j).getScripttype()) && svyLibTopics.get(j).getScripttype().equals("3") || svyLibTopics.get(j).getSvyscriptId() == null) { |
| | | for (int j = 0; j < svyLibTemplateScripts.size(); j++) { |
| | | log.info("问题id为:{}", svyLibTemplateScripts.get(j).getId()); |
| | | if (StringUtils.isNotEmpty(svyLibTemplateScripts.get(j).getScriptType()) && svyLibTemplateScripts.get(j).getScriptType().equals("3") || svyLibTemplateScripts.get(j).getId() == null) { |
| | | //作答题,不需要选项 |
| | | continue a; |
| | | } else { |
| | | SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption(); |
| | | svyLibTopicoption.setTopicid(svyLibTopics.get(j).getSvyscriptId()); |
| | | List<SvyLibScriptOption> svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibScriptOptionList(svyLibTopicoption); |
| | | SvyLibTemplateTargetoption svyLibTopicoption = new SvyLibTemplateTargetoption(); |
| | | svyLibTopicoption.setScriptid(svyLibTemplateScripts.get(j).getId()); |
| | | List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTopicoption); |
| | | //将查询出的选项目放到题目中 |
| | | svyLibTopics.get(j).setSvyLibScriptOptions(svyLibTopicoptions); |
| | | svyLibTemplateScripts.get(j).setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); |
| | | } |
| | | } |
| | | //将题目放到问卷列表中 |
| | | svyLibTemplates.get(i).setSvyLibTopics(svyLibTopics); |
| | | svyLibTemplates.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts); |
| | | |
| | | //获取每个问卷对应的科室 |
| | | TempDetpRelevance tempDetpRelevance = new TempDetpRelevance(); |
| | | tempDetpRelevance.setTempid(svyLibTemplates.get(i).getSvyid()); |
| | | List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance); |
| | | svyLibTemplates.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>()); |
| | | |
| | | //获取标签 |
| | | SvyLibTemplateTag svyLibTemplateTag = new SvyLibTemplateTag(); |
| | | svyLibTemplateTag.setTemplateid(svyLibTemplates.get(i).getSvyid()); |
| | | List<SvyLibTemplateTag> svyLibTemplateTags = svyLibTemplateTagMapper.selectSvyLibTemplateTagList(svyLibTemplateTag); |
| | | svyLibTemplates.get(i).setSvyLibTemplateTagList(svyLibTemplateTags); |
| | | } |
| | | |
| | | //先将相同的id的icdname,整理到一块 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 新增问卷 |
| | | * |
| | | * @param svyLibTemplate 问卷 |
| | | * @return 结果 |
| | | */ |
| | | @Transactional |
| | | @Override |
| | | public int insertSvyLibTemplate(SvyLibTemplate svyLibTemplate) { |
| | | svyLibTemplate.setCreateTime(DateUtils.getNowDate()); |
| | | svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate); |
| | | //关联问卷疾病 |
| | | for (String icdId : svyLibTemplate.getIcdID()) { |
| | | Icd10Association icd10Association = new Icd10Association(); |
| | | icd10Association.setIcd10code(icdId); |
| | | icd10Association.setSvyid(svyLibTemplate.getSvyid()); |
| | | icd10AssociationMapper.insertIcd10Association(icd10Association); |
| | | } |
| | | //新增问题题目 |
| | | for (int i = 0; i < svyLibTemplate.getSvyLibTopics().size(); i++) { |
| | | SvyLibScript svyLibScript = svyLibTemplate.getSvyLibTopics().get(i); |
| | | svyLibScript.setSvyid(svyLibTemplate.getSvyid()); |
| | | //题目的选项目,直接用svy_topicoption表,用svyTopicidf去关联 |
| | | svyLibScriptMapper.insertSvyLibScript(svyLibScript); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 新增或修改问卷模板信息 |
| | | * |
| | | * @param svyLibTemplate |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Integer saveOrUpdateTemplate(SvyLibTemplate svyLibTemplate) { |
| | | Integer i = null; |
| | | if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTemplate.setCreateTime(DateUtils.getNowDate()); |
| | | i = svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate); |
| | | svyLibTemplateMapper.insertSvyLibTemplate(svyLibTemplate); |
| | | } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTemplate.setUpdateTime(DateUtils.getNowDate()); |
| | | i = svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate); |
| | | svyLibTemplateMapper.updateSvyLibTemplate(svyLibTemplate); |
| | | } else if (svyLibTemplate.getIsoperation() != null && svyLibTemplate.getIsoperation() == 3) { |
| | | //删除 |
| | | svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyLibTemplate.getSvyid()); |
| | | } |
| | | i = svyLibTemplate.getSvyid().intValue(); |
| | | |
| | | //处理题目 |
| | | if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibTopics())) { |
| | | for (SvyLibScript svyLibTopic : svyLibTemplate.getSvyLibTopics()) { |
| | | if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyTemplateLibScripts())) { |
| | | for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyTemplateLibScripts()) { |
| | | //对题目进行处理 |
| | | if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTopic.setSvyid(svyLibTemplate.getSvyid()); |
| | | //题目的选项目,直接用svy_topicoption表,用svyTopicid去关联 |
| | | svyLibScriptMapper.insertSvyLibScript(svyLibTopic); |
| | | } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTopic.setSvyid(svyLibTemplate.getSvyid()); |
| | | svyLibScriptMapper.updateSvyLibScript(svyLibTopic); |
| | | if (svyLibScript.getIsoperation() != null) { |
| | | //问题的操作不为空 |
| | | scriptHandle(svyLibTemplate.getSvyid(), svyLibScript, svyLibScript.getIsoperation()); |
| | | } else if (svyLibScript.getIsoperation() == null && svyLibTemplate.getIsoperation() != null) { |
| | | //模板的操作不为空 |
| | | scriptHandle(svyLibTemplate.getSvyid(), svyLibScript, svyLibTemplate.getIsoperation()); |
| | | } |
| | | |
| | | //对题目选项进行处理 |
| | | if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptOptions())) { |
| | | for (SvyLibScriptOption svyLibTopicoption : svyLibTopic.getSvyLibScriptOptions()) { |
| | | if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) { |
| | | //新增 |
| | | svyLibTopicoption.setTopicid(svyLibTopic.getId()); |
| | | svyLibTopicoptionMapper.insertSvyLibScriptOption(svyLibTopicoption); |
| | | } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) { |
| | | //修改 |
| | | svyLibTopicoption.setTopicid(svyLibTopic.getId()); |
| | | svyLibTopicoptionMapper.updateSvyLibScriptOption(svyLibTopicoption); |
| | | if (CollectionUtils.isNotEmpty(svyLibScript.getSvyLibTemplateTargetoptions())) { |
| | | for (SvyLibTemplateTargetoption svyLibTemplateTargetoption : svyLibScript.getSvyLibTemplateTargetoptions()) { |
| | | if (svyLibTemplateTargetoption.getIsoperation() != null) { |
| | | //选选项的操作不为空 |
| | | optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibTemplateTargetoption.getIsoperation()); |
| | | } else if (svyLibTemplateTargetoption.getIsoperation() == null && svyLibScript.getIsoperation() != null) { |
| | | //问题的操作不为空 |
| | | optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibScript.getIsoperation()); |
| | | } else if (svyLibTemplateTargetoption.getIsoperation() == null && svyLibScript.getIsoperation() == null && svyLibTemplate.getIsoperation() != null) { |
| | | //模板的操作不为空 |
| | | optionHandle(svyLibTemplateTargetoption, svyLibScript.getId(), svyLibTemplate.getIsoperation()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | tempDetpRelevanceMapper.insertTempDetpRelevance(tempDetpRelevance); |
| | | } else { |
| | | tempDetpRelevanceMapper.updateTempDetpRelevance(tempDetpRelevance); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | //标签处理 |
| | | if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibTemplateTagList())) { |
| | | for (SvyLibTemplateTag svyLibTemplateTag : svyLibTemplate.getSvyLibTemplateTagList()) { |
| | | if (svyLibTemplateTag.getId() == null) { |
| | | //新增 |
| | | svyLibTemplateTag.setTemplateid(svyLibTemplate.getSvyid()); |
| | | svyLibTemplateTagMapper.insertSvyLibTemplateTag(svyLibTemplateTag); |
| | | } else { |
| | | svyLibTemplateTag.setTemplateid(svyLibTemplate.getSvyid()); |
| | | svyLibTemplateTagMapper.updateSvyLibTemplateTag(svyLibTemplateTag); |
| | | } |
| | | } |
| | | |
| | |
| | | public int deleteSvyLibTemplateBySvyid(Long svyid) { |
| | | return svyLibTemplateMapper.deleteSvyLibTemplateBySvyid(svyid); |
| | | } |
| | | |
| | | private void scriptHandle(Long svyid, SvyLibTemplateScript svyLibScript, Integer isoperation) { |
| | | if (isoperation == 1) { |
| | | //新增 |
| | | svyLibScript.setSvyid(svyid); |
| | | svyLibScript.setId(null); |
| | | svyLibScript.setCreateTime(new Date()); |
| | | svyLibTemplateScriptMapper.insertSvyLibTemplateScript(svyLibScript); |
| | | |
| | | } else if (isoperation == 2) { |
| | | //修改 |
| | | svyLibScript.setSvyid(svyid); |
| | | svyLibScript.setUpdateTime(new Date()); |
| | | svyLibTemplateScriptMapper.updateSvyLibTemplateScript(svyLibScript); |
| | | } else if (isoperation == 3) { |
| | | svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicid(svyLibScript.getId()); |
| | | } |
| | | } |
| | | |
| | | private void optionHandle(SvyLibTemplateTargetoption svyLibTemplateTargetoption, Long scriptId, Integer isoperation) { |
| | | if (isoperation == 1) { |
| | | //新增 |
| | | svyLibTemplateTargetoption.setScriptid(scriptId); |
| | | svyLibTemplateTargetoption.setCreateTime(new Date()); |
| | | svyLibTemplateTargetoptionMapper.insertSvyLibTemplateTargetoption(svyLibTemplateTargetoption); |
| | | } else if (isoperation == 2) { |
| | | //修改 |
| | | svyLibTemplateTargetoption.setScriptid(scriptId); |
| | | svyLibTemplateTargetoption.setUpdateTime(new Date()); |
| | | svyLibTemplateTargetoptionMapper.updateSvyLibTemplateTargetoption(svyLibTemplateTargetoption); |
| | | } else if (isoperation == 3) { |
| | | //删除 |
| | | svyLibTemplateTargetoptionMapper.deleteSvyLibTemplateTargetoptionById(svyLibTemplateTargetoption.getId()); |
| | | } |
| | | } |
| | | } |