diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java index c3f302e..4848e50 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java @@ -1238,7 +1238,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen query.setCreatedStart(DateUtil.parseYMD(arrs[0])); query.setCreatedEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1)); } - //分组查询 + //分组查询-按地区 AggregationOperation match = Aggregation.match(query.convertToQuery().getCriteria()); AggregationOperation group = Aggregation.group("areaId"); Aggregation aggregation= Aggregation.newAggregation(match, group); @@ -1253,8 +1253,14 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen if (null!=mappedResult.get("_id")){ map.put("name", CommonsHelper.getName1(mappedResult.get("_id").toString(),basicConfigService)); query.setAreaId(mappedResult.get("_id").toString()); - List modelList = cancerScreenService.queryCancerScreList(query); - for (CancerScreeningModel cancerScreeningModel : modelList) { + //分组查询-按档案去重 + AggregationOperation match2 = Aggregation.match(query.convertToQuery().getCriteria()); + AggregationOperation group2 = Aggregation.group("residentId").max("created").as("created").last("zhJd").as("zhJd"); + AggregationOperation fields2 = Aggregation.project("zhJd"); +// AggregationOperation sort2 = Aggregation.sort(Sort.Direction.DESC,"created"); + Aggregation aggregation2= Aggregation.newAggregation(match2,group2,fields2); + AggregationResults result2 = mongoTemplate.aggregate(aggregation2,"lyms_cancer_screen", CancerScreeningModel.class); + for (CancerScreeningModel cancerScreeningModel : result2.getMappedResults()) { if(MapUtils.isNotEmpty(cancerScreeningModel.getZhJd())){ if("0".equals(cancerScreeningModel.getZhJd().get("yn"))){ zc++;