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 b1e3066..b72bea8 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 @@ -429,15 +429,16 @@ public class AntenatalExaminationFacade { String pid=""; for (int i = 0; i < listDate.size(); i++) { dueDate = listDate.get(i).getDate(); + Date end =new Date(listDate.get(i).getDate().getTime()+86398000); List listData = new ArrayList(); Organization organization = null; PatientsQuery patientsQuery1 = new PatientsQuery(); - patientsQuery1.setBookbuildingDateEnd(new Date(listDate.get(i).getDate().getTime()+i*2200)); + patientsQuery1.setBookbuildingDateEnd(end); if (listDate.size() > i + 1) { - patientsQuery1.setBookbuildingDateStart(listDate.get(i + 1).getDate()); - }else if(listDate.size()>1){ + patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(i + 1).getDate().getTime()+86398000)); + }/*else if(listDate.size()==i){ patientsQuery1.setBookbuildingDateStart(new Date()); - } + }*/ pid=list.get(0).getPid(); patientsQuery1.setPid(pid); List patientses = patientsService.queryPatient1(patientsQuery1); @@ -445,6 +446,7 @@ public class AntenatalExaminationFacade { Iterator iterator=patientses.iterator(); while(iterator.hasNext()){ Patients patients= iterator.next(); + //处理建档就分娩的情况 Date date = DateUtil.addWeek(patients.getLastMenses(),42); Date currentDate = DateUtil.formatDate(patients.getBookbuildingDate()); if (date.getTime() <= currentDate.getTime()) @@ -483,13 +485,24 @@ public class AntenatalExaminationFacade { } if(CollectionUtils.isNotEmpty(patientses)){ - buildPatientList(dueDate,patientses,listData,null,false); + + List tmp =new ArrayList(); + for(Patients patients:patientses){ + tmp.add(new SortIn(patients)); + } + sortList(tmp); + Date min=null; + if(!tmp.isEmpty()){ + min=tmp.get(tmp.size()-1).getDate(); + } + //分娩前的数据 + buildPatientList(dueDate,patientses,listData,min,false); PostReviewQuery postReviewQuery = new PostReviewQuery(); - if (list.size() - 1 > i) { - postReviewQuery.setStart(dueDate); + postReviewQuery.setStart(dueDate); + if ( i>0) { //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 - postReviewQuery.setEnd(patientses.get(0).getBookbuildingDate()); + postReviewQuery.setEnd(listDate.get(i-1).getDate()); } postReviewQuery.setPid(pid); Object obj = map.get(listDate.get(i).getId()); @@ -518,7 +531,7 @@ public class AntenatalExaminationFacade { PatientsQuery patientsQuery1=new PatientsQuery(); patientsQuery1.setYn(YnEnums.YES.getId()); patientsQuery1.setPid(pid); - patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(0).getDate().getTime()+1000)); + patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(0).getDate().getTime())); patientsQuery1.setType(1); List patientsList = patientsService.queryPatient(patientsQuery1); List list1=new ArrayList(); @@ -531,7 +544,7 @@ public class AntenatalExaminationFacade { if(!tmp.isEmpty()){ min=tmp.get(tmp.size()-1).getDate(); } - List l= buildPatientList(dueDate, patientsList, list1,min,false); + List l= buildPatientList(new Date(), patientsList, list1,min,false); if(!l.isEmpty()){ sort(l); sortList.add(l); @@ -574,7 +587,7 @@ public class AntenatalExaminationFacade { - private List buildPatientList(Date dueDate, List patientses,List listData,Date min,boolean f) { + private List buildPatientList(Date end, List patientses,List listData,Date min,boolean f) { if(CollectionUtils.isEmpty(patientses)){ return listData; } @@ -590,19 +603,17 @@ public class AntenatalExaminationFacade { } - if (null != dueDate) { + if (null != end) { //初诊记录 AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setYn(YnEnums.YES.getId()); if(!f){ if(null==min){ antExChuQuery.setStart(patientses.get(0).getBookbuildingDate()); - antExChuQuery.setEnd(new Date(dueDate.getTime()+86398000)); + antExChuQuery.setEnd(new Date(end.getTime()+86398000)); }else{ antExChuQuery.setStart(min); - if(min.before(patientses.get(0).getBookbuildingDate())&&min.before(dueDate)){ - antExChuQuery.setEnd(new Date(patientses.get(0).getBookbuildingDate().getTime() + 86398000)); - } + antExChuQuery.setEnd(end); } } antExChuQuery.setPid(pid); @@ -624,12 +635,10 @@ public class AntenatalExaminationFacade { if(!f) { if (null == min) { antExQuery.setStart(patientses.get(0).getBookbuildingDate()); - antExQuery.setEnd(new Date(dueDate.getTime() + 86398000)); + antExQuery.setEnd(new Date(end.getTime() + 86398000)); } else { antExQuery.setStart(min); - if (min.before(patientses.get(0).getBookbuildingDate())) { - antExQuery.setEnd(new Date(patientses.get(0).getBookbuildingDate().getTime() + 86398000)); - } + antExQuery.setEnd(end); } } @@ -973,10 +982,47 @@ public class AntenatalExaminationFacade { return new BaseResponse().setErrorcode(ErrorCodeConstants.DEPT_NOT_EXISTS).setErrormsg("该孕妇还未在本院建档不能进行产检"); } + + MatDeliverQuery matDeliverQuery=new MatDeliverQuery(); + + matDeliverQuery.setPid(patients.getPid()); + matDeliverQuery.setYn(YnEnums.YES.getId()); + + List list1 = matDeliverService.query(matDeliverQuery); + + StopPregQuery stopPregQuery=new StopPregQuery(); + + stopPregQuery.setPid(patients.getPid()); + stopPregQuery.setYn(YnEnums.YES.getId()); + + List list2= stopPregnancyService.queryStopPreg(stopPregQuery); + + + List sortList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(list1)){ + for(MaternalDeliverModel model:list1){ + sortList.add(new SortIn(model)); + } + + } + if(CollectionUtils.isNotEmpty(list2)) { + for (StopPregModel model : list2) { + sortList.add(new SortIn(model)); + } + } + + + AntexListResult antexListResult = new AntexListResult(); AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setPid(patients.getPid()); antExChuQuery.setYn(YnEnums.YES.getId()); + Date max=null; + if(!sortList.isEmpty()){ + sortList(sortList); + max = sortList.get(0).getDate(); + } + antExChuQuery.setStart(max); //获取初诊记录 List antExChulist = antenatalExaminationService.queryAntExChu(antExChuQuery); @@ -984,6 +1030,7 @@ public class AntenatalExaminationFacade { AntExQuery antExQuery = new AntExQuery(); antExQuery.setYn(YnEnums.YES.getId()); antExQuery.setPid(patients.getPid()); + antExQuery.setStart(max); //查询产前检查记录 List list = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery());