From cdabb304766ec07d22f8b1333699ac55bf20f344 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Mon, 20 Nov 2017 16:16:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/controller/ReportController.java | 7 +++- .../operate/web/facade/BookbuildingFacade.java | 2 +- .../operate/web/service/IReportService.java | 2 +- .../web/service/impl/ReportServiceImpl.java | 48 +++++++++++++++++++++- .../lyms/platform/operate/web/utils/MongoUtil.java | 4 +- 5 files changed, 55 insertions(+), 8 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 24e0359..1b8c376 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 @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; @@ -32,6 +33,7 @@ public class ReportController extends BaseController { /** * 建档统计 + * @param statistType 统计环比 1=周 2=月 3=季度 4=半年 5=年 * @param ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上 * @param patientType 建档孕周 1=孕早期 2=孕中期 3=孕晚期 * @return @@ -39,8 +41,9 @@ public class ReportController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/patients", method = RequestMethod.GET) - public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request) { - return reportService.patients(provinceId, cityId, aredId, streetId, ageType, patientType, startDate, endDate, getUserId(request)); + public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, + @RequestParam Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request) { + return reportService.patients(provinceId, cityId, aredId, streetId, statistType, ageType, patientType, startDate, endDate, getUserId(request)); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 34974a4..ebb3e47 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -1110,7 +1110,6 @@ public class BookbuildingFacade { patient.setFuckLastMens(DateUtil.parseYMD(yunRequest.getLastMenstrualPeriod())); patient.setLastMenses(DateUtil.parseYMD(yunRequest.getFuckLastMens())); } - patient.setLastMenses(DateUtil.parseYMD(yunRequest.getLastMenstrualPeriod())); patient.setLastMenstrualPeriodBasis(yunRequest.getLastMenstrualPeriodBasis()); patient.setLastMenstrualPeriodBasisDoctorId(yunRequest.getLastMenstrualPeriodBasisDoctorId()); @@ -1248,6 +1247,7 @@ public class BookbuildingFacade { if (patients != null && patients.size() > 0) { Patients p = patients.get(0); result = getResult(p); + result.setLastMenstrualPeriodBasis(p.getLastMenstrualPeriodBasis()); /** 末次月经和纠正末次月经反起来返回 */ if(p.getFuckLastMens() != null) { result.setFuckLastMens(DateUtil.getyyyy_MM_dd(p.getLastMenses())); 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 3029d38..6e61cbb 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 @@ -98,5 +98,5 @@ 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 ageType, Integer patientType, Date startDate, Date endDate, Integer userId); + BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, 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 a2bcfb4..7984f1c 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 @@ -179,17 +179,61 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService /** * 建档统计 + * @param statistType 统计环比 1=周 2=月 3=季度 4=半年 5=年 * @param ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上 * @param patientType 建档孕周 1=孕早期 2=孕中期 3=孕晚期 * @return */ @Override - public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { - List hospitals = mongoUtil.getHospitals(userId, provinceId, cityId, aredId, streetId); + public BaseObjectResponse patients(String provinceId, String cityId, String aredId, String streetId, + Integer statistType, Integer ageType, Integer patientType, Date startDate, Date endDate, Integer userId) { + List> hospitalInfos = mongoUtil.getHospitals(userId, provinceId, cityId, aredId, streetId); + List hospitalIds = CollectionUtils.getListByKey(hospitalInfos, "id"); + Criteria c = new Criteria(); + c.and("hospitalId").in(hospitalIds).and("yn").ne(0).and("enable").ne("2").and("buildType").ne(1); + if(startDate != null && endDate != null) { + c.and("bookbuildingDate").gte(startDate).lt(DateUtil.addDay(endDate, 1)); + } + List patients = mongoTemplate.find(Query.query(c), Patients.class); return null; } + private void doFilter(List patients, Integer ageType, Integer patientType) { + if(patientType != null) { + Iterator iterator = patients.iterator(); + while (iterator.hasNext()) { + + } + } + if (ageType != null) { + 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) { + iterator.remove(); + continue; + } + if(ageType == 4 && age >= 40) { + iterator.remove(); + continue; + } + if(ageType == 5 && age < 40) { + iterator.remove(); + continue; + } + } + } + } + @Override public BaseObjectResponse areaCountFacade(String startDate, String endDate, Integer startWeek, Integer endWeek, Integer childBirth, Integer userId) { BaseObjectResponse rest = new BaseObjectResponse(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java index 93f73e8..77ab9e3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java @@ -51,10 +51,10 @@ public class MongoUtil { @Autowired private CouponMapper couponMapper; - public List getHospitals(Integer userId, String provinceId, String cityId, String areaId, String streetId) { + public List> getHospitals(Integer userId, String provinceId, String cityId, String areaId, String streetId) { List hospitalIds = accessPermissionFacade.getCurrentUserHospPermissions(userId); List> hospitals= couponMapper.findHospitalInfoByIds2(CollectionUtils.createMap("list", hospitalIds, "provinceId", provinceId, "cityId", cityId, "areaId", areaId, "streetId", streetId)); - return null; + return hospitals; } public List> getListByParentId(String id) { -- 1.8.3.1