diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordMDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordMDao.java index 11c284f..83b4d8d 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordMDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordMDao.java @@ -4,6 +4,9 @@ import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.pojo.AntExPRecordModel; import com.lyms.platform.pojo.AntExRecordModel; +import java.util.HashMap; +import java.util.List; + /** * Created by Administrator on 2017/1/13 0013. */ @@ -25,4 +28,9 @@ public interface IAntExRecordMDao { * @param id */ void deleteById(String id); + + List aggregateOne(MongoQuery mongoQuery) ; + + + List queryRecord(MongoQuery mongoQuery); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordMDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordMDaoImpl.java index 35ea6f8..c8a5116 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordMDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordMDaoImpl.java @@ -6,19 +6,22 @@ import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.pojo.AntExPRecordModel; -import com.lyms.platform.pojo.AntExRecordModel; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.stereotype.Repository; +import java.util.HashMap; +import java.util.List; + /** - * - * * Created by Administrator on 2017/1/13 0013. */ @Repository("antExRecordMDao") -public class AntExRecordMDaoImpl extends BaseMongoDAOImplimplements IAntExRecordMDao { +public class AntExRecordMDaoImpl extends BaseMongoDAOImpl implements IAntExRecordMDao { @Override public Integer count(MongoQuery mongoQuery) { - return (int)count(mongoQuery.convertToMongoQuery()); + return (int) count(mongoQuery.convertToMongoQuery()); } @Override @@ -30,4 +33,30 @@ public class AntExRecordMDaoImpl extends BaseMongoDAOImplimpl public void deleteById(String id) { delete(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery()); } + /** + * 查询符合条件的产检 + * + * @param mongoQuery + * @return + */ + public List queryRecord(MongoQuery mongoQuery) { + return find(mongoQuery.convertToMongoQuery()); + } + + /** + * 统计单个医院的产检情况 + * + * @param mongoQuery + * @return + */ + public List aggregateOne(MongoQuery mongoQuery) { + AggregationOperation match = Aggregation.match(mongoQuery.getCriteria()); + + AggregationOperation group = Aggregation.group("checkDoctor").count().as("count"); + + Aggregation aggregation = Aggregation.newAggregation(match, group); + + AggregationResults result = mongoTemplate.aggregate(aggregation, "lyms_antexprecord", HashMap.class); + return result.getMappedResults(); + } } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java index c6c131b..867a07c 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java @@ -45,9 +45,29 @@ public class AntExRecordService { private IAntExRecordMDao iAntExRecordMDao; public List aggregateOne(AntExRecordQuery antExRecordQuery) { - return antExRecordDao.aggregateOne(antExRecordQuery.convertToQuery()); + return iAntExRecordMDao.aggregateOne(antExRecordQuery.convertToQuery()); } + public Integer countM(AntExRecordQuery antExRecordQuery){ + return iAntExRecordMDao.count(antExRecordQuery.convertToQuery()); + } + + /** + * 查询符合条件的产检记录 + * + * @param antExRecordQuery + * @return + */ + public List queryAntExRecords1(AntExRecordQuery antExRecordQuery) { + MongoQuery query = antExRecordQuery.convertToQuery(); + if (StringUtils.isNotEmpty(antExRecordQuery.getNeed())) { + antExRecordQuery.mysqlBuild(iAntExRecordMDao.count(query)); + query.start(antExRecordQuery.getOffset()).end(antExRecordQuery.getLimit()); + } + return iAntExRecordMDao.queryRecord(query.addOrder(Sort.Direction.DESC, "checkTime")); + } + + private void handRecord( AntExRecordModel record ){ AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 3250757..c46483e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -331,9 +331,9 @@ public class AntExRecordFacade { } if (statisticsQueryRequest.getType() == 1) { - List list2 = recordService.queryAntExRecords(antExRecordQuery); + List list2 = recordService.queryAntExRecords1(antExRecordQuery); if (CollectionUtils.isNotEmpty(list2)) { - for (AntExRecordModel record : list2) { + for (AntExPRecordModel record : list2) { CjStatisticsListResult cjStatisticsListResult = new CjStatisticsListResult(); cjStatisticsListResult.convertToResult(record); Patients patients = patientsService.findOnePatientById(record.getParentId()); @@ -406,7 +406,7 @@ public class AntExRecordFacade { for (HashMap map : list) { CjStatisticsResult cjStatisticsResult = new CjStatisticsResult(); String dId = null; - Object id = map.get("checkDoctor"); + Object id = map.get("_id"); if (null != id) { dId = id.toString(); } else { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java index b76b402..4c5c7f6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java @@ -3,10 +3,7 @@ package com.lyms.platform.operate.web.result; import com.lyms.platform.common.base.IBasicResultConvert; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; -import com.lyms.platform.pojo.AntExChuModel; -import com.lyms.platform.pojo.AntExRecordModel; -import com.lyms.platform.pojo.AntenatalExaminationModel; -import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.*; import java.util.List; import java.util.Map; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java index f55d291..1a0faca 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java @@ -2,6 +2,7 @@ package com.lyms.platform.operate.web.result; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.pojo.AntExPRecordModel; import com.lyms.platform.pojo.AntExRecordModel; import com.lyms.platform.pojo.Patients; import org.codehaus.jackson.annotate.JsonIgnore; @@ -48,7 +49,7 @@ public class CjStatisticsListResult { setType(record.getType()); return this; } - public CjStatisticsListResult convertToResult(AntExRecordModel record) { + public CjStatisticsListResult convertToResult(AntExPRecordModel record) { setDueDate(DateUtil.getyyyy_MM_dd(record.getDueDate())); if(null!=record.getLastMenses()){ int days= DateUtil.daysBetween(record.getLastMenses(),new Date());