Commit b7a7e9631f62a107d9da6d98a9158e7e79df1e76

Authored by liquanyu
1 parent b1462350a1

公共卫生统计

Showing 5 changed files with 217 additions and 2 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java View file @ b7a7e96
... ... @@ -753,6 +753,17 @@
753 753 //本人电话
754 754 private String selfPhone;
755 755  
  756 + //是否完成相应月龄检查套餐 1 未完成 2 完成
  757 + private Integer completeCheck;
  758 +
  759 + public Integer getCompleteCheck() {
  760 + return completeCheck;
  761 + }
  762 +
  763 + public void setCompleteCheck(Integer completeCheck) {
  764 + this.completeCheck = completeCheck;
  765 + }
  766 +
756 767 public String getBabyLevelId() {
757 768 return babyLevelId;
758 769 }
platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java View file @ b7a7e96
... ... @@ -370,6 +370,8 @@
370 370  
371 371 //分娩孕周
372 372 private Integer dueWeekStart;
  373 + //是否完成相应月龄检查套餐 1 未完成 2 完成
  374 + private Integer completeCheck;
373 375 //分娩孕周
374 376 private Integer dueWeekEnd;
375 377 private Boolean existSource;
... ... @@ -413,6 +415,14 @@
413 415 // 1 本县 2 外县
414 416 private Integer areaType;
415 417  
  418 + public Integer getCompleteCheck() {
  419 + return completeCheck;
  420 + }
  421 +
  422 + public void setCompleteCheck(Integer completeCheck) {
  423 + this.completeCheck = completeCheck;
  424 + }
  425 +
416 426 public List<String> getBabyStreetIds() {
417 427 return babyStreetIds;
418 428 }
... ... @@ -1863,6 +1873,9 @@
1863 1873 }
1864 1874 if (null != sINCard) {
1865 1875 condition = condition.and("sINCard", sINCard, MongoOper.IS);
  1876 + }
  1877 + if (null != completeCheck) {
  1878 + condition = condition.and("completeCheck", completeCheck, MongoOper.IS);
1866 1879 }
1867 1880 if (encodedNe) {
1868 1881 condition = condition.and("encoded", null, MongoOper.NE);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java View file @ b7a7e96
... ... @@ -601,6 +601,31 @@
601 601  
602 602  
603 603 /**
  604 + * 0-3岁 0-6岁 儿童系统管理人数
  605 + * @param request
  606 + * @param page
  607 + * @param limit
  608 + * @param areaId
  609 + * @param streetId
  610 + * @param type
  611 + * @param dateTime
  612 + * @return
  613 + */
  614 + @RequestMapping(method = RequestMethod.GET, value = "/getBabySystemCountList")
  615 + @ResponseBody
  616 + @TokenRequired
  617 + public BaseResponse getBabySystemCountList(HttpServletRequest request,
  618 + Integer page, Integer limit,
  619 + @RequestParam String areaId,
  620 + @RequestParam( required = false) String streetId,
  621 + @RequestParam Integer type, // 1 0-3岁儿童系统管理人数 2 0-6岁儿童系统管理人数
  622 + @RequestParam Date dateTime) {
  623 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  624 + return patientSyncMysqlFacade.getBabySystemCountList(page,limit,areaId,streetId,dateTime,type);
  625 + }
  626 +
  627 +
  628 + /**
604 629 * 0-6岁健康管理人数
605 630 * @param request
606 631 * @param page
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ b7a7e96
... ... @@ -5355,5 +5355,103 @@
5355 5355 }
5356 5356 }
5357 5357  
  5358 +
  5359 + @RequestMapping(value = "/updateBabyCompleteCheck", method = RequestMethod.GET)
  5360 + @ResponseBody
  5361 + public String updateBabyCompleteCheck(@RequestParam(required = true) String hid) {
  5362 +
  5363 +
  5364 + BabyModelQuery babyModelQuery = new BabyModelQuery();
  5365 + babyModelQuery.setYn(YnEnums.YES.getId());
  5366 + babyModelQuery.setId(hid);
  5367 + babyModelQuery.setLastCheckDoctor2(true);
  5368 +
  5369 + final List<BabyModel> models = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery);
  5370 + if (CollectionUtils.isNotEmpty(models)) {
  5371 + int batchSize = 200;
  5372 + int end = 0;
  5373 + for (int i = 0; i < models.size(); i += batchSize) {
  5374 + end = (end + batchSize);
  5375 + if (end > models.size()) {
  5376 + end = models.size();
  5377 + }
  5378 + System.out.println("start:" + i + ",end:" + end);
  5379 + final List<BabyModel> tempList = models.subList(i, end);
  5380 + new Thread(new Runnable() {
  5381 + @Override
  5382 + public void run() {
  5383 + if (CollectionUtils.isNotEmpty(tempList)) {
  5384 + for (BabyModel babyModel : tempList) {
  5385 + if (babyModel != null) {
  5386 + BabyCheckModelQuery query = new BabyCheckModelQuery();
  5387 + query.setYn(YnEnums.YES.getId());
  5388 + query.setBuildId(babyModel.getId());
  5389 + List<Integer> allMonths = new LinkedList();
  5390 + allMonths.add(1);
  5391 + allMonths.add(3);
  5392 + allMonths.add(6);
  5393 + allMonths.add(8);
  5394 + allMonths.add(12);
  5395 + allMonths.add(18);
  5396 + allMonths.add(24);
  5397 + allMonths.add(30);
  5398 + allMonths.add(36);
  5399 + allMonths.add(48);
  5400 + allMonths.add(60);
  5401 + allMonths.add(72);
  5402 +
  5403 + List<Integer> checkMonths = new LinkedList();
  5404 +
  5405 + int checkMonth = DateUtil.getBabyAgeMonth(babyModel.getBirth(),new Date());
  5406 +
  5407 + for (Integer month : allMonths)
  5408 + {
  5409 + if (month <= checkMonth)
  5410 + {
  5411 + checkMonths.add(month);
  5412 + }
  5413 + }
  5414 + List<Integer> completeCheckMonths = new LinkedList();
  5415 + List<BabyCheckModel> checkModels = babyCheckService.queryBabyCheckListRecord(query);
  5416 + if (CollectionUtils.isNotEmpty(checkModels)) {
  5417 + for (BabyCheckModel checkModel : checkModels) {
  5418 + if (checkModel.getTcType() != null)
  5419 + {
  5420 + completeCheckMonths.add(checkModel.getTcType());
  5421 + }
  5422 + }
  5423 + }
  5424 + if (completeCheckMonths.size() == checkMonths.size())
  5425 + {
  5426 + int complete = 2;
  5427 + for (int i = 0;i<completeCheckMonths.size();i++)
  5428 + {
  5429 + if (completeCheckMonths.get(i) != checkMonths.get(i))
  5430 + {
  5431 + complete = 1;
  5432 + break;
  5433 + }
  5434 + }
  5435 + if (complete == 2)
  5436 + {
  5437 + babyModel.setCompleteCheck(complete);
  5438 + System.out.println("complete"+babyModel.getId());
  5439 + babyBookbuildingService.updateBabyBuild(babyModel,babyModel.getId());
  5440 + }
  5441 + }
  5442 + }
  5443 + }
  5444 + }
  5445 + }
  5446 + }).start();
  5447 + }
  5448 +
  5449 + }
  5450 +
  5451 +
  5452 + return "updateBabyGrowth finish";
  5453 + }
  5454 +
  5455 +
5358 5456 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java View file @ b7a7e96
... ... @@ -3343,7 +3343,7 @@
3343 3343  
3344 3344 //0-3岁儿童系统管理人数
3345 3345 int data6=0;
3346   - babyQuery.setLastCheckDoctor2(true);
  3346 + babyQuery.setCompleteCheck(2);
3347 3347 data6 = babyBookbuildingService.queryBabyCount(babyQuery);
3348 3348 int lastDate6= null==hospitalDate.get("data6")?0:Integer.parseInt(hospitalDate.get("data6").toString());
3349 3349 hospitalDate.put("data6",data6+lastDate6);
... ... @@ -3359,6 +3359,7 @@
3359 3359 }
3360 3360 hospitalDate.put("data7",data6_data5+"%");
3361 3361 //0-6岁儿童总数
  3362 + babyQuery.setCompleteCheck(null);
3362 3363 end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -72 - 1), 1);
3363 3364 babyQuery.setBirthStart(end1);
3364 3365 int data8 = babyBookbuildingService.queryBabyCount(babyQuery);
... ... @@ -3366,7 +3367,7 @@
3366 3367 hospitalDate.put("data8",data8+lastDate8);
3367 3368  
3368 3369 //0-6岁儿童系统管理人数
3369   - babyQuery.setLastCheckDoctor2(true);
  3370 + babyQuery.setCompleteCheck(2);
3370 3371 int data9 = babyBookbuildingService.queryBabyCount(babyQuery);
3371 3372 int lastDate9= null==hospitalDate.get("data9")?0:Integer.parseInt(hospitalDate.get("data9").toString());
3372 3373 hospitalDate.put("data9",data9+lastDate9);
... ... @@ -4099,6 +4100,73 @@
4099 4100 Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -72 - 1), 1);
4100 4101 babyQuery.setBirthStart(end1);
4101 4102 babyQuery.setLastCheckDoctor2(true);
  4103 + List<BabyModel> datas = babyBookbuildingService.queryBabyBuildByCond(babyQuery);
  4104 + if (CollectionUtils.isNotEmpty(datas))
  4105 + {
  4106 + for (BabyModel model : datas)
  4107 + {
  4108 + Map result = new HashMap();
  4109 + result.put("babyName",model.getName());
  4110 + result.put("babySex",SexEnum.getTextById(model.getSex()));
  4111 + result.put("babyWeight",model.getBabyWeight());
  4112 + result.put("babyHeight",model.getBabyHeight());
  4113 + result.put("buildDate",DateUtil.getyyyy_MM_dd(model.getBuildDate()));
  4114 + result.put("mommyName",model.getMname());
  4115 + result.put("mommyPhone",model.getMphone());
  4116 + result.put("mommyCertNo",model.getMcertNo());
  4117 + String buildHospital = organizationService.getOrganization(Integer.parseInt(model.getHospitalId())).getName();
  4118 + result.put("buildHospital",buildHospital);
  4119 + result.put("babyId",model.getId());
  4120 + results.add(result);
  4121 + }
  4122 + }
  4123 + }
  4124 + return new BaseListResponse().setErrorcode(0).setErrormsg("成功")
  4125 + .setData(results).setPageInfo(babyQuery.getPageInfo());
  4126 + }
  4127 +
  4128 + public BaseResponse getBabySystemCountList(Integer page, Integer limit, String areaId, String streetId, Date dateTime, Integer type) {
  4129 +
  4130 + List<Map> results = new ArrayList<>();
  4131 + //获得区县下的街道
  4132 + List<BasicConfig> regions = getRegions(areaId,streetId);
  4133 + List<String> hospitalIds = new ArrayList<>();
  4134 + for (BasicConfig region : regions) {
  4135 + //获得街道下的医院
  4136 + List<Organization> organizations = getOrganization(region.getId());
  4137 + for (Organization organization : organizations) {
  4138 + String hospitalId= StringUtils.getIntToVal(organization.getId());
  4139 + hospitalIds.add(hospitalId);
  4140 + }
  4141 + }
  4142 +
  4143 + Date endDate=DateUtil.getDayLastSecond(DateUtil.getDateMonthLast(dateTime));
  4144 + BabyModelQuery babyQuery = new BabyModelQuery();
  4145 + if (CollectionUtils.isNotEmpty(hospitalIds))
  4146 + {
  4147 +
  4148 + babyQuery.setDataStatus(true);//排除自动建档数据
  4149 + babyQuery.setYn(YnEnums.YES.getId());
  4150 + babyQuery.setHospitalIdList(hospitalIds);
  4151 + Date currentDate1 = DateUtil.formatDate(new Date());
  4152 + Date start1 = DateUtil.addMonth(currentDate1, 0);
  4153 + babyQuery.setBirthEnd(start1);
  4154 + babyQuery.setBuildDateEnd(endDate);
  4155 + babyQuery.setCompleteCheck(2);
  4156 + babyQuery.setPage(page);
  4157 + babyQuery.setLimit(limit);
  4158 + babyQuery.setNeed("Need");
  4159 + babyQuery.setOrder("birth");
  4160 + if (type == 1)
  4161 + { //0-3岁儿童系统管理人数
  4162 + Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -36 - 1), 1);
  4163 + babyQuery.setBirthStart(end1);
  4164 + }
  4165 + else
  4166 + { //0-6岁儿童系统管理人数
  4167 + Date end1 = DateUtil.addDay(DateUtil.addMonth(currentDate1, -72 - 1), 1);
  4168 + babyQuery.setBirthStart(end1);
  4169 + }
4102 4170 List<BabyModel> datas = babyBookbuildingService.queryBabyBuildByCond(babyQuery);
4103 4171 if (CollectionUtils.isNotEmpty(datas))
4104 4172 {