Przeglądaj źródła

同义词修改

rgb 6 lat temu
rodzic
commit
1680b5e85a

+ 42 - 28
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -1,5 +1,26 @@
 package com.diagbot.facade;
 
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
@@ -13,6 +34,8 @@ import com.diagbot.entity.RetrievalMapping;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.RetrievalMappingService;
+import com.diagbot.service.RetrievalService;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
@@ -23,25 +46,6 @@ import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.DelRetrievalsByQuesIdVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
 import com.diagbot.vo.RetrievalListVO;
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @author rgb
@@ -57,6 +61,13 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     private QuestionFacade questionFacade;
     @Autowired
     private UserServiceClient userServiceClient;
+    @Autowired
+    @Qualifier("retrievalServiceImpl")
+    private RetrievalService retrievalService;
+    @Autowired
+    @Qualifier("retrievalMappingServiceImpl")
+    private RetrievalMappingService retrievalMappingService;
+    
 
     /**
      * 根据标签获取同义词
@@ -139,7 +150,9 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                 retrievals.add(retrieval);
             }
         });
-        this.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        if(saveOrUpdateRetrievals.size()>0){
+        	retrievalService.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        }
         retrievals.addAll(saveOrUpdateRetrievals);
         List<Long> retrievalIds = retrievals.stream().map(i -> i.getId()).collect(Collectors.toList());
 
@@ -149,7 +162,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         Map<Long, RetrievalMapping> retrievalMappingMap = retrievalMappings.stream().collect(Collectors.toMap(RetrievalMapping::getRetrievalId, i -> i));
 
         List<RetrievalMapping> addOrUpdateRetrievalMappings = new ArrayList<>();
-        retrievalMappings.stream().filter(i -> retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
+        retrievalMappings.stream().filter(i ->i.getIsDeleted().equals(IsDeleteEnum.N.getKey())&&!retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
             i.setIsDeleted(IsDeleteEnum.Y.getKey());
             i.setGmtModified(now);
             i.setModifier(userId);
@@ -181,11 +194,12 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             }
         });
 
-        retrievalMappingFacade.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
-
+        if(addOrUpdateRetrievalMappings.size()>0){
+        	retrievalMappingService.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
+        }
         return true;
     }
-
+    
     /**
      * 获取标签同义词列表
      *
@@ -212,11 +226,11 @@ public class RetrievalFacade extends RetrievalServiceImpl {
 
         retrievalListDTOList.forEach(retrievalListDTO -> {
             List<RetrievalMapping> retrievalMappingList = retrievalMappingListMap.get(retrievalListDTO.getQuestionId());
-            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId()) == null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
+            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId())!=null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
             retrievalListDTO.setOperatorName(retrievalMappingList.get(0).getModifier());
-            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
-            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
-            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
+            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
         });
 
         List<String> ids = retrievalListDTOList.stream().map(i -> i.getOperatorName()).collect(Collectors.toList());

+ 1 - 0
icssman-service/src/main/java/com/diagbot/service/impl/RetrievalServiceImpl.java

@@ -26,4 +26,5 @@ public class RetrievalServiceImpl extends ServiceImpl<RetrievalMapper, Retrieval
 		return this.baseMapper.getRetrievalList(retrievalListVO);
 	}
 
+
 }

+ 2 - 2
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java

@@ -58,8 +58,8 @@ public class AddTagRetrievalDetailVO {
 		}
 		if(obj instanceof AddTagRetrievalDetailVO){
 			AddTagRetrievalDetailVO addTagRetrievalDetailVO = (AddTagRetrievalDetailVO)obj;
-			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)
-					&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
+			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)){
+					//&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
 				return true;
 			}else{
 				return false;

+ 3 - 1
icssman-service/src/main/resources/mapper/RetrievalMapper.xml

@@ -42,12 +42,14 @@
 		SELECT
 		a.id as questionId,
 		a.tag_name as questionName,
-		MAX(b.gmt_modified) as gmtOperate
+		MAX(b.gmt_modified) as gmtOperate,
+		sum(case when b.is_deleted='N' then 1 else 0 end) as delSum
 		FROM icss_question_info a JOIN icss_retrieval_mapping b ON a.id=b.question_id
 		JOIN icss_retrieval c ON b.retrieval_id=c.id
 		WHERE a.is_deleted='N' AND c.is_deleted='N'
 		AND a.tag_name LIKE CONCAT('%',#{questionName},'%')
 		GROUP BY a.id
+		HAVING delSum>0
 		ORDER BY gmtOperate DESC
 	</select>