FengChaoYu hai 2 meses
pai
achega
209b3feda2

+ 12 - 9
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseEsLogic.java

@@ -475,14 +475,14 @@ public class OrderBaseEsLogic {
 
         // 次日需处理(18:00-次日7:59创建,appointment_time为空)
         NativeSearchQuery crxcSearchQuery = new NativeSearchQueryBuilder()
-                .withQuery(queryBuilder.must(buildCrxcQuery()))  // 复用公共条件
+                .withQuery(queryBuilder)
                 .withPageable(PageRequest.of(1, 1))
-                .addAggregation(this.getAggs(AggregationBuilders.filter("CRXC", QueryBuilders.matchAllQuery())))  // 因 query 已包含条件,filter 简化为 matchAll
+                .addAggregation(this.getAggs(AggregationBuilders.filter("CRXC", buildCrxcQuery()))) // 修正聚合绑定
                 .build();
 
         SearchHits crxcResponse = this.search(crxcSearchQuery, year);
         HashMap<String, Object> crxcMap = new HashMap<>();
-        crxcMap.put("total", this.getWorkerOrderCountResult(crxcResponse.getAggregations(), "CRXC"));
+        crxcMap.put("total", this.getWorkerOrderCountResult(crxcResponse.getAggregations(), "CRXC")); // 依赖正确的聚合解析
         crxcMap.put("orderStatus", "CRXC");
         maps.add(crxcMap);
 
@@ -745,8 +745,8 @@ public class OrderBaseEsLogic {
                         .gte(prevDay18)  // 修改点
                         .lte(today759))  // 修改点
                 // 条件 2:create_time >= 当日8:30:00(原次日调整为当日)
-//                .must(QueryBuilders.rangeQuery("create_time")
-//                        .gte(today830))  // 修改点
+                .must(QueryBuilders.rangeQuery("create_time")
+                        .lte(today830))  // 修改点
                 // 条件 3:appointment_time为空(保持不变)
                 .mustNot(QueryBuilders.existsQuery("appointment_time"))
                 // 条件 4:order_status排除(保持不变)
@@ -781,12 +781,15 @@ public class OrderBaseEsLogic {
                         .subAggregation(AggregationBuilders.sum("mac_sum").field("total_num")));
     }
     private long getWorkerOrderCountResult(Aggregations aggregations, String name) {
-        StringBuffer sb = new StringBuffer();
-        ParsedFilter parsedFilter = aggregations.get(name);
+//        StringBuffer sb = new StringBuffer();
+//        ParsedFilter parsedFilter = aggregations.get(name);
         //总服务单数
-        long totalOrderNums = parsedFilter.getDocCount();
+//        long totalOrderNums = parsedFilter.getDocCount();
+//
+//        return totalOrderNums;
 
-        return totalOrderNums;
+        ParsedFilter parsedFilter = aggregations.get(name);
+        return parsedFilter != null ? parsedFilter.getDocCount() : 0L;
     }
 
     public void esSync() {