mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +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);
|
||||
|
||||
List<Long> ids = goodsReqVOS.stream().map(GoodsReqVO::getId).toList();
|
||||
List<Long> orderGoodsIds = goodsReqVOS.stream().map(GoodsReqVO::getId).toList();
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
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);
|
||||
|
||||
// todo 数据结构改后,可以增加排单ID作为筛选,只查为 0 的
|
||||
List<OrderModelDO> orderModelDOS = getOrderModels(orderIds);
|
||||
List<OrderModelDO> orderModelDOS = getOrderModels(orderIds, orderGoodsIds);
|
||||
|
||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
|
||||
|
||||
@@ -808,7 +808,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
* @param orderIds
|
||||
* @return
|
||||
*/
|
||||
private List<OrderModelDO> getOrderModels(List<Long> orderIds) {
|
||||
private List<OrderModelDO> getOrderModels(List<Long> orderIds, List<Long> orderGoodsIds) {
|
||||
List<OrderModelDO> results = new ArrayList<>();
|
||||
try {
|
||||
// 查询总数
|
||||
@@ -819,22 +819,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.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()))
|
||||
))
|
||||
))
|
||||
.build();
|
||||
CountResponse totalResponse = elasticsearchClient.count(countRequest);
|
||||
long total = totalResponse.count();
|
||||
|
||||
// 分页查询
|
||||
int pageNum = PageUtil.totalPage(total, 500);
|
||||
int pageNum = PageUtil.totalPage(total, 1000);
|
||||
|
||||
List<FieldValue> searchAfterSortValues = null;
|
||||
for (int page = 1; page <= pageNum; page++) {
|
||||
SearchRequest.Builder searchBuilder = new SearchRequest.Builder()
|
||||
.index(ORDER_PLATE_MODEL.getIndex())
|
||||
.size(500)
|
||||
.size(1000)
|
||||
.sort(s -> s.field(f -> f.field("id.keyword").order(SortOrder.Asc)))
|
||||
.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("plateGoodsId").terms(e -> e.value(orderGoodsIds.stream().map(FieldValue::of).toList()))))
|
||||
))
|
||||
.source(s -> s
|
||||
.filter(f -> f
|
||||
|
||||
Reference in New Issue
Block a user