Commit 403429d67b7318145364afd45ac509936a57d75f
1 parent
ddbc873943
Exists in
master
and in
6 other branches
为同步儿童历史的追访数据接口添加hospitalId字段
Showing 3 changed files with 31 additions and 17 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyAfterVisitController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.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/controller/BabyAfterVisitController.java
View file @
403429d
| ... | ... | @@ -40,9 +40,13 @@ |
| 40 | 40 | */ |
| 41 | 41 | @RequestMapping(method = RequestMethod.GET, value = "/init/statistics") |
| 42 | 42 | @ResponseBody |
| 43 | - private BaseResponse syncInitStatistics(@RequestParam(required = false) String babyId, @RequestParam(required = false) String startTime,@RequestParam(required = false) String endTime) { | |
| 43 | + private BaseResponse syncInitStatistics(@RequestParam(required = false) String babyId, | |
| 44 | + @RequestParam(required = false) String startTime, | |
| 45 | + @RequestParam(required = false) String endTime, | |
| 46 | + @RequestParam(required = false) String hospitalId | |
| 47 | + ) { | |
| 44 | 48 | try { |
| 45 | - return babyAfterVisitService.syncInitStatistics(babyId, startTime, endTime); | |
| 49 | + return babyAfterVisitService.syncInitStatistics(babyId, startTime, endTime, hospitalId); | |
| 46 | 50 | } catch (ExecutionException e) { |
| 47 | 51 | e.printStackTrace(); |
| 48 | 52 | } catch (InterruptedException e) { |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java
View file @
403429d
| ... | ... | @@ -64,7 +64,7 @@ |
| 64 | 64 | * @param babyId |
| 65 | 65 | * @return |
| 66 | 66 | */ |
| 67 | - BaseResponse syncInitStatistics(String babyId, String startTime, String endTime) throws ExecutionException, InterruptedException; | |
| 67 | + BaseResponse syncInitStatistics(String babyId, String startTime, String endTime, String hospitalId) throws ExecutionException, InterruptedException; | |
| 68 | 68 | |
| 69 | 69 | /** |
| 70 | 70 | * 档案转正列表/儿保检查/眼保检查/听力筛查 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java
View file @
403429d
| ... | ... | @@ -152,7 +152,7 @@ |
| 152 | 152 | * @return |
| 153 | 153 | */ |
| 154 | 154 | @Override |
| 155 | - public BaseResponse syncInitStatistics(String babyId, String startTime, String endTime) throws ExecutionException, InterruptedException { | |
| 155 | + public BaseResponse syncInitStatistics(String babyId, String startTime, String endTime, String hospitalId) throws ExecutionException, InterruptedException { | |
| 156 | 156 | BaseResponse response = new BaseResponse(); |
| 157 | 157 | BabyAfterVisitRequest afterVisitQuery = new BabyAfterVisitRequest(); |
| 158 | 158 | afterVisitQuery.setLimit(500); |
| 159 | 159 | |
| ... | ... | @@ -162,12 +162,12 @@ |
| 162 | 162 | Map<String, Integer> map = new HashMap<>(16); |
| 163 | 163 | |
| 164 | 164 | // 访视概况 |
| 165 | - Integer statisticsModelsSize = getStatisticsModelsSize(babyId, afterVisitQuery, startDate, endDate); | |
| 165 | + Integer statisticsModelsSize = getStatisticsModelsSize(babyId, afterVisitQuery, startDate, endDate, hospitalId); | |
| 166 | 166 | map.put("statisticsModelsSize", statisticsModelsSize); |
| 167 | 167 | |
| 168 | 168 | // 档案转正 |
| 169 | 169 | List<BabyAfterVisitInfoModel> infoModels = new ArrayList<>(); |
| 170 | - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate); | |
| 170 | + setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, TYPE_BUILD, startDate, endDate, hospitalId); | |
| 171 | 171 | mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class); |
| 172 | 172 | map.put("infoModels-build", infoModels.size()); |
| 173 | 173 | |
| ... | ... | @@ -205,7 +205,7 @@ |
| 205 | 205 | } |
| 206 | 206 | } |
| 207 | 207 | } |
| 208 | - setSyncAfterVisitInfoList( ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate); | |
| 208 | + setSyncAfterVisitInfoList( ids, infoCheckModels, afterVisitQuery, TYPE_CHECK, startDate, endDate, hospitalId); | |
| 209 | 209 | mongoTemplate.insert(infoCheckModels, BabyAfterVisitInfoModel.class); |
| 210 | 210 | map.put("infoModels-check-size", infoCheckModels.size()); |
| 211 | 211 | |
| ... | ... | @@ -243,7 +243,7 @@ |
| 243 | 243 | } |
| 244 | 244 | } |
| 245 | 245 | |
| 246 | - setSyncAfterVisitInfoList(babyIds, infoEyeCheckModels, afterVisitQuery, TYPE_EYE_CHECK, startDate, endDate); | |
| 246 | + setSyncAfterVisitInfoList(babyIds, infoEyeCheckModels, afterVisitQuery, TYPE_EYE_CHECK, startDate, endDate, hospitalId); | |
| 247 | 247 | mongoTemplate.insert(infoEyeCheckModels, BabyAfterVisitInfoModel.class); |
| 248 | 248 | map.put("infoModels-eyeCheck-size", infoEyeCheckModels.size()); |
| 249 | 249 | |
| 250 | 250 | |
| ... | ... | @@ -264,11 +264,15 @@ |
| 264 | 264 | * @throws InterruptedException |
| 265 | 265 | * @throws ExecutionException |
| 266 | 266 | */ |
| 267 | - private Integer getStatisticsModelsSize(String babyId, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate) throws InterruptedException, ExecutionException { | |
| 267 | + private Integer getStatisticsModelsSize(String babyId, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate, String hospitalId) throws InterruptedException, ExecutionException { | |
| 268 | 268 | List<BabyAfterVisitStatisticsModel> statisticsModels = new LinkedList<>(); |
| 269 | 269 | if (StringUtils.isNotEmpty(babyId)) { |
| 270 | 270 | // 单条数据,方便测试 |
| 271 | - BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyId).and("created").gte(startDate).lte(endDate)), BabyModel.class); | |
| 271 | + Query query = Query.query(Criteria.where("_id").is(babyId).and("created").gte(startDate).lte(endDate)); | |
| 272 | + if (StringUtils.isNotEmpty(hospitalId)) { | |
| 273 | + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); | |
| 274 | + } | |
| 275 | + BabyModel babyModel = mongoTemplate.findOne(query, BabyModel.class); | |
| 272 | 276 | if (babyModel != null) { |
| 273 | 277 | List<BabyModel> babyModelList = new ArrayList<>(); |
| 274 | 278 | babyModelList.add(babyModel); |
| ... | ... | @@ -279,7 +283,7 @@ |
| 279 | 283 | } else { |
| 280 | 284 | |
| 281 | 285 | // 递归获取要同步的数据集 |
| 282 | - setSyncList(statisticsModels, afterVisitQuery, startDate, endDate); | |
| 286 | + setSyncList(statisticsModels, afterVisitQuery, startDate, endDate, hospitalId); | |
| 283 | 287 | } |
| 284 | 288 | // 批量保存 |
| 285 | 289 | mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); |
| 286 | 290 | |
| ... | ... | @@ -599,10 +603,13 @@ |
| 599 | 603 | * @throws ExecutionException |
| 600 | 604 | * @throws InterruptedException |
| 601 | 605 | */ |
| 602 | - private void setSyncAfterVisitInfoList(List<String> ids , List<BabyAfterVisitInfoModel> infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate) | |
| 606 | + private void setSyncAfterVisitInfoList(List<String> ids , List<BabyAfterVisitInfoModel> infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate, String hospitalId) | |
| 603 | 607 | throws ExecutionException, InterruptedException { |
| 604 | 608 | Query query = new Query(); |
| 605 | 609 | query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate)); |
| 610 | + if (StringUtils.isNotEmpty(hospitalId)) { | |
| 611 | + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); | |
| 612 | + } | |
| 606 | 613 | long count = 0L; |
| 607 | 614 | if (Objects.equals(TYPE_BUILD, type)) { |
| 608 | 615 | |
| 609 | 616 | |
| 610 | 617 | |
| ... | ... | @@ -664,13 +671,13 @@ |
| 664 | 671 | for (int i = currentPage+ 1; i <= lastPage ; i++) { |
| 665 | 672 | afterVisitQuery.setPage(i); |
| 666 | 673 | if (TYPE_BUILD.equals(type)) { |
| 667 | - setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, type, startDate, endDate); | |
| 674 | + setSyncAfterVisitInfoList( null, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); | |
| 668 | 675 | } |
| 669 | 676 | if (TYPE_CHECK.equals(type)) { |
| 670 | - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate); | |
| 677 | + setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); | |
| 671 | 678 | } |
| 672 | 679 | if (TYPE_EYE_CHECK.equals(type)) { |
| 673 | - setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate); | |
| 680 | + setSyncAfterVisitInfoList( ids, infoModels, afterVisitQuery, type, startDate, endDate, hospitalId); | |
| 674 | 681 | } |
| 675 | 682 | |
| 676 | 683 | } |
| 677 | 684 | |
| ... | ... | @@ -682,10 +689,13 @@ |
| 682 | 689 | * @param statisticsModels |
| 683 | 690 | * @param afterVisitQuery |
| 684 | 691 | */ |
| 685 | - private void setSyncList(List<BabyAfterVisitStatisticsModel> statisticsModels, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate) throws ExecutionException, InterruptedException { | |
| 692 | + private void setSyncList(List<BabyAfterVisitStatisticsModel> statisticsModels, BabyAfterVisitRequest afterVisitQuery, Date startDate, Date endDate, String hospitalId) throws ExecutionException, InterruptedException { | |
| 686 | 693 | |
| 687 | 694 | Query query = new Query(); |
| 688 | 695 | query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate)); |
| 696 | + if (StringUtils.isNotEmpty(hospitalId)) { | |
| 697 | + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); | |
| 698 | + } | |
| 689 | 699 | long count = mongoTemplate.count(query, BabyModel.class); |
| 690 | 700 | afterVisitQuery.mysqlBuild((int) count); |
| 691 | 701 | query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "created"))); |
| ... | ... | @@ -727,7 +737,7 @@ |
| 727 | 737 | } |
| 728 | 738 | for (int i = currentPage+ 1; i <= lastPage ; i++) { |
| 729 | 739 | afterVisitQuery.setPage(i); |
| 730 | - setSyncList(statisticsModels, afterVisitQuery, startDate, endDate); | |
| 740 | + setSyncList(statisticsModels, afterVisitQuery, startDate, endDate, hospitalId); | |
| 731 | 741 | } |
| 732 | 742 | } |
| 733 | 743 |