|
@@ -1,27 +1,22 @@
|
|
|
package com.gree.mall.manager.logic.workorder;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
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.es.OrderBaseEs;
|
|
|
-import com.gree.mall.manager.bean.es.OrderBaseEsDate;
|
|
|
-import com.gree.mall.manager.bean.es.PgOrderWorkerEs;
|
|
|
-import com.gree.mall.manager.bean.es.SettlementOrderEs;
|
|
|
+import com.gree.mall.manager.bean.es.*;
|
|
|
import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam;
|
|
|
import com.gree.mall.manager.bean.listvo.workorder.OrderBaseVO;
|
|
|
import com.gree.mall.manager.enums.MaterialExamineStatusEnum;
|
|
|
-import com.gree.mall.manager.es.OrderBaseEsRepository;
|
|
|
-import com.gree.mall.manager.es.OrderWorkerEsRepository;
|
|
|
-import com.gree.mall.manager.es.SettlementOrderEsRepository;
|
|
|
+import com.gree.mall.manager.es.*;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
import com.gree.mall.manager.plus.entity.*;
|
|
|
-import com.gree.mall.manager.plus.service.PgOrderBaseService;
|
|
|
-import com.gree.mall.manager.plus.service.PgOrderWorkerService;
|
|
|
-import com.gree.mall.manager.plus.service.SettlementOrderService;
|
|
|
-import com.gree.mall.manager.plus.service.WorkerOrderService;
|
|
|
+import com.gree.mall.manager.plus.service.*;
|
|
|
+import com.gree.mall.manager.utils.CommonUtils;
|
|
|
import com.gree.mall.manager.utils.StringUtil;
|
|
|
import com.gree.mall.manager.zfire.bean.QueryParamBean;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -50,6 +45,7 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -68,16 +64,24 @@ public class OrderBaseEsLogic {
|
|
|
|
|
|
private final CommonLogic commonLogic;
|
|
|
private final OrderBaseEsRepository orderBaseEsRepository;
|
|
|
+ private final OrderBase2022EsRepository orderBase2022EsRepository;
|
|
|
+ private final OrderBase2023EsRepository orderBase2023EsRepository;
|
|
|
+ private final OrderBase2024EsRepository orderBase2024EsRepository;
|
|
|
private final PgOrderBaseService pgOrderBaseService;
|
|
|
+ private final PgOrderBase2022Service pgOrderBase2022Service;
|
|
|
+ private final PgOrderBase2023Service pgOrderBase2023Service;
|
|
|
+ private final PgOrderBase2024Service pgOrderBase2024Service;
|
|
|
private final SettlementOrderService settlementOrderService;
|
|
|
private final SettlementOrderEsRepository settlementOrderEsRepository;
|
|
|
private final OrderWorkerEsRepository orderWorkerEsRepository;
|
|
|
private final PgOrderWorkerService pgOrderWorkerService;
|
|
|
|
|
|
- public IPage<OrderBaseVO> orderBaseEsList(WorkOrderZfireParam zfireParamBean) {
|
|
|
+ public IPage<OrderBaseVO> orderBaseEsList(WorkOrderZfireParam zfireParamBean, HttpServletRequest request) {
|
|
|
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
|
|
|
+ String year = CommonUtils.getYear(request);
|
|
|
+
|
|
|
BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery();
|
|
|
this.montage(queryBuilder1,zfireParamBean);
|
|
|
|
|
@@ -120,28 +124,78 @@ public class OrderBaseEsLogic {
|
|
|
|
|
|
build.setTrackTotalHits(true);
|
|
|
|
|
|
+ List<OrderBaseEs> orderBaseEs = new ArrayList<>();
|
|
|
+ IPage<OrderBaseVO> page = new Page<>();
|
|
|
|
|
|
- SearchHits<OrderBaseEs> orderBaseEsSearchHits = elasticsearchRestTemplate.search(build, OrderBaseEs.class);
|
|
|
- SearchPage<OrderBaseEs> searchHits = SearchHitSupport.searchPageFor(orderBaseEsSearchHits, build.getPageable());
|
|
|
|
|
|
|
|
|
- List<OrderBaseEs> orderBaseEs = new ArrayList<>();
|
|
|
- for (SearchHit<OrderBaseEs> searchHit : searchHits.getContent()) {
|
|
|
- orderBaseEs.add(searchHit.getContent());
|
|
|
+ if (year.equals("2023")) {
|
|
|
+ SearchHits<OrderBase2023Es> orderBaseEsSearchHits = elasticsearchRestTemplate.search(build, OrderBase2023Es.class);
|
|
|
+ SearchPage<OrderBase2023Es> searchHits2023 = SearchHitSupport.searchPageFor(orderBaseEsSearchHits, build.getPageable());
|
|
|
+
|
|
|
+ for (SearchHit<OrderBase2023Es> searchHit : searchHits2023.getContent()) {
|
|
|
+ orderBaseEs.add(BeanUtil.toBean(searchHit.getContent(),OrderBaseEs.class));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ page.setTotal(searchHits2023.getSearchHits().getTotalHits());
|
|
|
+ page.setCurrent(zfireParamBean.getPageNum());
|
|
|
+ page.setSize(zfireParamBean.getPageSize());
|
|
|
+ page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class));
|
|
|
+ }else
|
|
|
+
|
|
|
+ if (year.equals("2024")) {
|
|
|
+ SearchHits<OrderBase2024Es> orderBaseEsSearchHits = elasticsearchRestTemplate.search(build, OrderBase2024Es.class);
|
|
|
+ SearchPage<OrderBase2024Es> searchHits2024 = SearchHitSupport.searchPageFor(orderBaseEsSearchHits, build.getPageable());
|
|
|
+
|
|
|
+ for (SearchHit<OrderBase2024Es> searchHit : searchHits2024.getContent()) {
|
|
|
+ orderBaseEs.add(BeanUtil.toBean(searchHit.getContent(),OrderBaseEs.class));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ page.setTotal(searchHits2024.getSearchHits().getTotalHits());
|
|
|
+ page.setCurrent(zfireParamBean.getPageNum());
|
|
|
+ page.setSize(zfireParamBean.getPageSize());
|
|
|
+ page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class));
|
|
|
+ }else
|
|
|
+
|
|
|
+
|
|
|
+ if (year.equals("2022") || Convert.toInt(year) < 2022) {
|
|
|
+ SearchHits<OrderBase2022Es> orderBaseEsSearchHits = elasticsearchRestTemplate.search(build, OrderBase2022Es.class);
|
|
|
+ SearchPage<OrderBase2022Es> searchHits2022 = SearchHitSupport.searchPageFor(orderBaseEsSearchHits, build.getPageable());
|
|
|
+
|
|
|
+ for (SearchHit<OrderBase2022Es> searchHit : searchHits2022.getContent()) {
|
|
|
+ orderBaseEs.add(BeanUtil.toBean(searchHit.getContent(),OrderBaseEs.class));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ page.setTotal(searchHits2022.getSearchHits().getTotalHits());
|
|
|
+ page.setCurrent(zfireParamBean.getPageNum());
|
|
|
+ page.setSize(zfireParamBean.getPageSize());
|
|
|
+ page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class));
|
|
|
+ }else {
|
|
|
+ SearchHits<OrderBaseEs> orderBaseEsSearchHits = elasticsearchRestTemplate.search(build, OrderBaseEs.class);
|
|
|
+ SearchPage<OrderBaseEs> searchHits = SearchHitSupport.searchPageFor(orderBaseEsSearchHits, build.getPageable());
|
|
|
+
|
|
|
+ for (SearchHit<OrderBaseEs> searchHit : searchHits.getContent()) {
|
|
|
+ orderBaseEs.add(searchHit.getContent());
|
|
|
+ }
|
|
|
+ page.setTotal(searchHits.getSearchHits().getTotalHits());
|
|
|
+ page.setCurrent(zfireParamBean.getPageNum());
|
|
|
+ page.setSize(zfireParamBean.getPageSize());
|
|
|
+ page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class));
|
|
|
}
|
|
|
|
|
|
- IPage<OrderBaseVO> page = new Page<>();
|
|
|
- page.setTotal(searchHits.getSearchHits().getTotalHits());
|
|
|
- page.setCurrent(zfireParamBean.getPageNum());
|
|
|
- page.setSize(zfireParamBean.getPageSize());
|
|
|
- page.setRecords(BeanUtil.copyToList(orderBaseEs,OrderBaseVO.class));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//服务单标识
|
|
|
if (zfireParamBean.getPageSize() != -1 && page.getTotal() > 0 && page.getRecords().size() > 0) {
|
|
|
List<String> orderBaseIds = page.getRecords()
|
|
|
.stream()
|
|
|
.map(OrderBaseVO::getId)
|
|
|
.collect(Collectors.toList());
|
|
|
- Map<String, List<PgOrderFlag>> mapList = orderFlagLogic.list(orderBaseIds);
|
|
|
+ Map<String, List<PgOrderFlag>> mapList = orderFlagLogic.list(orderBaseIds,year);
|
|
|
|
|
|
List<WorkerOrder> workerOrderList = workerOrderService.lambdaQuery().in(WorkerOrder::getWorkerOrderId, orderBaseIds)
|
|
|
.eq(WorkerOrder::getPayStatus, MaterialExamineStatusEnum.PAID.getKey())
|
|
@@ -291,13 +345,38 @@ public class OrderBaseEsLogic {
|
|
|
|
|
|
public void test() {
|
|
|
|
|
|
- boolean a = elasticsearchRestTemplate.indexOps(OrderBaseEsDate.class).delete();
|
|
|
- IndexOperations indexOperations1 = elasticsearchRestTemplate.indexOps(OrderBaseEsDate.class);
|
|
|
+ boolean a = elasticsearchRestTemplate.indexOps(OrderBaseEs2022Date.class).delete();
|
|
|
+ IndexOperations indexOperations1 = elasticsearchRestTemplate.indexOps(OrderBaseEs2022Date.class);
|
|
|
if (!indexOperations1.exists()) {
|
|
|
indexOperations1.create();
|
|
|
Document document = indexOperations1.createMapping();
|
|
|
indexOperations1.putMapping(document);
|
|
|
}
|
|
|
+ boolean b = elasticsearchRestTemplate.indexOps(OrderBaseEs2023Date.class).delete();
|
|
|
+ IndexOperations indexOperations2 = elasticsearchRestTemplate.indexOps(OrderBaseEs2023Date.class);
|
|
|
+ if (!indexOperations2.exists()) {
|
|
|
+ indexOperations2.create();
|
|
|
+ Document document = indexOperations2.createMapping();
|
|
|
+ indexOperations2.putMapping(document);
|
|
|
+ }
|
|
|
+ boolean c = elasticsearchRestTemplate.indexOps(OrderBaseEs2024Date.class).delete();
|
|
|
+ IndexOperations indexOperations3 = elasticsearchRestTemplate.indexOps(OrderBaseEs2024Date.class);
|
|
|
+ if (!indexOperations3.exists()) {
|
|
|
+ indexOperations3.create();
|
|
|
+ Document document = indexOperations3.createMapping();
|
|
|
+ indexOperations3.putMapping(document);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+/* boolean a = elasticsearchRestTemplate.indexOps(OrderBaseEsDate.class).delete();
|
|
|
+ IndexOperations indexOperations1 = elasticsearchRestTemplate.indexOps(OrderBaseEsDate.class);
|
|
|
+ if (!indexOperations1.exists()) {
|
|
|
+ indexOperations1.create();
|
|
|
+ Document document = indexOperations1.createMapping();
|
|
|
+ indexOperations1.putMapping(document);
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
/*
|
|
|
List<PgOrderBase> list = pgOrderBaseService.lambdaQuery().list();
|
|
|
|
|
@@ -328,8 +407,10 @@ public class OrderBaseEsLogic {
|
|
|
}*/
|
|
|
}
|
|
|
|
|
|
- public List<Map<String, Object>> countStatus(String startTime, String endTime, String orderSmallType, String orderSmallTypeText) {
|
|
|
+ public List<Map<String, Object>> countStatus(String startTime, String endTime, String orderSmallType, String orderSmallTypeText,HttpServletRequest request) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+
|
|
|
+ String year = CommonUtils.getYear(request);
|
|
|
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
|
|
|
|
|
|
List<Map<String, Object>> maps = new ArrayList<>();
|
|
@@ -364,15 +445,15 @@ public class OrderBaseEsLogic {
|
|
|
.lte(endTime)
|
|
|
))))
|
|
|
.build();
|
|
|
- SearchHits response = elasticsearchRestTemplate.search(searchQuery, OrderBaseEs.class);
|
|
|
|
|
|
+ SearchHits response = this.search(searchQuery,year);
|
|
|
HashMap<String, Object> dyy = new HashMap<>();
|
|
|
- dyy.put("total",this.getWorkerOrderCountResult(response.getAggregations(),"DYY"));
|
|
|
- dyy.put("orderStatus","DYY");
|
|
|
-
|
|
|
+ dyy.put("total", this.getWorkerOrderCountResult(response.getAggregations(), "DYY"));
|
|
|
+ dyy.put("orderStatus", "DYY");
|
|
|
maps.add(dyy);
|
|
|
|
|
|
|
|
|
+
|
|
|
//待抢单
|
|
|
NativeSearchQuery searchQueryDqd = new NativeSearchQueryBuilder()
|
|
|
.withQuery(queryBuilder)
|
|
@@ -380,12 +461,12 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("DQD", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termQuery("order_status","DQD")))))
|
|
|
.build();
|
|
|
- SearchHits responsedqd = elasticsearchRestTemplate.search(searchQueryDqd, OrderBaseEs.class);
|
|
|
+
|
|
|
+ SearchHits responsedqd = this.search(searchQueryDqd,year);
|
|
|
|
|
|
HashMap<String, Object> dqd = new HashMap<>();
|
|
|
dqd.put("total",this.getWorkerOrderCountResult(responsedqd.getAggregations(),"DQD"));
|
|
|
dqd.put("orderStatus","DQD");
|
|
|
-
|
|
|
maps.add(dqd);
|
|
|
|
|
|
|
|
@@ -397,7 +478,7 @@ public class OrderBaseEsLogic {
|
|
|
.must(QueryBuilders.termsQuery("order_status","DSHPG","CJ","YPD","DXSPD","DZBPG","DWDSPGP","DXSSPGP",
|
|
|
"DTJXSSPGP","DZBSPGP","DFZXPD","DFZXSPGP")))))
|
|
|
.build();
|
|
|
- SearchHits responseDshpg = elasticsearchRestTemplate.search(searchQueryDshpg, OrderBaseEs.class);
|
|
|
+ SearchHits responseDshpg =this.search(searchQueryDshpg,year);
|
|
|
|
|
|
HashMap<String, Object> dshpg = new HashMap<>();
|
|
|
dshpg.put("total",this.getWorkerOrderCountResult(responseDshpg.getAggregations(),"DSHPG"));
|
|
@@ -413,7 +494,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("DWDPG", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termsQuery("order_status","DWDPG","DWDPD")))))
|
|
|
.build();
|
|
|
- SearchHits responseDwdpg = elasticsearchRestTemplate.search(searchQueryDwdpg, OrderBaseEs.class);
|
|
|
+ SearchHits responseDwdpg = this.search(searchQueryDwdpg,year);
|
|
|
|
|
|
HashMap<String, Object> DWDPG = new HashMap<>();
|
|
|
DWDPG.put("total",this.getWorkerOrderCountResult(responseDwdpg.getAggregations(),"DWDPG"));
|
|
@@ -431,7 +512,7 @@ public class OrderBaseEsLogic {
|
|
|
.should(QueryBuilders.termsQuery("order_status", "DJD")))
|
|
|
)))
|
|
|
.build();
|
|
|
- SearchHits responseDJD = elasticsearchRestTemplate.search(searchQueryDJD, OrderBaseEs.class);
|
|
|
+ SearchHits responseDJD = this.search(searchQueryDJD,year);
|
|
|
|
|
|
HashMap<String, Object> DJD = new HashMap<>();
|
|
|
DJD.put("total",this.getWorkerOrderCountResult(responseDJD.getAggregations(),"DJD"));
|
|
@@ -447,7 +528,7 @@ public class OrderBaseEsLogic {
|
|
|
.must(QueryBuilders.termsQuery("order_status","FWZ","GCSZT","BFWG",
|
|
|
"DSM","WDBH", "XSBH","TJXSBH","ZBBH","FZXBH")))))
|
|
|
.build();
|
|
|
- SearchHits responseFWZ = elasticsearchRestTemplate.search(searchQueryfwz, OrderBaseEs.class);
|
|
|
+ SearchHits responseFWZ = this.search(searchQueryfwz,year);
|
|
|
|
|
|
HashMap<String, Object> FWZ = new HashMap<>();
|
|
|
FWZ.put("total",this.getWorkerOrderCountResult(responseFWZ.getAggregations(),"FWZ"));
|
|
@@ -464,7 +545,7 @@ public class OrderBaseEsLogic {
|
|
|
.must(QueryBuilders.termQuery("is_exception",true))
|
|
|
.mustNot(QueryBuilders.termsQuery("order_status", "YWG", "YWGO", "YJS")))))
|
|
|
.build();
|
|
|
- SearchHits responseYCD = elasticsearchRestTemplate.search(searchQueryYCD, OrderBaseEs.class);
|
|
|
+ SearchHits responseYCD = this.search(searchQueryYCD,year);
|
|
|
|
|
|
HashMap<String, Object> YCD = new HashMap<>();
|
|
|
YCD.put("total",this.getWorkerOrderCountResult(responseYCD.getAggregations(),"YCD"));
|
|
@@ -479,7 +560,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("YWG", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termsQuery("order_status","YWG","GCSZX","WDWG","YWGO")))))
|
|
|
.build();
|
|
|
- SearchHits responseYWG = elasticsearchRestTemplate.search(searchQueryYWGDJS, OrderBaseEs.class);
|
|
|
+ SearchHits responseYWG = this.search(searchQueryYWGDJS,year);
|
|
|
|
|
|
HashMap<String, Object> YWG = new HashMap<>();
|
|
|
YWG.put("total",this.getWorkerOrderCountResult(responseYWG.getAggregations(),"YWG"));
|
|
@@ -495,7 +576,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("YJS", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termsQuery("order_status","YJS","LRCD")))))
|
|
|
.build();
|
|
|
- SearchHits responseYJS = elasticsearchRestTemplate.search(searchQueryYJS, OrderBaseEs.class);
|
|
|
+ SearchHits responseYJS = this.search(searchQueryYJS,year);
|
|
|
|
|
|
HashMap<String, Object> YJS = new HashMap<>();
|
|
|
YJS.put("total",this.getWorkerOrderCountResult(responseYJS.getAggregations(),"YJS"));
|
|
@@ -510,7 +591,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("YQX", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termsQuery("order_status","YZP","YQX","FWZT","YCGB","FWQX","FL")))))
|
|
|
.build();
|
|
|
- SearchHits responseYQX = elasticsearchRestTemplate.search(searchQueryYQX, OrderBaseEs.class);
|
|
|
+ SearchHits responseYQX = this.search(searchQueryYQX,year);
|
|
|
|
|
|
HashMap<String, Object> YQX = new HashMap<>();
|
|
|
YQX.put("total",this.getWorkerOrderCountResult(responseYQX.getAggregations(),"YQX"));
|
|
@@ -526,7 +607,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("PJSQZ", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termQuery("parts_apply_status","ING")))))
|
|
|
.build();
|
|
|
- SearchHits responsePJSQZ = elasticsearchRestTemplate.search(searchQueryPJSQZ, OrderBaseEs.class);
|
|
|
+ SearchHits responsePJSQZ = this.search(searchQueryPJSQZ,year);
|
|
|
|
|
|
HashMap<String, Object> PJSQZ = new HashMap<>();
|
|
|
PJSQZ.put("total",this.getWorkerOrderCountResult(responsePJSQZ.getAggregations(),"PJSQZ"));
|
|
@@ -542,7 +623,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("PJYDH", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termQuery("parts_apply_status","END")))))
|
|
|
.build();
|
|
|
- SearchHits responsePJYDH = elasticsearchRestTemplate.search(searchQueryPJYDH, OrderBaseEs.class);
|
|
|
+ SearchHits responsePJYDH = this.search(searchQueryPJYDH,year);
|
|
|
|
|
|
HashMap<String, Object> PJYDH = new HashMap<>();
|
|
|
PJYDH.put("total",this.getWorkerOrderCountResult(responsePJYDH.getAggregations(),"PJYDH"));
|
|
@@ -558,7 +639,7 @@ public class OrderBaseEsLogic {
|
|
|
.addAggregation(this.getAggs(AggregationBuilders.filter("PJYQX", QueryBuilders.boolQuery()
|
|
|
.must(QueryBuilders.termQuery("parts_apply_status","CANCEL")))))
|
|
|
.build();
|
|
|
- SearchHits responsePJYQX = elasticsearchRestTemplate.search(searchQueryPJYQX, OrderBaseEs.class);
|
|
|
+ SearchHits responsePJYQX = this.search(searchQueryPJYQX,year);
|
|
|
|
|
|
HashMap<String, Object> PJYQX = new HashMap<>();
|
|
|
PJYQX.put("total",this.getWorkerOrderCountResult(responsePJYQX.getAggregations(),"PJYQX"));
|
|
@@ -585,7 +666,7 @@ public class OrderBaseEsLogic {
|
|
|
.must(QueryBuilders.termsQuery("id",orderBaseId))
|
|
|
)))
|
|
|
.build();
|
|
|
- SearchHits responseDZF = elasticsearchRestTemplate.search(searchQueryDZF, OrderBaseEs.class);
|
|
|
+ SearchHits responseDZF = this.search(searchQueryDZF,year);
|
|
|
DZF.put("total",this.getWorkerOrderCountResult(responseDZF.getAggregations(),"DZF"));
|
|
|
DZF.put("orderStatus","DZF");
|
|
|
|
|
@@ -596,6 +677,27 @@ public class OrderBaseEsLogic {
|
|
|
return maps;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private SearchHits search(NativeSearchQuery searchQuery,String year) {
|
|
|
+
|
|
|
+ if (year.equals("2023")) {
|
|
|
+ SearchHits response = elasticsearchRestTemplate.search(searchQuery, OrderBase2023Es.class);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ if (year.equals("2024")) {
|
|
|
+ SearchHits response = elasticsearchRestTemplate.search(searchQuery, OrderBase2024Es.class);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (year.equals("2022") || Convert.toInt(year) < 2022) {
|
|
|
+ SearchHits response = elasticsearchRestTemplate.search(searchQuery, OrderBase2022Es.class);
|
|
|
+ return response;
|
|
|
+ }else {
|
|
|
+ SearchHits response = elasticsearchRestTemplate.search(searchQuery, OrderBaseEs.class);
|
|
|
+ return response;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
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")
|
|
@@ -620,6 +722,32 @@ public class OrderBaseEsLogic {
|
|
|
|
|
|
|
|
|
orderBaseEsRepository.saveAll(orderBaseEsDates);
|
|
|
+
|
|
|
+
|
|
|
+ List<PgOrderBase2022> list2022 = pgOrderBase2022Service.lambdaQuery()
|
|
|
+ .gt(PgOrderBase2022::getUpdateTime,DateUtil.offsetMinute(new Date(),-5))
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<OrderBaseEs2022Date> orderBaseEsDates2022 = BeanUtil.copyToList(list2022, OrderBaseEs2022Date.class);
|
|
|
+
|
|
|
+ orderBase2022EsRepository.saveAll(orderBaseEsDates2022);
|
|
|
+
|
|
|
+
|
|
|
+ List<PgOrderBase2023> list2023 = pgOrderBase2023Service.lambdaQuery()
|
|
|
+ .gt(PgOrderBase2023::getUpdateTime,DateUtil.offsetMinute(new Date(),-5))
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<OrderBaseEs2023Date> orderBaseEsDates2023 = BeanUtil.copyToList(list2023, OrderBaseEs2023Date.class);
|
|
|
+
|
|
|
+ orderBase2023EsRepository.saveAll(orderBaseEsDates2023);
|
|
|
+
|
|
|
+ List<PgOrderBase2024> list2024 = pgOrderBase2024Service.lambdaQuery()
|
|
|
+ .gt(PgOrderBase2024::getUpdateTime,DateUtil.offsetMinute(new Date(),-5))
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<OrderBaseEs2024Date> orderBaseEsDates2024 = BeanUtil.copyToList(list2024, OrderBaseEs2024Date.class);
|
|
|
+
|
|
|
+ orderBase2024EsRepository.saveAll(orderBaseEsDates2024);
|
|
|
}
|
|
|
|
|
|
public void esSync1() {
|
|
@@ -648,10 +776,12 @@ public class OrderBaseEsLogic {
|
|
|
orderWorkerEsRepository.saveAll(pgOrderWorkerEs);
|
|
|
}
|
|
|
|
|
|
- public List<OrderBaseVO> listExport(WorkOrderZfireParam zfireParamBean) {
|
|
|
+ public List<OrderBaseVO> listExport(WorkOrderZfireParam zfireParamBean,HttpServletRequest request) {
|
|
|
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
|
|
|
+ String year = CommonUtils.getYear(request);
|
|
|
+
|
|
|
BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery();
|
|
|
this.montage(queryBuilder1,zfireParamBean);
|
|
|
|
|
@@ -695,51 +825,199 @@ public class OrderBaseEsLogic {
|
|
|
|
|
|
|
|
|
// 2. 初始化 Scroll
|
|
|
- SearchScrollHits<OrderBaseEs> scrollHits = elasticsearchRestTemplate.searchScrollStart(
|
|
|
- 60000, // Scroll 上下文保持时间(毫秒)
|
|
|
- query,
|
|
|
- OrderBaseEs.class,
|
|
|
- IndexCoordinates.of("pg_order_base")
|
|
|
- );
|
|
|
|
|
|
- String scrollId = scrollHits.getScrollId();
|
|
|
- int batch = 0;
|
|
|
+ List<OrderBaseVO> orderBaseVOS1 = new ArrayList<>();
|
|
|
+
|
|
|
+ if (year.equals("2023")) {
|
|
|
+
|
|
|
+ List<OrderBase2023Es> orderBaseVOS = new ArrayList<>();
|
|
|
+ SearchScrollHits<OrderBase2023Es> scrollHits = elasticsearchRestTemplate.searchScrollStart(
|
|
|
+ 60000, // Scroll 上下文保持时间(毫秒)
|
|
|
+ query,
|
|
|
+ OrderBase2023Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2023")
|
|
|
+ );
|
|
|
|
|
|
- if (scrollHits.getTotalHits() > 60000)
|
|
|
- throw new RemoteServiceException("数据超过六万上限,请分批导出");
|
|
|
+ String scrollId = scrollHits.getScrollId();
|
|
|
+ int batch = 0;
|
|
|
|
|
|
- List<OrderBaseEs> orderBaseVOS = new ArrayList<>();
|
|
|
+ if (scrollHits.getTotalHits() > 60000)
|
|
|
+ throw new RemoteServiceException("数据超过六万上限,请分批导出");
|
|
|
|
|
|
- try {
|
|
|
- while (!scrollHits.isEmpty()) {
|
|
|
- // 3. 处理当前批次数据
|
|
|
- scrollHits.forEach(hit -> {
|
|
|
- OrderBaseEs entity = hit.getContent();
|
|
|
- orderBaseVOS.add(entity);
|
|
|
- });
|
|
|
|
|
|
- batch++;
|
|
|
+ try {
|
|
|
+ while (!scrollHits.isEmpty()) {
|
|
|
+ // 3. 处理当前批次数据
|
|
|
+ scrollHits.forEach(hit -> {
|
|
|
+ OrderBase2023Es entity = hit.getContent();
|
|
|
+ orderBaseVOS.add(entity);
|
|
|
+ });
|
|
|
|
|
|
- // 4. 获取下一批次
|
|
|
- scrollHits = elasticsearchRestTemplate.searchScrollContinue(
|
|
|
- scrollId,
|
|
|
- 60000,
|
|
|
- OrderBaseEs.class,
|
|
|
- IndexCoordinates.of("pg_order_base")
|
|
|
- );
|
|
|
- scrollId = scrollHits.getScrollId(); // 更新 scrollId
|
|
|
+ batch++;
|
|
|
+
|
|
|
+ // 4. 获取下一批次
|
|
|
+ scrollHits = elasticsearchRestTemplate.searchScrollContinue(
|
|
|
+ scrollId,
|
|
|
+ 60000,
|
|
|
+ OrderBase2023Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2023")
|
|
|
+ );
|
|
|
+ scrollId = scrollHits.getScrollId(); // 更新 scrollId
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ // 5. 清理 Scroll 上下文
|
|
|
+ if (scrollId != null) {
|
|
|
+ List<String> scroll = new ArrayList<>();
|
|
|
+ scroll.add(scrollId);
|
|
|
+ elasticsearchRestTemplate.searchScrollClear(scroll);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ orderBaseVOS1 = BeanUtil.copyToList(orderBaseVOS,OrderBaseVO.class);
|
|
|
+ }else
|
|
|
+
|
|
|
+ if (year.equals("2024")) {
|
|
|
+
|
|
|
+ List<OrderBase2024Es> orderBaseVOS = new ArrayList<>();
|
|
|
+ SearchScrollHits<OrderBase2024Es> scrollHits = elasticsearchRestTemplate.searchScrollStart(
|
|
|
+ 60000, // Scroll 上下文保持时间(毫秒)
|
|
|
+ query,
|
|
|
+ OrderBase2024Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2024")
|
|
|
+ );
|
|
|
+
|
|
|
+ String scrollId = scrollHits.getScrollId();
|
|
|
+ int batch = 0;
|
|
|
+
|
|
|
+ if (scrollHits.getTotalHits() > 60000)
|
|
|
+ throw new RemoteServiceException("数据超过六万上限,请分批导出");
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ while (!scrollHits.isEmpty()) {
|
|
|
+ // 3. 处理当前批次数据
|
|
|
+ scrollHits.forEach(hit -> {
|
|
|
+ OrderBase2024Es entity = hit.getContent();
|
|
|
+ orderBaseVOS.add(entity);
|
|
|
+ });
|
|
|
+
|
|
|
+ batch++;
|
|
|
+
|
|
|
+ // 4. 获取下一批次
|
|
|
+ scrollHits = elasticsearchRestTemplate.searchScrollContinue(
|
|
|
+ scrollId,
|
|
|
+ 60000,
|
|
|
+ OrderBase2024Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2024")
|
|
|
+ );
|
|
|
+ scrollId = scrollHits.getScrollId(); // 更新 scrollId
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ // 5. 清理 Scroll 上下文
|
|
|
+ if (scrollId != null) {
|
|
|
+ List<String> scroll = new ArrayList<>();
|
|
|
+ scroll.add(scrollId);
|
|
|
+ elasticsearchRestTemplate.searchScrollClear(scroll);
|
|
|
+ }
|
|
|
}
|
|
|
- } finally {
|
|
|
- // 5. 清理 Scroll 上下文
|
|
|
- if (scrollId != null) {
|
|
|
- List<String> scroll = new ArrayList<>();
|
|
|
- scroll.add(scrollId);
|
|
|
- elasticsearchRestTemplate.searchScrollClear(scroll);
|
|
|
+
|
|
|
+ orderBaseVOS1 = BeanUtil.copyToList(orderBaseVOS,OrderBaseVO.class);
|
|
|
+ }else
|
|
|
+
|
|
|
+
|
|
|
+ if (year.equals("2022") || Convert.toInt(year) < 2022) {
|
|
|
+
|
|
|
+ List<OrderBase2022Es> orderBaseVOS = new ArrayList<>();
|
|
|
+ SearchScrollHits<OrderBase2022Es> scrollHits = elasticsearchRestTemplate.searchScrollStart(
|
|
|
+ 60000, // Scroll 上下文保持时间(毫秒)
|
|
|
+ query,
|
|
|
+ OrderBase2022Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2022")
|
|
|
+ );
|
|
|
+
|
|
|
+ String scrollId = scrollHits.getScrollId();
|
|
|
+ int batch = 0;
|
|
|
+
|
|
|
+ if (scrollHits.getTotalHits() > 60000)
|
|
|
+ throw new RemoteServiceException("数据超过六万上限,请分批导出");
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ while (!scrollHits.isEmpty()) {
|
|
|
+ // 3. 处理当前批次数据
|
|
|
+ scrollHits.forEach(hit -> {
|
|
|
+ OrderBase2022Es entity = hit.getContent();
|
|
|
+ orderBaseVOS.add(entity);
|
|
|
+ });
|
|
|
+
|
|
|
+ batch++;
|
|
|
+
|
|
|
+ // 4. 获取下一批次
|
|
|
+ scrollHits = elasticsearchRestTemplate.searchScrollContinue(
|
|
|
+ scrollId,
|
|
|
+ 60000,
|
|
|
+ OrderBase2022Es.class,
|
|
|
+ IndexCoordinates.of("pg_order_base2022")
|
|
|
+ );
|
|
|
+ scrollId = scrollHits.getScrollId(); // 更新 scrollId
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ // 5. 清理 Scroll 上下文
|
|
|
+ if (scrollId != null) {
|
|
|
+ List<String> scroll = new ArrayList<>();
|
|
|
+ scroll.add(scrollId);
|
|
|
+ elasticsearchRestTemplate.searchScrollClear(scroll);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- List<OrderBaseVO> orderBaseVOS1 = BeanUtil.copyToList(orderBaseVOS, OrderBaseVO.class);
|
|
|
+ orderBaseVOS1 = BeanUtil.copyToList(orderBaseVOS,OrderBaseVO.class);
|
|
|
+ }else {
|
|
|
+
|
|
|
+ List<OrderBaseEs> orderBaseVOS = new ArrayList<>();
|
|
|
+ SearchScrollHits<OrderBaseEs> scrollHits = elasticsearchRestTemplate.searchScrollStart(
|
|
|
+ 60000, // Scroll 上下文保持时间(毫秒)
|
|
|
+ query,
|
|
|
+ OrderBaseEs.class,
|
|
|
+ IndexCoordinates.of("pg_order_base")
|
|
|
+ );
|
|
|
+
|
|
|
+ String scrollId = scrollHits.getScrollId();
|
|
|
+ int batch = 0;
|
|
|
+
|
|
|
+ if (scrollHits.getTotalHits() > 60000)
|
|
|
+ throw new RemoteServiceException("数据超过六万上限,请分批导出");
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ while (!scrollHits.isEmpty()) {
|
|
|
+ // 3. 处理当前批次数据
|
|
|
+ scrollHits.forEach(hit -> {
|
|
|
+ OrderBaseEs entity = hit.getContent();
|
|
|
+ orderBaseVOS.add(entity);
|
|
|
+ });
|
|
|
|
|
|
+ batch++;
|
|
|
+
|
|
|
+ // 4. 获取下一批次
|
|
|
+ scrollHits = elasticsearchRestTemplate.searchScrollContinue(
|
|
|
+ scrollId,
|
|
|
+ 60000,
|
|
|
+ OrderBaseEs.class,
|
|
|
+ IndexCoordinates.of("pg_order_base")
|
|
|
+ );
|
|
|
+ scrollId = scrollHits.getScrollId(); // 更新 scrollId
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ // 5. 清理 Scroll 上下文
|
|
|
+ if (scrollId != null) {
|
|
|
+ List<String> scroll = new ArrayList<>();
|
|
|
+ scroll.add(scrollId);
|
|
|
+ elasticsearchRestTemplate.searchScrollClear(scroll);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ orderBaseVOS1 = BeanUtil.copyToList(orderBaseVOS,OrderBaseVO.class);
|
|
|
+ }
|
|
|
|
|
|
List<String> orderBaseIds = orderBaseVOS1
|
|
|
.stream()
|