Commit 407b7879efe68d4704dc5f0c216035f474133334
1 parent
b2cba32755
Exists in
master
and in
6 other branches
孕产-秦皇岛区域妇幼建档统计需求
Showing 3 changed files with 92 additions and 55 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java
View file @
407b787
... | ... | @@ -62,8 +62,11 @@ |
62 | 62 | @TokenRequired |
63 | 63 | @RequestMapping(value = "/patients", method = RequestMethod.GET) |
64 | 64 | public BaseObjectResponse patients(@RequestParam String provinceId, String cityId, String areaId, String streetId, Integer statistVal, |
65 | - Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request) { | |
66 | - return reportService.patients(provinceId, cityId, areaId, streetId, 1, statistVal, ageType, patientType, startDate, endDate, getUserId(request)); | |
65 | + Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, | |
66 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { | |
67 | + String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); | |
68 | + return reportService.patients(provinceId, cityId, areaId, streetId, 1, statistVal, ageType, patientType, startDate, endDate, getUserId(request), | |
69 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
67 | 70 | } |
68 | 71 | /** |
69 | 72 | * 建档明细导出 |
70 | 73 | |
71 | 74 | |
... | ... | @@ -76,16 +79,19 @@ |
76 | 79 | @TokenRequired |
77 | 80 | @RequestMapping(value = "/patients/export", method = RequestMethod.GET) |
78 | 81 | public void patientsExport(String provinceId, String cityId, String areaId, String streetId, Integer statistType, |
79 | - Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response) { | |
82 | + Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response, | |
83 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { | |
80 | 84 | String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); |
81 | 85 | if(StringUtils.isNotEmpty(hospitalId)){ |
82 | 86 | Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId)); |
83 | 87 | //衡水导出格式 |
84 | 88 | if(organization!=null && "12".equals(organization.getCityId())){ |
85 | - reportService.patientsHsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); | |
89 | + reportService.patientsHsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response, | |
90 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
86 | 91 | |
87 | 92 | }else { |
88 | - reportService.patientsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); | |
93 | + reportService.patientsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response, | |
94 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
89 | 95 | // reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, 1000000185, response); |
90 | 96 | } |
91 | 97 | } |
... | ... | @@ -99,8 +105,11 @@ |
99 | 105 | @ResponseBody |
100 | 106 | @TokenRequired |
101 | 107 | @RequestMapping(value = "/patients/export2", method = RequestMethod.GET) |
102 | - public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response) { | |
103 | - reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, getUserId(request), response); | |
108 | + public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response, | |
109 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { | |
110 | + String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); | |
111 | + reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, getUserId(request), response, | |
112 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
104 | 113 | // reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, 1000000185, response); |
105 | 114 | } |
106 | 115 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java
View file @
407b787
... | ... | @@ -100,12 +100,16 @@ |
100 | 100 | |
101 | 101 | BaseObjectResponse unUsedPeopleInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId); |
102 | 102 | |
103 | - BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId); | |
103 | + BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, | |
104 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); | |
104 | 105 | |
105 | - void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); | |
106 | - void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); | |
106 | + void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
107 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); | |
108 | + void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
109 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); | |
107 | 110 | |
108 | - void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); | |
111 | + void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
112 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); | |
109 | 113 | |
110 | 114 | BaseObjectResponse health(String parentId, Integer userId); |
111 | 115 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java
View file @
407b787
... | ... | @@ -231,8 +231,10 @@ |
231 | 231 | * @return |
232 | 232 | */ |
233 | 233 | @Override |
234 | - public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { | |
235 | - List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); | |
234 | + public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, | |
235 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
236 | + List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, | |
237 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
236 | 238 | List<Map<String, Object>> hospitals = couponMapper.findAllHospitals(); |
237 | 239 | Map<String, Object> restMap = new HashMap<>(); |
238 | 240 | List<List<String>> tabList = new ArrayList<>(); |
239 | 241 | |
... | ... | @@ -326,12 +328,12 @@ |
326 | 328 | Map<String, Integer> areaCountMap = new HashMap<>(); |
327 | 329 | String groupKey = StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"; // 按照区县或者市统计 |
328 | 330 | for (Patients patient : patients) { |
329 | - String hospitalId = patient.getHospitalId(); | |
330 | - if (StringUtils.isEmpty(hospitalId)) { | |
331 | + String hospitalId2 = patient.getHospitalId(); | |
332 | + if (StringUtils.isEmpty(hospitalId2)) { | |
331 | 333 | continue; |
332 | 334 | } |
333 | 335 | for (Map<String, Object> map : hospitals) { |
334 | - if (hospitalId.equals(map.get("id").toString())) { | |
336 | + if (hospitalId2.equals(map.get("id").toString())) { | |
335 | 337 | String areaId = (String) map.get(groupKey); |
336 | 338 | if (areaCountMap.containsKey(areaId)) { |
337 | 339 | areaCountMap.put(areaId, areaCountMap.get(areaId) + 1); |
... | ... | @@ -495,8 +497,10 @@ |
495 | 497 | * @return |
496 | 498 | */ |
497 | 499 | // @Override |
498 | - public BaseObjectResponse patients2(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { | |
499 | - List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); | |
500 | + public BaseObjectResponse patients2(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, | |
501 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
502 | + List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, | |
503 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
500 | 504 | List<Map<String, Object>> hospitals = couponMapper.findAllHospitals(); |
501 | 505 | Map<String, Object> restMap = new HashMap<>(); |
502 | 506 | List<List<String>> tabList = new ArrayList<>(); |
503 | 507 | |
... | ... | @@ -590,12 +594,12 @@ |
590 | 594 | Map<Integer, Integer> areaCountMap = new HashMap<>(); |
591 | 595 | String groupKey = StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"; // 按照区县或者市统计 |
592 | 596 | for (Patients patient : patients) { |
593 | - String hospitalId = patient.getHospitalId(); | |
594 | - if (StringUtils.isEmpty(hospitalId)) { | |
597 | + String hospitalId2 = patient.getHospitalId(); | |
598 | + if (StringUtils.isEmpty(hospitalId2)) { | |
595 | 599 | continue; |
596 | 600 | } |
597 | 601 | for (Map<String, Object> map : hospitals) { |
598 | - if (hospitalId.equals(map.get("id").toString())) { | |
602 | + if (hospitalId2.equals(map.get("id").toString())) { | |
599 | 603 | Integer areaId = Integer.parseInt(map.get(groupKey).toString()); |
600 | 604 | if (areaCountMap.containsKey(areaId)) { |
601 | 605 | areaCountMap.put(areaId, areaCountMap.get(areaId) + 1); |
... | ... | @@ -801,8 +805,9 @@ |
801 | 805 | } |
802 | 806 | |
803 | 807 | @Override |
804 | - public void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response) { | |
805 | - List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); | |
808 | + public void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
809 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
810 | + List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
806 | 811 | |
807 | 812 | Map<String, String> codeCache = new HashMap<>(); |
808 | 813 | Map<String, String> hNameCache = new HashMap<>(); |
... | ... | @@ -880,8 +885,10 @@ |
880 | 885 | } |
881 | 886 | |
882 | 887 | @Override |
883 | - public void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response) { | |
884 | - List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); | |
888 | + public void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
889 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
890 | + List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, | |
891 | + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
885 | 892 | |
886 | 893 | Map<String, String> codeCache = new HashMap<>(); |
887 | 894 | Map<String, String> hNameCache = new HashMap<>(); |
... | ... | @@ -977,8 +984,9 @@ |
977 | 984 | } |
978 | 985 | |
979 | 986 | @Override |
980 | - public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response) { | |
981 | - Map<String, Object> restMap = (Map<String, Object>) patients(provinceId, cityId, areaId, streetId, 1, 1, ageType, patientType, startDate, endDate, userId).getData(); | |
987 | + public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, | |
988 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
989 | + Map<String, Object> restMap = (Map<String, Object>) patients(provinceId, cityId, areaId, streetId, 1, 1, ageType, patientType, startDate, endDate, userId,startAge,endAge,startWeek,endWeek,hospitalId,chjdType).getData(); | |
982 | 990 | List<List<String>> tabList = (List<List<String>>) restMap.get("tabList"); |
983 | 991 | List<String> titles = tabList.get(0); |
984 | 992 | Map<String, String> cnames = new LinkedHashMap<>(); |
... | ... | @@ -1283,7 +1291,8 @@ |
1283 | 1291 | } |
1284 | 1292 | |
1285 | 1293 | private List<Patients> getPatients(String provinceId, String cityId, String aredId, String streetId, |
1286 | - Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { | |
1294 | + Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, | |
1295 | + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
1287 | 1296 | List<Map<String, Object>> hospitalInfos = mongoUtil.getHospitals(userId, provinceId, cityId, aredId, streetId); |
1288 | 1297 | List<String> hospitalIds = CollectionUtils.getListByKey(hospitalInfos, "id"); |
1289 | 1298 | Criteria c = new Criteria(); |
1290 | 1299 | |
1291 | 1300 | |
... | ... | @@ -1294,25 +1303,32 @@ |
1294 | 1303 | Query query = Query.query(c); |
1295 | 1304 | System.out.println(query.toString()); |
1296 | 1305 | List<Patients> patients = mongoTemplate.find(query, Patients.class); |
1297 | - doFilter(patients, ageType, patientType); | |
1306 | + doFilter(patients, ageType, patientType,startAge,endAge,startWeek,endWeek,hospitalId,chjdType); | |
1298 | 1307 | return patients; |
1299 | 1308 | } |
1300 | 1309 | |
1301 | 1310 | // 建档孕周 1=孕早期(0~12周) 2=孕中期(13-27) 3=孕晚期(28~42) |
1302 | 1311 | // ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上 |
1303 | - private void doFilter(List<Patients> patients, Integer ageType, Integer patientType) { | |
1312 | + private void doFilter(List<Patients> patients, Integer ageType, Integer patientType,Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { | |
1304 | 1313 | if (patientType != null) { |
1305 | 1314 | Iterator<Patients> iterator = patients.iterator(); |
1306 | 1315 | while (iterator.hasNext()) { |
1307 | 1316 | Patients next = iterator.next(); |
1308 | 1317 | Integer week = DateUtil.getWeek2(next.getLastMenses(), next.getBookbuildingDate()); |
1309 | 1318 | if (week != null) { |
1310 | - if (patientType == 1 && week > 12) { | |
1311 | - iterator.remove(); | |
1312 | - } else if (patientType == 2 && (week < 13 || week > 27)) { | |
1313 | - iterator.remove(); | |
1314 | - } else if (patientType == 3 && week < 28) { | |
1315 | - iterator.remove(); | |
1319 | + //秦皇岛定制(按孕周) | |
1320 | + if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")){ | |
1321 | + if ( week < startWeek || week > endWeek) { | |
1322 | + iterator.remove(); | |
1323 | + } | |
1324 | + }else { | |
1325 | + if (patientType == 1 && week > 12) { | |
1326 | + iterator.remove(); | |
1327 | + } else if (patientType == 2 && (week < 13 || week > 27)) { | |
1328 | + iterator.remove(); | |
1329 | + } else if (patientType == 3 && week < 28) { | |
1330 | + iterator.remove(); | |
1331 | + } | |
1316 | 1332 | } |
1317 | 1333 | } |
1318 | 1334 | } |
... | ... | @@ -1321,25 +1337,33 @@ |
1321 | 1337 | Iterator<Patients> iterator = patients.iterator(); |
1322 | 1338 | while (iterator.hasNext()) { |
1323 | 1339 | Integer age = DateUtil.getAge(iterator.next().getBirth()); |
1324 | - if (age == null) { | |
1325 | - iterator.remove(); | |
1326 | - continue; | |
1327 | - } | |
1328 | - if (ageType == 2 && age > 20) { | |
1329 | - iterator.remove(); | |
1330 | - continue; | |
1331 | - } | |
1332 | - if (ageType == 3 && (age > 30 || age <= 20)) { | |
1333 | - iterator.remove(); | |
1334 | - continue; | |
1335 | - } | |
1336 | - if (ageType == 4 && (age > 40 || age <= 30)) { | |
1337 | - iterator.remove(); | |
1338 | - continue; | |
1339 | - } | |
1340 | - if (ageType == 5 && age <= 40) { | |
1341 | - iterator.remove(); | |
1342 | - continue; | |
1340 | + //秦皇岛定制(按年龄范围) | |
1341 | + if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")){ | |
1342 | + if (age >= endAge || age <= startAge) { | |
1343 | + iterator.remove(); | |
1344 | + continue; | |
1345 | + } | |
1346 | + }else { | |
1347 | + if (age == null) { | |
1348 | + iterator.remove(); | |
1349 | + continue; | |
1350 | + } | |
1351 | + if (ageType == 2 && age > 20) { | |
1352 | + iterator.remove(); | |
1353 | + continue; | |
1354 | + } | |
1355 | + if (ageType == 3 && (age > 30 || age <= 20)) { | |
1356 | + iterator.remove(); | |
1357 | + continue; | |
1358 | + } | |
1359 | + if (ageType == 4 && (age > 40 || age <= 30)) { | |
1360 | + iterator.remove(); | |
1361 | + continue; | |
1362 | + } | |
1363 | + if (ageType == 5 && age <= 40) { | |
1364 | + iterator.remove(); | |
1365 | + continue; | |
1366 | + } | |
1343 | 1367 | } |
1344 | 1368 | } |
1345 | 1369 | } |