| 
					
				 | 
			
			
				@@ -86,42 +86,53 @@ public class QueryDrugsAndProjectsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取诊断的详细情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<QueryDrugsAndProjects> zhenDuanList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 因为在 sql 中的 in 最长只能是有 2100 个 所以我需要 拆分来查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (xiangMuList.size() > 2100) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (QueryDrugsAndProjects projects : xiangMuList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (patientList.size() < 2000) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!patientList.contains(projects.getPatient())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        patientList.add(projects.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    zhenDuanList.addAll(dao.queryZhenDuan(patientList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (QueryDrugsAndProjects projects : xiangMuList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 移除重复的住院号或者门诊号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!patientList.contains(projects.getPatient())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                patientList.add(projects.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断 这个不能 大于 2100 不然会报错 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (patientList.size() > 2100) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<String> fenDuanChaXun = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (String s : patientList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fenDuanChaXun.add(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (fenDuanChaXun.size() == 100) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    zhenDuanList.addAll(dao.queryZhenDuan(fenDuanChaXun)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 清空 list 里面的值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     patientList.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 如果 没有大于 2100 就这样 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (QueryDrugsAndProjects projects : xiangMuList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 移除重复的元素 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!patientList.contains(projects.getPatient())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    patientList.add(projects.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 在这里还要判断 如果还有剩下的 那也要查询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (fenDuanChaXun.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                zhenDuanList.addAll(dao.queryZhenDuan(fenDuanChaXun)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             zhenDuanList.addAll(dao.queryZhenDuan(patientList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (QueryDrugsAndProjects xiangMu : xiangMuList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            StringBuilder pjZhenDuan = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (QueryDrugsAndProjects zhenDuan : zhenDuanList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (zhenDuan.getPatient().equals(xiangMu.getPatient()) && zhenDuan.getTimes().equals(xiangMu.getTimes())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (zhenDuan.getDisDiagNo() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        xiangMu.setMainDiagnosis(zhenDuan.getDisDiagComment()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        xiangMu.setDisDiagComment(pjZhenDuan.append(zhenDuan.getDisDiagComment()).append("----").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 把诊断做成 map 给到项目拼接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> pjZhenDuanMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (QueryDrugsAndProjects zhenDuan : zhenDuanList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 主诊断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String zhuZhenDuan = zhenDuan.getPatient() + "_" + zhenDuan.getTimes() + "_1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 副诊断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String fuZhenDuan = zhenDuan.getPatient() + "_" + zhenDuan.getTimes() + "_2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (zhenDuan.getDisDiagNo() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pjZhenDuanMap.put(zhuZhenDuan, zhenDuan.getDisDiagComment()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 每一个 诊断之间使用 ---- 隔开 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String pj = pjZhenDuanMap.get(fuZhenDuan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pj = null == pj ? "" : pj + "----"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pjZhenDuanMap.put(fuZhenDuan, pj + zhenDuan.getDisDiagComment()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 把项目中的 诊断一个个 拼接起来 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (QueryDrugsAndProjects xiangMu : xiangMuList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String zhuZhenDuan = xiangMu.getPatient() + "_" + xiangMu.getTimes() + "_1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String fuZhenDuan = xiangMu.getPatient() + "_" + xiangMu.getTimes() + "_2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            xiangMu.setMainDiagnosis(pjZhenDuanMap.get(zhuZhenDuan)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            xiangMu.setDisDiagComment(pjZhenDuanMap.get(fuZhenDuan)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ResultVoUtil.success(xiangMuList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |