‘linchangsheng’ 3 months ago
parent
commit
fc334b8754

+ 42 - 3
mall-server-api/src/main/java/com/gree/mall/manager/logic/big/BigLogic.java

@@ -9,16 +9,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.big.*;
+import com.gree.mall.manager.bean.es.OrderBaseEs;
 import com.gree.mall.manager.enums.IsYesNoEnum;
 import com.gree.mall.manager.enums.UserTypeEnum;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.logic.workorder.OrderBaseCountLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
 import com.gree.mall.manager.utils.HttpUtils;
 import com.gree.mall.manager.utils.RedisUtil;
 import com.gree.mall.manager.utils.StringUtil;
 import io.swagger.annotations.ApiModel;
+import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.aggregations.AggregationBuilders;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
+import org.springframework.data.elasticsearch.core.SearchHits;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -88,7 +99,12 @@ public class BigLogic {
     @Autowired
     WebsitPartsSalesService websitPartsSalesService;
 
+    @Autowired
+    ElasticsearchRestTemplate elasticsearchRestTemplate;
+
 
+    @Autowired
+    OrderBaseCountLogic orderBaseCountLogic;
 
     @Autowired
     WebsitPartsNewRefundManageService websitPartsNewRefundManageService;
@@ -590,7 +606,7 @@ public class BigLogic {
 
         List<PgOrderBase> pgOrderBases = pgOrderBaseService.lambdaQuery()
                 .in(!StringUtil.isEmpty(adminUser.getCompanyWechatId()), PgOrderBase::getCompanyWechatId, adminUser.getCompanyWechatId())
-                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) &&  !adminUser.getIsMaster(), PgOrderBase::getWebsitId, adminUser.getAdminWebsitIds())
+                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) , PgOrderBase::getWebsitId, adminUser.getAdminWebsitIds())
                 .notIn(PgOrderBase::getOrderStatus, "YQX","FWZT","YCGB","FWQX","FL")
                 .between(PgOrderBase::getCreateTime, DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -30), new Date())
                 .select(PgOrderBase::getOrderSmallTypeText, PgOrderBase::getId, PgOrderBase::getTotalNum, PgOrderBase::getUndoneNum, PgOrderBase::getCreateTime,
@@ -617,16 +633,39 @@ public class BigLogic {
 
             for (int i = 29; i > -1; i--) {
 
+                BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
+
+                if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
+                    List<QueryBuilder> should = queryBuilder.should();
+                    should.add(QueryBuilders.termsQuery("create_websit_id", adminUser.getAdminWebsitIds()));
+                    should.add(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()));
+                }
+
                 DateTime startDay = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1 * i));
 
                 DateTime endDay = DateUtil.endOfDay(startDay);
 
-                Integer integer = pgOrderBases.stream().filter(item ->  status.contains(item.getOrderStatus())
+   /*             Integer integer = pgOrderBases.stream().filter(item ->  status.contains(item.getOrderStatus())
                         && item.getOverTime().before(endDay)
                         && item.getOverTime().after(startDay)
                         && item.getOrderSmallTypeText().equals(largeWorkerOrderDateBean.getLx())
                 )
                         .map(PgOrderBase::getTotalNum).reduce(Integer::sum).orElse(0);
+*/
+                //完工单
+                NativeSearchQuery searchQueryWGD = new NativeSearchQueryBuilder()
+                        .withQuery(queryBuilder)
+                        .withPageable(PageRequest.of(1, 1))
+                        .addAggregation(orderBaseCountLogic.getAggs(AggregationBuilders.filter("wgd", QueryBuilders.boolQuery()
+                                .must(QueryBuilders.termsQuery("order_status",status))
+                                .must(QueryBuilders.termsQuery("order_small_type_text",orderSmallType.getOrderSmallTypeText()))
+                                .must(QueryBuilders.rangeQuery("over_time")
+                                        .gte(DateUtil.format(startDay,"yyyy-MM-dd HH:mm:ss"))
+                                        .lte(DateUtil.format(endDay,"yyyy-MM-dd HH:mm:ss")))
+                        )))
+                        .build();
+                SearchHits responseWGD = elasticsearchRestTemplate.search(searchQueryWGD, OrderBaseEs.class);
+
 
 
                 Integer integerWwg = pgOrderBases.stream().filter(item -> item.getCreateTime().before(endDay)
@@ -635,7 +674,7 @@ public class BigLogic {
                 )
                         .map(PgOrderBase::getTotalNum).reduce(Integer::sum).orElse(0);
 
-                unitNum.add(integer);
+                unitNum.add(Convert.toInt(orderBaseCountLogic.getWorkerOrderCountResult(responseWGD.getAggregations(),"wgd")));
                 unitNumWwg.add(integerWwg);
             }
 

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

@@ -85,7 +85,8 @@ public class OrderBaseCountLogic {
         List<Long> jxzList = new ArrayList<>();
         List<Long> qtsmList = new ArrayList<>();
 
-        List<String> orderStatus = new ArrayList<>();
+        List<String> orderStatus = new ArrayList<>
+                ();
 
         orderStatus.add("YWG");
         orderStatus.add("GCSZX");
@@ -279,7 +280,7 @@ public class OrderBaseCountLogic {
                         .subAggregation(AggregationBuilders.sum("mac_sum").field("total_num")));
     }
 
-    private long getWorkerOrderCountResult(Aggregations aggregations, String name) {
+    public long getWorkerOrderCountResult(Aggregations aggregations, String name) {
         StringBuffer sb = new StringBuffer();
         ParsedFilter parsedFilter = aggregations.get(name);
         //总服务单数