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 f5154f87..22ce9eb4 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsDeliveryWaybillDetailController.java @@ -134,9 +134,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController { WmsMaterialCoilBo bo, PageQuery pageQuery, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, - @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime, + @RequestParam(required = false) Long planId) { List boundCoilIds; - if (startTime != null || endTime != null) { + if (planId != null) { + boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime); + } else if (startTime != null || endTime != null) { boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime); } else { boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds(); @@ -157,9 +160,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController { public R> getStatistics( WmsMaterialCoilBo bo, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, - @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) { + @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime, + @RequestParam(required = false) Long planId) { List boundCoilIds; - if (startTime != null || endTime != null) { + if (planId != null) { + boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime); + } else if (startTime != null || endTime != null) { boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime); } else { boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds(); 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 37ad3e87..93a2466d 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsDeliveryWaybillDetailService.java @@ -73,4 +73,9 @@ public interface IWmsDeliveryWaybillDetailService { * 根据负责人(principal)查询已绑定的钢卷ID列表 */ List getBoundCoilIdsByPrincipal(String principal); + + /** + * 根据发货计划ID查询已绑定的钢卷ID列表(可结合时间段筛选) + */ + List getBoundCoilIdsByPlanId(Long planId, 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 c5d82ddd..3275b7d9 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 @@ -338,6 +338,33 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList()); } + @Override + public List getBoundCoilIdsByPlanId(Long planId, Date startTime, Date endTime) { + LambdaQueryWrapper waybillWrapper = Wrappers.lambdaQuery(); + waybillWrapper.eq(WmsDeliveryWaybill::getPlanId, planId); + 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()); + } + @Override public List getBoundCoilIdsByPrincipal(String principal) { if (principal == null || principal.trim().isEmpty()) { diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index b21b8361..d3d8f5c8 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -630,6 +630,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.eq(StringUtils.isNotBlank(bo.getBusinessPurpose()), "mc.business_purpose", bo.getBusinessPurpose()); // 是否与订单相关(0=否,1=是) qw.eq(bo.getIsRelatedToOrder() != null, "mc.is_related_to_order", bo.getIsRelatedToOrder()); + // 加上remark的模糊匹配 + qw.like(StringUtils.isNotBlank(bo.getRemark()), "mc.remark", bo.getRemark()); //逻辑删除 qw.eq("mc.del_flag", 0); // 统一处理 warehouseId 与 warehouseIds: