Commit a726ad01b02a8c96c5f0047e4437845d84ff349e

Authored by shiyang
1 parent a86a8856de

孕产-社区医生统计分组查询

Showing 2 changed files with 16 additions and 5 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java View file @ a726ad0
... ... @@ -42,6 +42,9 @@
42 42 import org.springframework.beans.factory.annotation.Qualifier;
43 43 import org.springframework.data.domain.Sort;
44 44 import org.springframework.data.mongodb.core.MongoTemplate;
  45 +import org.springframework.data.mongodb.core.aggregation.Aggregation;
  46 +import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
  47 +import org.springframework.data.mongodb.core.aggregation.AggregationResults;
45 48 import org.springframework.data.mongodb.core.query.Criteria;
46 49 import org.springframework.data.mongodb.core.query.Query;
47 50 import org.springframework.data.mongodb.core.query.Update;
... ... @@ -65,6 +68,8 @@
65 68 import java.util.concurrent.ThreadPoolExecutor;
66 69 import java.util.concurrent.TimeUnit;
67 70  
  71 +import static org.springframework.data.mongodb.core.aggregation.Aggregation.project;
  72 +
68 73 /**
69 74 *
70 75 */
71 76  
... ... @@ -3402,10 +3407,16 @@
3402 3407  
3403 3408 public BaseObjectResponse queryRecommend(RecommendQuery recommendQuery) {
3404 3409 MongoQuery query = recommendQuery.convertToQuery().addOrder(Sort.Direction.DESC, "bookbuildingDate");
3405   - System.out.println(query.convertToMongoQuery().toString());
3406   - List<Patients> patientses = mongoTemplate.find(query.convertToMongoQuery(), Patients.class);
  3410 + AggregationOperation queryParam = Aggregation.match(query.getCriteria());
  3411 + AggregationOperation group = Aggregation.group("townOrgId","recommend");
  3412 + AggregationOperation month = project().
  3413 + andExpression("townOrgId").as("townOrgId").
  3414 + andExpression("recommend").as("recommend");
  3415 + Aggregation aggregation= Aggregation.newAggregation(queryParam,month, group);
  3416 +
  3417 + final AggregationResults<Patients> lyms_patient = mongoTemplate.aggregate(aggregation, "lyms_patient", Patients.class);
3407 3418 List<Map> result=new ArrayList<>();
3408   - for (Patients patients : patientses) {
  3419 + for (Patients patients : lyms_patient) {
3409 3420 recommendQuery.setRecommend(patients.getRecommend());
3410 3421 recommendQuery.setTownOrgId(patients.getTownOrgId());
3411 3422 final long count = mongoTemplate.count(recommendQuery.convertToQuery().convertToMongoQuery(), Patients.class);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RecommendQuery.java View file @ a726ad0
... ... @@ -74,10 +74,10 @@
74 74 public MongoQuery convertToQuery() {
75 75 MongoCondition condition = MongoCondition.newInstance();
76 76 if (StringUtils.isNotEmpty(recommend)) {
77   - condition = condition.and("recommend", recommend, MongoOper.IS);
  77 + condition = condition.and("recommend", recommend, MongoOper.LIKE);
78 78 }
79 79 if (StringUtils.isNotEmpty(townOrgId)) {
80   - condition = condition.and("townOrgId", townOrgId, MongoOper.NE);
  80 + condition = condition.and("townOrgId", townOrgId, MongoOper.IS);
81 81 }
82 82 Criteria c = null;
83 83