From 17c1ed20f458c256168049c5742b195d4476993e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 26 Feb 2026 18:12:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(delivery):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E6=B8=85=E5=8D=95=E7=89=A9=E6=96=99=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A1=B9=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DeliveryController 中替换原有的复杂查询为简化的 getItemsVO 方法调用 - 添加 ShipmentMaterialCodeItemVO 类型导入到相关接口和服务实现 - 在 IWmsShipmentDeliveryItemService 接口中新增 getItemsVO 方法定义 - 在 WmsShipmentDeliveryItemMapper 接口中新增 getItemsVO 查询方法 - 实现 MyBatis XML 查询映射,使用 SQL JOIN 和聚合函数优化数据获取 - 在 WmsShipmentDeliveryItemServiceImpl 中实现 getItemsVO 业务逻辑 - 移除控制器中被注释的原始查询代码以提高代码整洁性 --- .../mapper/WmsShipmentDeliveryItemMapper.java | 4 ++++ .../IWmsShipmentDeliveryItemService.java | 4 ++++ .../WmsShipmentDeliveryItemServiceImpl.java | 7 +++++++ .../mapper/WmsShipmentDeliveryItemMapper.xml | 9 +++++++++ .../controller/DeliveryController.java | 19 +++++++++--------- .../template/发货清单模版.xlsx | Bin 12006 -> 15001 bytes 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryItemMapper.java index bbdb0e54..61b0df5c 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryItemMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentDeliveryItemMapper.java @@ -1,8 +1,11 @@ package com.nflg.wms.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO; import com.nflg.wms.repository.entity.WmsShipmentDeliveryItem; +import java.util.List; + /** *

* Mapper 接口 @@ -13,4 +16,5 @@ import com.nflg.wms.repository.entity.WmsShipmentDeliveryItem; */ public interface WmsShipmentDeliveryItemMapper extends BaseMapper { + List getItemsVO(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryItemService.java index be8bdd94..920c9f61 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryItemService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentDeliveryItemService.java @@ -1,8 +1,11 @@ package com.nflg.wms.repository.service; +import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO; import com.nflg.wms.repository.entity.WmsShipmentDeliveryItem; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IWmsShipmentDeliveryItemService extends IService { + List getItemsVO(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryItemServiceImpl.java index 49e03ca7..65cbd083 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryItemServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentDeliveryItemServiceImpl.java @@ -1,11 +1,14 @@ package com.nflg.wms.repository.service.impl; +import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeItemVO; import com.nflg.wms.repository.entity.WmsShipmentDeliveryItem; import com.nflg.wms.repository.mapper.WmsShipmentDeliveryItemMapper; import com.nflg.wms.repository.service.IWmsShipmentDeliveryItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 服务实现类 @@ -17,4 +20,8 @@ import org.springframework.stereotype.Service; @Service public class WmsShipmentDeliveryItemServiceImpl extends ServiceImpl implements IWmsShipmentDeliveryItemService { + @Override + public List getItemsVO(Long id) { + return baseMapper.getItemsVO(id); + } } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryItemMapper.xml index a14c6d77..cce2a70f 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentDeliveryItemMapper.xml @@ -2,4 +2,13 @@ + diff --git a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java index 48a947c4..f96dfe26 100644 --- a/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java +++ b/nflg-wms-shipment/src/main/java/com/nflg/wms/shipment/controller/DeliveryController.java @@ -203,15 +203,16 @@ public class DeliveryController extends BaseController { WmsShipmentDelivery delivery = deliveryService.getById(id); VUtil.trueThrowBusinessError(Objects.isNull(delivery)).throwMessage("清单不存在"); AtomicInteger index = new AtomicInteger(1); - List list = deliveryItemService.lambdaQuery() - .eq(WmsShipmentDeliveryItem::getDeliveryId, id) - .orderByAsc(WmsShipmentDeliveryItem::getId) - .list() - .stream().map(item -> { - ShipmentMaterialCodeItemVO vo = Convert.convert(ShipmentMaterialCodeItemVO.class, item); - vo.setIndex(index.getAndIncrement()); - return vo; - }).toList(); +// List list = deliveryItemService.lambdaQuery() +// .eq(WmsShipmentDeliveryItem::getDeliveryId, id) +// .orderByAsc(WmsShipmentDeliveryItem::getId) +// .list() +// .stream().map(item -> { +// ShipmentMaterialCodeItemVO vo = Convert.convert(ShipmentMaterialCodeItemVO.class, item); +// vo.setIndex(index.getAndIncrement()); +// return vo; +// }).toList(); + List list = deliveryItemService.getItemsVO(id); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("发货清单-" + delivery.getNo() + ".xlsx", StandardCharsets.UTF_8)); new Workbook() diff --git a/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx b/nflg-wms-shipment/src/main/resources/template/发货清单模版.xlsx index b646b7451d3d4eda634eb0893f61be5d1a125364..e71813468270339261422af42cff09d8ffb267e4 100644 GIT binary patch delta 13078 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