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 94da82d90..eee9370bb 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 @@ -27,12 +27,14 @@ public interface PlanItemMapper extends BaseMapperX { * @param page * @param wrapper * @param type - * @param orderIds 父级订单数组 + * @param orderGoodsIds 商品id列表 + * @param orderIds 父级订单数组 * @return */ IPage selectOrderList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper, @Param("type") int type, + @Param("orderGoodsIds") List orderGoodsIds, @Param("orderIds") Long... orderIds); List selectPlanPlateDetailList(@Param("planId") Long planId, @Param("organId") Long organId); 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 afbcdf1d7..c152d4f9f 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 @@ -130,6 +130,7 @@ public class PlanServiceImpl implements PlanService { // 重复使用的常量 + private static final String FIELD_ORDER_ID = "o.id"; private static final String FIELD_OP_IS_SPECIAL_SHAPED = "op.is_special_shaped"; private static final String FIELD_PLANID = "planId"; private static final String FIELD_ORGAN_ID = "o.organ_id"; @@ -561,7 +562,7 @@ public class PlanServiceImpl implements PlanService { List goodsId = Optional.ofNullable(pageReqVO.getGoodsIds()).orElse(new ArrayList<>()); - List ids = new ArrayList<>(); + List orderGoodsIds = new ArrayList<>(); // 查询类型:订单分组 int type = OrderPlanQueryTypeEnum.ORDER_GROUP.getType(); if(CollUtil.isNotEmpty(goodsId)) { @@ -569,7 +570,7 @@ public class PlanServiceImpl implements PlanService { List orderIdList = Optional.ofNullable(pageReqVO.getOrderIds()).orElse(new ArrayList<>()); List goodsDOS = goodsMapper.selectListByGoodsId(orderIdList, goodsId, organId); - ids.addAll(goodsDOS.stream().map(GoodsDO::getId).toList()); + orderGoodsIds.addAll(goodsDOS.stream().map(GoodsDO::getId).toList()); type = OrderPlanQueryTypeEnum.GOODS_GROUP.getType(); } @@ -579,24 +580,23 @@ public class PlanServiceImpl implements PlanService { .eq(FIELD_DELETED, false) .in(FIELD_STATUS, statusList) - .inIfPresent("og.id", ids) - .inIfPresent("o.id", pageReqVO.getOrderIds()) - .likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null) + .inIfPresent(FIELD_ORDER_ID, pageReqVO.getOrderIds()) + .likeIfPresent(FIELD_ORDER_ID, pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null) .likeIfPresent(FIELD_CUSTOMER, pageReqVO.getConsignee()) .likeIfPresent(FIELD_CUSTOM_ORDER_NO, pageReqVO.getDefaultId()) .likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress()) .betweenIfPresent(FIELD_ORDER_DATE, pageReqVO.getCreateTime()); PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - IPage orderList = planItemMapper.selectOrderList(page, queryWrapperX, type); + IPage orderList = planItemMapper.selectOrderList(page, queryWrapperX, type, orderGoodsIds); List mainOrderList = orderList.getRecords(); long total = orderList.getTotal(); // 订单分组查询子单 - if (ObjectUtil.equals(OrderPlanQueryTypeEnum.ORDER_GROUP.getType(), type) && CollUtil.isNotEmpty(mainOrderList)) { + if (CollUtil.isNotEmpty(mainOrderList)) { // 主单id列表 Long[] mainOrderIds = mainOrderList.stream().map(OrderRespVOCopy::getOrderId).toArray(Long[]::new); PageDTO childPage = new PageDTO<>(pageReqVO.getPageNo(), PageParam.PAGE_SIZE_NONE); - IPage childOrderList = planItemMapper.selectOrderList(childPage, queryWrapperX, type, mainOrderIds); + IPage childOrderList = planItemMapper.selectOrderList(childPage, queryWrapperX, type, orderGoodsIds, mainOrderIds); List childList = childOrderList.getRecords(); @@ -647,8 +647,8 @@ public class PlanServiceImpl implements PlanService { queryWrapperX .eq(FIELD_DELETED, false) .in(FIELD_STATUS, statusList) - .inIfPresent("o.id", pageReqVO.getOrderIds()) - .likeIfPresent("o.id", pageReqVO.getOrderId()) + .inIfPresent(FIELD_ORDER_ID, pageReqVO.getOrderIds()) + .likeIfPresent(FIELD_ORDER_ID, pageReqVO.getOrderId()) .likeIfPresent(FIELD_CUSTOMER, pageReqVO.getConsignee()) .likeIfPresent(FIELD_CUSTOM_ORDER_NO, pageReqVO.getDefaultId()) .likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress()) 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 00ffc50a9..46732418b 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 @@ -20,31 +20,49 @@ @@ -247,26 +259,37 @@ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index 911c9be59..d01432d51 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -614,11 +614,10 @@ select distinct op.id as plateId, op.order_id as orderId, - o.id as packId, o.package_no as packNo from order_plate op left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id - left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id + left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.package_no where op.organ_id = #{organId} and op.deleted = false