diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java index b1aed70..0b2628d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java @@ -527,6 +527,30 @@ public class AreaCountController extends BaseController { patientSyncMysqlFacade.getPublicHygieneServiceCountExport(provinceId,cityId,areaId,streetId,dateTime,response); } + + /** + * 本月活产 和 累计活产数 + * @param request + * @param page + * @param limit + * @param areaId + * @param streetId + * @param dateTime + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getBabyFmList") + @ResponseBody + @TokenRequired + public BaseResponse getBabyFmList(HttpServletRequest request, + Integer page, Integer limit, + @RequestParam String areaId, + @RequestParam( required = false) String streetId, + @RequestParam Integer type, // 1本月活产 2累计活产 + @RequestParam Date dateTime) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return patientSyncMysqlFacade.getBabyFmList(page,limit,areaId,streetId,dateTime,type); + } + /** * 公共卫生项目统计 中医指导明细 * @param request diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java index efde103..cbfaaa7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java @@ -3256,43 +3256,39 @@ public class PatientSyncMysqlFacade extends BaseServiceImpl { Date startDateFirst=DateUtil.getYearFirst(DateUtil.getYear(startDate)); DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0 //本月活产数 - int data1=0; -// for (int i=1;i<=7;i++){//多胎情况 - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setHospitalId(hospitalId); - matDeliverQuery.setYn(YnEnums.YES.getId()); -// matDeliverQuery.setTireNumber(i); - matDeliverQuery.setCreatedStart(startDate); - matDeliverQuery.setEndStart(endDate); - data1+=matDeliverService.count(matDeliverQuery);//*i -// } + int data1= (int)mongoTemplate.count(new Query(Criteria. + where("yn").is(1) + .and("baby.pregnancyOut").is("0").and("hospitalId").is(hospitalId) + .and("dueDate1").gte(startDate).lte(endDate)),MaternalDeliverModel.class); + int lastDate1= null==hospitalDate.get("data1")?0:Integer.parseInt(hospitalDate.get("data1").toString()); hospitalDate.put("data1",data1+lastDate1); //累计活产数 - int data2=0; -// for (int i=1;i<=7;i++){//多胎情况 - MatDeliverQuery matDeliverQuery2 = new MatDeliverQuery(); - matDeliverQuery2.setHospitalId(hospitalId); - matDeliverQuery2.setYn(YnEnums.YES.getId()); -// matDeliverQuery.setTireNumber(i); - matDeliverQuery2.setCreatedStart(startDateFirst); - matDeliverQuery2.setEndStart(endDate); - data2+=matDeliverService.count(matDeliverQuery2);//*i; -// } + int data2 = (int)mongoTemplate.count(new Query(Criteria. + where("yn").is(1) + .and("baby.pregnancyOut").is("0").and("hospitalId").is(hospitalId) + .and("dueDate1").lte(endDate)),MaternalDeliverModel.class); + int lastDate2= null==hospitalDate.get("data2")?0:Integer.parseInt(hospitalDate.get("data2").toString()); hospitalDate.put("data2",data2+lastDate2); - //新生儿访视人数 - int data3=0; - AggregationOperation match = Aggregation.match(Criteria. - where("hospitalId").is(hospitalId) - .and("yn").is("1") - .and("created").gte(startDateFirst).lte(endDate)); - AggregationOperation group = Aggregation.group("babyId"); - Aggregation aggregation= Aggregation.newAggregation(match, group); - AggregationResults result = mongoTemplate.aggregate(aggregation,"lyms_newborn_visit", HashMap.class); - data3=result.getMappedResults().size(); + + + //本月新生儿访视人数 + int data26 = (int)mongoTemplate.count(new Query(Criteria. + where("yn").is("1") + .and("hospitalId").is(hospitalId) + .and("checkTime").gte(startDate).lte(endDate)),NewbornVisit.class); + int lastDate26= null==hospitalDate.get("data26")?0:Integer.parseInt(hospitalDate.get("data26").toString()); + hospitalDate.put("data26",data26+lastDate26); + + //累计新生儿访视人数 + int data3 = (int)mongoTemplate.count(new Query(Criteria. + where("yn").is("1") + .and("hospitalId").is(hospitalId) + .and("checkTime").lte(endDate)),NewbornVisit.class); int lastDate3= null==hospitalDate.get("data3")?0:Integer.parseInt(hospitalDate.get("data3").toString()); hospitalDate.put("data3",data3+lastDate3); + //新生儿访视率% String data3_data2="0.00"; if(Integer.parseInt(hospitalDate.get("data2").toString())!=0){ @@ -3304,6 +3300,7 @@ public class PatientSyncMysqlFacade extends BaseServiceImpl { } } hospitalDate.put("data4",data3_data2+"%"); + //0-3岁儿童总数 int data5=0; BabyModelQuery babyQuery=new BabyModelQuery(); @@ -3384,21 +3381,31 @@ public class PatientSyncMysqlFacade extends BaseServiceImpl { } } hospitalDate.put("data14",data13_data8+"%"); + //孕13周之前建册的人数 - int data15=0; PatientsQuery patientsQuery=new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); patientsQuery.setHospitalId(hospitalId); + patientsQuery.setBuildDaysStart(0); patientsQuery.setBuildDaysEnd(13*7); + patientsQuery.setExtEnable(false); + patientsQuery.setBuildTypeNot(1); patientsQuery.setBookbuildingDateStart(startDateFirst); patientsQuery.setBookbuildingDateEnd(endDate); - data15=patientsService.queryPatientCount(patientsQuery); + int data15 = patientsService.queryPatientCount(patientsQuery); int lastDate15= null==hospitalDate.get("data15")?0:Integer.parseInt(hospitalDate.get("data15").toString()); hospitalDate.put("data15",data15+lastDate15); //早孕建册率% + + patientsQuery.setBuildDaysStart(null); + patientsQuery.setBuildDaysEnd(null); + patientsQuery.setBookbuildingDateStart(startDateFirst); + patientsQuery.setBookbuildingDateEnd(endDate); + int buildCount = patientsService.queryPatientCount(patientsQuery); String data15_data2="0.00"; if(Integer.parseInt(hospitalDate.get("data2").toString())!=0){ - float v = (float) Integer.parseInt(hospitalDate.get("data15").toString()) / Integer.parseInt(hospitalDate.get("data2").toString()); + float v = (float) Integer.parseInt(hospitalDate.get("data15").toString()) / + buildCount; if(v>=1){ data15_data2="100.00"; }else { @@ -3507,6 +3514,7 @@ public class PatientSyncMysqlFacade extends BaseServiceImpl { cnames.put("streetName", "乡镇"); cnames.put("data1", "本月活产数"); cnames.put("data2", "累计活产数"); + cnames.put("data26", "本月新生儿访视人数"); cnames.put("data3", "新生儿访视人数"); cnames.put("data4", "新生儿访视率%"); cnames.put("data5", "0-3岁儿童总数"); @@ -3593,4 +3601,31 @@ public class PatientSyncMysqlFacade extends BaseServiceImpl { return RespBuilder.buildSuccess(null); } + + public BaseResponse getBabyFmList(Integer page, Integer limit, String areaId, String streetId, Date dateTime, Integer type) { + //获得区县下的街道 + List regions = getRegions(areaId,streetId); + List hospitalIds = new ArrayList<>(); + for (BasicConfig region : regions) { + //获得街道下的医院 + List organizations = getOrganization(region.getId()); + for (Organization organization : organizations) { + String hospitalId= StringUtils.getIntToVal(organization.getId()); + hospitalIds.add(hospitalId); + } + } + Date startDate=DateUtil.getDateMonthFirst(dateTime); + Date endDate=DateUtil.getDayLastSecond(DateUtil.getDateMonthLast(dateTime)); + if (CollectionUtils.isNotEmpty(hospitalIds)) + { + //本月活产数 + Query query = new Query(Criteria. + where("yn").is(1) + .and("baby.pregnancyOut").is("0").and("hospitalId").in(hospitalIds) + .and("dueDate1").gte(startDate).lte(endDate)); + List datas = mongoTemplate.find(query,MaternalDeliverModel.class); + System.out.println(datas); + } + return null; + } }