From 90a47395fe712c796c94531d52ffa74e4cf13dd6 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 11 Feb 2020 15:40:17 +0800 Subject: [PATCH] update code --- .../web/facade/AntenatalExaminationFacade.java | 131 ++++++++++++++++++--- .../web/service/impl/TrackDownServiceImpl.java | 25 ++++ 2 files changed, 142 insertions(+), 14 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 7d9c9ce..0a55630 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -43,6 +43,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import org.springframework.util.StopWatch; @@ -509,6 +510,18 @@ public class AntenatalExaminationFacade { e.printStackTrace(); } + try { + //处方计划 + if (antExamModel.getNextCheckTime() != null) + { + patients = patientsService.findOnePatientById(antExamModel.getParentId()); + updateTrackCount(antExamModel.getCheckDate(), antExamModel.getNextCheckTime(),patients); + } + } catch (Exception e) { + e.printStackTrace(); + } + + } }); @@ -1158,8 +1171,11 @@ public class AntenatalExaminationFacade { } try { - //追访统计 - saveTrackCount(DateUtil.parseYMD(excAddRequest.getNextCheckTime()), patients); + if (excAddRequest.getNextCheckTime() != null) + { + //追访统计 + saveTrackCount(DateUtil.parseYMD(excAddRequest.getNextCheckTime()), patients); + } } catch (Exception e) { e.printStackTrace(); } @@ -1169,29 +1185,116 @@ public class AntenatalExaminationFacade { public void saveTrackCount(Date nextCheckTime,Patients patients) { + TrackCountRecord record = new TrackCountRecord(); + record.setPid(patients.getHospitalId()); + record.setPatientId(patients.getId()); + record.setNextCheckTime(nextCheckTime); + record.setCreated(new Date()); + record.setModified(new Date()); + mongoTemplate.save(record); + } + + public void updateTrackCount(Date checkTime,Date nextCheckTime,Patients patients) + { + TrackDayConfig trackDayConfig = mongoTemplate.findOne(Query.query(Criteria.where("hospitalId").is(patients.getHospitalId())), TrackDayConfig.class); + if (trackDayConfig == null || trackDayConfig.getConfis() == null || trackDayConfig.getConfis().size() == 0) + { + return; + } + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); antExRecordQuery.setPid(patients.getPid()); List recordModels = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); - if (CollectionUtils.isNotEmpty(recordModels)) + if (CollectionUtils.isNotEmpty(recordModels) && recordModels.size() > 1) { - AntExRecordModel recordModel = recordModels.get(0); -// if () -// { -// -// } + TrackCountRecord record = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid())).with(new Sort(Sort.Direction.DESC, "created")), TrackCountRecord.class); + AntExRecordModel recordModel = recordModels.get(1); + if (DateUtil.getyyyy_MM_dd(recordModel.getNextCheckTime()).equals(DateUtil.getyyyy_MM_dd(nextCheckTime))) + { + + record.setZsCheckStatus(1); + Query query = Query.query(Criteria.where("_id").is(record.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); + } + else if (checkTime.getTime() < DateUtil.addDay(recordModel.getNextCheckTime(),4).getTime() && checkTime.getTime() > recordModel.getNextCheckTime().getTime()) + { + record.setJsCheckStatus(1); + Query query = Query.query(Criteria.where("_id").is(record.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); + } + else if (checkTime.getTime() > DateUtil.addDay(recordModel.getNextCheckTime(),3).getTime()) + { + record.setLoseStatus(1); + Query query = Query.query(Criteria.where("_id").is(record.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); + } + //有效期召回人次 + List> configs = trackDayConfig.getConfis(); + String riskLevelId = patients.getRiskLevelId(); + if (StringUtils.isNotEmpty(riskLevelId) && !"[]".equals(riskLevelId)) + { + List rlevel = JsonUtil.jkstr2Obj(patients.getRiskLevelId(), List.class); + Integer day = getTrackDay(rlevel, configs); + if (day != null) + { + if (checkTime.getTime() < DateUtil.addDay(recordModel.getNextCheckTime(),day+1).getTime() && checkTime.getTime() >= recordModel.getNextCheckTime().getTime()) + { + record.setBackStatus(1); + Query query = Query.query(Criteria.where("_id").is(record.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); + } + } + } + saveTrackCount(recordModel.getNextCheckTime(), patients); } } - public void updateTrackCount(Date nextCheckTime,Patients patients) + private Integer getTrackDay(List rlevel,List> configs) { - AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); - antExRecordQuery.setPid(patients.getPid()); - List recordModels = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); - if (CollectionUtils.isNotEmpty(recordModels)) + Integer day = null; + //紫色 + if (rlevel.contains("224b2329-cb82-4da3-a071-8527f8283aab")) + { + day = getDay(configs,"224b2329-cb82-4da3-a071-8527f8283aab"); + } + // + else if (rlevel.contains("eb146c03-b19f-4e28-b85f-fda574b2283b")) + { + day = getDay(configs,"eb146c03-b19f-4e28-b85f-fda574b2283b"); + } + else if (rlevel.contains("49a36aea-c5b6-4162-87d2-9eb3c6ec00c2")) + { + day = getDay(configs,"49a36aea-c5b6-4162-87d2-9eb3c6ec00c2"); + } + else if (rlevel.contains("315107bd-91fe-42a1-9237-752f3c046a40")) + { + day = getDay(configs,"315107bd-91fe-42a1-9237-752f3c046a40"); + } + else if (rlevel.contains("e637b361-99cf-41eb-84f2-f0dab596e928")) { - AntExRecordModel recordModel = recordModels.get(0); + day = getDay(configs,"e637b361-99cf-41eb-84f2-f0dab596e928"); + } + return day; + } + private Integer getDay(List> configs,String rlevel) + { + for (Map config : configs) + { + if (config.get("riskLevel").equals(rlevel)) + { + return Integer.parseInt(config.get("day")); + } } + return null; } public void saveCheckItem(Date nextCheckTime,Patients patients) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java index a5bc5f0..6a80d92 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; @@ -930,9 +931,33 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS trackDownService.add(trackDown); String recordId = trackDown.getTrackDownRecId(); updateRecordStatus(trackDown, recordId); + updateTrackCount(trackDown.getParentId()); return RespBuilder.buildSuccess(trackDown.getId()); } + + /** + * 追访统计 + * @param patientId + */ + private void updateTrackCount(String patientId) + { + Patients patients = patientsService.findOnePatientById(patientId); + if (patients != null) + { + TrackCountRecord record = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid())).with(new Sort(Sort.Direction.DESC, + "created")), TrackCountRecord.class); + if (record != null) + { + record.setTrackStatus(record.getTrackStatus() == null ? 1 : record.getTrackStatus() + 1); + Query query = Query.query(Criteria.where("_id").is(record.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); + } + } + } + /** * 处理增加追访的时候流程扭转 * -- 1.8.3.1