|  | @@ -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);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |