From 47198a0d01d8595715919f7f255d52073478f40c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 3 Apr 2026 13:48:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E6=8C=89?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E6=9F=A5=E8=AF=A2=E5=B7=B2?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=92=A2=E5=8D=B7ID=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsDeliveryWaybillDetailService 接口中新增 getBoundCoilIdsByTimeRange 方法 - 在控制器中添加 startTime 和 endTime 参数支持时间范围查询 - 实现服务层方法根据时间段筛选已绑定的钢卷ID列表 - 使用 LambdaQueryWrapper 构建时间范围查询条件 - 对查询结果进行空值检查和去重处理 - 保持原有无时间范围查询的兼容性逻辑 --- .../WmsDeliveryWaybillDetailController.java | 14 +++++++-- .../IWmsDeliveryWaybillDetailService.java | 6 ++++ .../WmsDeliveryWaybillDetailServiceImpl.java | 30 +++++++++++++++++-- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java index ca9aa85c..587b00ea 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java @@ -2,6 +2,7 @@ package com.klp.controller; import java.util.List; import java.util.Arrays; +import java.util.Date; import com.klp.domain.vo.WmsMaterialCoilBindVo; import lombok.RequiredArgsConstructor; @@ -115,8 +116,17 @@ public class WmsDeliveryWaybillDetailController extends BaseController { * 查询已发货绑定的钢卷列表 */ @GetMapping("/boundCoilList") - public TableDataInfo boundCoilList(WmsMaterialCoilBo bo, PageQuery pageQuery) { - List boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds(); + public TableDataInfo boundCoilList( + WmsMaterialCoilBo bo, + PageQuery pageQuery, + @RequestParam(required = false) Date startTime, + @RequestParam(required = false) Date endTime) { + List boundCoilIds; + if (startTime != null || endTime != null) { + boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime); + } else { + boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds(); + } if (boundCoilIds == null || boundCoilIds.isEmpty()) { return new TableDataInfo<>(); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java index 12aaed86..49b43244 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java @@ -7,6 +7,7 @@ import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import java.util.Collection; +import java.util.Date; import java.util.List; /** @@ -56,4 +57,9 @@ public interface IWmsDeliveryWaybillDetailService { * 查询所有已绑定的钢卷ID列表 */ List getBoundCoilIds(); + + /** + * 根据时间段查询已绑定的钢卷ID列表 + */ + List getBoundCoilIdsByTimeRange(Date startTime, Date endTime); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillDetailServiceImpl.java index cd078b36..ce4ad545 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillDetailServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryWaybillDetailServiceImpl.java @@ -21,9 +21,7 @@ import com.klp.domain.vo.WmsDeliveryWaybillDetailVo; import com.klp.domain.vo.WmsCoilBindInfoVo; import com.klp.service.IWmsDeliveryWaybillDetailService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.stream.Collectors; /** @@ -224,5 +222,31 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD List list = baseMapper.selectList(lqw); return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList()); } + + @Override + public List getBoundCoilIdsByTimeRange(Date startTime, Date endTime) { + LambdaQueryWrapper waybillWrapper = Wrappers.lambdaQuery(); + waybillWrapper.eq(WmsDeliveryWaybill::getDelFlag, 0); + if (startTime != null) { + waybillWrapper.ge(WmsDeliveryWaybill::getDeliveryTime, startTime); + } + if (endTime != null) { + waybillWrapper.le(WmsDeliveryWaybill::getDeliveryTime, endTime); + } + List waybills = wmsDeliveryWaybillMapper.selectList(waybillWrapper); + if (waybills == null || waybills.isEmpty()) { + return Collections.emptyList(); + } + + List waybillIds = waybills.stream().map(WmsDeliveryWaybill::getWaybillId).collect(Collectors.toList()); + + LambdaQueryWrapper detailWrapper = Wrappers.lambdaQuery(); + detailWrapper.in(WmsDeliveryWaybillDetail::getWaybillId, waybillIds); + detailWrapper.isNotNull(WmsDeliveryWaybillDetail::getCoilId); + detailWrapper.eq(WmsDeliveryWaybillDetail::getDelFlag, 0); + detailWrapper.select(WmsDeliveryWaybillDetail::getCoilId); + List list = baseMapper.selectList(detailWrapper); + return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList()); + } }