ソースを参照

[task-6768] 试剂更换验证对接将相同编码相同批号的进行去重

huangws 3 週間 前
コミット
6e879baa9e

+ 15 - 1
GetDataByView/src/main/java/com/jyxt/getdatabyview/HandleData.java

@@ -36,7 +36,9 @@ public class HandleData {
         List<Map<String, Object>> reagentMainList = new ArrayList<>();
         List<Map<String, Object>> reagentMainList = new ArrayList<>();
         List<Map<String, Object>> reagentSubList = new ArrayList<>();
         List<Map<String, Object>> reagentSubList = new ArrayList<>();
         long sequenceCounter = 0;
         long sequenceCounter = 0;
-        for (Map<String, Object> lisReagent : lisReagentList) {
+        // 按 reagentCode + newBatchNumber 去重,保留第一条
+        List<Map<String, Object>> deduplicatedList = deduplicateReagentList(lisReagentList);
+        for (Map<String, Object> lisReagent : deduplicatedList) {
             List<String> pushUserList = new ArrayList<>();
             List<String> pushUserList = new ArrayList<>();
             String GroupCode = String.valueOf(lisReagent.get("GroupCode"));
             String GroupCode = String.valueOf(lisReagent.get("GroupCode"));
             pushUserList = ibpsRepository.getPushList(GroupCode);
             pushUserList = ibpsRepository.getPushList(GroupCode);
@@ -119,6 +121,18 @@ public class HandleData {
         }
         }
     }
     }
 
 
+    private List<Map<String, Object>> deduplicateReagentList(List<Map<String, Object>> lisReagentList) {
+        return new ArrayList<>(lisReagentList.stream().collect(Collectors.toMap(
+                item -> {
+                    String reagentCode = String.valueOf(item.get("ReagentNumber"));
+                    String newBatchNumber = String.valueOf(item.get("NewBatchNumber"));
+                    return reagentCode + "_" + newBatchNumber;
+                },
+                item -> item,
+                (existing, replacement) -> existing,
+                LinkedHashMap::new
+        )).values());
+    }
 
 
     public void updateReagentCode() {
     public void updateReagentCode() {
         // 1. 获取数据
         // 1. 获取数据

+ 1 - 1
GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/LISViewRepository.java

@@ -96,7 +96,7 @@ public class LISViewRepository {
             for (Map<String, Object> item : results) {
             for (Map<String, Object> item : results) {
                 log.info("retItem:"+item);
                 log.info("retItem:"+item);
             }
             }
-            log.info("retList:"+retList);
+            //log.info("retList:"+retList);
         } catch (DataAccessException e) {
         } catch (DataAccessException e) {
             log.error("Error query lis ReagentLotVerification view", e);
             log.error("Error query lis ReagentLotVerification view", e);
         }
         }