From 77d7257c02fc811a53b8d9207e4239f69c8a600c Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 15 六月 2023 14:33:36 +0800
Subject: [PATCH] 题目和标签代码提交

---
 smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java |  130 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 114 insertions(+), 16 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
index 39b4483..55eb072 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -3,27 +3,26 @@
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.BaseTag;
-import com.smartor.domain.PatArchivetag;
-import com.smartor.domain.PatUpInfoVO;
+import com.smartor.domain.*;
 import com.smartor.mapper.BaseTagMapper;
 import com.smartor.mapper.PatArchivetagMapper;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.ss.formula.functions.Now;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 import com.smartor.mapper.PatArchiveMapper;
-import com.smartor.domain.PatArchive;
 import com.smartor.service.IPatArchiveService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -116,7 +115,7 @@
 
     @Override
     @Transactional
-    public PatUpInfoVO importFilehandle(String username, MultipartFile file) {
+    public PatUpInfoVO importFilehandle(SysUser user, String tags, MultipartFile file) {
         PatUpInfoVO patUpInfoVO = new PatUpInfoVO();
         Integer successNum = 0;
         Integer failNum = 0;
@@ -213,10 +212,19 @@
                 }
 
                 //鎮i兘鏍囩鏄惁涓虹┖
-                if (ObjectUtils.isEmpty(row.getCell(7))) {
-                    addRemark("鎮h�呮爣绛句负绌�", patArchive);
+                if (ObjectUtils.isEmpty(row.getCell(7)) || StringUtils.isEmpty(row.getCell(7).toString())) {
+                    if (StringUtils.isEmpty(tags)) {
+                        addRemark("鎮h�呮爣绛句负绌�", patArchive);
+                    } else {
+                        patArchive.setTag(tags);
+
+                    }
                 } else {
-                    patArchive.setTag(row.getCell(7).toString());
+                    if (StringUtils.isNotEmpty(tags)) {
+                        patArchive.setTag(row.getCell(7).toString() + "," + tags);
+                    } else {
+                        patArchive.setTag(row.getCell(7).toString());
+                    }
                 }
 
                 //鍒ゆ柇澶囨敞鏄惁涓虹┖
@@ -231,17 +239,32 @@
                 patArchiveMapper.insertPatArchive(patArchive);
 
                 //鏍规嵁鏍囩鍚嶆煡璇㈠嚭鏍囩淇℃伅
-                String s = row.getCell(7).toString();
+                String s = patArchive.getTag();
                 String[] split = s.split(",");
                 for (String tagName : split) {
                     BaseTag baseTag = new BaseTag();
                     baseTag.setTagname(tagName);
                     List<BaseTag> baseTags = baseTagMapper.selectBaseTagList(baseTag);
-                    BaseTag baseTag1 = baseTags.get(0);
+
+                    //濡傛灉璇ユ爣绛句负绌猴紝鐜版爣绛剧鐞嗘病鏈夊嚭鐜拌繃鐨勬柊鏍囩鏃讹紝鑷姩灏嗘爣绛炬坊鍔犲埌"鏍囩绠$悊"鏈垎绫烩�滀腑銆傜紪杈戜汉涓哄鍏ヨ处鍙�
+                    if (CollectionUtils.isEmpty(baseTags)) {
+                        baseTag = new BaseTag();
+                        baseTag.setTagcategoryid(1L);
+                        baseTag.setTagname(tagName);
+                        baseTag.setOrgid(user.getDeptId().toString());
+                        baseTag.setDelFlag("0");
+                        baseTag.setCreateBy(user.getUserName());
+                        baseTag.setCreateTime(new Date());
+                        baseTag.setCreateBy(user.getUserName());
+                        baseTag.setCreateTime(new Date());
+                        baseTagMapper.insertBaseTag(baseTag);
+                    } else {
+                        baseTag = baseTags.get(0);
+                    }
 
                     // 鏂板鎮h�呮。妗堟爣绛�
-                    PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag1, PatArchivetag.class);
-                    patArchivetag.setUpdateBy(username);
+                    PatArchivetag patArchivetag = DtoConversionUtils.sourceToTarget(baseTag, PatArchivetag.class);
+                    patArchivetag.setUpdateBy(user.getUserName());
                     patArchivetag.setCreateTime(new Date());
                     patArchivetag.setPatid(patArchive.getPatid());
                     patArchivetagMapper.insertPatArchivetag(patArchivetag);
@@ -286,6 +309,81 @@
         return "瀵煎嚭鎴愬姛";
     }
 
+    @Override
+    public List<PatArchive> patInfoByContion(PatArchiveReq patArchive) {
+        List<PatArchive> patArchives = new ArrayList<>();
+
+        //鏍规嵁鏉′欢鑾峰彇鎮h�呬俊鎭�
+        List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive);
+        //鏍规嵁鎮h�匢D杩涜鍒嗙粍
+        Map<Long, List<PatArchive>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchive::getPatid));
+
+        //瀵规暟鎹繘琛屽皝瑁�
+        for (List<PatArchive> list : listMap.values()) {
+            PatArchive patArchive1 = new PatArchive();
+            List<String> stringList = new ArrayList<>();
+            for (int i = 0; i < list.size(); i++) {
+                if (i == 0) {
+                    patArchive1 = DtoConversionUtils.sourceToTarget(list.get(0), PatArchive.class);
+                    //灏嗘爣绛剧疆绌�,涓嶇┖涔熸病鏈夐棶棰�
+                    patArchive1.setTag("");
+                }
+                //灏嗘煡鍑虹殑tag锛屾斁鍒皃atArchive1閲岀殑TagList涓�
+                stringList.add(list.get(i).getTag());
+            }
+            patArchive1.setTagList(stringList);
+            patArchives.add(patArchive1);
+        }
+
+        return patArchives;
+    }
+
+    @Override
+    public List<PatArchivetagAndPatientInfo> patTagByContion(List<Long> tagids) {
+        List<PatArchivetagAndPatientInfo> patArchivetagAndPatientInfos = new ArrayList<>();
+        if (tagids.size() > 0) {
+            for (int i = 0; i < tagids.size(); i++) {
+                PatArchivetag patArchivetag = new PatArchivetag();
+                patArchivetag.setTagid(tagids.get(i));
+                //鑾峰彇鎮h�卲atid
+                List<PatArchivetag> patArchivetags1 = patArchivetagMapper.selectPatArchivetagAndBaseTagList(patArchivetag);
+                for (int j = 0; j < patArchivetags1.size(); j++) {
+                    PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class);
+                    PatArchive patArchive = new PatArchive();
+                    patArchive.setPatid(patArchivetagAndPatientInfo.getPatid());
+                    List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive);
+                    patArchivetagAndPatientInfo.setPatNum(patArchiveList.size());
+                    // patArchivetagAndPatientInfo.setPatArchives(patArchiveList);
+                    patArchivetagAndPatientInfos.add(patArchivetagAndPatientInfo);
+                }
+            }
+        } else {
+            PatArchivetag patArchivetag = new PatArchivetag();
+            //鑾峰彇鎮h�卲atid
+            List<PatArchivetag> patArchivetags1 = patArchivetagMapper.selectPatArchivetagAndBaseTagList(patArchivetag);
+            for (int j = 0; j < patArchivetags1.size(); j++) {
+                PatArchivetagAndPatientInfo patArchivetagAndPatientInfo = DtoConversionUtils.sourceToTarget(patArchivetags1.get(j), PatArchivetagAndPatientInfo.class);
+                PatArchive patArchive = new PatArchive();
+                patArchive.setPatid(patArchivetagAndPatientInfo.getPatid());
+                List<PatArchive> patArchiveList = patArchiveMapper.selectPatArchiveList(patArchive);
+                //  patArchivetagAndPatientInfo.setPatArchives(patArchiveList);
+                patArchivetagAndPatientInfo.setPatNum(patArchiveList.size());
+                patArchivetagAndPatientInfos.add(patArchivetagAndPatientInfo);
+            }
+        }
+        return patArchivetagAndPatientInfos;
+    }
+
+    @Override
+    public List<PatArchivetagAndPatientInfo> patInfoByTag(List<Long> tagids) {
+
+
+
+
+
+        return null;
+    }
+
     private void getdata(Row row, PatArchive patArchive, Boolean head) {
         if (head) {
             row.createCell(0).setCellValue("濮撳悕");

--
Gitblit v1.9.3