From a5d30f60a746514ef5bf537e75533a9eecf96b0d Mon Sep 17 00:00:00 2001 From: yangfei Date: Fri, 9 Mar 2018 10:25:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E8=BF=BD?= =?UTF-8?q?=E8=AE=BF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/query/TrackDownRecordQuery.java | 4 +- .../operate/web/facade/TrackDownFacade.java | 3 +- .../web/service/impl/TrackDownServiceImpl.java | 103 ++++++++++++++++++--- 3 files changed, 95 insertions(+), 15 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java index 2c5e08a..72711a1 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java @@ -201,7 +201,9 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ MongoCondition condition = MongoCondition.newInstance(); if (status!=null) { - condition = condition.and("status", status, MongoOper.IS); + if(status!=3){//查询全部 + condition = condition.and("status", status, MongoOper.IS); + } } else { //默认只查询显示的数据 condition = condition.and("status", 1, MongoOper.IS); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java index ed66f25..89c5e50 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java @@ -266,10 +266,11 @@ public class TrackDownFacade { if (CollectionUtils.isNotEmpty(downRecordList) && null != downTypeHandler) { for (TrackDownRecord trackDownRecord : downRecordList) { //追访类型 + Integer trackType = trackDownRecord.getTrackType(); + //查询的追访类型 trackDownRecord.setTrackType(downQueryRequest.getTrackType()); Map map = downTypeHandler.build(trackDownRecord, mongoTemplate); - Integer trackType = trackDownRecord.getTrackType(); if(downQueryRequest.getTrackType()==TrackDownDateEnums.D.getId()){ if(trackType == TrackDownDateEnums.C.getId()){ trackType = TrackDownDateEnums.D.getId(); 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 333a4b5..38ba655 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 @@ -112,15 +112,16 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS private List> getResidentMainData(List residentsArchiveModels) { List> archiveModelList = new ArrayList<>(); + for (ResidentsArchiveModel archiveModel : residentsArchiveModels) { Map temp = new HashMap<>(); temp.put("bookbuild", 3);//孕期建档默认空白 temp.put("cqsc", 3);//产前筛查默认空白 temp.put("fm", 3);//分娩空白 temp.put("chfc", 3);//产后复查空白 - Long checkNum = mongoTemplate.count(Query.query(Criteria.where("certificateNum").is(archiveModel.getCertificateNum()).and("yn").is(1)), PremaritalCheckup.class); temp.put("resident", 1); // 妇女建档 temp.put("check", 3); // 婚检 + Long checkNum = mongoTemplate.count(Query.query(Criteria.where("certificateNum").is(archiveModel.getCertificateNum()).and("yn").is(1)), PremaritalCheckup.class); PatientsQuery patientsQuery = new PatientsQuery(); @@ -142,16 +143,15 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉 temp.put("bookbuildDate", DateUtil.getyyyy_MM_dd(patients.getBookbuildingDate())); - - if(patients.getDueStatus() == 1||patients.getIsAutoFm() == 1){//终止妊娠,或自动分娩 + if (patients.getDueStatus() == 1 || (patients.getIsAutoFm()!=null&& patients.getIsAutoFm() == 1)) {//终止妊娠,或自动分娩 temp.put("fm", 2); // 分娩 1=勾勾 2=叉叉 - }else if (patients.getType() == 3) { + } else if (patients.getType() == 3) { temp.put("fm", 1); // 分娩 1=勾勾 2=叉叉 temp.put("fmType", patients.getFmType()); // 分娩方式 1: 顺产,2:剖宫产 } //孕检次数 - temp.put("yjcount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").is(1)), AntenatalExaminationModel.class) + mongoTemplate.count(Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").is(1)), AntExChuModel.class)); + temp.put("yjcount", getChuzhenCount(patients.getId())); if (patients.getType() == 3) { //产后复查 PostReviewQuery postReviewQuery = new PostReviewQuery(); @@ -190,6 +190,32 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("phone", StringUtils.encryPhone(archiveModel.getPhone())); temp.put("age", DateUtil.getAge(archiveModel.getBirthday())); temp.put("residentDate", DateUtil.getyyyy_MM_dd(archiveModel.getBuildDay())); // 妇女建档日期 + + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setSource(archiveModel.getId()); + downRecordQuery.setStatus(0); + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + TrackDownRecord trackDownRecord = null; + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 + trackDownRecord = records.get(0); + } else {//根据patient查询是否存在追访信息 + //根据医院id和身份证或手机号进行查询 + downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setStatus(3); + downRecordQuery.setHospitalId(archiveModel.getHospitalId()); + if (StringUtils.isNotEmpty(archiveModel.getCertificateNum())) { + downRecordQuery.setCardNo(archiveModel.getCertificateNum()); + } else if (StringUtils.isNotEmpty(archiveModel.getPhone())) { + downRecordQuery.setPhone(archiveModel.getPhone()); + } + records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(records)) {// + trackDownRecord = records.get(0); + } + } + + isExitTrackDown(trackDownRecord, temp); + archiveModelList.add(temp); } return archiveModelList; @@ -198,6 +224,7 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS private List> getPatientMainData(List patients) { List> restList = new ArrayList<>(); for (Patients patient : patients) { // type: 1=孕期 3=产后 + Map temp = new HashMap<>(); temp.put("bookbuild", 1); temp.put("cqsc", 3);//产前筛查默认空白 @@ -231,17 +258,15 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉 - - - if(patient.getDueStatus() == 1||patient.getIsAutoFm() == 1){//终止妊娠,或自动分娩 + if (patient.getDueStatus() == 1 || (patient.getIsAutoFm()!=null&&patient.getIsAutoFm() == 1)) {//终止妊娠,或自动分娩 temp.put("fm", 2); // 分娩 1=勾勾 2=叉叉 - }else if (patient.getType() == 3) { //本院已分娩 + } else if (patient.getType() == 3) { //本院已分娩 temp.put("fm", 1); // 孕期建档 1=勾勾 2=叉叉 temp.put("fmType", patient.getFmType()); // 分娩方式 1: 顺产,2:剖宫产 } //孕检次数 - temp.put("yjcount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(patient.getId()).and("yn").is(1)), AntenatalExaminationModel.class) + mongoTemplate.count(Query.query(Criteria.where("parentId").is(patient.getId()).and("yn").is(1)), AntExChuModel.class)); + temp.put("yjcount", getChuzhenCount(patient.getId())); if (patient.getType() == 3) {//分娩后 //产后复查 @@ -273,14 +298,66 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS temp.put("cqsc", 2);//产前筛查 } } + + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setParentId(patient.getId()); + downRecordQuery.setStatus(3); + TrackDownRecord track = null; + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) { + track = records.get(0); + } + isExitTrackDown(track, temp); + restList.add(temp); } return restList; } - private int isExitTrackDown(String parentId, TrackDownDateEnums trackDownDateEnums) { - return mongoTemplate.exists(Query.query(Criteria.where("parentId").is(parentId).and("yn").is(1) - .and("trackDownDateType").is(trackDownDateEnums.getId()).and("trackDownTransfer").in(Arrays.asList(2, 3))), TrackDown.class) ? 2 : 3; + /** + * 数据未空流程处理 + * + * @param trackDownRecord + * @param map + */ + private void isExitTrackDown(TrackDownRecord trackDownRecord, Map map) { + if (trackDownRecord != null) { + if ((int) map.get("bookbuild") == 3) {//孕期建档 + //如果当前流程已经结束流程,则显示X + if (trackDownRecord.getTrackType() <= TrackDownDateEnums.B.getId()) { + map.put("bookbuild", 2); + } + } + + if ((int) map.get("cqsc") == 3) {//产前筛查 + //如果当前流程已经结束流程,则显示X + if (trackDownRecord.getTrackType() <= TrackDownDateEnums.C.getId()) { + map.put("cqsc", 2); + } + } + + if ((int) map.get("fm") == 3) {//分娩 + //如果当前流程已经结束流程,则显示X + if (trackDownRecord.getTrackType() <= TrackDownDateEnums.E.getId()) { + map.put("fm", 2); + } + } + + if ((int) map.get("chfc") == 3) {//产后复查 + //如果当前流程已经结束流程,则显示X + if (trackDownRecord.getTrackType() <= TrackDownDateEnums.F.getId()) { + map.put("chfc", 2); + } + } + + if ((int) map.get("check") == 3) {//婚检 + //如果当前流程已经结束流程,则显示X + if (trackDownRecord.getTrackType() <= TrackDownDateEnums.A.getId()) { + map.put("check", 2); + } + } + } } -- 1.8.3.1