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 d907465..2aef281 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 @@ -619,4 +619,50 @@ public class ReportController extends BaseController { @RequestParam(required = true)String endDate) { return reportService.getFmAfterEvaluate(hospitalId,startDate,endDate); } + /** + * 统计管理-孕产妇数据统计-2.3.2-初诊之后的逾期 + * + * @param startDate + * @param endDate + * @return + */ + @RequestMapping(value = "/getChuNextOverdue", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getChuNextOverdue(@RequestParam(required = true)String hospitalId, + @RequestParam(required = true)Date startDate, + @RequestParam(required = true)Date endDate) { + return reportService.getChuNextOverdue(hospitalId,startDate,endDate); + } + /** + * 统计管理-孕产妇数据统计-2.3.2-最后一次检查逾期 + * + * @param startDate + * @param endDate + * @return + */ + @RequestMapping(value = "/getFinallyCheckOverdue", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getFinallyCheckOverdue(@RequestParam(required = true)String hospitalId, + @RequestParam(required = true)Date startDate, + @RequestParam(required = true)Date endDate) { + return reportService.getFinallyCheckOverdue(hospitalId,startDate,endDate); + } + /** + * 统计管理-孕产妇数据统计-2.3.2-乡镇级别,最后一次检查逾期 + * + * @param startDate + * @param endDate + * @return + */ + @RequestMapping(value = "/getAreaFinallyOverdue", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getAreaFinallyOverdue(@RequestParam(required = true)String hospitalId, + @RequestParam(required = true)String areaId, + @RequestParam(required = true)Date startDate, + @RequestParam(required = true)Date endDate) { + return reportService.getAreaFinallyOverdue(hospitalId,areaId,startDate,endDate); + } } 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 2c2e155..51ce22d 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 @@ -122,4 +122,10 @@ public interface IReportService extends IBaseService { BaseResponse getFmAfterEvaluate(String hospitalId,String startDate,String endDate); BaseResponse getAntExChuNotDetail(String hospitalId, Integer type, Date startDate, Date endDate, Integer page, Integer limit); + + BaseResponse getChuNextOverdue(String hospitalId, Date startDate, Date endDate); + + BaseResponse getFinallyCheckOverdue(String hospitalId, Date startDate, Date endDate); + + BaseResponse getAreaFinallyOverdue(String hospitalId,String areaId ,Date startDate, Date endDate); } 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 4de068d..ba18861 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 @@ -32,6 +32,7 @@ import com.lymsh.platform.reportdata.model.echarts.Series; import org.apache.commons.collections.*; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang.StringUtils; +import org.bson.types.ObjectId; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; @@ -5017,4 +5018,91 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService map.put("antExChuNotAlwaysList",antExChuNotAlwaysList); return map; } + + @Override + public BaseResponse getChuNextOverdue(String hospitalId, Date startDate, Date endDate) { + BaseResponse br = new BaseResponse(); + List > mapList=new ArrayList<>(); + //孕妇初诊 + Criteria criteria = Criteria.where("nextCheckTime") + .gte(startDate).lte(endDate) + .and("hospitalId").is(hospitalId) + .and("yn").is(1); + List antExChuModels = mongoTemplate.find(Query.query(criteria), AntExChuModel.class); + //逾期初诊id + List ids=new ArrayList<>(); + for (AntExChuModel antExChuModel : antExChuModels) { + Criteria criteria2 = Criteria.where("parentId").is(antExChuModel.getParentId()) + .and("hospitalId").is(hospitalId) + .and("type").is(1) + .and("yn").is(1); + final long count = mongoTemplate.count(Query.query(criteria2), AntExRecordModel.class); + if(count==0){ + ids.add(new ObjectId(antExChuModel.getId())); + } + } + //分组查询 + Criteria criteria3 = Criteria.where("_id").in(ids); + AggregationOperation match = Aggregation.match(criteria3); + AggregationOperation group = Aggregation.group("prodDoctor").count().as("count"); + Aggregation aggregation= Aggregation.newAggregation(match, group); + AggregationResults result = mongoTemplate.aggregate(aggregation,"lyms_antexc", HashMap.class); + int count=0;//逾期合计 + for (HashMap mappedResult : result.getMappedResults()) { + Map map=new HashMap<>(); + + if (null!=mappedResult.get("_id")) { + //接生医生姓名 + String doctor = ""; + Users users = usersService.getUsers(Integer.parseInt(mappedResult.get("_id").toString())); + if (users != null && users.getYn() == YnEnums.YES.getId()) { + doctor = users.getName(); + } + map.put("name", doctor); + map.put("count", mappedResult.get("count")); + count+=Integer.parseInt(mappedResult.get("count").toString()); + mapList.add(map); + } + } + Map totalMap=new HashedMap(); + totalMap.put("name","合计(逾期未检)"); + totalMap.put("count",count); + mapList.add(totalMap); + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + br.setObject(mapList); + return br; + } + + @Override + public BaseResponse getFinallyCheckOverdue(String hospitalId, Date startDate, Date endDate) { + BaseResponse br = new BaseResponse(); + List > mapList=new ArrayList<>(); + Criteria criteria = Criteria.where("nextCheckTime") + .gte(startDate).lte(endDate) + .and("") + .and("hospitalId").is(hospitalId) + .and("yn").is(1); + AggregationOperation match = Aggregation.match(criteria); + AggregationOperation group = Aggregation.group("prodDoctor").count().as("count"); + Aggregation aggregation= Aggregation.newAggregation(match, group); + AggregationResults result = mongoTemplate.aggregate(aggregation,"lyms_patient", HashMap.class); + + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + br.setObject(mapList); + return br; + } + + @Override + public BaseResponse getAreaFinallyOverdue(String hospitalId, String areaId,Date startDate, Date endDate) { + BaseResponse br = new BaseResponse(); + List > mapList=new ArrayList<>(); + + + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + br.setObject(mapList); + return br; + } }