mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 05:42:06 +08:00
未排单管理-创建排单es查询优化
This commit is contained in:
+11
-6
@@ -778,18 +778,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
AssertUtils.notEmpty(goodsReqVOS,ORDER_GOODS_DATA_ERROR);
|
AssertUtils.notEmpty(goodsReqVOS,ORDER_GOODS_DATA_ERROR);
|
||||||
|
|
||||||
List<Long> ids = goodsReqVOS.stream().map(GoodsReqVO::getId).toList();
|
List<Long> orderGoodsIds = goodsReqVOS.stream().map(GoodsReqVO::getId).toList();
|
||||||
|
|
||||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||||
|
|
||||||
AssertUtils.notEmpty(orderDOS,THIS_ORDER_PLATE_DATA_ERROR);
|
AssertUtils.notEmpty(orderDOS,THIS_ORDER_PLATE_DATA_ERROR);
|
||||||
|
|
||||||
List<PlateDetailRespVO> plateDetailRespVOS = plateMapper.selectNoPlanPlate(orderIds,ids,getUserOrganId());
|
List<PlateDetailRespVO> plateDetailRespVOS = plateMapper.selectNoPlanPlate(orderIds, orderGoodsIds, getUserOrganId());
|
||||||
|
|
||||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_ERROR);
|
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_ERROR);
|
||||||
|
|
||||||
// todo 数据结构改后,可以增加排单ID作为筛选,只查为 0 的
|
// todo 数据结构改后,可以增加排单ID作为筛选,只查为 0 的
|
||||||
List<OrderModelDO> orderModelDOS = getOrderModels(orderIds);
|
List<OrderModelDO> orderModelDOS = getOrderModels(orderIds, orderGoodsIds);
|
||||||
|
|
||||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
|
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
|
||||||
|
|
||||||
@@ -808,7 +808,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
* @param orderIds
|
* @param orderIds
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private List<OrderModelDO> getOrderModels(List<Long> orderIds) {
|
private List<OrderModelDO> getOrderModels(List<Long> orderIds, List<Long> orderGoodsIds) {
|
||||||
List<OrderModelDO> results = new ArrayList<>();
|
List<OrderModelDO> results = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
// 查询总数
|
// 查询总数
|
||||||
@@ -819,22 +819,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
.field("orderId")
|
.field("orderId")
|
||||||
.terms(e -> e.value(orderIds.stream().map(FieldValue::of).toList()))
|
.terms(e -> e.value(orderIds.stream().map(FieldValue::of).toList()))
|
||||||
))
|
))
|
||||||
|
.filter(f -> f.terms(t -> t
|
||||||
|
.field("plateGoodsId")
|
||||||
|
.terms(e -> e.value(orderGoodsIds.stream().map(FieldValue::of).toList()))
|
||||||
|
))
|
||||||
))
|
))
|
||||||
.build();
|
.build();
|
||||||
CountResponse totalResponse = elasticsearchClient.count(countRequest);
|
CountResponse totalResponse = elasticsearchClient.count(countRequest);
|
||||||
long total = totalResponse.count();
|
long total = totalResponse.count();
|
||||||
|
|
||||||
// 分页查询
|
// 分页查询
|
||||||
int pageNum = PageUtil.totalPage(total, 500);
|
int pageNum = PageUtil.totalPage(total, 1000);
|
||||||
|
|
||||||
List<FieldValue> searchAfterSortValues = null;
|
List<FieldValue> searchAfterSortValues = null;
|
||||||
for (int page = 1; page <= pageNum; page++) {
|
for (int page = 1; page <= pageNum; page++) {
|
||||||
SearchRequest.Builder searchBuilder = new SearchRequest.Builder()
|
SearchRequest.Builder searchBuilder = new SearchRequest.Builder()
|
||||||
.index(ORDER_PLATE_MODEL.getIndex())
|
.index(ORDER_PLATE_MODEL.getIndex())
|
||||||
.size(500)
|
.size(1000)
|
||||||
.sort(s -> s.field(f -> f.field("id.keyword").order(SortOrder.Asc)))
|
.sort(s -> s.field(f -> f.field("id.keyword").order(SortOrder.Asc)))
|
||||||
.query(q -> q.bool(b -> b
|
.query(q -> q.bool(b -> b
|
||||||
.filter(f -> f.terms(t -> t.field("orderId").terms(e -> e.value(orderIds.stream().map(FieldValue::of).toList()))))
|
.filter(f -> f.terms(t -> t.field("orderId").terms(e -> e.value(orderIds.stream().map(FieldValue::of).toList()))))
|
||||||
|
.filter(f -> f.terms(t -> t.field("plateGoodsId").terms(e -> e.value(orderGoodsIds.stream().map(FieldValue::of).toList()))))
|
||||||
))
|
))
|
||||||
.source(s -> s
|
.source(s -> s
|
||||||
.filter(f -> f
|
.filter(f -> f
|
||||||
|
|||||||
Reference in New Issue
Block a user