|
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
import com.gree.mall.manager.bean.common.RegionBean;
|
|
|
+import com.gree.mall.manager.bean.es.OrderBaseEs;
|
|
|
import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam;
|
|
|
import com.gree.mall.manager.bean.listvo.workorder.OrderBase2VO;
|
|
|
import com.gree.mall.manager.bean.listvo.workorder.OrderBaseAppraiseVO;
|
|
@@ -40,6 +41,19 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
+import org.elasticsearch.index.query.QueryBuilder;
|
|
|
+import org.elasticsearch.index.query.QueryBuilders;
|
|
|
+import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|
|
+import org.elasticsearch.search.aggregations.Aggregations;
|
|
|
+import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.bucket.filter.ParsedFilter;
|
|
|
+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.transaction.annotation.Transactional;
|
|
|
|
|
@@ -85,6 +99,7 @@ public class OrderBaseLogic {
|
|
|
private final NoticeRecordService noticeRecordService;
|
|
|
private final LeaseOrderService leaseOrderService;
|
|
|
private final PgAppraiseApplyService pgAppraiseApplyService;
|
|
|
+ private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
|
|
|
|
|
/**
|
|
|
* 工单列表
|
|
@@ -219,9 +234,59 @@ public class OrderBaseLogic {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
List<Map<String, Object>> maps = orderBaseCMapper.countOrderStatus(adminUser.getCompanyWechatId(), adminUser.getAdminWebsitIds(),
|
|
|
adminUser.getType(), orderSmallType, orderSmallTypeText,startTime,endTime);
|
|
|
+
|
|
|
+ BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds())) {
|
|
|
+ List<QueryBuilder> should = queryBuilder.should();
|
|
|
+ if (adminUser.getType().equals(1)) {
|
|
|
+ should.add(QueryBuilders.termsQuery("company_wechat_id", adminUser.getCompanyWechatId()));
|
|
|
+ }
|
|
|
+ should.add(QueryBuilders.termsQuery("create_websit_id", adminUser.getAdminWebsitIds()));
|
|
|
+ should.add(QueryBuilders.termsQuery("websit_id", adminUser.getAdminWebsitIds()));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> orderBaseId = new ArrayList<>();
|
|
|
+
|
|
|
+ HashMap<String, Object> DZF = new HashMap<>();
|
|
|
+ List<String> collect = workerOrderService.lambdaQuery()
|
|
|
+ .eq(WorkerOrder::getPayStatus, "WAIT")
|
|
|
+ .ne(WorkerOrder::getWorkerOrderId, "").select(WorkerOrder::getWorkerOrderId)
|
|
|
+ .list().stream().map(WorkerOrder::getWorkerOrderId).collect(Collectors.toList());
|
|
|
+ if (!CollectionUtils.isEmpty(collect)) {
|
|
|
+
|
|
|
+ orderBaseId.addAll(collect);
|
|
|
+ //待支付
|
|
|
+ NativeSearchQuery searchQueryDZF = new NativeSearchQueryBuilder()
|
|
|
+ .withQuery(queryBuilder)
|
|
|
+ .withPageable(PageRequest.of(1, 1))
|
|
|
+ .addAggregation(this.getAggs(AggregationBuilders.filter("DZF", QueryBuilders.boolQuery()
|
|
|
+ .must(QueryBuilders.termsQuery("id",orderBaseId))
|
|
|
+ )))
|
|
|
+ .build();
|
|
|
+ SearchHits responseDZF = elasticsearchRestTemplate.search(searchQueryDZF, OrderBaseEs.class);
|
|
|
+ DZF.put("total",this.getWorkerOrderCountResult(responseDZF.getAggregations(),"DZF"));
|
|
|
+ DZF.put("orderStatus","DZF");
|
|
|
+
|
|
|
+ maps.add(DZF);
|
|
|
+
|
|
|
+ }
|
|
|
return maps;
|
|
|
}
|
|
|
+ public AbstractAggregationBuilder<?> getAggs(FilterAggregationBuilder filter) {
|
|
|
+ return filter.subAggregation(AggregationBuilders.sum("total_mac_sum").field("total_num"))
|
|
|
+ .subAggregation(AggregationBuilders.terms("order_type_group").field("order_type")
|
|
|
+ .subAggregation(AggregationBuilders.sum("mac_sum").field("total_num")));
|
|
|
+ }
|
|
|
|
|
|
+ private long getWorkerOrderCountResult(Aggregations aggregations, String name) {
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ ParsedFilter parsedFilter = aggregations.get(name);
|
|
|
+ //总服务单数
|
|
|
+ long totalOrderNums = parsedFilter.getDocCount();
|
|
|
+
|
|
|
+ return totalOrderNums;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 保存工单
|
|
@@ -1765,10 +1830,5 @@ public class OrderBaseLogic {
|
|
|
itfGreeSynDownloadRec.insert();
|
|
|
}
|
|
|
|
|
|
- public IPage<OrderBaseVO> orderEsBaseList(WorkOrderZfireParam workOrderZfireParam) {
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- return new Page<>();
|
|
|
- }
|
|
|
}
|