From 89dde92e84d98aa6dce9908ad6fdd1b69e2dccbc Mon Sep 17 00:00:00 2001 From: "[wangbo]" Date: Wed, 14 Aug 2019 14:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=BF=AE=E6=94=B9=20=20?= =?UTF-8?q?=E8=91=A3=E5=8B=A4=E5=9B=9E=E6=9D=A5=E9=80=BB=E8=BE=91=E4=B8=8A?= =?UTF-8?q?=E5=9C=A8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BabyAfterVisitServiceImpl.java | 86 +++++++++++----------- 1 file changed, 44 insertions(+), 42 deletions(-) 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 38b84db..f4f1f1a 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 @@ -43,7 +43,6 @@ import java.util.concurrent.*; import java.util.regex.Pattern; /** - * * @Author dongqin * @Description 儿童访视管理业务实现类 * @Date 10:17 2019/6/25 @@ -167,7 +166,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { // 档案转正 List infoModels = new ArrayList<>(); - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate, hospitalId); + setSyncAfterVisitInfoList(null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate, hospitalId); mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class); map.put("infoModels-build", infoModels.size()); @@ -188,13 +187,13 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { // 儿保 (sysdate < 下次预约时间) or ( 已做儿保检查 and 下次预约时间 == null) MatchOperation match = Aggregation.match(Criteria.where("created").gte(startDate).lt(endDate)); AggregationOperation group = Aggregation.group("buildId").max("created").as("created").addToSet("id").as("babyCheckIds"); - Aggregation aggregation = Aggregation.newAggregation(match ,group); + Aggregation aggregation = Aggregation.newAggregation(match, group); AggregationResults aggregate = mongoTemplate.aggregate(aggregation, BabyCheckModel.class, Map.class); List mappedResults = aggregate.getMappedResults(); for (Map mappedResult : mappedResults) { List babyCheckIds = (List) mappedResult.get("babyCheckIds"); // 根据建档id分组,获取最新的儿保检查数据 - Object babyCheckId = babyCheckIds.get(babyCheckIds.size() - 1); + Object babyCheckId = babyCheckIds.get(babyCheckIds.size() - 1); BabyCheckModel babyCheckModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyCheckId).orOperator(Criteria.where("nextDate").gte(new Date()), Criteria.where("nextDate").exists(false))), BabyCheckModel.class); if (null != babyCheckModel) { @@ -205,7 +204,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } } } - setSyncAfterVisitInfoList( ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate, hospitalId); + setSyncAfterVisitInfoList(ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate, hospitalId); mongoTemplate.insert(infoCheckModels, BabyAfterVisitInfoModel.class); map.put("infoModels-check-size", infoCheckModels.size()); @@ -292,7 +291,6 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } - /** * 档案转正列表/儿保检查/眼保检查/听力筛查 * @@ -368,8 +366,8 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { String startCheckTime = request.getStartCheckTime(); String endCheckTime = request.getEndCheckTime(); if (StringUtils.isNotEmpty(startCheckTime) && StringUtils.isNotEmpty(endCheckTime)) { - startCheckTime += " 00:00:00"; - endCheckTime += " 23:59:59"; + startCheckTime += " 00:00:00"; + endCheckTime += " 23:59:59"; Date startDate = DateUtil.parseYMDHMS(startCheckTime); Date endDate = DateUtil.parseYMDHMS(endCheckTime); query.addCriteria(Criteria.where("checkTime").gte(startDate).lte(endDate)); @@ -390,7 +388,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { // 阳性项目 String positiveProject = request.getPositiveProject(); if (StringUtils.isNotEmpty(positiveProject)) { - Pattern pattern = Pattern.compile("^.*"+positiveProject+".*$", Pattern.CASE_INSENSITIVE); + Pattern pattern = Pattern.compile("^.*" + positiveProject + ".*$", Pattern.CASE_INSENSITIVE); query.addCriteria(Criteria.where("positiveProject").regex(pattern)); } @@ -458,23 +456,26 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { query.addCriteria(Criteria.where("appointmentTime").gte(start).lte(end)); } } - if (!appointmentTimeBoolean && !nonNull) { - query.addCriteria(Criteria.where("appointmentTime").lt(new Date())); - } - + //临时处理等待董勤回来处理 + boolean flag = true; // 追访结果 1-显示 当前时间 > 预约时间 // 2-显示 当前时间 < 预约时间 String afterVisitResult = request.getAfterVisitResult(); if (Objects.equals("1", afterVisitResult)) { if (!appointmentTimeBoolean && !nonNull) { query.addCriteria(Criteria.where("appointmentTime").lte(new Date())); + flag = false; } - } else if (Objects.equals("2", afterVisitResult)){ + } else if (Objects.equals("2", afterVisitResult)) { if (!appointmentTimeBoolean && !nonNull) { query.addCriteria(Criteria.where("appointmentTime").gt(new Date())); + flag = false; } } + if (!appointmentTimeBoolean && !nonNull && flag) { + query.addCriteria(Criteria.where("appointmentTime").lt(new Date())); + } // 组装分页query long count = mongoTemplate.count(query, BabyAfterVisitInfoModel.class); @@ -489,7 +490,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { objectMap.put("birthStr", DateUtil.getyyyy_MM_dd(model.getBirth())); objectMap.put("monthsAge", DateUtil.getBabyMonthAge(model.getBirth(), new Date())); // 脱敏处理 - objectMap.put("mphone","1".equals(request.getIsEncrypt()) ? EncryptUtil.numberEncrypt(model.getMphone()) : model.getMphone()); + objectMap.put("mphone", "1".equals(request.getIsEncrypt()) ? EncryptUtil.numberEncrypt(model.getMphone()) : model.getMphone()); // 预约时间 Date appointmentTime = model.getAppointmentTime(); @@ -543,7 +544,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { return baseListResponse; } - private Date getEndDate(Integer beyondDay){ + private Date getEndDate(Integer beyondDay) { Calendar instance = Calendar.getInstance(); instance.setTime(new Date()); instance.add(Calendar.DATE, -beyondDay); @@ -596,16 +597,16 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { /** * 递归获取预约建档的儿童信息 * - * @param ids 建档ids - 针对儿保检查 - * @param infoModels 接受的集合 + * @param ids 建档ids - 针对儿保检查 + * @param infoModels 接受的集合 * @param afterVisitQuery query对象 - * @param type 类型 - * @param startDate 开始时间 - * @param endDate 结束时间 + * @param type 类型 + * @param startDate 开始时间 + * @param endDate 结束时间 * @throws ExecutionException * @throws InterruptedException */ - private void setSyncAfterVisitInfoList(List ids , List infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate, String hospitalId) + private void setSyncAfterVisitInfoList(List ids, List infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate, String hospitalId) throws ExecutionException, InterruptedException { Query query = new Query(); query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate)); @@ -670,16 +671,16 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { if (Objects.equals(lastPage, currentPage)) { return; } - for (int i = currentPage+ 1; i <= lastPage ; i++) { + for (int i = currentPage + 1; i <= lastPage; i++) { afterVisitQuery.setPage(i); if (TYPE_BUILD.equals(type)) { - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); + setSyncAfterVisitInfoList(null, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } if (TYPE_CHECK.equals(type)) { - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); + setSyncAfterVisitInfoList(ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } if (TYPE_EYE_CHECK.equals(type)) { - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); + setSyncAfterVisitInfoList(ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } } @@ -737,7 +738,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { if (Objects.equals(lastPage, currentPage)) { return; } - for (int i = currentPage+ 1; i <= lastPage ; i++) { + for (int i = currentPage + 1; i <= lastPage; i++) { afterVisitQuery.setPage(i); setSyncList(statisticsModels, afterVisitQuery, startDate, endDate, hospitalId); } @@ -750,21 +751,21 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { * 儿保检查保存(BabyCheckFacade)、 * 眼保检查(BabyEyeCheckServiceImpl) * - * @param model BabyAfterVisitStatisticsModel or BabyAfterVisitInfoModel - * @param type 0-追访概况、1-档案转正、2-儿保检查、3-眼保检查 + * @param model BabyAfterVisitStatisticsModel or BabyAfterVisitInfoModel + * @param type 0-追访概况、1-档案转正、2-儿保检查、3-眼保检查 * @param statusType 1- 状态:正常 2-状态:作废 4-状态:预建档/临时建档 1-状态:正式建档/已建档 */ @Override - public void addOrUpdateAfterVisitData(BaseModel model, Integer type, Integer statusType){ + public void addOrUpdateAfterVisitData(BaseModel model, Integer type, Integer statusType) { try { ExecutorService service = new ThreadPoolExecutor(1, 1, 0, TimeUnit.MILLISECONDS, - new ArrayBlockingQueue(1), - new RejectedExecutionHandler() { - @Override - public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { - System.out.println("请稍后尝试"); - } - }); + new ArrayBlockingQueue(1), + new RejectedExecutionHandler() { + @Override + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { + System.out.println("请稍后尝试"); + } + }); String typeStr = type.toString(); List models = new ArrayList<>(); String babyModelId; @@ -802,7 +803,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { 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 ++; + checkSize++; mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("checkSize", checkSize), BabyAfterVisitStatisticsModel.class); } } @@ -811,7 +812,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { 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 ++; + eyeCheckSize++; mongoTemplate.updateFirst(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("yn").is(1)), Update.update("eyeCheckSize", eyeCheckSize), BabyAfterVisitStatisticsModel.class); } } @@ -820,7 +821,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } // 档案转正、儿保检查 addOrUpdate - if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) ) { + if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type)) { if (Objects.equals(STATUS_TYPE_NO, statusType)) { BabyModel babyModel = (BabyModel) model; @@ -879,7 +880,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } List projectStrs = InitDataUtils.getPositiveProjectByKey(babyEyeCheck); if (CollectionUtils.isNotEmpty(projectStrs)) { - String join = org.apache.commons.lang.StringUtils.join(projectStrs,","); + String join = org.apache.commons.lang.StringUtils.join(projectStrs, ","); update.set("positiveProject", join); } @@ -898,9 +899,10 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } } catch (Exception e) { e.printStackTrace(); - logger.error("追访失败",e.getStackTrace()); + logger.error("追访失败", e.getStackTrace()); } } + /** * 档案转正/儿保检查/眼保检查/听力筛查 - 新增追访记录 * -- 1.8.3.1