From ca0a5f9b408ceef20ffdd06b58a07939fcc68b8f Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Fri, 11 Apr 2025 15:52:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A0=87=E7=AD=BE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E6=8E=A5=E5=8F=A3-=E5=8C=85=E8=A3=B9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/vo/order/LabelOrderPackData.java | 30 +++++-- .../dal/mysql/pack/OrderPackageMapper.java | 14 ++-- .../service/order/OrderServiceImpl.java | 82 ++++++++++++++----- .../mapper/pack/OrderPackageMapper.xml | 41 +++++++++- 4 files changed, 132 insertions(+), 35 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java index 0dabfa488..f6bd05606 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java @@ -1,13 +1,19 @@ package com.cf.imes.module.executor.controller.admin.order.vo.order; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Schema(description = "标签对应的订单包裹数据源信息") @Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class LabelOrderPackData { @@ -15,16 +21,30 @@ public class LabelOrderPackData { private Long orderNo; - @Schema(description = "包裹号-包裹编号") - private List packageNo; +// @Schema(description = "包裹号-包裹编号") +// private List packageNo; +// +// +// @Schema(description = "包裹ID") +// private List packageId; - - @Schema(description = "包裹ID") - private List packageId; + @Schema(description = "包裹列表") + private List packageInfos; @Schema(description = "包裹数量") private Integer packNum; + @Data + public static class PackageInfo { + @Schema(description = "包裹号") + private String packageNo; + + @Schema(description = "包裹ID") + private Long packageId; + + } + + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/pack/OrderPackageMapper.java index bad01ffcd..c8af669be 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/pack/OrderPackageMapper.java @@ -99,14 +99,18 @@ public interface OrderPackageMapper extends BaseMapperX { - default List selectPartPack(List orderIds, Long organId) { + List selectPartPack(@Param("orderIds") List orderIds,@Param("organId") Long organId,@Param("type") Integer type ,@Param("status") Integer status); + + + + default List selectPackListByIds(List packIds, Long organId) { return selectList(new LambdaQueryWrapperX() .eq(OrderPackageDO::getOrganId,organId) .eq(OrderPackageDO::getDeleted,false) - .inIfPresent(OrderPackageDO::getOrderId, orderIds) - .eqIfPresent(OrderPackageDO::getType, OrderPackageTypeEnum.PARTS.getType()) - .select(OrderPackageDO::getId,OrderPackageDO::getOrderId)); + .inIfPresent(OrderPackageDO::getId, packIds) + .eqIfPresent(OrderPackageDO::getStatus,OrderPackageStatusEnum.PACKAGED.getStatus()) + .select(OrderPackageDO::getId,OrderPackageDO::getOrderId,OrderPackageDO::getPackageNo)); + } - } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index 4f1c05353..1894c2dab 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.enums.DeletedCodeEnum; import com.cf.imes.framework.common.enums.OrderPackageStatusEnum; +import com.cf.imes.framework.common.enums.OrderPackageTypeEnum; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageResult; @@ -1522,32 +1523,15 @@ public class OrderServiceImpl implements OrderService { }); + // 包裹信息 if(CollUtil.isNotEmpty(packIds)) { - // 包裹信息 - List labelOrderPackData = orderPackageMapper.selectLabelOrderPackData(packIds, organId); - labelOrderPackData.forEach(f -> f.setPackNum(f.getPackageId().size())); - - // 查询是否有 配件 类型包裹 - List partPackList = orderPackageMapper.selectPartPack(orderIds, getUserOrganId()); - - if(CollUtil.isNotEmpty(partPackList)){ - labelOrderPackData.forEach(f->{ - - f.setPackNum( f.getPackNum() + partPackList.stream().filter(p->p.getOrderId().equals(f.getOrderNo())).toList().size()); - }); - - } - - - List packageDOS = orderPackageMapper.selectBatchIds(packIds); - - labelOrderPlateData.forEach(f->f.setPackageSerialNo(packageDOS.stream().filter(o->o.getId().equals(f.getPackageNo())).findFirst().orElse(new OrderPackageDO()).getPackageNo())); - - orderAllData.setPackDataList(labelOrderPackData); + getLabelOrderPackData(packIds,organId,orderIds,labelOrderPlateData,orderAllData); } + + // 补充缺少的小板信息 labelOrderPlateData.forEach(f->{ f.setOrderDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getOrderDate()); @@ -1566,4 +1550,60 @@ public class OrderServiceImpl implements OrderService { } + + + // 获取包裹信息 + private void getLabelOrderPackData(List packIds, + Long organId, + List orderIds, + List labelOrderPlateData, + OrderAllData orderAllData){ + + // 板材包裹信息 + List labelOrderPackData = orderPackageMapper.selectLabelOrderPackData(packIds, organId); + + labelOrderPackData.forEach(f -> f.setPackNum(f.getPackageInfos().size())); + + // 查询是否有 配件 类型包裹 + List partPackList = orderPackageMapper.selectPartPack(orderIds, getUserOrganId(), OrderPackageTypeEnum.PARTS.getType(),OrderPackageStatusEnum.PACKAGED.getStatus()); + + if(CollUtil.isNotEmpty(partPackList)){ + + partPackList.forEach(f->f.setPackNum(f.getPackageInfos().size())); + + // 板材包裹为空时,且配件包裹不为空,需要加入配件包裹的信息 + if(CollUtil.isEmpty(labelOrderPackData)){ + partPackList.forEach(f->labelOrderPackData.add(LabelOrderPackData.builder().orderNo(f.getOrderNo()).build())); + } + + + // 添加缺少的配件包裹信息 + labelOrderPackData.forEach(f-> { + Integer packNum = partPackList.stream() + .filter(p -> f.getOrderNo().equals(p.getOrderNo())) + .mapToInt(p -> p.getPackNum() != null ? p.getPackNum() : 0) + .sum(); + + f.setPackNum( Optional.ofNullable(f.getPackNum()).orElse(0) + packNum); + + f.setPackageInfos(Optional.ofNullable(f.getPackageInfos()).orElse(new ArrayList<>())); + + f.getPackageInfos().addAll(partPackList.stream() + .filter(p->p.getOrderNo().equals(f.getOrderNo())) + .map(LabelOrderPackData::getPackageInfos) + .findAny().orElse(new ArrayList<>())); + }); + } + + + List packageDOS = orderPackageMapper.selectPackListByIds(packIds,getUserOrganId()); + + labelOrderPlateData.forEach(f->f.setPackageSerialNo(packageDOS.stream().filter(o->o.getId().equals(f.getPackageNo())).findFirst().orElse(new OrderPackageDO()).getPackageNo())); + + orderAllData.setPackDataList(labelOrderPackData); + + + } + + } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml index a7c93b137..9f2283506 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml @@ -158,8 +158,13 @@ - - + + + + + @@ -171,9 +176,9 @@ select distinct - order_id as orderNo, + package_no as packageNo, id as packageId, - package_no as packageNo + order_id as orderNo from order_package @@ -183,6 +188,34 @@ #{packIds} + and status = 1 + + + + + + + +