Commit 6e5267fdd0b8582f1d159a6f658f32173b36a529

Authored by shiyang
1 parent 407b7879ef

孕产-秦皇岛区域妇幼建档统计需求改版精准到天

Showing 3 changed files with 72 additions and 57 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java View file @ 6e5267f
... ... @@ -63,10 +63,10 @@
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 65 Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request,
66   - Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) {
  66 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek) {
67 67 String hospitalId = autoMatchFacade.getHospitalId(getUserId(request));
68 68 return reportService.patients(provinceId, cityId, areaId, streetId, 1, statistVal, ageType, patientType, startDate, endDate, getUserId(request),
69   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  69 + startAge,endAge,startWeek,endWeek,hospitalId);
70 70 }
71 71 /**
72 72 * 建档明细导出
73 73  
74 74  
... ... @@ -80,18 +80,18 @@
80 80 @RequestMapping(value = "/patients/export", method = RequestMethod.GET)
81 81 public void patientsExport(String provinceId, String cityId, String areaId, String streetId, Integer statistType,
82 82 Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response,
83   - Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) {
  83 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek) {
84 84 String hospitalId = autoMatchFacade.getHospitalId(getUserId(request));
85 85 if(StringUtils.isNotEmpty(hospitalId)){
86 86 Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId));
87 87 //衡水导出格式
88 88 if(organization!=null && "12".equals(organization.getCityId())){
89 89 reportService.patientsHsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response,
90   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  90 + startAge,endAge,startWeek,endWeek,hospitalId);
91 91  
92 92 }else {
93 93 reportService.patientsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response,
94   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  94 + startAge,endAge,startWeek,endWeek,hospitalId);
95 95 // reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, 1000000185, response);
96 96 }
97 97 }
98 98  
... ... @@ -106,10 +106,10 @@
106 106 @TokenRequired
107 107 @RequestMapping(value = "/patients/export2", method = RequestMethod.GET)
108 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) {
  109 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek) {
110 110 String hospitalId = autoMatchFacade.getHospitalId(getUserId(request));
111 111 reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, getUserId(request), response,
112   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  112 + startAge,endAge,startWeek,endWeek,hospitalId);
113 113 // reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, 1000000185, response);
114 114 }
115 115  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java View file @ 6e5267f
... ... @@ -101,15 +101,15 @@
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 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 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId);
105 105  
106 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);
  107 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId );
108 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);
  109 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId );
110 110  
111 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);
  112 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId);
113 113  
114 114 BaseObjectResponse health(String parentId, Integer userId);
115 115  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ 6e5267f
... ... @@ -232,9 +232,9 @@
232 232 */
233 233 @Override
234 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) {
  235 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId ) {
236 236 List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,
237   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  237 + startAge,endAge,startWeek,endWeek,hospitalId);
238 238 List<Map<String, Object>> hospitals = couponMapper.findAllHospitals();
239 239 Map<String, Object> restMap = new HashMap<>();
240 240 List<List<String>> tabList = new ArrayList<>();
241 241  
... ... @@ -498,9 +498,9 @@
498 498 */
499 499 // @Override
500 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) {
  501 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId ) {
502 502 List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,
503   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  503 + startAge,endAge,startWeek,endWeek,hospitalId);
504 504 List<Map<String, Object>> hospitals = couponMapper.findAllHospitals();
505 505 Map<String, Object> restMap = new HashMap<>();
506 506 List<List<String>> tabList = new ArrayList<>();
... ... @@ -806,8 +806,8 @@
806 806  
807 807 @Override
808 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);
  809 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId ) {
  810 + List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,startAge,endAge,startWeek,endWeek,hospitalId);
811 811  
812 812 Map<String, String> codeCache = new HashMap<>();
813 813 Map<String, String> hNameCache = new HashMap<>();
814 814  
... ... @@ -886,9 +886,9 @@
886 886  
887 887 @Override
888 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) {
  889 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId ) {
890 890 List<Patients> patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,
891   - startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  891 + startAge,endAge,startWeek,endWeek,hospitalId);
892 892  
893 893 Map<String, String> codeCache = new HashMap<>();
894 894 Map<String, String> hNameCache = new HashMap<>();
... ... @@ -985,8 +985,8 @@
985 985  
986 986 @Override
987 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();
  988 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId ) {
  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).getData();
990 990 List<List<String>> tabList = (List<List<String>>) restMap.get("tabList");
991 991 List<String> titles = tabList.get(0);
992 992 Map<String, String> cnames = new LinkedHashMap<>();
... ... @@ -1292,7 +1292,7 @@
1292 1292  
1293 1293 private List<Patients> getPatients(String provinceId, String cityId, String aredId, String streetId,
1294 1294 Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId,
1295   - Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) {
  1295 + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId) {
1296 1296 List<Map<String, Object>> hospitalInfos = mongoUtil.getHospitals(userId, provinceId, cityId, aredId, streetId);
1297 1297 List<String> hospitalIds = CollectionUtils.getListByKey(hospitalInfos, "id");
1298 1298 Criteria c = new Criteria();
1299 1299  
1300 1300  
... ... @@ -1303,32 +1303,25 @@
1303 1303 Query query = Query.query(c);
1304 1304 System.out.println(query.toString());
1305 1305 List<Patients> patients = mongoTemplate.find(query, Patients.class);
1306   - doFilter(patients, ageType, patientType,startAge,endAge,startWeek,endWeek,hospitalId,chjdType);
  1306 + doFilter(patients, ageType, patientType,startAge,endAge,startWeek,endWeek,hospitalId);
1307 1307 return patients;
1308 1308 }
1309 1309  
1310 1310 // 建档孕周 1=孕早期(0~12周) 2=孕中期(13-27) 3=孕晚期(28~42)
1311 1311 // ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上
1312   - private void doFilter(List<Patients> patients, Integer ageType, Integer patientType,Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) {
  1312 + private void doFilter(List<Patients> patients, Integer ageType, Integer patientType,Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId) {
1313 1313 if (patientType != null) {
1314 1314 Iterator<Patients> iterator = patients.iterator();
1315 1315 while (iterator.hasNext()) {
1316 1316 Patients next = iterator.next();
1317 1317 Integer week = DateUtil.getWeek2(next.getLastMenses(), next.getBookbuildingDate());
1318 1318 if (week != null) {
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   - }
  1319 + if (patientType == 1 && week > 12) {
  1320 + iterator.remove();
  1321 + } else if (patientType == 2 && (week < 13 || week > 27)) {
  1322 + iterator.remove();
  1323 + } else if (patientType == 3 && week < 28) {
  1324 + iterator.remove();
1332 1325 }
1333 1326 }
1334 1327 }
1335 1328  
1336 1329  
... ... @@ -1337,32 +1330,54 @@
1337 1330 Iterator<Patients> iterator = patients.iterator();
1338 1331 while (iterator.hasNext()) {
1339 1332 Integer age = DateUtil.getAge(iterator.next().getBirth());
1340   - //秦皇岛定制(按年龄范围)
1341   - if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")){
1342   - if (age >= endAge || age <= startAge) {
  1333 + if (age == null) {
  1334 + iterator.remove();
  1335 + continue;
  1336 + }
  1337 + if (ageType == 2 && age > 20) {
  1338 + iterator.remove();
  1339 + continue;
  1340 + }
  1341 + if (ageType == 3 && (age > 30 || age <= 20)) {
  1342 + iterator.remove();
  1343 + continue;
  1344 + }
  1345 + if (ageType == 4 && (age > 40 || age <= 30)) {
  1346 + iterator.remove();
  1347 + continue;
  1348 + }
  1349 + if (ageType == 5 && age <= 40) {
  1350 + iterator.remove();
  1351 + continue;
  1352 + }
  1353 + }
  1354 + }
  1355 + //秦皇岛定制
  1356 + if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")) {
  1357 + //按孕周
  1358 + Iterator<Patients> iterator = patients.iterator();
  1359 + while (iterator.hasNext()) {
  1360 + Patients next = iterator.next();
  1361 + Integer days = DateUtil.getDays(next.getLastMenses(), next.getBookbuildingDate());
  1362 + if (days != null) {
  1363 + if (null!= startWeek && days < startWeek) {
1343 1364 iterator.remove();
1344 1365 continue;
1345 1366 }
1346   - }else {
1347   - if (age == null) {
  1367 + if (null!= endWeek && days > endWeek) {
1348 1368 iterator.remove();
1349 1369 continue;
1350 1370 }
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;
  1371 + }
  1372 + }
  1373 + //按年龄
  1374 + Iterator<Patients> iterator2 = patients.iterator();
  1375 + while (iterator2.hasNext()) {
  1376 + Patients next = iterator2.next();
  1377 + Integer age = DateUtil.getAge(next.getBirth());
  1378 + if (age != null) {
  1379 + if (age >= endAge || age <= startAge) {
  1380 + iterator2.remove();
1366 1381 }
1367 1382 }
1368 1383 }