Commit f8f06ffd0a6e0d10c8aa6ce2232c606556925e00
1 parent
0fc6c4f34c
Exists in
master
and in
1 other branch
实时添加追访记录
Showing 5 changed files with 133 additions and 16 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.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/worker/BabyAfterVisitStatisticsModelWork.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java
View file @
f8f06ff
... | ... | @@ -22,6 +22,7 @@ |
22 | 22 | import com.lyms.platform.operate.web.request.BabyManageRequest; |
23 | 23 | import com.lyms.platform.operate.web.request.BookbuildingQueryRequest; |
24 | 24 | import com.lyms.platform.operate.web.result.*; |
25 | +import com.lyms.platform.operate.web.service.BabyAfterVisitService; | |
25 | 26 | import com.lyms.platform.operate.web.service.ITrackDownService; |
26 | 27 | import com.lyms.platform.operate.web.utils.BabyListTask; |
27 | 28 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
... | ... | @@ -49,6 +50,9 @@ |
49 | 50 | import java.util.concurrent.Future; |
50 | 51 | import java.util.concurrent.TimeUnit; |
51 | 52 | |
53 | +import static com.lyms.platform.operate.web.service.BabyAfterVisitService.*; | |
54 | +import static com.lyms.platform.operate.web.service.BabyAfterVisitService.STATUS_TYPE_YES; | |
55 | + | |
52 | 56 | /** |
53 | 57 | * |
54 | 58 | */ |
... | ... | @@ -176,6 +180,9 @@ |
176 | 180 | @Autowired |
177 | 181 | private TrackDownRecordService trackDownRecordService; |
178 | 182 | |
183 | + @Autowired | |
184 | + private BabyAfterVisitService babyAfterVisitService; | |
185 | + | |
179 | 186 | public BaseResponse getBabyBase(String babyId) { |
180 | 187 | //查询儿童的基本信息 |
181 | 188 | BabyBasicResult base = new BabyBasicResult(); |
... | ... | @@ -470,6 +477,13 @@ |
470 | 477 | |
471 | 478 | |
472 | 479 | babyBookbuildingService.updateBabyBuild(model, request.getId()); |
480 | + | |
481 | + // 更新追访概况,作废档案转正 | |
482 | + babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_STATISTICS, STATUS_TYPE_BUILD); | |
483 | + babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_BUILD, STATUS_TYPE_NO); | |
484 | + // 新增儿保追访和眼保追访 | |
485 | + babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_CHECK, STATUS_TYPE_YES); | |
486 | + babyAfterVisitService.addOrUpdateAfterVisitData(model, TYPE_EYE_CHECK, STATUS_TYPE_YES); | |
473 | 487 | |
474 | 488 | handleBabyDiangose(request.getBlNo(), hid); |
475 | 489 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
View file @
f8f06ff
... | ... | @@ -16,6 +16,7 @@ |
16 | 16 | import com.lyms.platform.common.utils.*; |
17 | 17 | import com.lyms.platform.operate.web.request.*; |
18 | 18 | import com.lyms.platform.operate.web.result.*; |
19 | +import com.lyms.platform.operate.web.service.BabyAfterVisitService; | |
19 | 20 | import com.lyms.platform.operate.web.service.ITrackDownService; |
20 | 21 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
21 | 22 | import com.lyms.platform.operate.web.utils.UnitConstants; |
... | ... | @@ -60,6 +61,8 @@ |
60 | 61 | import java.util.concurrent.locks.Lock; |
61 | 62 | import java.util.concurrent.locks.ReentrantLock; |
62 | 63 | |
64 | +import static com.lyms.platform.operate.web.service.BabyAfterVisitService.*; | |
65 | + | |
63 | 66 | /** |
64 | 67 | * 分娩记录信息 |
65 | 68 | * <p> |
... | ... | @@ -157,6 +160,9 @@ |
157 | 160 | @Autowired |
158 | 161 | private MongoTemplate mongoTemplate; |
159 | 162 | |
163 | + @Autowired | |
164 | + private BabyAfterVisitService babyAfterVisitService; | |
165 | + | |
160 | 166 | static { |
161 | 167 | ONE_ENUMS.put(0, "长"); |
162 | 168 | ONE_ENUMS.put(1, "次"); |
... | ... | @@ -1136,6 +1142,10 @@ |
1136 | 1142 | |
1137 | 1143 | babyIds.add(babyService.addOneBaby(babyModel).getId()); |
1138 | 1144 | baby1.setId(babyModel.getId()); |
1145 | + | |
1146 | + // 添加到追访概况、档案转正中 | |
1147 | + babyAfterVisitService.addOrUpdateAfterVisitData(babyModel, TYPE_STATISTICS, STATUS_TYPE_TEMPORARY_DOCUMENT); | |
1148 | + babyAfterVisitService.addOrUpdateAfterVisitData(babyModel, TYPE_BUILD, STATUS_TYPE_YES); | |
1139 | 1149 | |
1140 | 1150 | // //儿童分娩自动建档开通增值服务 |
1141 | 1151 | // if (babyModel.getServiceType() != null && ) { |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyAfterVisitService.java
View file @
f8f06ff
1 | 1 | package com.lyms.platform.operate.web.service; |
2 | 2 | |
3 | +import com.lyms.platform.common.result.BaseModel; | |
3 | 4 | import com.lyms.platform.common.result.BaseResponse; |
4 | 5 | import com.lyms.platform.operate.web.request.BabyAfterVisitBuildListRequest; |
5 | 6 | import com.lyms.platform.operate.web.request.BabyAfterVisitInfoDetailListRequest; |
6 | 7 | |
... | ... | @@ -17,10 +18,23 @@ |
17 | 18 | */ |
18 | 19 | public interface BabyAfterVisitService { |
19 | 20 | |
20 | - /**档案转正、儿保检查、眼保检查*/ | |
21 | + /**追访概况、档案转正、儿保检查、眼保检查*/ | |
22 | + public static final Integer TYPE_STATISTICS = 0; | |
21 | 23 | public static final Integer TYPE_BUILD = 1; |
22 | 24 | public static final Integer TYPE_CHECK = 2; |
23 | 25 | public static final Integer TYPE_EYE_CHECK = 3; |
26 | + | |
27 | + /**状态:正常*/ | |
28 | + public static final Integer STATUS_TYPE_YES = 1; | |
29 | + /**状态:作废*/ | |
30 | + public static final Integer STATUS_TYPE_NO = 2; | |
31 | + /**状态:预建档/临时建档*/ | |
32 | + public static final Integer STATUS_TYPE_TEMPORARY_DOCUMENT = 4; | |
33 | + /**状态:正式建档/已建档*/ | |
34 | + public static final Integer STATUS_TYPE_BUILD= 1; | |
35 | + | |
36 | + | |
37 | + | |
24 | 38 | public static final String BABY_ID = "babyId"; |
25 | 39 | public static final String POSITIVE_PROJECT_TYPE = "yang"; |
26 | 40 | |
... | ... | @@ -71,5 +85,14 @@ |
71 | 85 | * @return |
72 | 86 | */ |
73 | 87 | BaseResponse stopAfterVisitInfo(BabyAfterVisitInfoDetailListRequest request); |
88 | + | |
89 | + /** | |
90 | + * 在产妇分娩、 | |
91 | + * | |
92 | + * @param model BabyAfterVisitStatisticsModel or BabyAfterVisitInfoModel | |
93 | + * @param type 0-追访概况、1-档案转正、2-儿保检查、3-眼保检查 | |
94 | + * @param statusType 1- 状态:正常 2-状态:作废 4-状态:预建档/临时建档 1-状态:正式建档/已建档 | |
95 | + */ | |
96 | + void addOrUpdateAfterVisitData(BaseModel model, Integer type, Integer statusType); | |
74 | 97 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java
View file @
f8f06ff
... | ... | @@ -6,6 +6,7 @@ |
6 | 6 | import com.lyms.platform.common.enums.SexEnum; |
7 | 7 | import com.lyms.platform.common.enums.TrackDownTransferEnums; |
8 | 8 | import com.lyms.platform.common.result.BaseListResponse; |
9 | +import com.lyms.platform.common.result.BaseModel; | |
9 | 10 | import com.lyms.platform.common.result.BaseResponse; |
10 | 11 | import com.lyms.platform.common.utils.*; |
11 | 12 | import com.lyms.platform.operate.web.request.BabyAfterVisitBuildListRequest; |
... | ... | @@ -21,7 +22,6 @@ |
21 | 22 | import com.lyms.platform.permission.dao.master.MasterUsersMapper; |
22 | 23 | import com.lyms.platform.permission.model.Users; |
23 | 24 | import com.lyms.platform.pojo.*; |
24 | -import com.mongodb.WriteResult; | |
25 | 25 | import org.apache.log4j.Logger; |
26 | 26 | import org.springframework.beans.factory.annotation.Autowired; |
27 | 27 | import org.springframework.data.domain.Sort; |
... | ... | @@ -53,9 +53,6 @@ |
53 | 53 | private BabyPatientExtendEarScreenMapper screenMapper; |
54 | 54 | |
55 | 55 | @Autowired |
56 | - private BabyEyeCheckMapper babyEyeCheckMapper; | |
57 | - | |
58 | - @Autowired | |
59 | 56 | MasterUsersMapper usersMapper; |
60 | 57 | |
61 | 58 | /** |
... | ... | @@ -249,6 +246,8 @@ |
249 | 246 | return statisticsModels.size(); |
250 | 247 | } |
251 | 248 | |
249 | + | |
250 | + | |
252 | 251 | /** |
253 | 252 | * 档案转正列表 |
254 | 253 | * |
... | ... | @@ -424,11 +423,7 @@ |
424 | 423 | * @throws ExecutionException |
425 | 424 | * @throws InterruptedException |
426 | 425 | */ |
427 | - private void setSyncAfterVisitInfoList(List<String> eyeIds, List<String> ids , | |
428 | - List<BabyAfterVisitInfoModel> infoModels, | |
429 | - BabyAfterVisitRequest afterVisitQuery, | |
430 | - Integer type, | |
431 | - Date startDate, Date endDate) throws ExecutionException, InterruptedException { | |
426 | + private void setSyncAfterVisitInfoList(List<String> eyeIds, List<String> ids , List<BabyAfterVisitInfoModel> infoModels, BabyAfterVisitRequest afterVisitQuery, Integer type, Date startDate, Date endDate) throws ExecutionException, InterruptedException { | |
432 | 427 | Query query = new Query(); |
433 | 428 | query.addCriteria(Criteria.where("created").gte(startDate).lte(endDate)); |
434 | 429 | long count = 0L; |
... | ... | @@ -560,6 +555,79 @@ |
560 | 555 | } |
561 | 556 | } |
562 | 557 | |
558 | + | |
559 | + /** | |
560 | + * 在产妇分娩(MatDeliverFacade)、儿童建档(BabyBookbuildingFacade) | |
561 | + * | |
562 | + * @param model BabyAfterVisitStatisticsModel or BabyAfterVisitInfoModel | |
563 | + * @param type 0-追访概况、1-档案转正、2-儿保检查、3-眼保检查 | |
564 | + * @param statusType 1- 状态:正常 2-状态:作废 4-状态:预建档/临时建档 1-状态:正式建档/已建档 | |
565 | + */ | |
566 | + public void addOrUpdateAfterVisitData(BaseModel model, Integer type, Integer statusType){ | |
567 | + try { | |
568 | + ExecutorService service = new ThreadPoolExecutor(1, 1, 0, TimeUnit.MILLISECONDS, | |
569 | + new ArrayBlockingQueue<Runnable>(1), | |
570 | + new RejectedExecutionHandler() { | |
571 | + @Override | |
572 | + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { | |
573 | + System.out.println("请稍后尝试"); | |
574 | + } | |
575 | + }); | |
576 | + List<BabyModel> models = new ArrayList<>(); | |
577 | + BabyModel babyModel = (BabyModel) model; | |
578 | + String babyModelId = babyModel.getId(); | |
579 | + babyModel = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(babyModelId)), BabyModel.class); | |
580 | + models.add(babyModel); | |
581 | + | |
582 | + // addOrUpdate | |
583 | + if (Objects.equals(TYPE_STATISTICS, type)) { | |
584 | + | |
585 | + if (Objects.equals(STATUS_TYPE_BUILD, statusType)) { | |
586 | + | |
587 | + // 将追访概况中的建档状态由临时建档改为正式建档 | |
588 | + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId)); | |
589 | + boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("highRiskType").ne(STATUS_TYPE_BUILD)), BabyAfterVisitStatisticsModel.class); | |
590 | + if (exists) { | |
591 | + mongoTemplate.updateFirst(query, Update.update("highRiskType", STATUS_TYPE_BUILD), BabyAfterVisitStatisticsModel.class); | |
592 | + } | |
593 | + } | |
594 | + if (Objects.equals(STATUS_TYPE_TEMPORARY_DOCUMENT, statusType)) { | |
595 | + | |
596 | + // 新增数据 | |
597 | + Future<List<BabyAfterVisitStatisticsModel>> listFuture = service.submit(new BabyAfterVisitStatisticsModelWork(models, mongoTemplate, screenMapper)); | |
598 | + List<BabyAfterVisitStatisticsModel> statisticsModels = listFuture.get(); | |
599 | + mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); | |
600 | + } | |
601 | + logger.info("已更新到追访概况中"); | |
602 | + | |
603 | + } | |
604 | + | |
605 | + // addOrUpdate | |
606 | + if (Objects.equals(TYPE_BUILD, type) || Objects.equals(TYPE_CHECK, type) || Objects.equals(TYPE_EYE_CHECK, type)) { | |
607 | + if (Objects.equals(STATUS_TYPE_NO, statusType)) { | |
608 | + | |
609 | + // 将状态正常更新为作废 | |
610 | + String typeStr = type.toString(); | |
611 | + Query query = Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr)); | |
612 | + boolean exists = mongoTemplate.exists(Query.query(Criteria.where(BABY_ID).is(babyModelId).and("type").is(typeStr).and("yn").ne(STATUS_TYPE_NO)), BabyAfterVisitInfoModel.class); | |
613 | + if (exists) { | |
614 | + mongoTemplate.updateFirst(query, Update.update("yn", STATUS_TYPE_NO), BabyAfterVisitInfoModel.class); | |
615 | + } | |
616 | + } | |
617 | + if (Objects.equals(STATUS_TYPE_YES, statusType)) { | |
618 | + | |
619 | + // 新增数据 | |
620 | + Future<List<BabyAfterVisitInfoModel>> listFuture = service.submit(new BabyAfterVisitInfoModelWork(models, mongoTemplate, type)); | |
621 | + List<BabyAfterVisitInfoModel> infoModels = listFuture.get(); | |
622 | + mongoTemplate.insert(infoModels, BabyAfterVisitInfoModel.class); | |
623 | + } | |
624 | + logger.info("已自动添加到追访列表中"); | |
625 | + } | |
626 | + } catch (Exception e) { | |
627 | + e.printStackTrace(); | |
628 | + logger.error("追访失败",e); | |
629 | + } | |
630 | + } | |
563 | 631 | /** |
564 | 632 | * 档案转正/儿保检查/眼保检查/听力筛查 - 新增追访记录 |
565 | 633 | * |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/BabyAfterVisitStatisticsModelWork.java
View file @
f8f06ff
... | ... | @@ -27,10 +27,13 @@ |
27 | 27 | private MongoTemplate mongoTemplate; |
28 | 28 | private BabyPatientExtendEarScreenMapper screenMapper; |
29 | 29 | private List<BabyModel> babyModels; |
30 | - public BabyAfterVisitStatisticsModelWork(final List<BabyModel> babyModels, final MongoTemplate mongoTemplate, final BabyPatientExtendEarScreenMapper screenMapper) { | |
30 | + public BabyAfterVisitStatisticsModelWork(final List<BabyModel> babyModels, | |
31 | + final MongoTemplate mongoTemplate, | |
32 | + final BabyPatientExtendEarScreenMapper screenMapper) { | |
31 | 33 | this.babyModels = babyModels; |
32 | 34 | this.mongoTemplate = mongoTemplate; |
33 | 35 | this.screenMapper = screenMapper; |
36 | + | |
34 | 37 | } |
35 | 38 | |
36 | 39 | /** |
37 | 40 | |
... | ... | @@ -45,9 +48,9 @@ |
45 | 48 | for (BabyModel babyModel : babyModels) { |
46 | 49 | String id = babyModel.getId(); |
47 | 50 | Query buildQuery = Query.query(Criteria.where("buildId").is(id)); |
48 | - Query BabyQuery = Query.query(Criteria.where("babyId").is(id)); | |
51 | + Query babyQuery = Query.query(Criteria.where("babyId").is(id)); | |
49 | 52 | |
50 | - boolean exists = mongoTemplate.exists(buildQuery, BabyAfterVisitStatisticsModel.class); | |
53 | + boolean exists = mongoTemplate.exists(babyQuery, BabyAfterVisitStatisticsModel.class); | |
51 | 54 | if (!exists) { |
52 | 55 | BabyAfterVisitStatisticsModel babyAfterVisitStatisticsModel = new BabyAfterVisitStatisticsModel(); |
53 | 56 | statisticsModelList.add(babyAfterVisitStatisticsModel); |
54 | 57 | |
55 | 58 | |
... | ... | @@ -69,15 +72,14 @@ |
69 | 72 | long checkCount = mongoTemplate.count(buildQuery, BabyCheckModel.class); |
70 | 73 | babyAfterVisitStatisticsModel.setCheckSize((int) checkCount); |
71 | 74 | // 眼保检查数 |
72 | - long eyeCount = mongoTemplate.count(BabyQuery, BabyEyeCheck.class); | |
75 | + long eyeCount = mongoTemplate.count(babyQuery, BabyEyeCheck.class); | |
73 | 76 | babyAfterVisitStatisticsModel.setEyeCheckSize((int) eyeCount); |
74 | 77 | // 听筛检查数 |
75 | - BabyPatientExtendEarScreenQuery screenQuery = new BabyPatientExtendEarScreenQuery(); | |
78 | + BabyPatientExtendEarScreenQuery screenQuery = new BabyPatientExtendEarScreenQuery(); | |
76 | 79 | screenQuery.setBabyIds(new String[]{id}); |
77 | 80 | int screenCount = screenMapper.queryEarScreenListCount(screenQuery); |
78 | 81 | babyAfterVisitStatisticsModel.setHearCheckSize(screenCount); |
79 | 82 | } |
80 | - | |
81 | 83 | } |
82 | 84 | return statisticsModelList; |
83 | 85 | } |