Commit 7d972b55d7ef9a427c17891c3d6aa4e5b8fea0a7
1 parent
484af9b263
Exists in
master
and in
1 other branch
追访记录
Showing 4 changed files with 54 additions and 110 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java
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 | // 阳性项目 |