zhoutg %!s(int64=4) %!d(string=hai) anos
pai
achega
a2b2267b5a
Modificáronse 1 ficheiros con 18 adicións e 2 borrados
  1. 18 2
      src/main/java/com/diagbot/facade/CriticalFacade.java

+ 18 - 2
src/main/java/com/diagbot/facade/CriticalFacade.java

@@ -4,11 +4,14 @@ import com.diagbot.dto.CriticalNeoDTO;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.process.CriticalProcess;
+import com.diagbot.util.ListUtil;
 import com.diagbot.vo.CriticalNeoVO;
 import com.diagbot.vo.IndicationPushVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -34,8 +37,21 @@ public class CriticalFacade {
         CriticalNeoVO criticalNeoVOs = fillCriticalNeo(wordCrfDTO);
         List<CriticalNeoDTO> criticalNeoDTOList = neoFacade.getCritialNeo(criticalNeoVOs);
 
-        // 规则处理
-        criticalProcess.process(criticalNeoDTOList, wordCrfDTO, res);
+        // 危急值去重,否则结果出现重复数据
+        if (ListUtil.isNotEmpty(criticalNeoDTOList)) {
+            List<String> standNameList = new ArrayList<>();
+            Iterator<CriticalNeoDTO> it = criticalNeoDTOList.iterator();
+            while (it.hasNext()) {
+                CriticalNeoDTO criticalNeoDTO = it.next();
+                if (standNameList.contains(criticalNeoDTO.getStandname())) {
+                    it.remove();
+                } else {
+                    standNameList.add(criticalNeoDTO.getStandname());
+                }
+            }
+            // 规则处理
+            criticalProcess.process(criticalNeoDTOList, wordCrfDTO, res);
+        }
     }