Quellcode durchsuchen

Merge branch 'dev' of liuwenbin/patient-co-management into dev

huangwenjie vor 7 Jahren
Ursprung
Commit
b827bd9fd6

+ 53 - 22
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/jimeiJkEdu/JMJkEduArticleService.java

@ -495,8 +495,8 @@ public class JMJkEduArticleService extends BaseService {
    public void initPatient(Set<String> patientSet, String labelUnit, String labelSex, String labelServe, String labelDisease, String labelHealth,String userCode,String currentUserRole, String currentUserRoleLevel) {
        //全选的时候前端传0,后台要去数据库再查询一次
        String tableSql = " select p.code from wlyy_sign_family w left join dm_hospital h on w.hospital=h.code ";
        String whereSql = " where w.status>0  ";
        String tableSql = " select p.code from wlyy_sign_family w ,wlyy_admin_team t, dm_hospital h  ";
        String whereSql = " where w.status>0  and w.admin_team_code=t.id and t.org_code=h.code ";
        //通过登录的角色区域权限 限制所属患者条件
@ -517,35 +517,66 @@ public class JMJkEduArticleService extends BaseService {
        }
        if (!StringUtils.isEmpty(labelServe)) {
            tableSql += " left join wlyy_sign_family_server s on w.code= s.sign_code ";
            whereSql += " and s.server_type in (" + labelServe + " ) ";
        }
        if (!StringUtils.isEmpty(labelHealth) || !StringUtils.isEmpty(labelDisease)) {
            tableSql += " left join wlyy_sign_patient_label_info l on w.patient=l.patient ";
            whereSql += " and l.status=1 ";
            if (!StringUtils.isEmpty(labelHealth) && !StringUtils.isEmpty(labelDisease)) {
                whereSql += " and ( (l.label_type = 2 AND l.label in (" + labelHealth + ") ) or (l.label_type = 3 AND l.label in (" + labelDisease + ") ))";
            }else {
                if(!StringUtils.isEmpty(labelHealth)){
                    whereSql += " and (l.label_type = 2 AND l.label in (" + labelHealth + "))";
                }
                if(!StringUtils.isEmpty(labelDisease)){
                    whereSql += " and (l.label_type = 3 AND l.label in (" + labelDisease + "))";
                }
            }
            tableSql += " , wlyy_sign_family_server s   ";
            whereSql += " and s.server_type in (" + labelServe + " ) and w.code= s.sign_code";
        }
//        if (!StringUtils.isEmpty(labelHealth) || !StringUtils.isEmpty(labelDisease)) {
//            tableSql += " , wlyy_sign_patient_label_info l  ";
//            whereSql += " and l.status=1 and w.patient=l.patient ";
//
//            if (!StringUtils.isEmpty(labelHealth) && !StringUtils.isEmpty(labelDisease)) {
//                whereSql += " and ( (l.label_type = 2 AND l.label in (" + labelHealth + ") ) or (l.label_type = 3 AND l.label in (" + labelDisease + ") ))";
//            }else {
//                if(!StringUtils.isEmpty(labelHealth)){
//                    whereSql += " and (l.label_type = 2 AND l.label in (" + labelHealth + "))";
//                }
//
//                if(!StringUtils.isEmpty(labelDisease)){
//                    whereSql += " and (l.label_type = 3 AND l.label in (" + labelDisease + "))";
//                }
//            }
//        }
        tableSql += " left join wlyy_patient p on p.code=w.patient AND p.openid IS NOT NULL and p.openid <>''";
        tableSql += " , wlyy_patient p  ";
        whereSql += " and p.code=w.patient AND p.openid IS NOT NULL and p.openid <>'' ";
        if (!StringUtils.isEmpty(labelSex)) {
            whereSql += " and p.sex in (" + labelSex + ") ";
        }
//        if (!StringUtils.isEmpty(labelUnit)) {
//            whereSql += " and w.hospital in (" + labelUnit + ") ";
//        }
        List<String> groupPatient = jdbcTemplate.queryForList(tableSql + whereSql, String.class);
        List<String> groupPatient = null;
        if (!StringUtils.isEmpty(labelHealth) || !StringUtils.isEmpty(labelDisease)) {
            String sql = "SELECT s.patient as code FROM ( SELECT t.patient," +
                    " GROUP_CONCAT(',',t.label_type,t.label,',') label FROM " +
                    " wlyy_sign_patient_label_info t WHERE t.patient IN ("+
                    tableSql + whereSql+") AND t. STATUS = 1 GROUP BY t.patient ) s where 1=1 ";
//            if (!StringUtils.isEmpty(labelHealth) && !StringUtils.isEmpty(labelDisease)) {
//                sql += " and ( (l.label_type = 2 AND l.label in (" + labelHealth + ") ) or (l.label_type = 3 AND l.label in (" + labelDisease + ") ))";
//                sql+= " where "
//            }
            if(!StringUtils.isEmpty(labelHealth)){
                String[] aa=labelHealth.split(",");
                String bb = "";
                for (String a:aa) {
                    bb+=" OR s.label LIKE '%,2"+a+",%'";
                }
                sql+=" AND ( "+bb.substring(3)+" )";
            }
            if(!StringUtils.isEmpty(labelDisease)){
                String[] aa=labelDisease.split(",");
                String bb = "";
                for (String a:aa) {
                    bb+=" OR s.label LIKE '%,3"+a+",%'";
                }
                sql+=" AND ( "+bb.substring(3)+" )";
            }
            groupPatient = jdbcTemplate.queryForList(sql, String.class);
        }else{
            groupPatient = jdbcTemplate.queryForList(tableSql + whereSql, String.class);
        }
        patientSet.addAll(groupPatient);
    }