From bedd0a1cef215538df64470df6b8d4a022189136 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 28 八月 2024 14:05:16 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java |  133 +++++++++++++++++++++++++++-----------------
 1 files changed, 82 insertions(+), 51 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 55016ea..ad115ec 100644
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
@@ -12,10 +12,9 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -30,13 +29,15 @@
     @Autowired
     private SvyLibTemplateMapper svyLibTemplateMapper;
     @Autowired
-    private Icd10AssociationMapper icd10AssociationMapper;
-    @Autowired
     private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
     @Autowired
     private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
     @Autowired
     private TempDetpRelevanceMapper tempDetpRelevanceMapper;
+    @Autowired
+    private SvyLibTemplateTagMapper svyLibTemplateTagMapper;
+    @Autowired
+    private Icd10AssociationMapper icd10AssociationMapper;
 
     /**
      * 鏌ヨ闂嵎
@@ -49,6 +50,15 @@
         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);
+    }
+
     /**
      * 鏌ヨ闂嵎鍒楄〃
      *
@@ -56,15 +66,13 @@
      * @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 svyLibScript = new SvyLibScript();
-//            svyLibScript.setSvyid(svyLibTemplates.get(i).getSvyid());
-//            List<SvyLibScript> svyLibTopics = svyLibScriptMapper.selectSvyLibScriptList(svyLibScript);
+        for (int i = 0; i < svyLibTemplateVOS.size(); i++) {
             SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
-            svyLibTemplateScript.setSvyid(svyLibTemplates.get(i).getSvyid());
+            svyLibTemplateScript.setSvyid(svyLibTemplateVOS.get(i).getSvyid());
             List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
             //鑾峰彇棰樼洰閫夐」
             a:
@@ -82,69 +90,64 @@
                 }
             }
             //灏嗛鐩斁鍒伴棶鍗峰垪琛ㄤ腑
-            svyLibTemplates.get(i).setSvyLibScripts(svyLibTemplateScripts);
+            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.getSvyLibScripts().size(); i++) {
-//            SvyLibScript svyLibScript = svyLibTemplate.getSvyLibScripts().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) {
             //鏂板
@@ -161,8 +164,8 @@
         i = svyLibTemplate.getSvyid().intValue();
 
         //澶勭悊棰樼洰
-        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyLibScripts())) {
-            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyLibScripts()) {
+        if (CollectionUtils.isNotEmpty(svyLibTemplate.getSvyTemplateLibScripts())) {
+            for (SvyLibTemplateScript svyLibScript : svyLibTemplate.getSvyTemplateLibScripts()) {
                 //瀵归鐩繘琛屽鐞�
                 if (svyLibScript.getIsoperation() != null) {
                     //闂鐨勬搷浣滀笉涓虹┖
@@ -202,6 +205,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;
     }
 

--
Gitblit v1.9.3