From 407b7879efe68d4704dc5f0c216035f474133334 Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Wed, 1 Jun 2022 14:22:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=95=E4=BA=A7-=E7=A7=A6=E7=9A=87=E5=B2=9B?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=A6=87=E5=B9=BC=E5=BB=BA=E6=A1=A3=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/controller/ReportController.java | 23 +++-- .../operate/web/service/IReportService.java | 12 ++- .../web/service/impl/ReportServiceImpl.java | 112 +++++++++++++-------- 3 files changed, 92 insertions(+), 55 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index 80944bb..65a2c04 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -62,8 +62,11 @@ public class ReportController extends BaseController { @TokenRequired @RequestMapping(value = "/patients", method = RequestMethod.GET) public BaseObjectResponse patients(@RequestParam String provinceId, String cityId, String areaId, String streetId, Integer statistVal, - Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request) { - return reportService.patients(provinceId, cityId, areaId, streetId, 1, statistVal, ageType, patientType, startDate, endDate, getUserId(request)); + Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { + String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); + return reportService.patients(provinceId, cityId, areaId, streetId, 1, statistVal, ageType, patientType, startDate, endDate, getUserId(request), + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); } /** * 建档明细导出 @@ -76,16 +79,19 @@ public class ReportController extends BaseController { @TokenRequired @RequestMapping(value = "/patients/export", method = RequestMethod.GET) public void patientsExport(String provinceId, String cityId, String areaId, String streetId, Integer statistType, - Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response) { + Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); if(StringUtils.isNotEmpty(hospitalId)){ Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId)); //衡水导出格式 if(organization!=null && "12".equals(organization.getCityId())){ - reportService.patientsHsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); + reportService.patientsHsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); }else { - reportService.patientsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response); + reportService.patientsExport(provinceId, cityId, areaId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request), response, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); // reportService.patientsExport(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, 1000000185, response); } } @@ -99,8 +105,11 @@ public class ReportController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/patients/export2", method = RequestMethod.GET) - public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response) { - reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, getUserId(request), response); + public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,Integer chjdType) { + String hospitalId = autoMatchFacade.getHospitalId(getUserId(request)); + reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, getUserId(request), response, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); // reportService.patientsExport2(provinceId, cityId, areaId, streetId, ageType, patientType, startDate, endDate, 1000000185, response); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java index 51ce22d..b0879ea 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java @@ -100,12 +100,16 @@ public interface IReportService extends IBaseService { BaseObjectResponse unUsedPeopleInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId); - BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId); + BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); - void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); - void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); + void patientsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); + void patientsHsExport(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); - void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response); + void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType); BaseObjectResponse health(String parentId, Integer userId); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index 43957a0..16b85c5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -231,8 +231,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService * @return */ @Override - 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) { - List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); + 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, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { + List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); List> hospitals = couponMapper.findAllHospitals(); Map restMap = new HashMap<>(); List> tabList = new ArrayList<>(); @@ -326,12 +328,12 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Map areaCountMap = new HashMap<>(); String groupKey = StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"; // 按照区县或者市统计 for (Patients patient : patients) { - String hospitalId = patient.getHospitalId(); - if (StringUtils.isEmpty(hospitalId)) { + String hospitalId2 = patient.getHospitalId(); + if (StringUtils.isEmpty(hospitalId2)) { continue; } for (Map map : hospitals) { - if (hospitalId.equals(map.get("id").toString())) { + if (hospitalId2.equals(map.get("id").toString())) { String areaId = (String) map.get(groupKey); if (areaCountMap.containsKey(areaId)) { areaCountMap.put(areaId, areaCountMap.get(areaId) + 1); @@ -495,8 +497,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService * @return */ // @Override - 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) { - List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); + 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, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { + List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); List> hospitals = couponMapper.findAllHospitals(); Map restMap = new HashMap<>(); List> tabList = new ArrayList<>(); @@ -590,12 +594,12 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Map areaCountMap = new HashMap<>(); String groupKey = StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"; // 按照区县或者市统计 for (Patients patient : patients) { - String hospitalId = patient.getHospitalId(); - if (StringUtils.isEmpty(hospitalId)) { + String hospitalId2 = patient.getHospitalId(); + if (StringUtils.isEmpty(hospitalId2)) { continue; } for (Map map : hospitals) { - if (hospitalId.equals(map.get("id").toString())) { + if (hospitalId2.equals(map.get("id").toString())) { Integer areaId = Integer.parseInt(map.get(groupKey).toString()); if (areaCountMap.containsKey(areaId)) { areaCountMap.put(areaId, areaCountMap.get(areaId) + 1); @@ -801,8 +805,9 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } @Override - 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) { - List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); + 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, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { + List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId,startAge,endAge,startWeek,endWeek,hospitalId,chjdType); Map codeCache = new HashMap<>(); Map hNameCache = new HashMap<>(); @@ -880,8 +885,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } @Override - 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) { - List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId); + 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, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { + List patients = getPatients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, userId, + startAge,endAge,startWeek,endWeek,hospitalId,chjdType); Map codeCache = new HashMap<>(); Map hNameCache = new HashMap<>(); @@ -977,8 +984,9 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } @Override - public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response) { - Map restMap = (Map) patients(provinceId, cityId, areaId, streetId, 1, 1, ageType, patientType, startDate, endDate, userId).getData(); + public void patientsExport2(String provinceId, String cityId, String areaId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, HttpServletResponse response, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { + Map restMap = (Map) patients(provinceId, cityId, areaId, streetId, 1, 1, ageType, patientType, startDate, endDate, userId,startAge,endAge,startWeek,endWeek,hospitalId,chjdType).getData(); List> tabList = (List>) restMap.get("tabList"); List titles = tabList.get(0); Map cnames = new LinkedHashMap<>(); @@ -1283,7 +1291,8 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } private List getPatients(String provinceId, String cityId, String aredId, String streetId, - Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { + Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId, + Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { List> hospitalInfos = mongoUtil.getHospitals(userId, provinceId, cityId, aredId, streetId); List hospitalIds = CollectionUtils.getListByKey(hospitalInfos, "id"); Criteria c = new Criteria(); @@ -1294,25 +1303,32 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Query query = Query.query(c); System.out.println(query.toString()); List patients = mongoTemplate.find(query, Patients.class); - doFilter(patients, ageType, patientType); + doFilter(patients, ageType, patientType,startAge,endAge,startWeek,endWeek,hospitalId,chjdType); return patients; } // 建档孕周 1=孕早期(0~12周) 2=孕中期(13-27) 3=孕晚期(28~42) // ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上 - private void doFilter(List patients, Integer ageType, Integer patientType) { + private void doFilter(List patients, Integer ageType, Integer patientType,Integer startAge,Integer endAge,Integer startWeek,Integer endWeek,String hospitalId,Integer chjdType) { if (patientType != null) { Iterator iterator = patients.iterator(); while (iterator.hasNext()) { Patients next = iterator.next(); Integer week = DateUtil.getWeek2(next.getLastMenses(), next.getBookbuildingDate()); if (week != null) { - if (patientType == 1 && week > 12) { - iterator.remove(); - } else if (patientType == 2 && (week < 13 || week > 27)) { - iterator.remove(); - } else if (patientType == 3 && week < 28) { - iterator.remove(); + //秦皇岛定制(按孕周) + if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")){ + if ( week < startWeek || week > endWeek) { + iterator.remove(); + } + }else { + if (patientType == 1 && week > 12) { + iterator.remove(); + } else if (patientType == 2 && (week < 13 || week > 27)) { + iterator.remove(); + } else if (patientType == 3 && week < 28) { + iterator.remove(); + } } } } @@ -1321,25 +1337,33 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Iterator iterator = patients.iterator(); while (iterator.hasNext()) { Integer age = DateUtil.getAge(iterator.next().getBirth()); - if (age == null) { - iterator.remove(); - continue; - } - if (ageType == 2 && age > 20) { - iterator.remove(); - continue; - } - if (ageType == 3 && (age > 30 || age <= 20)) { - iterator.remove(); - continue; - } - if (ageType == 4 && (age > 40 || age <= 30)) { - iterator.remove(); - continue; - } - if (ageType == 5 && age <= 40) { - iterator.remove(); - continue; + //秦皇岛定制(按年龄范围) + if(StringUtils.isNotEmpty(hospitalId) && hospitalId.equals("216")){ + if (age >= endAge || age <= startAge) { + iterator.remove(); + continue; + } + }else { + if (age == null) { + iterator.remove(); + continue; + } + if (ageType == 2 && age > 20) { + iterator.remove(); + continue; + } + if (ageType == 3 && (age > 30 || age <= 20)) { + iterator.remove(); + continue; + } + if (ageType == 4 && (age > 40 || age <= 30)) { + iterator.remove(); + continue; + } + if (ageType == 5 && age <= 40) { + iterator.remove(); + continue; + } } } } -- 1.8.3.1