‘linchangsheng’ 1 月之前
父节点
当前提交
c96de8b77f
共有 1 个文件被更改,包括 119 次插入42 次删除
  1. 119 42
      mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseCountLogic.java

+ 119 - 42
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseCountLogic.java

@@ -1,5 +1,6 @@
 package com.gree.mall.manager.logic.workorder;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import com.google.common.collect.Lists;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
@@ -54,32 +55,121 @@ public class OrderBaseCountLogic {
     public OrderBaseCountBean baseCountBean( String startTime,
                                              String endTime){
         AdminUserCom adminUser = commonLogic.getAdminUser();
-        OrderBaseCountBean orderBaseCountBean = orderBaseCMapper
-                .countOrderBaseIndex(adminUser.getCompanyWechatId(), adminUser.getAdminWebsitIds(),adminUser.getType()
-                ,startTime,endTime);
-
-/*
-        List<PgOrderBase> pgOrderBaseList = pgOrderBaseService.lambdaQuery()
-                .select(PgOrderBase::getOrderType, PgOrderBase::getOrderTypeText, PgOrderBase::getCreateTime, PgOrderBase::getId
-                        , PgOrderBase::getOrderStatus,PgOrderBase::getAppointmentTime)
-                .between(PgOrderBase::getCreateTime, DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -30)), new Date())
-                .in(CollectionUtils.isNotEmpty(adminUser.getCompanyWechatIds()),PgOrderBase::getCompanyWechatId,adminUser.getCompanyWechatId())
-                .and(CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds()),
-                        v -> v.in(PgOrderBase::getWebsitId,adminUser.getAdminWebsitIds()).or()
-                                .in(PgOrderBase::getCreateWebsitId,adminUser.getAdminWebsitIds()))
-                .list();
-*/
-
-/*
-        List<PgOrderBase> pgOrderBaseListOver = pgOrderBaseService.lambdaQuery()
-                .select(PgOrderBase::getOrderType, PgOrderBase::getOrderTypeText, PgOrderBase::getCreateTime, PgOrderBase::getId
-                        , PgOrderBase::getOrderStatus,PgOrderBase::getAppointmentTime,PgOrderBase::getOverDate,PgOrderBase::getOverTime)
-                .between(PgOrderBase::getOverTime, DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -8)), new Date())
-                .in(CollectionUtils.isNotEmpty(adminUser.getCompanyWechatIds()),PgOrderBase::getCompanyWechatId,adminUser.getCompanyWechatId())
-                .and(CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds()),
-                        v -> v.in(PgOrderBase::getWebsitId,adminUser.getAdminWebsitIds()).or().in(PgOrderBase::getCreateWebsitId,adminUser.getAdminWebsitIds()))
-                .list();
-*/
+        OrderBaseCountBean orderBaseCountBean = new OrderBaseCountBean();
+
+        BoolQueryBuilder queryBuilderCount = QueryBuilders.boolQuery();
+
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
+            queryBuilderCount.must(
+                    QueryBuilders.boolQuery().should(QueryBuilders.termsQuery("create_websit_id", adminUser.getAdminWebsitIds()))
+                            .should(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()))
+            );
+        }
+
+        if (startTime != null){
+            queryBuilderCount.must(QueryBuilders.rangeQuery("create_time")
+                    .gte(startTime)
+                    .lte(endTime)
+            );
+        }
+
+        //待派工
+        NativeSearchQuery searchQueryDPG = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("DPG", QueryBuilders.boolQuery()
+                        .must(QueryBuilders.termsQuery("order_status","DSHPG","CJ","YPD","DXSPD","DZBPG","DWDSPGP","DXSSPGP","DTJXSSPGP","DZBSPGP","DFZXPD","DFZXSPGP","DWDPG","DWDPD")
+                ))))
+                .build();
+        SearchHits responseDPG = elasticsearchRestTemplate.search(searchQueryDPG, OrderBaseEs.class);
+
+        orderBaseCountBean.setDpg(Convert.toInt(this.getWorkerOrderCountResult(responseDPG.getAggregations(),"DPG")));
+
+
+        //待接收
+        NativeSearchQuery searchQueryDJS = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("DJS", QueryBuilders.boolQuery()
+                        .must(QueryBuilders.boolQuery().should(QueryBuilders.termsQuery("is_meet", false))
+                                .should(QueryBuilders.termsQuery("order_status", "DJD")))
+                        .mustNot(QueryBuilders.termsQuery("order_status", "YQX", "FWQX", "FL", "FWZT", "YCGB"))
+                )))
+                .build();
+        SearchHits responseDJS = elasticsearchRestTemplate.search(searchQueryDJS, OrderBaseEs.class);
+
+        orderBaseCountBean.setDjs(Convert.toInt(this.getWorkerOrderCountResult(responseDJS.getAggregations(),"DJS")));
+
+
+        //待抢单
+        NativeSearchQuery searchQueryDQD = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("DQD", QueryBuilders.boolQuery()
+                        .must(QueryBuilders.termsQuery("order_status","DQD")
+                        ))))
+                .build();
+        SearchHits responseDQD = elasticsearchRestTemplate.search(searchQueryDQD, OrderBaseEs.class);
+
+        orderBaseCountBean.setDqd(Convert.toInt(this.getWorkerOrderCountResult(responseDQD.getAggregations(),"DQD")));
+
+
+        //服务中
+        NativeSearchQuery searchQueryfwz = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("fwz", QueryBuilders.boolQuery()
+                        .must(QueryBuilders.termsQuery("order_status","FWZ","GCSZT","BFWG","DSM","YZP","WDBH","XSBH","TJXSBH","ZBBH","FZXBH")
+                        ))))
+                .build();
+        SearchHits responsefwz = elasticsearchRestTemplate.search(searchQueryfwz, OrderBaseEs.class);
+
+        orderBaseCountBean.setFwz(Convert.toInt(this.getWorkerOrderCountResult(responsefwz.getAggregations(),"fwz")));
+
+
+        //待预约
+        NativeSearchQuery searchQueryDYY = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("DYY", QueryBuilders.boolQuery()
+                        .mustNot(QueryBuilders.termsQuery("order_status","YWG","GCSZX","WDWG","YWGO","YQX","FWZT","YCGB",
+                                "FWQX","FL","YJS","LRCD","DSHPG","CJ","YPD","DXSPD","DZBPG","DWDSPGP","DXSSPGP","DTJXSSPGP","DZBSPGP")
+                        )
+                        .mustNot(QueryBuilders.existsQuery("appointment_time"))
+                )))
+                .build();
+        SearchHits responseDYY = elasticsearchRestTemplate.search(searchQueryDYY, OrderBaseEs.class);
+
+        orderBaseCountBean.setDyy(Convert.toInt(this.getWorkerOrderCountResult(responseDYY.getAggregations(),"DYY")));
+
+        //异常单处理
+        NativeSearchQuery searchQueryYCDCL = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("YCDCL", QueryBuilders.boolQuery()
+                        .mustNot(QueryBuilders.termsQuery("order_status","YWG","YWGO","YJS"))
+                        .must(QueryBuilders.termsQuery("is_exception",true))
+
+                )))
+                .build();
+        SearchHits responseYCDCL = elasticsearchRestTemplate.search(searchQueryYCDCL, OrderBaseEs.class);
+
+        orderBaseCountBean.setYcdcl(Convert.toInt(this.getWorkerOrderCountResult(responseYCDCL.getAggregations(),"YCDCL")));
+
+
+        //差评
+        NativeSearchQuery searchQueryCP = new NativeSearchQueryBuilder()
+                .withQuery(queryBuilderCount)
+                .withPageable(PageRequest.of(1, 1))
+                .addAggregation(this.getAggs(AggregationBuilders.filter("CP", QueryBuilders.boolQuery()
+                        .must(QueryBuilders.termsQuery("appraise_status","C"))
+
+                )))
+                .build();
+        SearchHits responseCP = elasticsearchRestTemplate.search(searchQueryCP, OrderBaseEs.class);
+
+        orderBaseCountBean.setCp(Convert.toInt(this.getWorkerOrderCountResult(responseCP.getAggregations(),"CP")));
+
 
         Map<String,List<Long>> qtddqs = new HashMap<>();
 
@@ -107,10 +197,7 @@ public class OrderBaseCountLogic {
 
         for (int i = 6; i >= 0; i--) {
             Integer day = i*-1;
-       /*     Long xzgd = pgOrderBaseList.stream().filter(item -> item.getCreateTime().before(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), (day)))) &&
-                    item.getCreateTime().after(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), (day))))
-            ).count();
-*/
+
             BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
 
             if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
@@ -120,10 +207,7 @@ public class OrderBaseCountLogic {
                 );
             }
 
-      /*      queryBuilder.must(QueryBuilders.rangeQuery("create_time")
-                    .gte(startTime)
-                    .lte(endTime)
-            );*/
+
             //新增工单
             NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                     .withQuery(queryBuilder)
@@ -138,9 +222,7 @@ public class OrderBaseCountLogic {
 
             xzgdList.add(this.getWorkerOrderCountResult(response.getAggregations(),"xzgd"));
 
-    /*        Long wgd = pgOrderBaseListOver.stream().filter(item -> item.getOverTime().before(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), (day)))) &&
-                            item.getOverTime().after(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), (day))))
-                            && orderStatus.contains(item.getOrderStatus())      ).count();*/
+
 
 
             //完工单
@@ -159,11 +241,6 @@ public class OrderBaseCountLogic {
 
 
 
-/*            Long jxz = pgOrderBaseList.stream().filter(item -> item.getCreateTime().before(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), (day)))) &&
-                    item.getCreateTime().after(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), (day))))
-                    && !orderStatus.contains(item.getOrderStatus())
-                    && !orderStatusQx.contains(item.getOrderStatus())
-            ).count();*/
 
 
             //待商户派工