diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyAfterVisitController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyAfterVisitController.java index ecf4b75..2862eb6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyAfterVisitController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyAfterVisitController.java @@ -40,9 +40,13 @@ public class BabyAfterVisitController extends BaseController { */ @RequestMapping(method = RequestMethod.GET, value = "/init/statistics") @ResponseBody - private BaseResponse syncInitStatistics(@RequestParam(required = false) String babyId, @RequestParam(required = false) String startTime,@RequestParam(required = false) String endTime) { + private BaseResponse syncInitStatistics(@RequestParam(required = false) String babyId, + @RequestParam(required = false) String startTime, + @RequestParam(required = false) String endTime, + @RequestParam(required = false) String hospitalId + ) { try { - return babyAfterVisitService.syncInitStatistics(babyId, startTime, endTime); + return babyAfterVisitService.syncInitStatistics(babyId, startTime, endTime, hospitalId); } catch (ExecutionException e) { e.printStackTrace(); } catch (InterruptedException e) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java index f5f047a..13f62bf 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java @@ -64,7 +64,7 @@ public interface BabyAfterVisitService { * @param babyId * @return */ - BaseResponse syncInitStatistics(String babyId, String startTime, String endTime) throws ExecutionException, InterruptedException; + BaseResponse syncInitStatistics(String babyId, String startTime, String endTime, String hospitalId) throws ExecutionException, InterruptedException; /** * 档案转正列表/儿保检查/眼保检查/听力筛查 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 819a800..f9db959 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 @@ -152,7 +152,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { * @return */ @Override - public BaseResponse syncInitStatistics(String babyId, String startTime, String endTime) throws ExecutionException, InterruptedException { + public BaseResponse syncInitStatistics(String babyId, String startTime, String endTime, String hospitalId) throws ExecutionException, InterruptedException { BaseResponse response = new BaseResponse(); BabyAfterVisitRequest afterVisitQuery = new BabyAfterVisitRequest(); afterVisitQuery.setLimit(500); @@ -162,12 +162,12 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { Map map = new HashMap<>(16); // 访视概况 - Integer statisticsModelsSize = getStatisticsModelsSize(babyId, afterVisitQuery, startDate, endDate); + Integer statisticsModelsSize = getStatisticsModelsSize(babyId, afterVisitQuery, startDate, endDate, hospitalId); map.put("statisticsModelsSize", statisticsModelsSize); // 档案转正 List infoModels = new ArrayList<>(); - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate); + setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate, hospitalId); mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class); map.put("infoModels-build", infoModels.size()); @@ -205,7 +205,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } } } - setSyncAfterVisitInfoList( ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate); + setSyncAfterVisitInfoList( ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate, hospitalId); mongoTemplate.insert(infoCheckModels, BabyAfterVisitInfoModel.class); map.put("infoModels-check-size", infoCheckModels.size()); @@ -243,7 +243,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } } - setSyncAfterVisitInfoList(babyIds, infoEyeCheckModels, afterVisitQuery, TYPE_EYE_CHECK, startDate, endDate); + setSyncAfterVisitInfoList(babyIds, infoEyeCheckModels, afterVisitQuery, TYPE_EYE_CHECK, startDate, endDate, hospitalId); mongoTemplate.insert(infoEyeCheckModels, BabyAfterVisitInfoModel.class); map.put("infoModels-eyeCheck-size", infoEyeCheckModels.size()); @@ -264,11 +264,15 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { * @throws InterruptedException * @throws ExecutionException */ - private Integer getStatisticsModelsSize(String babyId, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate) throws InterruptedException, ExecutionException { + private Integer getStatisticsModelsSize(String babyId, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate, String hospitalId) throws InterruptedException, ExecutionException { List statisticsModels = new LinkedList<>(); if (StringUtils.isNotEmpty(babyId)) { // 单条数据,方便测试 - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyId).and("created").gte(startDate).lte(endDate)), BabyModel.class); + Query query = Query.query(Criteria.where("_id").is(babyId).and("created").gte(startDate).lte(endDate)); + if (StringUtils.isNotEmpty(hospitalId)) { + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + } + BabyModel babyModel = mongoTemplate.findOne(query, BabyModel.class); if (babyModel != null) { List babyModelList = new ArrayList<>(); babyModelList.add(babyModel); @@ -279,7 +283,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } else { // 递归获取要同步的数据集 - setSyncList(statisticsModels, afterVisitQuery, startDate, endDate); + setSyncList(statisticsModels, afterVisitQuery, startDate, endDate, hospitalId); } // 批量保存 mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); @@ -599,10 +603,13 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { * @throws ExecutionException * @throws InterruptedException */ - private void setSyncAfterVisitInfoList(List ids , List infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate) + 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)); + if (StringUtils.isNotEmpty(hospitalId)) { + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + } long count = 0L; if (Objects.equals(TYPE_BUILD, type)) { @@ -664,13 +671,13 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { for (int i = currentPage+ 1; i <= lastPage ; i++) { afterVisitQuery.setPage(i); if (TYPE_BUILD.equals(type)) { - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, type, startDate, endDate); + setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } if (TYPE_CHECK.equals(type)) { - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate); + setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } if (TYPE_EYE_CHECK.equals(type)) { - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate); + setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); } } @@ -682,10 +689,13 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { * @param statisticsModels * @param afterVisitQuery */ - private void setSyncList(List statisticsModels, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate) throws ExecutionException, InterruptedException { + private void setSyncList(List statisticsModels, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate, String hospitalId) throws ExecutionException, InterruptedException { Query query = new Query(); query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate)); + if (StringUtils.isNotEmpty(hospitalId)) { + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + } long count = mongoTemplate.count(query, BabyModel.class); afterVisitQuery.mysqlBuild((int) count); query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "created"))); @@ -727,7 +737,7 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } for (int i = currentPage+ 1; i <= lastPage ; i++) { afterVisitQuery.setPage(i); - setSyncList(statisticsModels, afterVisitQuery, startDate, endDate); + setSyncList(statisticsModels, afterVisitQuery, startDate, endDate, hospitalId); } }