From 8032d5fff36a9ee4236d0dc16931b75278a022ce Mon Sep 17 00:00:00 2001 From: dqcer Date: Wed, 29 May 2019 01:15:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=A5=E5=BA=B7=E7=BB=9F=E8=AE=A1-=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/web/facade/AreaCountFacade.java | 31 +++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index 41fb973..8ba834d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -36,17 +36,24 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; +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.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletResponse; -import java.time.*; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.concurrent.*; +import static org.springframework.data.mongodb.core.aggregation.Aggregation.project; + /** * @@ -1412,7 +1419,7 @@ public class AreaCountFacade { hospitalIds = getCurrentUserHospPermissions(query.getUserId(), StringUtils.isEmpty(provinceId) ? null : provinceId, StringUtils.isEmpty(cityId) ? null : cityId, StringUtils.isEmpty(areaId) ? null : areaId); } - if (CollectionUtils.isNotEmpty(hospitalIds)){ + if (CollectionUtils.isEmpty(hospitalIds)){ return baseResponse; } @@ -1439,13 +1446,25 @@ public class AreaCountFacade { healthChargeQuery.setHospitalIds(hospitalIds); } - List list = healthChargeService.queryHealthChargeList(healthChargeQuery); - + AggregationOperation match = Aggregation.match(healthChargeQuery.convertToQuery().getCriteria()); + AggregationOperation group = Aggregation.group("day","month","year","healthType").count().as("count"); + AggregationOperation month = project(). + andExpression("dayOfMonth(created)").as("day"). + andExpression("month(created)").as("month"). + andExpression("year(created)").as("year"). + andExpression("healthType").as("healthType"); + Aggregation aggregation = Aggregation.newAggregation(match, month, group ); + AggregationResults result = mongoTemplate.aggregate(aggregation, "lyms_health_charge", HashMap.class); + List mappedResults = result.getMappedResults(); + AggregationOperation group2 = Aggregation.group("healthType").count().as("count"); + Aggregation aggregation2 = Aggregation.newAggregation(match, group2 ); + AggregationResults result2 = mongoTemplate.aggregate(aggregation2, "lyms_health_charge", HashMap.class); + List mappedResults2 = result2.getMappedResults(); + baseResponse.setObject(mappedResults2); - - return null; + return baseResponse; } } -- 1.8.3.1