diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index de4b25e..16350e6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -102,7 +102,7 @@ public class AreaCountFacade { " (CASE WHEN TICKET_3 IS NULL THEN 0 ELSE TICKET_3 END) AS TICKET_3, " + " (CASE WHEN TICKET_4 IS NULL THEN 0 ELSE TICKET_4 END) AS TICKET_4, " + " (CASE WHEN TICKET_5 IS NULL THEN 0 ELSE TICKET_5 END) AS TICKET_5" + - " FROM ODS_D_HOSPITAL AAA INNER JOIN (SELECT A.PROVINCE_ID, " + + " FROM ODS_D_HOSPITAL AAA LEFT JOIN (SELECT A.PROVINCE_ID, " + " A.PROVINCE, " + " A.CITY_ID, " + " A.CITY, " + @@ -161,7 +161,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO, " + " A.HOSPITAL_NAME, " + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" + - " INNER JOIN ( " + + " LEFT JOIN ( " + " SELECT A.PROVINCE_ID, " + " A.PROVINCE, " + " A.CITY_ID, " + @@ -226,8 +226,21 @@ public class AreaCountFacade { " A.HOSPITAL_NO, " + " A.HOSPITAL_NAME, " + " A.YCY_STSTEM_ID " + - " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO " + - " ORDER BY 1,2,3"; + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO "; + if (StringUtils.isNotEmpty(hospitalId)) + { + sql1+=" WHERE AAA.YCY_STSTEM_ID= '" +hospitalId+"'"; + } + else + { + String hospitals = getPermissionStr(userId,provinceId,cityId,areaId); + if (StringUtils.isNotEmpty(hospitals)) + { + sql1+=" WHERE AAA.YCY_STSTEM_ID IN " +hospitals; + } + + } + sql1+=" ORDER BY 1,2,3"; String groupBySql = ""; String groupBySql1 = ""; @@ -271,7 +284,7 @@ public class AreaCountFacade { " SUM(AA.FF_JS) AS FF_JS,\n" + " SUM(SY_JS) AS SY_JS\n" + " FROM ODS_D_HOSPITAL AAA \n" + - " INNER JOIN (\n" + + " LEFT JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -297,7 +310,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO\n" + - " INNER JOIN (\n" + + " LEFT JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -323,8 +336,21 @@ public class AreaCountFacade { " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + - " GROUP BY ROLLUP("+groupBySql1+")" + - " ORDER BY 1,2,3"; + " GROUP BY ROLLUP("+groupBySql1+")" ; + if (StringUtils.isNotEmpty(hospitalId)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID= '" +hospitalId+"'"; + } + else + { + String hospitals = getPermissionStr(userId,provinceId,cityId,areaId); + if (StringUtils.isNotEmpty(hospitals)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID IN " +hospitals; + } + + } + countSql+=" ORDER BY 1,2,3"; System.out.println("basesql===="+sql1); System.out.println("countSql====" + countSql); @@ -1024,7 +1050,7 @@ public class AreaCountFacade { " SUM(NUM_24) AS NUM_24,\n" + " SUM(NUM_36) AS NUM_36,\n" + " SUM(NUM_40) AS NUM_40\n" + - " FROM ODS_D_HOSPITAL AAA INNER JOIN " + + " FROM ODS_D_HOSPITAL AAA LEFT JOIN " + " ( SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -1081,7 +1107,7 @@ public class AreaCountFacade { " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" + - " INNER JOIN (\n" + + " LEFT JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -1147,8 +1173,21 @@ public class AreaCountFacade { " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + - " GROUP BY ROLLUP("+groupBySql1+" ) " + - " ORDER BY 1,2,3"; + " GROUP BY ROLLUP("+groupBySql1+" ) " ; + if (StringUtils.isNotEmpty(hospitalId)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID= '" +hospitalId+"'"; + } + else + { + String hospitals = getPermissionStr(userId,provinceId,cityId,areaId); + if (StringUtils.isNotEmpty(hospitals)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID IN " +hospitals; + } + + } + countSql+=" ORDER BY 1,2,3"; @@ -1168,7 +1207,7 @@ public class AreaCountFacade { " (CASE WHEN NUM_24 IS NULL THEN 0 ELSE NUM_24 END) AS NUM_24," + " (CASE WHEN NUM_36 IS NULL THEN 0 ELSE NUM_36 END) AS NUM_36," + " (CASE WHEN NUM_40 IS NULL THEN 0 ELSE NUM_40 END) AS NUM_40 " + - " FROM ODS_D_HOSPITAL AAA INNER JOIN (" + + " FROM ODS_D_HOSPITAL AAA LEFT JOIN (" + " SELECT A.PROVINCE_ID," + " A.PROVINCE," + " A.CITY_ID," + @@ -1225,7 +1264,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + - " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO INNER JOIN (\n" + + " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO LEFT JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -1291,8 +1330,21 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + - " ) BB ON AAA.HOSPITAL_NO = BB.HOSPITAL_NO " + - " ORDER BY 1,2,3"; + " ) BB ON AAA.HOSPITAL_NO = BB.HOSPITAL_NO "; + if (StringUtils.isNotEmpty(hospitalId)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID= '" +hospitalId+"'"; + } + else + { + String hospitals = getPermissionStr(userId,provinceId,cityId,areaId); + if (StringUtils.isNotEmpty(hospitals)) + { + countSql+=" WHERE AAA.YCY_STSTEM_ID IN " +hospitals; + } + + } + countSql+=" ORDER BY 1,2,3"; System.out.println("sql===="+sql); System.out.println("countSql===="+countSql);