From a637bb1661c8a0028399406127cc42c82b9d8a3f Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 23 Apr 2026 11:40:01 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81getOrderSource=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9B2=E3=80=81=E6=9C=AA=E6=8E=92?= =?UTF-8?q?=E5=8D=95=20-=20=E8=AE=A2=E5=8D=95=E5=88=86=E9=A1=B5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2sql=E4=BC=98=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/planitem/PlanItemMapper.java | 4 +- .../service/plan/PlanServiceImpl.java | 20 ++-- .../mapper/planitem/PlanItemMapper.xml | 113 +++++++++++------- .../resources/mapper/plate/PlateMapper.xml | 3 +- 4 files changed, 82 insertions(+), 58 deletions(-) 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