From b67f5b8cbd54c02498333eae79a0e189fc320ff9 Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Fri, 21 Jan 2022 14:22:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=8E=E7=94=9F=E5=8E=BF=E5=8C=BB=E9=99=A2?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E5=88=86=E6=9E=90=E6=8A=A5?= =?UTF-8?q?=E5=91=8A-2.1=E5=AD=95=E4=BA=A7=E5=A6=87=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=88=E5=AD=95=E4=BA=A7=E5=A6=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=9F=E8=AE=A1=EF=BC=89-=E5=BD=93=E6=9C=88?= =?UTF-8?q?=E5=BB=BA=E6=A1=A3=E5=BD=93=E6=9C=88=E6=9C=AA=E5=88=9D=E8=AF=8A?= =?UTF-8?q?-=E5=88=86=E7=B1=BB=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/query/AntExRecordQuery.java | 13 +++ .../operate/web/controller/ReportController.java | 29 +++++- .../operate/web/service/IReportService.java | 3 + .../web/service/impl/ReportServiceImpl.java | 108 +++++++++++++++++++-- 4 files changed, 146 insertions(+), 7 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java index dd9d82a..7d1d120 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java @@ -433,6 +433,16 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery // 0~12 孕周 16~20 孕周 21~24 孕周 28~36 孕周 37~ 分娩 // 1 表示在上面各个孕周范围内的第一次检查,2 不是 private Integer isFirst; + //外院 + private String notHospitalId; + + public String getNotHospitalId() { + return notHospitalId; + } + + public void setNotHospitalId(String notHospitalId) { + this.notHospitalId = notHospitalId; + } public Integer getIsFirst() { return isFirst; @@ -744,6 +754,9 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery if (null != hospitalId) { condition = condition.and("hospitalId", hospitalId, MongoOper.IS); } + if (null != notHospitalId) { + condition = condition.and("hospitalId", notHospitalId, MongoOper.NE); + } if (null != hospitalList) { condition = condition.and("hospitalId", hospitalList, MongoOper.IN); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index bcc4474..c231313 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -546,7 +547,7 @@ public class ReportController extends BaseController { return reportService.getAntExChuDetail(hospitalId, startDate, endDate); } /** - * 统计管理-孕产妇数据统计-高危详情 + * 统计管理-孕产妇数据统计-初诊详情-高危详情 * * @param hospitalId * @param startDate @@ -565,6 +566,32 @@ public class ReportController extends BaseController { return reportService.getHighRiskDetail(hospitalId,riskType, startDate, endDate, page, limit); } /** + * 统计管理-孕产妇数据统计-建档当月未初诊-(下月初诊、外院初诊、一直未初诊)详情 + * + * @param hospitalId + * @param type + * @param antExChuNotList 建档未初诊 + * @param antExChuNotAlwaysList 建档一直未初诊 + * @param startDate + * @param endDate + * @param page + * @param limit + * @return + */ + @RequestMapping(value = "/getAntExChuNotDetail", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getAntExChuNotDetail(@RequestParam(required = true)String hospitalId, + @RequestParam(required = true)Integer type, + @RequestParam(required = true)List antExChuNotList, + @RequestParam(required = true)List antExChuNotAlwaysList, + @RequestParam(required = true)Date startDate, + @RequestParam(required = true)Date endDate, + @RequestParam(required = true)Integer page, + @RequestParam(required = true)Integer limit) { + return reportService.getAntExChuNotDetail(hospitalId,type,antExChuNotList ,antExChuNotAlwaysList,startDate, endDate, page, limit); + } + /** * 统计管理-孕产妇数据统计-分娩详情 * * @param hospitalId diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java index 70880ca..b0dd12b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java @@ -5,6 +5,7 @@ import com.lyms.platform.common.result.BaseResponse; import javax.servlet.http.HttpServletResponse; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -119,4 +120,6 @@ public interface IReportService extends IBaseService { BaseResponse getFmDetail(String hospitalId, Date startDate, Date endDate); BaseResponse getFmAfterEvaluate(String hospitalId,String startDate,String endDate); + + BaseResponse getAntExChuNotDetail(String hospitalId, Integer type, List antExChuNotList,List antExChuNotAlwaysList, Date startDate, Date endDate, Integer page, Integer limit); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index a5ae8bc..f22c5ae 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -106,6 +106,13 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService @Autowired private AntExRecordService recordService; + @Autowired + private AntenatalExaminationService antExService; + + @Autowired + private PatientsService patientsService; + + private static final Map colorMap = new HashMap<>(); /** @@ -4414,18 +4421,18 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService .and("yn").is(YnEnums.YES.getId()); long antExChu = mongoTemplate.count(Query.query(criteria2), AntExChuModel.class); //建档且初诊(限本院) - List filingPids = new ArrayList<>(); + List filingParentIds = new ArrayList<>(); for (Patients patients : patientsList) { - filingPids.add(patients.getId()); + filingParentIds.add(patients.getId()); } - Criteria criteria3 = Criteria.where("parentId").in(filingPids) + Criteria criteria3 = Criteria.where("parentId").in(filingParentIds) .and("hospitalId").is(hospitalId) .and("yn").is(YnEnums.YES.getId()) .and("checkTime").gte(startDate).lte(endDate); long filingRoAntExChu = mongoTemplate.count(Query.query(criteria3), AntExChuModel.class); //建档未初诊(包含外院初诊) - List antExChuNotList = new ArrayList<>();//档案pid - for (Object obj : filingPids) { + List antExChuNotList = new ArrayList<>();//后面详情会用到 + for (Object obj : filingParentIds) { Criteria criteria0 = Criteria.where("parentId").is(obj) .and("yn").is(YnEnums.YES.getId()) .and("checkTime").gte(startDate).lte(endDate); @@ -4448,6 +4455,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService long antExChuWai = mongoTemplate.count(Query.query(criteria5), AntExChuModel.class); //一直未初诊 int filingNotAntExChu= 0; + List antExChuNotAlwaysList = new ArrayList<>();//后面详情用到 for (Object obj : antExChuNotList) { Criteria criteria6= Criteria.where("parentId").is(obj) .and("hospitalId").is(hospitalId) @@ -4456,6 +4464,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService long count = mongoTemplate.count(Query.query(criteria6), AntExChuModel.class); if(count==0){ filingNotAntExChu++; + antExChuNotAlwaysList.add(obj); } } //当前时间范围初诊,之前建档 @@ -4559,6 +4568,8 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService map.put("livingCount", boy+girl); map.put("boyCount", boy); map.put("girlCount", girl); + map.put("antExChuNotList", antExChuNotList);//后面详情用到。不用再次重复查询 + map.put("antExChuNotAlwaysList", antExChuNotAlwaysList);//后面详情用到。不用再次重复查询 br.setErrorcode(ErrorCodeConstants.SUCCESS); br.setErrormsg("成功"); @@ -4684,7 +4695,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService antExRecordQuery.setNeed("yes"); antExRecordQuery.setPage(page); antExRecordQuery.setLimit(limit); - List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "created"); + List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); for (AntExRecordModel antExRecordModel : antExRecordModelList) { Mapmap =new HashMap<>(); map.put("name", antExRecordModel.getName()); @@ -4718,6 +4729,91 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } @Override + public BaseResponse getAntExChuNotDetail(String hospitalId, Integer type,List antExChuNotList,List antExChuNotAlwaysList, Date startDate, Date endDate, Integer page, Integer limit) { + BaseListResponse br = new BaseListResponse(); + List > antExRecordResult=new ArrayList<>(); + //1:下月初诊、2:外院初诊、3:一直未初诊 + List antExRecordModelList=new ArrayList<>(); + List patientsList=new ArrayList<>(); + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + PatientsQuery patientsQuery=new PatientsQuery(); + if(CollectionUtils.isNotEmpty(antExChuNotList)||CollectionUtils.isNotEmpty(antExChuNotAlwaysList)) { + switch (type) { + case 1: + antExRecordQuery.setParentIds(antExChuNotList); + antExRecordQuery.setHospitalId(hospitalId); + antExRecordQuery.setCheckTimeStart(DateUtil.getMonthDay(startDate, 1, 1)); + antExRecordQuery.setCheckTimeEnd(DateUtil.getMonthDay(startDate, 1, 0)); + antExRecordQuery.setType(2);//初诊 + antExRecordQuery.setNeed("yes"); + antExRecordQuery.setPage(page); + antExRecordQuery.setLimit(limit); + antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); + break; + case 2: + antExRecordQuery.setParentIds(antExChuNotList); + antExRecordQuery.setNotHospitalId(hospitalId); + antExRecordQuery.setCheckTimeStart(startDate); + antExRecordQuery.setType(2);//初诊 + antExRecordQuery.setNeed("yes"); + antExRecordQuery.setPage(page); + antExRecordQuery.setLimit(limit); + antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); + break; + case 3: + patientsQuery.setIds(antExChuNotAlwaysList); + patientsQuery.setNeed("yse"); + patientsQuery.setPage(page); + patientsQuery.setLimit(limit); + patientsList = patientsService.queryPatientBySort(patientsQuery, "bookbuildingDate", "DESC"); + for (Patients patient : patientsList) { + Map map = new HashMap<>(); + map.put("name", patient.getUsername()); + //建档孕周 + int days = DateUtil.getDays(patient.getLastMenses(), patient.getBookbuildingDate()); + map.put("filingDueWeek", com.lyms.platform.common.utils.StringUtils.dueWeek(days)); + //当前孕周 + int days2 = DateUtil.getDays(patient.getLastMenses(), new Date()); + map.put("nowDueWeek", com.lyms.platform.common.utils.StringUtils.dueWeek(days2)); + map.put("age", DateUtil.getAge(patient.getBirth())); + map.put("phone", patient.getPhone()); + //居住地 + String liveAddress = CommonsHelper.getResidence(patient.getProvinceId(), patient.getCityId(), + patient.getAreaId(), patient.getStreetId(), patient.getAddress(), basicConfigService); + map.put("liveAddress", liveAddress); + antExRecordResult.add(map); + } + br.setPageInfo(patientsQuery.getPageInfo()); + break; + } + if (type == 1 || type == 2) { + for (AntExRecordModel antExRecordModel : antExRecordModelList) { + Map map = new HashMap<>(); + map.put("name", antExRecordModel.getName()); + //建档孕周 + int days = DateUtil.getDays(antExRecordModel.getLastMenses(), antExRecordModel.getBuildTime()); + map.put("filingDueWeek", com.lyms.platform.common.utils.StringUtils.dueWeek(days)); + //当前孕周 + int days2 = DateUtil.getDays(antExRecordModel.getLastMenses(), new Date()); + map.put("nowDueWeek", com.lyms.platform.common.utils.StringUtils.dueWeek(days2)); + map.put("age", DateUtil.getAge(antExRecordModel.getBrith())); + map.put("phone", antExRecordModel.getPhone()); + //居住地 + String liveAddress = CommonsHelper.getResidence(antExRecordModel.getProvinceId(), antExRecordModel.getCityId(), + antExRecordModel.getAreaId(), antExRecordModel.getStreetId(), antExRecordModel.getAddress(), basicConfigService); + map.put("liveAddress", liveAddress); + antExRecordResult.add(map); + } + br.setPageInfo(antExRecordQuery.getPageInfo()); + } + } + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + br.setData(antExRecordResult); + return br; + } + + @Override public BaseResponse getFmDetail(String hospitalId, Date startDate, Date endDate) { BaseResponse br = new BaseResponse(); List > doctorFm=new ArrayList<>(); -- 1.8.3.1