Commit 025991f8692b9dd8dc1aaaf32a5a88a58cfd1408

Authored by liquanyu
1 parent c76ddf5dfe

公共卫生统计

Showing 2 changed files with 187 additions and 6 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java View file @ 025991f
... ... @@ -552,6 +552,54 @@
552 552 }
553 553  
554 554 /**
  555 + * 新生儿访视
  556 + * @param request
  557 + * @param page
  558 + * @param limit
  559 + * @param areaId
  560 + * @param streetId
  561 + * @param type
  562 + * @param dateTime
  563 + * @return
  564 + */
  565 + @RequestMapping(method = RequestMethod.GET, value = "/getBabyFsList")
  566 + @ResponseBody
  567 + @TokenRequired
  568 + public BaseResponse getBabyFsList(HttpServletRequest request,
  569 + Integer page, Integer limit,
  570 + @RequestParam String areaId,
  571 + @RequestParam( required = false) String streetId,
  572 + @RequestParam Integer type, // 1本月访视 2累计访视
  573 + @RequestParam Date dateTime) {
  574 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  575 + return patientSyncMysqlFacade.getBabyFsList(page,limit,areaId,streetId,dateTime,type);
  576 + }
  577 +
  578 + /**
  579 + * 儿童建档总数 0-3岁 0-6岁
  580 + * @param request
  581 + * @param page
  582 + * @param limit
  583 + * @param areaId
  584 + * @param streetId
  585 + * @param type
  586 + * @param dateTime
  587 + * @return
  588 + */
  589 + @RequestMapping(method = RequestMethod.GET, value = "/getBabyBuildCountList")
  590 + @ResponseBody
  591 + @TokenRequired
  592 + public BaseResponse getBabyBuildCountList(HttpServletRequest request,
  593 + Integer page, Integer limit,
  594 + @RequestParam String areaId,
  595 + @RequestParam( required = false) String streetId,
  596 + @RequestParam Integer type, // 1 0-3岁总数 2 0-6岁总数
  597 + @RequestParam Date dateTime) {
  598 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  599 + return patientSyncMysqlFacade.getBabyBuildCountList(page,limit,areaId,streetId,dateTime,type);
  600 + }
  601 +
  602 + /**
555 603 * 公共卫生项目统计 中医指导明细
556 604 * @param request
557 605 * @param provinceId
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java View file @ 025991f
... ... @@ -3250,7 +3250,7 @@
3250 3250 */
3251 3251 private void getDateCount(String hospitalId,Date startDate, Date endDate,Map hospitalDate){
3252 3252 //传入的时间获取年的第一天
3253   - Date startDateFirst=DateUtil.getYearFirst(DateUtil.getYear(startDate));
  3253 + Date startDateFirst = DateUtil.getYearFirst(DateUtil.getYear(startDate));
3254 3254 DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
3255 3255  
3256 3256  
3257 3257  
3258 3258  
... ... @@ -3305,15 +3305,20 @@
3305 3305 hospitalDate.put("data4",data3_data2+"%");
3306 3306  
3307 3307 //0-3岁儿童总数
3308   - int data5=0;
3309   - BabyModelQuery babyQuery=new BabyModelQuery();
  3308 + BabyModelQuery babyQuery = new BabyModelQuery();
  3309 + babyQuery.setDataStatus(true);//排除自动建档数据
3310 3310 babyQuery.setYn(YnEnums.YES.getId());
3311 3311 babyQuery.setHospitalId(hospitalId);
3312   - babyQuery.setBirthStart(DateUtil.addYear(startDateFirst,-3));
3313   - babyQuery.setBirthEnd(endDate);
3314   - data5 = babyBookbuildingService.queryBabyCount(babyQuery);
  3312 + Date currentDate1 = DateUtil.formatDate(new Date());
  3313 + Date start1 = DateUtil.addMonth(currentDate1, 0);
  3314 + babyQuery.setBirthEnd(start1);
  3315 + Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -36 - 1), 1);
  3316 + babyQuery.setBirthStart(end1);
  3317 + babyQuery.setBuildDateEnd(endDate);
  3318 + int data5 = babyBookbuildingService.queryBabyCount(babyQuery);
3315 3319 int lastDate5= null==hospitalDate.get("data5")?0:Integer.parseInt(hospitalDate.get("data5").toString());
3316 3320 hospitalDate.put("data5",data5+lastDate5);
  3321 +
3317 3322 //0-3岁儿童系统管理人数
3318 3323 int data6=0;
3319 3324 babyQuery.setLastCheckDoctor2(true);
... ... @@ -3678,6 +3683,134 @@
3678 3683 }
3679 3684 return new BaseListResponse().setErrorcode(0).setErrormsg("成功")
3680 3685 .setData(results).setPageInfo(babyModelQuery.getPageInfo());
  3686 + }
  3687 +
  3688 + public BaseResponse getBabyFsList(Integer page, Integer limit, String areaId, String streetId, Date dateTime, Integer type) {
  3689 +
  3690 +
  3691 + List<Map> results = new ArrayList<>();
  3692 + //获得区县下的街道
  3693 + List<BasicConfig> regions = getRegions(areaId,streetId);
  3694 + List<String> hospitalIds = new ArrayList<>();
  3695 + for (BasicConfig region : regions) {
  3696 + //获得街道下的医院
  3697 + List<Organization> organizations = getOrganization(region.getId());
  3698 + for (Organization organization : organizations) {
  3699 + String hospitalId= StringUtils.getIntToVal(organization.getId());
  3700 + hospitalIds.add(hospitalId);
  3701 + }
  3702 + }
  3703 + Date startDate=DateUtil.getDateMonthFirst(dateTime);
  3704 + Date endDate=DateUtil.getDayLastSecond(DateUtil.getDateMonthLast(dateTime));
  3705 +
  3706 + if (CollectionUtils.isNotEmpty(hospitalIds))
  3707 + {
  3708 + Criteria criteria = Criteria.
  3709 + where("yn").is("1")
  3710 + .and("hospitalId").in(hospitalIds);
  3711 +
  3712 + if (type == 1)
  3713 + { //本月访视人数
  3714 + criteria.and("checkTime").gte(startDate).lte(endDate);
  3715 + }
  3716 + else
  3717 + { //累计访视人数
  3718 + criteria.and("checkTime").lte(endDate);
  3719 + }
  3720 + PageResult pageResult = findMongoPage(NewbornVisit.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit);
  3721 + List <NewbornVisit> visits = (List <NewbornVisit>) pageResult.getGrid();
  3722 + if (CollectionUtils.isNotEmpty(visits))
  3723 + {
  3724 + for (NewbornVisit visit : visits)
  3725 + {
  3726 + Map result = new HashMap();
  3727 + BabyModel model = babyBookbuildingService.queryBabyById(visit.getBabyId());
  3728 + result.put("babyName",model.getName());
  3729 + result.put("babySex",SexEnum.getTextById(model.getSex()));
  3730 + result.put("babyWeight",visit.getWeightNow());
  3731 + result.put("babyHeight",visit.getHeight());
  3732 + result.put("fsDate",DateUtil.getyyyy_MM_dd(visit.getCheckTime()));
  3733 + result.put("mommyName",model.getMname());
  3734 + result.put("mommyPhone",model.getMphone());
  3735 + result.put("mommyCertNo",model.getMcertNo());
  3736 + String fsHospital = organizationService.getOrganization(Integer.parseInt(visit.getHospitalId())).getName();
  3737 + result.put("fsHospital",fsHospital);
  3738 + result.put("fsId",visit.getId());
  3739 + results.add(result);
  3740 + }
  3741 + }
  3742 + return RespBuilder.buildSuccess(pageResult);
  3743 + }
  3744 + return new BaseListResponse();
  3745 + }
  3746 +
  3747 + public BaseResponse getBabyBuildCountList(Integer page, Integer limit, String areaId, String streetId, Date dateTime, Integer type) {
  3748 +
  3749 + List<Map> results = new ArrayList<>();
  3750 + //获得区县下的街道
  3751 + List<BasicConfig> regions = getRegions(areaId,streetId);
  3752 + List<String> hospitalIds = new ArrayList<>();
  3753 + for (BasicConfig region : regions) {
  3754 + //获得街道下的医院
  3755 + List<Organization> organizations = getOrganization(region.getId());
  3756 + for (Organization organization : organizations) {
  3757 + String hospitalId= StringUtils.getIntToVal(organization.getId());
  3758 + hospitalIds.add(hospitalId);
  3759 + }
  3760 + }
  3761 +
  3762 + Date endDate=DateUtil.getDayLastSecond(DateUtil.getDateMonthLast(dateTime));
  3763 + BabyModelQuery babyQuery = new BabyModelQuery();
  3764 + if (CollectionUtils.isNotEmpty(hospitalIds))
  3765 + {
  3766 +
  3767 + babyQuery.setDataStatus(true);//排除自动建档数据
  3768 + babyQuery.setYn(YnEnums.YES.getId());
  3769 + babyQuery.setHospitalIdList(hospitalIds);
  3770 + Date currentDate1 = DateUtil.formatDate(new Date());
  3771 + Date start1 = DateUtil.addMonth(currentDate1, 0);
  3772 + babyQuery.setBirthEnd(start1);
  3773 +
  3774 + babyQuery.setBuildDateEnd(endDate);
  3775 +
  3776 + babyQuery.setPage(page);
  3777 + babyQuery.setLimit(limit);
  3778 + babyQuery.setNeed("Need");
  3779 + babyQuery.setOrder("birth");
  3780 + if (type == 1)
  3781 + { //0-3岁儿童总数
  3782 + Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -36 - 1), 1);
  3783 + babyQuery.setBirthStart(end1);
  3784 + }
  3785 + else
  3786 + { //0-6岁儿童总数
  3787 + Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -72 - 1), 1);
  3788 + babyQuery.setBirthStart(end1);
  3789 + }
  3790 + List<BabyModel> datas = babyBookbuildingService.queryBabyBuildByCond(babyQuery);
  3791 + if (CollectionUtils.isNotEmpty(datas))
  3792 + {
  3793 + for (BabyModel model : datas)
  3794 + {
  3795 + Map result = new HashMap();
  3796 + result.put("babyName",model.getName());
  3797 + result.put("babySex",SexEnum.getTextById(model.getSex()));
  3798 + result.put("babyWeight",model.getBabyWeight());
  3799 + result.put("babyHeight",model.getBabyHeight());
  3800 + result.put("buildDate",DateUtil.getyyyy_MM_dd(model.getBuildDate()));
  3801 + result.put("mommyName",model.getMname());
  3802 + result.put("mommyPhone",model.getMphone());
  3803 + result.put("mommyCertNo",model.getMcertNo());
  3804 + String buildHospital = organizationService.getOrganization(Integer.parseInt(model.getHospitalId())).getName();
  3805 + result.put("buildHospital",buildHospital);
  3806 + result.put("babyId",model.getId());
  3807 + results.add(result);
  3808 + }
  3809 + }
  3810 + }
  3811 + return new BaseListResponse().setErrorcode(0).setErrormsg("成功")
  3812 + .setData(results).setPageInfo(babyQuery.getPageInfo());
  3813 +
3681 3814 }
3682 3815 }