Commit 7d972b55d7ef9a427c17891c3d6aa4e5b8fea0a7

Authored by dongqin
1 parent 484af9b263
Exists in master and in 1 other branch dev

追访记录

Showing 4 changed files with 54 additions and 110 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java View file @ 7d972b5
... ... @@ -526,8 +526,6 @@
526 526 Date nextDate = model.getNextDate();
527 527 if (nextDate != null) {
528 528 babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_CHECK, STATUS_TYPE_NO);
529   - } else {
530   - babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_CHECK, STATUS_TYPE_UPDATE);
531 529 }
532 530 bm.setId(request.getBuildId());
533 531 babyAfterVisitService.addOrUpdateAfterVisitData(bm, TYPE_STATISTICS, STATUS_TYPE_CHECK);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java View file @ 7d972b5
... ... @@ -72,7 +72,7 @@
72 72 String querNo = request.getQueryNo();
73 73 Query query = new Query();
74 74 String hospitalId = autoMatchFacade.getHospitalId(userId);
75   - query.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  75 + query.addCriteria(Criteria.where("hospitalId").is(hospitalId).and("yn").is(1));
76 76  
77 77 // 查询号 姓名、证件号、手机号
78 78 if (StringUtils.isNotEmpty(querNo)) {
... ... @@ -293,10 +293,10 @@
293 293 @Override
294 294 public BaseResponse getBuildListPage(BabyAfterVisitBuildListRequest request, Integer userId) {
295 295 String type = request.getType();
296   - boolean isOk = checkOverdueDataByType(type);
297   - if (!isOk) {
298   - return new BaseResponse("检查逾期数据异常", ErrorCodeConstants.SYSTEM_ERROR);
299   - }
  296 + //boolean isOk = checkOverdueDataByType(type);
  297 + //if (!isOk) {
  298 + // return new BaseResponse("检查逾期数据异常", ErrorCodeConstants.SYSTEM_ERROR);
  299 + //}
300 300  
301 301 Query query = new Query();
302 302 String hospitalId = autoMatchFacade.getHospitalId(userId);
303 303  
... ... @@ -326,11 +326,13 @@
326 326 String startAppointmentTime = request.getStartAppointmentTime();
327 327 String endAppointmentTime = request.getEndAppointmentTime();
328 328 if (StringUtils.isNotEmpty(startAppointmentTime) && StringUtils.isNotEmpty(endAppointmentTime)) {
329   - startAppointmentTime += " 00:00:00";
  329 + startAppointmentTime += " 00:00:00";
330 330 endAppointmentTime += " 23:59:59";
331 331 Date startDate = DateUtil.parseYMDHMS(startAppointmentTime);
332 332 Date endDate = DateUtil.parseYMDHMS(endAppointmentTime);
333   - query.addCriteria(Criteria.where("appointmentTime").gte(startDate).lte(endDate));
  333 + query.addCriteria(Criteria.where("appointmentTime").gte(startDate).lte(endDate).lt(new Date()));
  334 + } else {
  335 + query.addCriteria(Criteria.where("appointmentTime").lt(new Date()));
334 336 }
335 337  
336 338 // 起止月龄
... ... @@ -448,6 +450,7 @@
448 450 Date appointmentTime = model.getAppointmentTime();
449 451 if (appointmentTime != null) {
450 452 objectMap.put("appointmentTimeStr", DateUtil.getyyyy_MM_dd(appointmentTime));
  453 + objectMap.put("overdueDay", DateUtil.daysBetween(new Date(), appointmentTime));
451 454 }
452 455  
453 456 // 追访时间
... ... @@ -497,91 +500,6 @@
497 500 }
498 501  
499 502 /**
500   - * 检查预约时间是否存在已逾期,若是则添加到追访表中
501   - * @param type 类型
502   - * @return
503   - */
504   - private boolean checkOverdueDataByType(String type) {
505   - try {
506   - Class<BabyAfterVisitInfoModel> infoModelClass = BabyAfterVisitInfoModel.class;
507   - if (TYPE_CHECK.equals(type)) {
508   - // 儿保检查
509   - Class<BabyCheckModel> checkModelClass = BabyCheckModel.class;
510   - List<BabyCheckModel> babyCheckModels = mongoTemplate.find(Query.query(Criteria.where("nextDate").gt(new Date()).and("yn").is(YnEnums.YES.getId())), checkModelClass);
511   - List<BabyAfterVisitInfoModel> models = new ArrayList<>(1024);
512   - if (CollectionUtils.isNotEmpty(babyCheckModels)) {
513   - for (BabyCheckModel model : babyCheckModels) {
514   - String buildId = model.getBuildId();
515   - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(buildId).and(type).is(type)), infoModelClass);
516   - if (!exists) {
517   - BabyAfterVisitInfoModel infoModel = getBabyAfterVisitInfoModel(type, model, buildId);
518   - models.add(infoModel);
519   - }
520   - }
521   - if (babyCheckModels.size() > 0) {
522   - mongoTemplate.insert(models, infoModelClass);
523   - }
524   - }
525   - }
526   - if (TYPE_EYE_CHECK.equals(type)) {
527   - // 眼保检查
528   - Class<BabyEyeCheck> eyeCheckClass = BabyEyeCheck.class;
529   - List<BabyEyeCheck> babyCheckModels = mongoTemplate.find(Query.query(Criteria.where("nextCheckTime").gt(new Date()).and("yn").is(YnEnums.YES.getId())), eyeCheckClass);
530   - List<BabyAfterVisitInfoModel> models = new ArrayList<>(1024);
531   - if (CollectionUtils.isNotEmpty(babyCheckModels)) {
532   - for (BabyEyeCheck model : babyCheckModels) {
533   - String buildId = model.getBabyId();
534   - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(buildId).and(type).is(type)), infoModelClass);
535   - if (!exists) {
536   - BabyAfterVisitInfoModel infoModel = getBabyAfterVisitInfoModel(type, model, buildId);
537   - models.add(infoModel);
538   - }
539   - }
540   - if (babyCheckModels.size() > 0) {
541   - mongoTemplate.insert(models, infoModelClass);
542   - }
543   - }
544   - }
545   - return true;
546   - } catch (Exception e) {
547   - logger.error("检查预约时间是否存在已逾期 异常", e.getStackTrace());
548   - return false;
549   - }
550   -
551   - }
552   -
553   - /**
554   - * 获取 BabyAfterVisitInfoModel 实体类
555   - * @param type
556   - * @param model
557   - * @param buildId
558   - * @return
559   - */
560   - private BabyAfterVisitInfoModel getBabyAfterVisitInfoModel(String type, BaseModel model, String buildId) {
561   - BabyAfterVisitInfoModel infoModel = new BabyAfterVisitInfoModel();
562   - if (model instanceof BabyCheckModel) {
563   - BabyCheckModel checkModel = (BabyCheckModel) model;
564   - BeanUtils.copy(checkModel, infoModel);
565   - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(buildId)), BabyModel.class);
566   - BeanUtils.copy(babyModel, infoModel);
567   - infoModel.setAppointmentTime(checkModel.getNextDate());
568   - }
569   - if (model instanceof BabyEyeCheck) {
570   - BabyEyeCheck eyeCheck = (BabyEyeCheck) model;
571   - BeanUtils.copy(eyeCheck, infoModel);
572   - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(buildId)), BabyModel.class);
573   - BeanUtils.copy(babyModel, infoModel);
574   - infoModel.setAppointmentTime(eyeCheck.getNextCheckTime());
575   - }
576   - infoModel.setType(type);
577   - infoModel.setCreateTime(new Date());
578   - infoModel.setYn(STATUS_TYPE_YES);
579   - infoModel.setBabyId(buildId);
580   - infoModel.setId(null);
581   - return infoModel;
582   - }
583   -
584   - /**
585 503 * 递归获取预约建档的儿童信息
586 504 *
587 505 * @param ids 建档ids - 针对儿保检查
588 506  
589 507  
590 508  
591 509  
592 510  
593 511  
594 512  
... ... @@ -780,52 +698,54 @@
780 698 }
781 699 // 更新儿保数量
782 700 if (Objects.equals(STATUS_TYPE_CHECK, statusType)) {
783   - BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId)), BabyAfterVisitStatisticsModel.class);
  701 + BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), BabyAfterVisitStatisticsModel.class);
784 702 if (one != null) {
785 703 Integer checkSize = one.getCheckSize();
786 704 checkSize ++;
787   - mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId)), Update.update("checkSize", checkSize), BabyAfterVisitStatisticsModel.class);
  705 + mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("checkSize", checkSize), BabyAfterVisitStatisticsModel.class);
788 706 }
789 707 }
790 708 // 更新眼保数量
791 709 if (Objects.equals(STATUS_TYPE_EYE_CHECK, statusType)) {
792   - BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId)), BabyAfterVisitStatisticsModel.class);
  710 + BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), BabyAfterVisitStatisticsModel.class);
793 711 if (one != null) {
794 712 Integer eyeCheckSize = one.getEyeCheckSize();
795 713 eyeCheckSize ++;
796   - mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId)), Update.update("eyeCheckSize", eyeCheckSize), BabyAfterVisitStatisticsModel.class);
  714 + mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("eyeCheckSize", eyeCheckSize), BabyAfterVisitStatisticsModel.class);
797 715 }
798 716 }
799 717 logger.info("已更新到追访概况中");
800 718  
801 719 }
802 720  
803   - // 档案转正、儿保检查、眼保检查 addOrUpdate
804   - if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) || Objects.equals(TYPE_EYE_CHECK, type)) {
  721 + // 档案转正、儿保检查 addOrUpdate
  722 + if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) ) {
805 723  
806 724 if (Objects.equals(STATUS_TYPE_NO, statusType)) {
807 725 BabyModel babyModel = (BabyModel) model;
808 726 babyModelId = babyModel.getId();
809 727 models.add(babyModel);
810 728  
811   - // 将状态正常更新为作废
812   - Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr));
813   - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").ne(STATUS_TYPE_NO)), BabyAfterVisitInfoModel.class);
814   - if (exists) {
815   - mongoTemplate.updateFirst(query, Update.update("yn", STATUS_TYPE_NO), BabyAfterVisitInfoModel.class);
  729 + // 更新预约时间
  730 + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").is(1));
  731 + BabyAfterVisitInfoModel one = mongoTemplate.findOne(query, BabyAfterVisitInfoModel.class);
  732 + if (one != null) {
  733 + Integer yn = one.getYn();
  734 + if (YnEnums.YES.getId() == yn) {
  735 + mongoTemplate.updateFirst(query, Update.update("appointmentTime", babyModel.getNextDate()), BabyAfterVisitInfoModel.class);
  736 + }
816 737 }
817 738 }
818 739 if (Objects.equals(STATUS_TYPE_YES, statusType)) {
819 740 BabyModel babyModel = (BabyModel) model;
820 741 models.add(babyModel);
821   - // 新增数据
822 742 Future<List<BabyAfterVisitInfoModel>> listFuture = service.submit(new BabyAfterVisitInfoModelWork(models, mongoTemplate, type));
823 743 List<BabyAfterVisitInfoModel> infoModels = listFuture.get();
824 744 mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class);
825 745 }
826 746  
827 747 // 儿保检查/眼保检查- 将预约时间更改为null
828   - if (Objects.equals(STATUS_TYPE_UPDATE, statusType)) {
  748 + /* if (Objects.equals(STATUS_TYPE_UPDATE, statusType)) {
829 749 // 儿保检查
830 750 if (Objects.equals(TYPE_CHECK, type)) {
831 751 // 条件:当前创建为最新数据的id == 当前更新的数据id ,更新对应的字段为null
832 752  
... ... @@ -922,10 +842,36 @@
922 842 }
923 843 }
924 844 }
925   - }
  845 + }*/
926 846 logger.info("已自动添加到追访列表中");
927 847 }
928 848  
  849 + // 眼保检查
  850 + if (Objects.equals(TYPE_EYE_CHECK, type)) {
  851 + Class<BabyAfterVisitInfoModel> modelClass = BabyAfterVisitInfoModel.class;
  852 + if (Objects.equals(STATUS_TYPE_NO, statusType)) {
  853 + BabyEyeCheck babyEyeCheck = (BabyEyeCheck) model;
  854 + babyModelId = babyEyeCheck.getBabyId();
  855 +
  856 + // 更新预约时间
  857 + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").is(1));
  858 + BabyAfterVisitInfoModel one = mongoTemplate.findOne(query, modelClass);
  859 + if (one != null) {
  860 + Integer yn = one.getYn();
  861 + if (YnEnums.YES.getId() == yn) {
  862 + mongoTemplate.updateFirst(query, Update.update("appointmentTime", babyEyeCheck.getNextCheckTime()), modelClass);
  863 + }
  864 + }
  865 + }
  866 + if (Objects.equals(STATUS_TYPE_YES, statusType)) {
  867 + // 新增数据
  868 + BabyModel babyModel = (BabyModel) model;
  869 + models.add(babyModel);
  870 + Future<List<BabyAfterVisitInfoModel>> listFuture = service.submit(new BabyAfterVisitInfoModelWork(models, mongoTemplate, type));
  871 + List<BabyAfterVisitInfoModel> infoModels = listFuture.get();
  872 + mongoTemplate.insert(infoModels, modelClass);
  873 + }
  874 + }
929 875 } catch (Exception e) {
930 876 e.printStackTrace();
931 877 logger.error("追访失败",e.getStackTrace());
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java View file @ 7d972b5
... ... @@ -106,8 +106,6 @@
106 106 Date nextCheckTime = babyEyeCheck.getNextCheckTime();
107 107 if (null != nextCheckTime) {
108 108 babyAfterVisitService.addOrUpdateAfterVisitData(babyEyeCheck, TYPE_EYE_CHECK, STATUS_TYPE_NO);
109   - } else {
110   - babyAfterVisitService.addOrUpdateAfterVisitData(babyEyeCheck, TYPE_EYE_CHECK, STATUS_TYPE_UPDATE);
111 109 }
112 110 BabyModel model = new BabyModel();
113 111 model.setId(babyEyeCheck.getBabyId());
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java View file @ 7d972b5
... ... @@ -58,6 +58,8 @@
58 58 if (Objects.equals(TYPE_BUILD, type)) {
59 59 // 预约建档时间默认为创建时间
60 60 babyAfterVisitInfoModel.setAppointmentTime(babyModel.getCreated());
  61 + } else {
  62 + babyAfterVisitInfoModel.setAppointmentTime(new Date());
61 63 }
62 64 if (Objects.equals(TYPE_EYE_CHECK, type)) {
63 65 // 阳性项目