From 15c024f2f653558eb2f63febc4ee67616b99a18e Mon Sep 17 00:00:00 2001 From: liquanyu Date: Sat, 1 Apr 2017 16:03:20 +0800 Subject: [PATCH] update --- .../operate/web/facade/AreaCountFacade.java | 181 +++++++++++---------- 1 file changed, 93 insertions(+), 88 deletions(-) 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 75c5c89..fb956c1 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 @@ -84,15 +84,15 @@ public class AreaCountFacade { String areaId, Integer userId) { String sql1 = "SELECT " + - " AA.PROVINCE," + - " AA.PROVINCE_ID," + - " AA.CITY," + - " AA.CITY_ID," + - " AA.AREA_COUNTY," + - " AA.AREA_COUNTY_ID ," + - " AA.HOSPITAL_NAME," + - " AA.HOSPITAL_NO," + - " AA.YCY_STSTEM_ID, " + + " AAA.PROVINCE," + + " AAA.PROVINCE_ID," + + " AAA.CITY," + + " AAA.CITY_ID," + + " AAA.AREA_COUNTY," + + " AAA.AREA_COUNTY_ID ," + + " AAA.HOSPITAL_NAME," + + " AAA.HOSPITAL_NO," + + " AAA.YCY_STSTEM_ID, " + " AA.FF_RS AS FF_RS, " + " AA.FF_JS AS FF_JS, " + " (CASE WHEN SY_RS IS NULL THEN 0 ELSE SY_RS END) AS SY_RS," + @@ -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 (SELECT A.PROVINCE_ID, " + + " FROM ODS_D_HOSPITAL AAA INNER JOIN (SELECT A.PROVINCE_ID, " + " A.PROVINCE, " + " A.CITY_ID, " + " A.CITY, " + @@ -114,7 +114,8 @@ public class AreaCountFacade { " COUNT(DISTINCT B.RECORD_ID) AS FF_RS, " + " COUNT(B.TICKETS_NO) AS FF_JS " + " FROM ODS_D_HOSPITAL A " + - " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO " + + " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO" + + " INNER JOIN ODS_F_GRAVIDA_RECORD C ON B.RECORD_ID=C.RECORD_ID " + " WHERE 1=1 "; String issueSql = ""; if (StringUtils.isNotEmpty(time)) @@ -159,8 +160,8 @@ public class AreaCountFacade { " A.AREA_COUNTY, " + " A.HOSPITAL_NO, " + " A.HOSPITAL_NAME, " + - " A.YCY_STSTEM_ID) AA " + - " LEFT JOIN ( " + + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" + + " INNER JOIN ( " + " SELECT A.PROVINCE_ID, " + " A.PROVINCE, " + " A.CITY_ID, " + @@ -179,6 +180,7 @@ public class AreaCountFacade { " SUM((CASE WHEN CC.TICKETS_ORDER=5 THEN 1 END)) AS TICKET_5 " + " FROM ODS_F_EXAMINE_HISTORY_ASC CC " + " LEFT JOIN ODS_D_HOSPITAL A ON A.HOSPITAL_NO=CC.HOSPITAL_NO " + + " INNER JOIN ODS_F_GRAVIDA_RECORD B ON CC.RECORD_ID=B.RECORD_ID " + " WHERE CC.TICKETS_NO IS NOT NULL "; String examineSql = ""; if (StringUtils.isNotEmpty(time)) @@ -224,7 +226,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO, " + " A.HOSPITAL_NAME, " + " A.YCY_STSTEM_ID " + - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO " + + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO " + " ORDER BY 1,2,3"; String groupBySql = ""; @@ -232,43 +234,44 @@ public class AreaCountFacade { if (StringUtils.isNotEmpty(hospitalId) || StringUtils.isNotEmpty(areaId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY," + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," + - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID AS HNAME," ; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID, " + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID, " + - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY," + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," + + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID AS HNAME," ; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID, " + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID, " + + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID"; } else if (StringUtils.isNotEmpty(cityId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY," + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," ; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID, " + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY," + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," ; + groupBySql1=" AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID, " + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID"; } else if (StringUtils.isNotEmpty(provinceId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY,"; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID "; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY,"; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID "; } else { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE,"; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE,"; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID"; } String countSql = "SELECT "+groupBySql+ " SUM(AA.FF_JS) AS FF_JS,\n" + " SUM(SY_JS) AS SY_JS\n" + - " FROM (\n" + + " FROM ODS_D_HOSPITAL AAA \n" + + " INNER JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -281,7 +284,9 @@ public class AreaCountFacade { " COUNT(DISTINCT B.RECORD_ID) AS FF_RS,\n" + " COUNT(B.TICKETS_NO) AS FF_JS\n" + " FROM ODS_D_HOSPITAL A\n" + - " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO WHERE 1=1 " ; + " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO " + + " INNER JOIN ODS_F_GRAVIDA_RECORD C ON B.RECORD_ID=C.RECORD_ID " + + " WHERE 1=1 " ; countSql+=issueSql; countSql+=" GROUP BY A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + @@ -291,8 +296,8 @@ public class AreaCountFacade { " A.AREA_COUNTY,\n" + " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + - " A.YCY_STSTEM_ID) AA\n" + - " LEFT JOIN (\n" + + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO\n" + + " INNER JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + @@ -305,7 +310,7 @@ public class AreaCountFacade { " COUNT(DISTINCT CC.RECORD_ID) AS SY_RS,\n" + " COUNT(CC.TICKETS_NO) AS SY_JS\n" + " FROM ODS_F_EXAMINE_HISTORY_ASC CC\n" + - " LEFT JOIN ODS_D_HOSPITAL A ON A.HOSPITAL_NO=CC.HOSPITAL_NO\n" + + " LEFT JOIN ODS_D_HOSPITAL A ON A.HOSPITAL_NO=CC.HOSPITAL_NO INNER JOIN ODS_F_GRAVIDA_RECORD B ON CC.RECORD_ID=B.RECORD_ID" + " WHERE CC.TICKETS_NO IS NOT NULL\n" ; countSql+=examineSql; countSql+=" GROUP BY A.PROVINCE_ID,\n" + @@ -317,7 +322,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + " GROUP BY ROLLUP("+groupBySql1+")" + " ORDER BY 1,2,3"; @@ -643,29 +648,29 @@ public class AreaCountFacade { //权限所有的医院 List allHospitalList = new ArrayList<>(); -// DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); -// dataPermissionsModelQuery.setUserId(userId); -// List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); -// if (CollectionUtils.isNotEmpty(permissionsModels)) { -// Set set = permissionsModels.get(0).getData().keySet(); -// Iterator it = set.iterator(); -// while (it.hasNext()) { -// String id = it.next(); -// if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) { -// allHospitalList.add(id); -// } -// } -// } - List list = autoMatchFacade.matchAreaOrgId(userId); - if (CollectionUtils.isNotEmpty(list)) - { - for(Integer id : list) - { - if (id != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(id.toString()) && !hospitalList.contains(id.toString())) { - allHospitalList.add(id.toString()); - } - } - } + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + Set set = permissionsModels.get(0).getData().keySet(); + Iterator it = set.iterator(); + while (it.hasNext()) { + String id = it.next(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) { + allHospitalList.add(id); + } + } + } +// List list = autoMatchFacade.matchAreaOrgId(userId); +// if (CollectionUtils.isNotEmpty(list)) +// { +// for(Integer id : list) +// { +// if (id != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(id.toString()) && !hospitalList.contains(id.toString())) { +// allHospitalList.add(id.toString()); +// } +// } +// } //条件查询到的医院 @@ -979,36 +984,36 @@ public class AreaCountFacade { if (StringUtils.isNotEmpty(hospitalId) || StringUtils.isNotEmpty(areaId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY," + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," + - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID AS HNAME," ; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID, " + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID, " + - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY," + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," + + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID AS HNAME," ; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID, " + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID, " + + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID"; } else if (StringUtils.isNotEmpty(cityId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY," + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," ; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID, " + - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY," + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," ; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID, " + + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID"; } else if (StringUtils.isNotEmpty(provinceId)) { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," + - " AA.CITY||';'||AA.CITY_ID AS CITY,"; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " + - " AA.CITY||';'||AA.CITY_ID "; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," + + " AAA.CITY||';'||AAA.CITY_ID AS CITY,"; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " + + " AAA.CITY||';'||AAA.CITY_ID "; } else { - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE,"; - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID"; + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE,"; + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID"; } String countSql = "SELECT "+groupBySql+ @@ -1019,7 +1024,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\n" + + "FROM ODS_D_HOSPITAL AAA INNER JOIN" + "(\n" + "--建档人数\n" + "SELECT A.PROVINCE_ID,\n" + @@ -1077,7 +1082,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + - ") AA\n" + + ") AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" + "LEFT JOIN (\n" + "--产检节点人数\n" + "SELECT A.PROVINCE_ID,\n" + @@ -1144,7 +1149,7 @@ public class AreaCountFacade { " A.HOSPITAL_NO,\n" + " A.HOSPITAL_NAME,\n" + " A.YCY_STSTEM_ID\n" + - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" + " GROUP BY ROLLUP("+groupBySql1+" ) " + " ORDER BY 1,2,3"; @@ -1166,7 +1171,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 LEFT JOIN (" + + " FROM ODS_D_HOSPITAL AAA INNER JOIN (" + " SELECT A.PROVINCE_ID," + " A.PROVINCE," + " A.CITY_ID," + @@ -1223,7 +1228,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 LEFT JOIN (\n" + + " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO INNER JOIN (\n" + " SELECT A.PROVINCE_ID,\n" + " A.PROVINCE,\n" + " A.CITY_ID,\n" + -- 1.8.3.1