|
@@ -43,6 +43,8 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.time.LocalDate;
|
|
|
|
+import java.time.LocalDateTime;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -260,6 +262,41 @@ public class OrderBaseEsLogic {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 新增:当日需处理(DRXC)
|
|
|
|
+ if (param.equals("order_status") && value.equals("DRXC")) {
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
+ LocalDate today = now.toLocalDate();
|
|
|
|
+ String today8 = DateUtil.format(today.atTime(8, 0, 0), "yyyy-MM-dd HH:mm:ss"); // 当日8:00:00
|
|
|
|
+ String today1759 = DateUtil.format(today.atTime(17, 59, 59), "yyyy-MM-dd HH:mm:ss"); // 当日17:59:59
|
|
|
|
+ String nowMinus30 = DateUtil.format(now.minusMinutes(30), "yyyy-MM-dd HH:mm:ss"); // 当前时间-30分钟
|
|
|
|
+
|
|
|
|
+ queryBuilder.must(QueryBuilders.rangeQuery("create_time") // create_time在当日8:00-17:59之间
|
|
|
|
+ .gte(today8)
|
|
|
|
+ .lte(today1759));
|
|
|
|
+ queryBuilder.must(QueryBuilders.rangeQuery("create_time") // create_time >= 当前时间-30分钟(后移半小时内)
|
|
|
|
+ .gte(nowMinus30));
|
|
|
|
+ queryBuilder.mustNot(QueryBuilders.existsQuery("appointment_time")); // appointment_time为空
|
|
|
|
+ queryBuilder.mustNot(QueryBuilders.termsQuery("order_status", "YWG", "GCSZX", "WDWG", "YWGO", "YQX", "FWZT", "YCGB","YZP",
|
|
|
|
+ "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP")); // 相同order_status排除条件
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 新增:次日需处理(CRXC)
|
|
|
|
+ if (param.equals("order_status") && value.equals("CRXC")) {
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
+ LocalDate today = now.toLocalDate();
|
|
|
|
+ String today18 = DateUtil.format(today.atTime(18, 0, 0), "yyyy-MM-dd HH:mm:ss"); // 当日18:00:00
|
|
|
|
+ String nextDay759 = DateUtil.format(today.plusDays(1).atTime(7, 59, 59), "yyyy-MM-dd HH:mm:ss"); // 次日7:59:59
|
|
|
|
+
|
|
|
|
+ queryBuilder.must(QueryBuilders.rangeQuery("create_time") // create_time在当日18:00-次日7:59之间
|
|
|
|
+ .gte(today18)
|
|
|
|
+ .lte(nextDay759));
|
|
|
|
+ queryBuilder.mustNot(QueryBuilders.existsQuery("appointment_time")); // appointment_time为空
|
|
|
|
+ queryBuilder.mustNot(QueryBuilders.termsQuery("order_status", "YWG", "GCSZX", "WDWG", "YWGO", "YQX", "FWZT", "YCGB","YZP",
|
|
|
|
+ "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP")); // 相同order_status排除条件
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (param.equals("order_status")
|
|
if (param.equals("order_status")
|
|
&& value.equals("YCD")
|
|
&& value.equals("YCD")
|
|
){
|
|
){
|
|
@@ -445,7 +482,57 @@ public class OrderBaseEsLogic {
|
|
dyy.put("orderStatus", "DYY");
|
|
dyy.put("orderStatus", "DYY");
|
|
maps.add(dyy);
|
|
maps.add(dyy);
|
|
|
|
|
|
|
|
+ // 当日需处理(8:00-17:59创建,create_time后移半小时内appointment_time为空)
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
+ LocalDate today = now.toLocalDate();
|
|
|
|
+ String today8 = DateUtil.format(today.atTime(8, 0, 0), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ String today1759 = DateUtil.format(today.atTime(17, 59, 59), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ String nowMinus30 = DateUtil.format(now.minusMinutes(30), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
+
|
|
|
|
+ NativeSearchQuery drxcSearchQuery = new NativeSearchQueryBuilder()
|
|
|
|
+ .withQuery(queryBuilder)
|
|
|
|
+ .withPageable(PageRequest.of(1, 1))
|
|
|
|
+ .addAggregation(this.getAggs(AggregationBuilders.filter("DRXC", QueryBuilders.boolQuery()
|
|
|
|
+ .must(QueryBuilders.rangeQuery("create_time")
|
|
|
|
+ .gte(today8)
|
|
|
|
+ .lte(today1759))
|
|
|
|
+ .mustNot(QueryBuilders.existsQuery("appointment_time"))
|
|
|
|
+ .must(QueryBuilders.rangeQuery("create_time")
|
|
|
|
+ .gte(nowMinus30)) // create_time >= 当前时间-30分钟(确保在半小时内)
|
|
|
|
+ .mustNot(QueryBuilders.termsQuery("order_status", "YWG", "GCSZX", "WDWG", "YWGO", "YQX", "FWZT", "YCGB","YZP",
|
|
|
|
+ "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP")) // 与DYY相同的order_status排除条件
|
|
|
|
+ )))
|
|
|
|
+ .build();
|
|
|
|
+
|
|
|
|
+ SearchHits drxcResponse = this.search(drxcSearchQuery, year);
|
|
|
|
+ HashMap<String, Object> drxcMap = new HashMap<>();
|
|
|
|
+ drxcMap.put("total", this.getWorkerOrderCountResult(drxcResponse.getAggregations(), "DRXC"));
|
|
|
|
+ drxcMap.put("orderStatus", "DRXC");
|
|
|
|
+ maps.add(drxcMap);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 次日需处理(18:00-次日7:59创建,appointment_time为空)
|
|
|
|
+ String today18 = DateUtil.format(today.atTime(18, 0, 0), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ String nextDay759 = DateUtil.format(today.plusDays(1).atTime(7, 59, 59), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
+
|
|
|
|
+ NativeSearchQuery crxcSearchQuery = new NativeSearchQueryBuilder()
|
|
|
|
+ .withQuery(queryBuilder)
|
|
|
|
+ .withPageable(PageRequest.of(1, 1))
|
|
|
|
+ .addAggregation(this.getAggs(AggregationBuilders.filter("CRXC", QueryBuilders.boolQuery()
|
|
|
|
+ .must(QueryBuilders.rangeQuery("create_time")
|
|
|
|
+ .gte(today18)
|
|
|
|
+ .lte(nextDay759))
|
|
|
|
+ .mustNot(QueryBuilders.existsQuery("appointment_time"))
|
|
|
|
+ .mustNot(QueryBuilders.termsQuery("order_status", "YWG", "GCSZX", "WDWG", "YWGO", "YQX", "FWZT", "YCGB","YZP",
|
|
|
|
+ "FWQX", "FL", "YJS", "LRCD", "DSHPG", "CJ", "YPD", "DXSPD", "DZBPG", "DWDSPGP", "DXSSPGP", "DTJXSSPGP", "DZBSPGP")) // 与DYY相同的order_status排除条件
|
|
|
|
+ )))
|
|
|
|
+ .build();
|
|
|
|
|
|
|
|
+ SearchHits crxcResponse = this.search(crxcSearchQuery, year);
|
|
|
|
+ HashMap<String, Object> crxcMap = new HashMap<>();
|
|
|
|
+ crxcMap.put("total", this.getWorkerOrderCountResult(crxcResponse.getAggregations(), "CRXC"));
|
|
|
|
+ crxcMap.put("orderStatus", "CRXC");
|
|
|
|
+ maps.add(crxcMap);
|
|
|
|
|
|
//待抢单
|
|
//待抢单
|
|
NativeSearchQuery searchQueryDqd = new NativeSearchQueryBuilder()
|
|
NativeSearchQuery searchQueryDqd = new NativeSearchQueryBuilder()
|