From dc170c77d935a948ea991cc1f4f71902b31165e6 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 27 Apr 2026 17:28:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(delivery):=20=E6=B7=BB=E5=8A=A0=E6=8C=89?= =?UTF-8?q?=E8=B4=9F=E8=B4=A3=E4=BA=BA=E6=9F=A5=E8=AF=A2=E5=B7=B2=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E9=92=A2=E5=8D=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsDeliveryWaybillDetailService 中新增 getBoundCoilIdsByPrincipal 方法 - 在 WmsDeliveryWaybillDetailController 中添加 coilListByPrincipal 接口 - 实现 WmsDeliveryWaybillDetailServiceImpl 中的 getBoundCoilIdsByPrincipal 逻辑 - 使用 LambdaQueryWrapper 查询指定负责人的运单及关联钢卷信息 - 添加参数校验和空值处理机制 --- .../WmsDeliveryWaybillDetailController.java | 23 ++++++++++++++--- .../IWmsDeliveryWaybillDetailService.java | 5 ++++ .../WmsDeliveryWaybillDetailServiceImpl.java | 25 +++++++++++++++++++ 3 files changed, 49 insertions(+), 4 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 f44e089f..f5154f87 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java @@ -1,11 +1,9 @@ package com.klp.controller; -import java.util.HashMap; -import java.util.List; -import java.util.Arrays; -import java.util.Date; +import java.util.*; import java.util.stream.Collectors; +import com.klp.domain.vo.WmsMaterialCoilVo; import org.springframework.format.annotation.DateTimeFormat; import com.klp.domain.vo.WmsMaterialCoilBindVo; @@ -172,4 +170,21 @@ public class WmsDeliveryWaybillDetailController extends BaseController { bo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(Collectors.joining(","))); return R.ok(iWmsMaterialCoilService.getStatistics(bo)); } + + + /** + * 根据负责人(principal)查询已发货绑定的钢卷列表 + */ + @GetMapping("/coilListByPrincipal") + public List coilListByPrincipal( + @RequestParam(required = false) String principal) { + List boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPrincipal(principal); + if (boundCoilIds == null || boundCoilIds.isEmpty()) { + return Collections.emptyList(); + } + WmsMaterialCoilBo wmsMaterialCoilBo = new WmsMaterialCoilBo(); + wmsMaterialCoilBo.setCoilIds(boundCoilIds.stream().map(String::valueOf).collect(Collectors.joining(","))); + return iWmsMaterialCoilService.queryList(wmsMaterialCoilBo); + } + } 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 9f2149c2..37ad3e87 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java @@ -68,4 +68,9 @@ public interface IWmsDeliveryWaybillDetailService { * 根据时间段查询已绑定的钢卷ID列表 */ List getBoundCoilIdsByTimeRange(Date startTime, Date endTime); + + /** + * 根据负责人(principal)查询已绑定的钢卷ID列表 + */ + List getBoundCoilIdsByPrincipal(String principal); } 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 cd2ad4ef..c5d82ddd 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 @@ -337,5 +337,30 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD List list = baseMapper.selectList(detailWrapper); return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList()); } + + @Override + public List getBoundCoilIdsByPrincipal(String principal) { + if (principal == null || principal.trim().isEmpty()) { + return Collections.emptyList(); + } + + LambdaQueryWrapper waybillWrapper = Wrappers.lambdaQuery(); + waybillWrapper.eq(WmsDeliveryWaybill::getPrincipal, principal); + waybillWrapper.eq(WmsDeliveryWaybill::getDelFlag, 0); + 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()); + } }