diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java index 80b02cb3c..6ffd3c69d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java @@ -29,14 +29,24 @@ public interface PlanItemMapper extends BaseMapperX { * @param wrapper * @param type * @param orderGoodsIds 商品id列表 - * @param orderIds 父级订单数组 + * @param rootIds 父级订单数组 * @return */ IPage selectOrderList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper, @Param("type") int type, @Param("orderGoodsIds") List orderGoodsIds, - @Param("orderIds") Long... orderIds); + @Param("rootIds") List rootIds); + + /** + * 未排单顶级订单id列表 + * + * @param page + * @param wrapper + * @return + */ + IPage selectRootOrderIdList(@Param("page") IPage page, + @Param(Constants.WRAPPER) Wrapper wrapper); /** * 未排单子单查询 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index 90bcda5ae..d631f5f20 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -539,16 +539,11 @@ public class PlanServiceImpl implements PlanService { // 查询类型:订单分组 int type = OrderPlanQueryTypeEnum.ORDER_GROUP.getType(); if(CollUtil.isNotEmpty(goodsIds)) { - // 从订单材质查询订单id列表 - List goodsOrderId = - goodsMapper.getParentOrderIdsByGoodsIds( - goodsIds, - pageReqVO.getOrderIds()); + List orderIdList = Optional.ofNullable(pageReqVO.getOrderIds()).orElse(new ArrayList<>()); - if (CollUtil.isNotEmpty(goodsOrderId)) { - // 查询本身和父订单id - pageReqVO.setOrderIds(orderService.getFatherAndSonOrderIds(goodsOrderId)); - } + List goodsDOS = goodsMapper.selectListByGoodsId(orderIdList, goodsIds, organId); + orderGoodsIds.addAll(goodsDOS.stream().map(GoodsDO::getId).toList()); + type = OrderPlanQueryTypeEnum.GOODS_GROUP.getType(); } QueryWrapperX queryWrapperX = new QueryWrapperX<>(); @@ -564,7 +559,12 @@ public class PlanServiceImpl implements PlanService { .likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress()) .betweenIfPresent(FIELD_ORDER_DATE, LocalDateTimeUtils.generateTimeSection(pageReqVO.getCreateTime())); PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage orderList = planItemMapper.selectOrderList(page, queryWrapperX, type, orderGoodsIds); + + // 查询满足未排单条件的顶级订单id + IPage rootOrderIdList = planItemMapper.selectRootOrderIdList(page, queryWrapperX); + // 查询顶级列表的信息 + IPage orderList = planItemMapper.selectOrderList(page, queryWrapperX, type, orderGoodsIds, rootOrderIdList.getRecords()); + List mainOrderList = orderList.getRecords(); long total = orderList.getTotal(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml index 151f53565..ef7dd4296 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml @@ -19,7 +19,6 @@ + +