From 7d972b55d7ef9a427c17891c3d6aa4e5b8fea0a7 Mon Sep 17 00:00:00 2001 From: dongqin <123456> Date: Wed, 10 Jul 2019 10:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=BD=E8=AE=BF=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/BabyCheckFacade.java | 2 - .../service/impl/BabyAfterVisitServiceImpl.java | 158 +++++++-------------- .../web/service/impl/BabyEyeCheckServiceImpl.java | 2 - .../web/worker/BabyAfterVisitInfoModelWork.java | 2 + 4 files changed, 54 insertions(+), 110 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index 969eddc..2291c02 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -526,8 +526,6 @@ public class BabyCheckFacade extends BaseServiceImpl { Date nextDate = model.getNextDate(); if (nextDate != null) { babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_CHECK, STATUS_TYPE_NO); - } else { - babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_CHECK, STATUS_TYPE_UPDATE); } bm.setId(request.getBuildId()); babyAfterVisitService.addOrUpdateAfterVisitData(bm, TYPE_STATISTICS, STATUS_TYPE_CHECK); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java index 00a511c..120a8e4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java @@ -72,7 +72,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { String querNo = request.getQueryNo(); Query query = new Query(); String hospitalId = autoMatchFacade.getHospitalId(userId); - query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + query.addCriteria(Criteria.where("hospitalId").is(hospitalId).and("yn").is(1)); // 查询号 姓名、证件号、手机号 if (StringUtils.isNotEmpty(querNo)) { @@ -293,10 +293,10 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { @Override public BaseResponse getBuildListPage(BabyAfterVisitBuildListRequest request, Integer userId) { String type = request.getType(); - boolean isOk = checkOverdueDataByType(type); - if (!isOk) { - return new BaseResponse("检查逾期数据异常", ErrorCodeConstants.SYSTEM_ERROR); - } + //boolean isOk = checkOverdueDataByType(type); + //if (!isOk) { + // return new BaseResponse("检查逾期数据异常", ErrorCodeConstants.SYSTEM_ERROR); + //} Query query = new Query(); String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -326,11 +326,13 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { String startAppointmentTime = request.getStartAppointmentTime(); String endAppointmentTime = request.getEndAppointmentTime(); if (StringUtils.isNotEmpty(startAppointmentTime) && StringUtils.isNotEmpty(endAppointmentTime)) { - startAppointmentTime += " 00:00:00"; + startAppointmentTime += " 00:00:00"; endAppointmentTime += " 23:59:59"; Date startDate = DateUtil.parseYMDHMS(startAppointmentTime); Date endDate = DateUtil.parseYMDHMS(endAppointmentTime); - query.addCriteria(Criteria.where("appointmentTime").gte(startDate).lte(endDate)); + query.addCriteria(Criteria.where("appointmentTime").gte(startDate).lte(endDate).lt(new Date())); + } else { + query.addCriteria(Criteria.where("appointmentTime").lt(new Date())); } // 起止月龄 @@ -448,6 +450,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { Date appointmentTime = model.getAppointmentTime(); if (appointmentTime != null) { objectMap.put("appointmentTimeStr", DateUtil.getyyyy_MM_dd(appointmentTime)); + objectMap.put("overdueDay", DateUtil.daysBetween(new Date(), appointmentTime)); } // 追访时间 @@ -497,91 +500,6 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } /** - * 检查预约时间是否存在已逾期,若是则添加到追访表中 - * @param type 类型 - * @return - */ - private boolean checkOverdueDataByType(String type) { - try { - Class infoModelClass = BabyAfterVisitInfoModel.class; - if (TYPE_CHECK.equals(type)) { - // 儿保检查 - Class checkModelClass = BabyCheckModel.class; - List babyCheckModels = mongoTemplate.find(Query.query(Criteria.where("nextDate").gt(new Date()).and("yn").is(YnEnums.YES.getId())), checkModelClass); - List models = new ArrayList<>(1024); - if (CollectionUtils.isNotEmpty(babyCheckModels)) { - for (BabyCheckModel model : babyCheckModels) { - String buildId = model.getBuildId(); - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(buildId).and(type).is(type)), infoModelClass); - if (!exists) { - BabyAfterVisitInfoModel infoModel = getBabyAfterVisitInfoModel(type, model, buildId); - models.add(infoModel); - } - } - if (babyCheckModels.size() > 0) { - mongoTemplate.insert(models, infoModelClass); - } - } - } - if (TYPE_EYE_CHECK.equals(type)) { - // 眼保检查 - Class eyeCheckClass = BabyEyeCheck.class; - List babyCheckModels = mongoTemplate.find(Query.query(Criteria.where("nextCheckTime").gt(new Date()).and("yn").is(YnEnums.YES.getId())), eyeCheckClass); - List models = new ArrayList<>(1024); - if (CollectionUtils.isNotEmpty(babyCheckModels)) { - for (BabyEyeCheck model : babyCheckModels) { - String buildId = model.getBabyId(); - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(buildId).and(type).is(type)), infoModelClass); - if (!exists) { - BabyAfterVisitInfoModel infoModel = getBabyAfterVisitInfoModel(type, model, buildId); - models.add(infoModel); - } - } - if (babyCheckModels.size() > 0) { - mongoTemplate.insert(models, infoModelClass); - } - } - } - return true; - } catch (Exception e) { - logger.error("检查预约时间是否存在已逾期 异常", e.getStackTrace()); - return false; - } - - } - - /** - * 获取 BabyAfterVisitInfoModel 实体类 - * @param type - * @param model - * @param buildId - * @return - */ - private BabyAfterVisitInfoModel getBabyAfterVisitInfoModel(String type, BaseModel model, String buildId) { - BabyAfterVisitInfoModel infoModel = new BabyAfterVisitInfoModel(); - if (model instanceof BabyCheckModel) { - BabyCheckModel checkModel = (BabyCheckModel) model; - BeanUtils.copy(checkModel, infoModel); - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(buildId)), BabyModel.class); - BeanUtils.copy(babyModel, infoModel); - infoModel.setAppointmentTime(checkModel.getNextDate()); - } - if (model instanceof BabyEyeCheck) { - BabyEyeCheck eyeCheck = (BabyEyeCheck) model; - BeanUtils.copy(eyeCheck, infoModel); - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(buildId)), BabyModel.class); - BeanUtils.copy(babyModel, infoModel); - infoModel.setAppointmentTime(eyeCheck.getNextCheckTime()); - } - infoModel.setType(type); - infoModel.setCreateTime(new Date()); - infoModel.setYn(STATUS_TYPE_YES); - infoModel.setBabyId(buildId); - infoModel.setId(null); - return infoModel; - } - - /** * 递归获取预约建档的儿童信息 * * @param ids 建档ids - 针对儿保检查 @@ -780,52 +698,54 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } // 更新儿保数量 if (Objects.equals(STATUS_TYPE_CHECK, statusType)) { - BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId)), BabyAfterVisitStatisticsModel.class); + BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), BabyAfterVisitStatisticsModel.class); if (one != null) { Integer checkSize = one.getCheckSize(); checkSize ++; - mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId)), Update.update("checkSize", checkSize), BabyAfterVisitStatisticsModel.class); + mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("checkSize", checkSize), BabyAfterVisitStatisticsModel.class); } } // 更新眼保数量 if (Objects.equals(STATUS_TYPE_EYE_CHECK, statusType)) { - BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId)), BabyAfterVisitStatisticsModel.class); + BabyAfterVisitStatisticsModel one = mongoTemplate.findOne(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), BabyAfterVisitStatisticsModel.class); if (one != null) { Integer eyeCheckSize = one.getEyeCheckSize(); eyeCheckSize ++; - mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId)), Update.update("eyeCheckSize", eyeCheckSize), BabyAfterVisitStatisticsModel.class); + mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("eyeCheckSize", eyeCheckSize), BabyAfterVisitStatisticsModel.class); } } logger.info("已更新到追访概况中"); } - // 档案转正、儿保检查、眼保检查 addOrUpdate - if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) || Objects.equals(TYPE_EYE_CHECK, type)) { + // 档案转正、儿保检查 addOrUpdate + if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) ) { if (Objects.equals(STATUS_TYPE_NO, statusType)) { BabyModel babyModel = (BabyModel) model; babyModelId = babyModel.getId(); models.add(babyModel); - // 将状态正常更新为作废 - Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr)); - boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").ne(STATUS_TYPE_NO)), BabyAfterVisitInfoModel.class); - if (exists) { - mongoTemplate.updateFirst(query, Update.update("yn", STATUS_TYPE_NO), BabyAfterVisitInfoModel.class); + // 更新预约时间 + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").is(1)); + BabyAfterVisitInfoModel one = mongoTemplate.findOne(query, BabyAfterVisitInfoModel.class); + if (one != null) { + Integer yn = one.getYn(); + if (YnEnums.YES.getId() == yn) { + mongoTemplate.updateFirst(query, Update.update("appointmentTime", babyModel.getNextDate()), BabyAfterVisitInfoModel.class); + } } } if (Objects.equals(STATUS_TYPE_YES, statusType)) { BabyModel babyModel = (BabyModel) model; models.add(babyModel); - // 新增数据 Future> listFuture = service.submit(new BabyAfterVisitInfoModelWork(models, mongoTemplate, type)); List infoModels = listFuture.get(); mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class); } // 儿保检查/眼保检查- 将预约时间更改为null - if (Objects.equals(STATUS_TYPE_UPDATE, statusType)) { + /* if (Objects.equals(STATUS_TYPE_UPDATE, statusType)) { // 儿保检查 if (Objects.equals(TYPE_CHECK, type)) { // 条件:当前创建为最新数据的id == 当前更新的数据id ,更新对应的字段为null @@ -922,10 +842,36 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } } } - } + }*/ logger.info("已自动添加到追访列表中"); } + // 眼保检查 + if (Objects.equals(TYPE_EYE_CHECK, type)) { + Class modelClass = BabyAfterVisitInfoModel.class; + if (Objects.equals(STATUS_TYPE_NO, statusType)) { + BabyEyeCheck babyEyeCheck = (BabyEyeCheck) model; + babyModelId = babyEyeCheck.getBabyId(); + + // 更新预约时间 + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").is(1)); + BabyAfterVisitInfoModel one = mongoTemplate.findOne(query, modelClass); + if (one != null) { + Integer yn = one.getYn(); + if (YnEnums.YES.getId() == yn) { + mongoTemplate.updateFirst(query, Update.update("appointmentTime", babyEyeCheck.getNextCheckTime()), modelClass); + } + } + } + if (Objects.equals(STATUS_TYPE_YES, statusType)) { + // 新增数据 + BabyModel babyModel = (BabyModel) model; + models.add(babyModel); + Future> listFuture = service.submit(new BabyAfterVisitInfoModelWork(models, mongoTemplate, type)); + List infoModels = listFuture.get(); + mongoTemplate.insert(infoModels, modelClass); + } + } } catch (Exception e) { e.printStackTrace(); logger.error("追访失败",e.getStackTrace()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java index fbd889b..0e6c5cb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java @@ -106,8 +106,6 @@ public class BabyEyeCheckServiceImpl extends BaseServiceImpl implements BabyEye Date nextCheckTime = babyEyeCheck.getNextCheckTime(); if (null != nextCheckTime) { babyAfterVisitService.addOrUpdateAfterVisitData(babyEyeCheck, TYPE_EYE_CHECK, STATUS_TYPE_NO); - } else { - babyAfterVisitService.addOrUpdateAfterVisitData(babyEyeCheck, TYPE_EYE_CHECK, STATUS_TYPE_UPDATE); } BabyModel model = new BabyModel(); model.setId(babyEyeCheck.getBabyId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java index 38e7bbd..e541b2e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitInfoModelWork.java @@ -58,6 +58,8 @@ public class BabyAfterVisitInfoModelWork implements Callable