From 9526971c403417c1c007804f24884c443b9e6cd7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 04 九月 2024 00:34:40 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java | 253 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 169 insertions(+), 84 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java index 9f3abf0..e0f6288 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java @@ -1,21 +1,21 @@ 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.DtoConversionUtils; 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.*; +import java.util.stream.Collectors; /** * 闂嵎Service涓氬姟灞傚鐞� @@ -29,13 +29,15 @@ @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; + @Autowired + private Icd10AssociationMapper icd10AssociationMapper; /** * 鏌ヨ闂嵎 @@ -48,6 +50,31 @@ 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()); + List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq); + for (SvyLibTemplate svyLibTemplate1 : svyLibTemplates) { + SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); + svyLibTemplateScript.setSvyid(svyLibTemplate1.getSvyid()); + List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); + for (SvyLibTemplateScript svyLibTemplateScript1 : svyLibTemplateScripts) { + if (svyLibTemplateScript1.getScriptType().equals("1") || svyLibTemplateScript1.getScriptType().equals("2")) { + SvyLibTemplateTargetoption svyLibTemplateTargetoption=new SvyLibTemplateTargetoption(); + svyLibTemplateTargetoption.setScriptid(svyLibTemplateScript1.getId()); + List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption); + svyLibTemplateScript1.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); + } + } + svyLibTemplate1.setSvyTemplateLibScripts(svyLibTemplateScripts); + } + + return svyLibTemplates; + } + /** * 鏌ヨ闂嵎鍒楄〃 * @@ -55,134 +82,129 @@ * @return 闂嵎 */ @Override - public List<SvyLibTemplate> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq) { + public List<SvyLibTemplateVO> selectSvyLibTemplateList(SvyLibTemplateReq svyLibTemplateReq) { List<SvyLibTemplate> svyLibTemplates = svyLibTemplateMapper.selectSvyLibTemplateList(svyLibTemplateReq); + List<SvyLibTemplateVO> svyLibTemplateVOS = DtoConversionUtils.sourceToTarget(svyLibTemplates, SvyLibTemplateVO.class); //娣诲姞棰樼洰 - for (int i = 0; i < svyLibTemplates.size(); i++) { - SvyLibScript svyLibTopic = new SvyLibScript(); - svyLibTopic.setSvyid(svyLibTemplates.get(i).getSvyid()); - List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibTopic); + for (int i = 0; i < svyLibTemplateVOS.size(); i++) { + SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); + svyLibTemplateScript.setSvyid(svyLibTemplateVOS.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); + svyLibTemplateVOS.get(i).setSvyTemplateLibScripts(svyLibTemplateScripts); //鑾峰彇姣忎釜闂嵎瀵瑰簲鐨勭瀹� TempDetpRelevance tempDetpRelevance = new TempDetpRelevance(); - tempDetpRelevance.setTempid(svyLibTemplates.get(i).getSvyid()); + tempDetpRelevance.setTempid(svyLibTemplateVOS.get(i).getSvyid()); List<TempDetpRelevance> tempDetpRelevances = tempDetpRelevanceMapper.selectTempDetpRelevanceList(tempDetpRelevance); - svyLibTemplates.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>()); + svyLibTemplateVOS.get(i).setTempDetpRelevances(CollectionUtils.isNotEmpty(tempDetpRelevances) ? tempDetpRelevances : new ArrayList<>()); + + //鑾峰彇鏍囩 + SvyLibTemplateTag svyLibTemplateTag = new SvyLibTemplateTag(); + svyLibTemplateTag.setTemplateid(svyLibTemplateVOS.get(i).getSvyid()); + List<SvyLibTemplateTag> svyLibTemplateTags = svyLibTemplateTagMapper.selectSvyLibTemplateTagList(svyLibTemplateTag); + svyLibTemplateVOS.get(i).setSvyLibTemplateTagList(svyLibTemplateTags); + + //鑾峰彇鐤剧梾 + Icd10Association icd10Association = new Icd10Association(); + icd10Association.setType(5L); + icd10Association.setOutid(svyLibTemplateVOS.get(i).getSvyid()); + svyLibTemplateVOS.get(i).setIcd10AssociationList(icd10AssociationMapper.selectIcd10AssociationList(icd10Association)); + } //鍏堝皢鐩稿悓鐨刬d鐨刬cdname,鏁寸悊鍒颁竴鍧� - List<SvyLibTemplate> libTemplates = svyLibTemplates.stream().collect(Collectors.groupingBy(SvyLibTemplate::getSvyid, Collectors.mapping(SvyLibTemplate::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTemplate(entry.getKey(), entry.getValue())).collect(Collectors.toList()); + List<SvyLibTemplateVO> libTemplates = svyLibTemplateVOS.stream().collect(Collectors.groupingBy(SvyLibTemplateVO::getSvyid, Collectors.mapping(SvyLibTemplateVO::getIcdname, Collectors.joining(", ")))).entrySet().stream().map(entry -> new SvyLibTemplateVO(entry.getKey(), entry.getValue())).collect(Collectors.toList()); //涓存椂鍙橀噺锛岀敤鏉ヤ繚瀛樼柧鐥呭悕绉� String icdname = null; for (int i = 0; i < libTemplates.size(); i++) { - for (int j = 0; j < svyLibTemplates.size(); j++) { - if (ObjectUtils.isNotEmpty(libTemplates.get(i).getSvyid()) && libTemplates.get(i).getSvyid() == svyLibTemplates.get(j).getSvyid()) { + for (int j = 0; j < svyLibTemplateVOS.size(); j++) { + if (ObjectUtils.isNotEmpty(libTemplates.get(i).getSvyid()) && libTemplates.get(i).getSvyid() == svyLibTemplateVOS.get(j).getSvyid()) { icdname = libTemplates.get(i).getIcdname(); // 灏嗗師鏁版嵁鎷疯礉鍒版暣鐞嗙殑濂界殑瀵硅薄涓� - BeanUtils.copyProperties(svyLibTemplates.get(j), libTemplates.get(i)); + BeanUtils.copyProperties(svyLibTemplateVOS.get(j), libTemplates.get(i)); //鍐嶅皢鏁寸悊濂界殑鈥滅柧鐥呭悕绉扳�濇浛鎹� libTemplates.get(i).setIcdname(icdname); } + //灏嗛棶棰樻寜搴忓彿鎺掍竴涓嬪簭 + Collections.sort(svyLibTemplateVOS.get(j).getSvyTemplateLibScripts(), new Comparator<SvyLibTemplateScript>() { + @Override + public int compare(SvyLibTemplateScript o1, SvyLibTemplateScript o2) { + return Integer.compare(o1.getSort().intValue(), o2.getSort().intValue()); + } + }); } } - return libTemplates; - } - /** - * 鏂板闂嵎 - * - * @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()); - //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicidf鍘诲叧鑱� - svyLibScriptMapper.insertSvyLibScript(svyLibScript); - } - return 1; + return svyLibTemplateVOS; } /** * 鏂板鎴栦慨鏀归棶鍗锋ā鏉夸俊鎭� * - * @param svyLibTemplate + * @param svyLibTemplateVO * @return */ + @Transactional(rollbackFor = Exception.class) @Override - public Integer saveOrUpdateTemplate(SvyLibTemplate svyLibTemplate) { + public Integer saveOrUpdateTemplate(SvyLibTemplateVO svyLibTemplateVO) { + SvyLibTemplate svyLibTemplate = DtoConversionUtils.sourceToTarget(svyLibTemplateVO, SvyLibTemplate.class); 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()); - //棰樼洰鐨勯�夐」鐩紝鐩存帴鐢╯vy_topicoption琛紝鐢╯vyTopicid鍘诲叧鑱� - 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()); } } - } - } } @@ -198,6 +220,34 @@ } } + } + + //鏍囩澶勭悊 + 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); + } + } + + } + if (CollectionUtils.isNotEmpty(svyLibTemplateVO.getIcd10AssociationList())) { + for (Icd10Association icd10Association : svyLibTemplateVO.getIcd10AssociationList()) { + if (icd10Association.getId() == null) { + icd10Association.setType(5L); + icd10Association.setOutid(svyLibTemplate.getSvyid()); + icd10AssociationMapper.insertIcd10Association(icd10Association); + } else { + icd10Association.setType(5L); + icd10Association.setOutid(svyLibTemplate.getSvyid()); + icd10AssociationMapper.updateIcd10Association(icd10Association); + } + } } return i; } @@ -235,4 +285,39 @@ 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()); + } + } } -- Gitblit v1.9.3