Commit 15c024f2f653558eb2f63febc4ee67616b99a18e

Authored by liquanyu
1 parent 8de43fe1a1

update

Showing 1 changed file with 93 additions and 88 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java View file @ 15c024f
... ... @@ -84,15 +84,15 @@
84 84 String areaId, Integer userId) {
85 85  
86 86 String sql1 = "SELECT " +
87   - " AA.PROVINCE," +
88   - " AA.PROVINCE_ID," +
89   - " AA.CITY," +
90   - " AA.CITY_ID," +
91   - " AA.AREA_COUNTY," +
92   - " AA.AREA_COUNTY_ID ," +
93   - " AA.HOSPITAL_NAME," +
94   - " AA.HOSPITAL_NO," +
95   - " AA.YCY_STSTEM_ID, " +
  87 + " AAA.PROVINCE," +
  88 + " AAA.PROVINCE_ID," +
  89 + " AAA.CITY," +
  90 + " AAA.CITY_ID," +
  91 + " AAA.AREA_COUNTY," +
  92 + " AAA.AREA_COUNTY_ID ," +
  93 + " AAA.HOSPITAL_NAME," +
  94 + " AAA.HOSPITAL_NO," +
  95 + " AAA.YCY_STSTEM_ID, " +
96 96 " AA.FF_RS AS FF_RS, " +
97 97 " AA.FF_JS AS FF_JS, " +
98 98 " (CASE WHEN SY_RS IS NULL THEN 0 ELSE SY_RS END) AS SY_RS," +
... ... @@ -102,7 +102,7 @@
102 102 " (CASE WHEN TICKET_3 IS NULL THEN 0 ELSE TICKET_3 END) AS TICKET_3, " +
103 103 " (CASE WHEN TICKET_4 IS NULL THEN 0 ELSE TICKET_4 END) AS TICKET_4, " +
104 104 " (CASE WHEN TICKET_5 IS NULL THEN 0 ELSE TICKET_5 END) AS TICKET_5" +
105   - " FROM (SELECT A.PROVINCE_ID, " +
  105 + " FROM ODS_D_HOSPITAL AAA INNER JOIN (SELECT A.PROVINCE_ID, " +
106 106 " A.PROVINCE, " +
107 107 " A.CITY_ID, " +
108 108 " A.CITY, " +
... ... @@ -114,7 +114,8 @@
114 114 " COUNT(DISTINCT B.RECORD_ID) AS FF_RS, " +
115 115 " COUNT(B.TICKETS_NO) AS FF_JS " +
116 116 " FROM ODS_D_HOSPITAL A " +
117   - " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO " +
  117 + " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO" +
  118 + " INNER JOIN ODS_F_GRAVIDA_RECORD C ON B.RECORD_ID=C.RECORD_ID " +
118 119 " WHERE 1=1 ";
119 120 String issueSql = "";
120 121 if (StringUtils.isNotEmpty(time))
... ... @@ -159,8 +160,8 @@
159 160 " A.AREA_COUNTY, " +
160 161 " A.HOSPITAL_NO, " +
161 162 " A.HOSPITAL_NAME, " +
162   - " A.YCY_STSTEM_ID) AA " +
163   - " LEFT JOIN ( " +
  163 + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" +
  164 + " INNER JOIN ( " +
164 165 " SELECT A.PROVINCE_ID, " +
165 166 " A.PROVINCE, " +
166 167 " A.CITY_ID, " +
... ... @@ -179,6 +180,7 @@
179 180 " SUM((CASE WHEN CC.TICKETS_ORDER=5 THEN 1 END)) AS TICKET_5 " +
180 181 " FROM ODS_F_EXAMINE_HISTORY_ASC CC " +
181 182 " LEFT JOIN ODS_D_HOSPITAL A ON A.HOSPITAL_NO=CC.HOSPITAL_NO " +
  183 + " INNER JOIN ODS_F_GRAVIDA_RECORD B ON CC.RECORD_ID=B.RECORD_ID " +
182 184 " WHERE CC.TICKETS_NO IS NOT NULL ";
183 185 String examineSql = "";
184 186 if (StringUtils.isNotEmpty(time))
... ... @@ -224,7 +226,7 @@
224 226 " A.HOSPITAL_NO, " +
225 227 " A.HOSPITAL_NAME, " +
226 228 " A.YCY_STSTEM_ID " +
227   - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO " +
  229 + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO " +
228 230 " ORDER BY 1,2,3";
229 231  
230 232 String groupBySql = "";
231 233  
232 234  
233 235  
234 236  
... ... @@ -232,43 +234,44 @@
232 234  
233 235 if (StringUtils.isNotEmpty(hospitalId) || StringUtils.isNotEmpty(areaId))
234 236 {
235   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
236   - " AA.CITY||';'||AA.CITY_ID AS CITY," +
237   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," +
238   - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID AS HNAME," ;
239   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
240   - " AA.CITY||';'||AA.CITY_ID, " +
241   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID, " +
242   - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID";
  237 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  238 + " AAA.CITY||';'||AAA.CITY_ID AS CITY," +
  239 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," +
  240 + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID AS HNAME," ;
  241 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  242 + " AAA.CITY||';'||AAA.CITY_ID, " +
  243 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID, " +
  244 + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID";
243 245 }
244 246  
245 247 else if (StringUtils.isNotEmpty(cityId))
246 248 {
247   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
248   - " AA.CITY||';'||AA.CITY_ID AS CITY," +
249   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," ;
250   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
251   - " AA.CITY||';'||AA.CITY_ID, " +
252   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID";
  249 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  250 + " AAA.CITY||';'||AAA.CITY_ID AS CITY," +
  251 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," ;
  252 + groupBySql1=" AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  253 + " AAA.CITY||';'||AAA.CITY_ID, " +
  254 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID";
253 255 }
254 256 else if (StringUtils.isNotEmpty(provinceId))
255 257 {
256   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
257   - " AA.CITY||';'||AA.CITY_ID AS CITY,";
258   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
259   - " AA.CITY||';'||AA.CITY_ID ";
  258 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  259 + " AAA.CITY||';'||AAA.CITY_ID AS CITY,";
  260 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  261 + " AAA.CITY||';'||AAA.CITY_ID ";
260 262 }
261 263 else
262 264 {
263   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE,";
264   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID";
  265 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE,";
  266 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID";
265 267 }
266 268  
267 269  
268 270 String countSql = "SELECT "+groupBySql+
269 271 " SUM(AA.FF_JS) AS FF_JS,\n" +
270 272 " SUM(SY_JS) AS SY_JS\n" +
271   - " FROM (\n" +
  273 + " FROM ODS_D_HOSPITAL AAA \n" +
  274 + " INNER JOIN (\n" +
272 275 " SELECT A.PROVINCE_ID,\n" +
273 276 " A.PROVINCE,\n" +
274 277 " A.CITY_ID,\n" +
... ... @@ -281,7 +284,9 @@
281 284 " COUNT(DISTINCT B.RECORD_ID) AS FF_RS,\n" +
282 285 " COUNT(B.TICKETS_NO) AS FF_JS\n" +
283 286 " FROM ODS_D_HOSPITAL A\n" +
284   - " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO WHERE 1=1 " ;
  287 + " LEFT JOIN ODS_F_EXAMINE_TICKET B ON A.HOSPITAL_NO=B.HOSPITAL_NO " +
  288 + " INNER JOIN ODS_F_GRAVIDA_RECORD C ON B.RECORD_ID=C.RECORD_ID " +
  289 + " WHERE 1=1 " ;
285 290 countSql+=issueSql;
286 291 countSql+=" GROUP BY A.PROVINCE_ID,\n" +
287 292 " A.PROVINCE,\n" +
... ... @@ -291,8 +296,8 @@
291 296 " A.AREA_COUNTY,\n" +
292 297 " A.HOSPITAL_NO,\n" +
293 298 " A.HOSPITAL_NAME,\n" +
294   - " A.YCY_STSTEM_ID) AA\n" +
295   - " LEFT JOIN (\n" +
  299 + " A.YCY_STSTEM_ID) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO\n" +
  300 + " INNER JOIN (\n" +
296 301 " SELECT A.PROVINCE_ID,\n" +
297 302 " A.PROVINCE,\n" +
298 303 " A.CITY_ID,\n" +
... ... @@ -305,7 +310,7 @@
305 310 " COUNT(DISTINCT CC.RECORD_ID) AS SY_RS,\n" +
306 311 " COUNT(CC.TICKETS_NO) AS SY_JS\n" +
307 312 " FROM ODS_F_EXAMINE_HISTORY_ASC CC\n" +
308   - " LEFT JOIN ODS_D_HOSPITAL A ON A.HOSPITAL_NO=CC.HOSPITAL_NO\n" +
  313 + " 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" +
309 314 " WHERE CC.TICKETS_NO IS NOT NULL\n" ;
310 315 countSql+=examineSql;
311 316 countSql+=" GROUP BY A.PROVINCE_ID,\n" +
... ... @@ -317,7 +322,7 @@
317 322 " A.HOSPITAL_NO,\n" +
318 323 " A.HOSPITAL_NAME,\n" +
319 324 " A.YCY_STSTEM_ID\n" +
320   - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO\n" +
  325 + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" +
321 326 " GROUP BY ROLLUP("+groupBySql1+")" +
322 327 " ORDER BY 1,2,3";
323 328  
... ... @@ -643,29 +648,29 @@
643 648  
644 649 //权限所有的医院
645 650 List<String> allHospitalList = new ArrayList<>();
646   -// DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
647   -// dataPermissionsModelQuery.setUserId(userId);
648   -// List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
649   -// if (CollectionUtils.isNotEmpty(permissionsModels)) {
650   -// Set<String> set = permissionsModels.get(0).getData().keySet();
651   -// Iterator<String> it = set.iterator();
652   -// while (it.hasNext()) {
653   -// String id = it.next();
654   -// if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) {
655   -// allHospitalList.add(id);
656   -// }
657   -// }
658   -// }
659   - List<Integer> list = autoMatchFacade.matchAreaOrgId(userId);
660   - if (CollectionUtils.isNotEmpty(list))
661   - {
662   - for(Integer id : list)
663   - {
664   - if (id != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(id.toString()) && !hospitalList.contains(id.toString())) {
665   - allHospitalList.add(id.toString());
666   - }
667   - }
668   - }
  651 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  652 + dataPermissionsModelQuery.setUserId(userId);
  653 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  654 + if (CollectionUtils.isNotEmpty(permissionsModels)) {
  655 + Set<String> set = permissionsModels.get(0).getData().keySet();
  656 + Iterator<String> it = set.iterator();
  657 + while (it.hasNext()) {
  658 + String id = it.next();
  659 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) {
  660 + allHospitalList.add(id);
  661 + }
  662 + }
  663 + }
  664 +// List<Integer> list = autoMatchFacade.matchAreaOrgId(userId);
  665 +// if (CollectionUtils.isNotEmpty(list))
  666 +// {
  667 +// for(Integer id : list)
  668 +// {
  669 +// if (id != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(id.toString()) && !hospitalList.contains(id.toString())) {
  670 +// allHospitalList.add(id.toString());
  671 +// }
  672 +// }
  673 +// }
669 674  
670 675  
671 676 //条件查询到的医院
672 677  
673 678  
674 679  
... ... @@ -979,36 +984,36 @@
979 984  
980 985 if (StringUtils.isNotEmpty(hospitalId) || StringUtils.isNotEmpty(areaId))
981 986 {
982   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
983   - " AA.CITY||';'||AA.CITY_ID AS CITY," +
984   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," +
985   - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID AS HNAME," ;
986   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
987   - " AA.CITY||';'||AA.CITY_ID, " +
988   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID, " +
989   - " AA.HOSPITAL_NAME||';'||AA.YCY_STSTEM_ID";
  987 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  988 + " AAA.CITY||';'||AAA.CITY_ID AS CITY," +
  989 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," +
  990 + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID AS HNAME," ;
  991 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  992 + " AAA.CITY||';'||AAA.CITY_ID, " +
  993 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID, " +
  994 + " AAA.HOSPITAL_NAME||';'||AAA.YCY_STSTEM_ID";
990 995 }
991 996  
992 997 else if (StringUtils.isNotEmpty(cityId))
993 998 {
994   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
995   - " AA.CITY||';'||AA.CITY_ID AS CITY," +
996   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID AS AREA_COUNTY," ;
997   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
998   - " AA.CITY||';'||AA.CITY_ID, " +
999   - " AA.AREA_COUNTY||';'||AA.AREA_COUNTY_ID";
  999 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  1000 + " AAA.CITY||';'||AAA.CITY_ID AS CITY," +
  1001 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID AS AREA_COUNTY," ;
  1002 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  1003 + " AAA.CITY||';'||AAA.CITY_ID, " +
  1004 + " AAA.AREA_COUNTY||';'||AAA.AREA_COUNTY_ID";
1000 1005 }
1001 1006 else if (StringUtils.isNotEmpty(provinceId))
1002 1007 {
1003   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE," +
1004   - " AA.CITY||';'||AA.CITY_ID AS CITY,";
1005   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID, " +
1006   - " AA.CITY||';'||AA.CITY_ID ";
  1008 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE," +
  1009 + " AAA.CITY||';'||AAA.CITY_ID AS CITY,";
  1010 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID, " +
  1011 + " AAA.CITY||';'||AAA.CITY_ID ";
1007 1012 }
1008 1013 else
1009 1014 {
1010   - groupBySql=" AA.PROVINCE||';'||AA.PROVINCE_ID AS PROVINCE,";
1011   - groupBySql1="AA.PROVINCE||';'||AA.PROVINCE_ID";
  1015 + groupBySql=" AAA.PROVINCE||';'||AAA.PROVINCE_ID AS PROVINCE,";
  1016 + groupBySql1="AAA.PROVINCE||';'||AAA.PROVINCE_ID";
1012 1017 }
1013 1018  
1014 1019 String countSql = "SELECT "+groupBySql+
... ... @@ -1019,7 +1024,7 @@
1019 1024 " SUM(NUM_24) AS NUM_24,\n" +
1020 1025 " SUM(NUM_36) AS NUM_36,\n" +
1021 1026 " SUM(NUM_40) AS NUM_40\n" +
1022   - "FROM\n" +
  1027 + "FROM ODS_D_HOSPITAL AAA INNER JOIN" +
1023 1028 "(\n" +
1024 1029 "--建档人数\n" +
1025 1030 "SELECT A.PROVINCE_ID,\n" +
... ... @@ -1077,7 +1082,7 @@
1077 1082 " A.HOSPITAL_NO,\n" +
1078 1083 " A.HOSPITAL_NAME,\n" +
1079 1084 " A.YCY_STSTEM_ID\n" +
1080   - ") AA\n" +
  1085 + ") AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO" +
1081 1086 "LEFT JOIN (\n" +
1082 1087 "--产检节点人数\n" +
1083 1088 "SELECT A.PROVINCE_ID,\n" +
... ... @@ -1144,7 +1149,7 @@
1144 1149 " A.HOSPITAL_NO,\n" +
1145 1150 " A.HOSPITAL_NAME,\n" +
1146 1151 " A.YCY_STSTEM_ID\n" +
1147   - " ) BB ON AA.HOSPITAL_NO=BB.HOSPITAL_NO\n" +
  1152 + " ) BB ON AAA.HOSPITAL_NO=BB.HOSPITAL_NO\n" +
1148 1153 " GROUP BY ROLLUP("+groupBySql1+" ) " +
1149 1154 " ORDER BY 1,2,3";
1150 1155  
... ... @@ -1166,7 +1171,7 @@
1166 1171 " (CASE WHEN NUM_24 IS NULL THEN 0 ELSE NUM_24 END) AS NUM_24," +
1167 1172 " (CASE WHEN NUM_36 IS NULL THEN 0 ELSE NUM_36 END) AS NUM_36," +
1168 1173 " (CASE WHEN NUM_40 IS NULL THEN 0 ELSE NUM_40 END) AS NUM_40 " +
1169   - " FROM ODS_D_HOSPITAL AAA LEFT JOIN (" +
  1174 + " FROM ODS_D_HOSPITAL AAA INNER JOIN (" +
1170 1175 " SELECT A.PROVINCE_ID," +
1171 1176 " A.PROVINCE," +
1172 1177 " A.CITY_ID," +
... ... @@ -1223,7 +1228,7 @@
1223 1228 " A.HOSPITAL_NO,\n" +
1224 1229 " A.HOSPITAL_NAME,\n" +
1225 1230 " A.YCY_STSTEM_ID\n" +
1226   - " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO LEFT JOIN (\n" +
  1231 + " ) AA ON AAA.HOSPITAL_NO=AA.HOSPITAL_NO INNER JOIN (\n" +
1227 1232 " SELECT A.PROVINCE_ID,\n" +
1228 1233 " A.PROVINCE,\n" +
1229 1234 " A.CITY_ID,\n" +