Commit 407b7879efe68d4704dc5f0c216035f474133334

Authored by shiyang
1 parent b2cba32755

孕产-秦皇岛区域妇幼建档统计需求

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 }