feat(wms/delivery): 新增根据发货计划ID查询已绑定钢卷功能,优化钢卷查询备注匹配
1. 在发货计划明细服务层新增getBoundCoilIdsByPlanId接口,支持根据计划ID和时间段筛选已绑定的钢卷ID列表 2. 在发货计划明细控制器中扩展已绑定钢卷查询接口,新增planId参数,优先按计划ID查询,兼容原有时间段查询逻辑 3. 在钢卷服务实现中为钢卷查询条件增加remark字段的模糊匹配支持,提升查询灵活性
This commit is contained in:
@@ -134,9 +134,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
|||||||
WmsMaterialCoilBo bo,
|
WmsMaterialCoilBo bo,
|
||||||
PageQuery pageQuery,
|
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 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<Long> boundCoilIds;
|
List<Long> 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);
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
|
||||||
} else {
|
} else {
|
||||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
||||||
@@ -157,9 +160,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
|||||||
public R<java.util.Map<String, java.math.BigDecimal>> getStatistics(
|
public R<java.util.Map<String, java.math.BigDecimal>> getStatistics(
|
||||||
WmsMaterialCoilBo bo,
|
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 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<Long> boundCoilIds;
|
List<Long> 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);
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
|
||||||
} else {
|
} else {
|
||||||
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
||||||
|
|||||||
@@ -73,4 +73,9 @@ public interface IWmsDeliveryWaybillDetailService {
|
|||||||
* 根据负责人(principal)查询已绑定的钢卷ID列表
|
* 根据负责人(principal)查询已绑定的钢卷ID列表
|
||||||
*/
|
*/
|
||||||
List<Long> getBoundCoilIdsByPrincipal(String principal);
|
List<Long> getBoundCoilIdsByPrincipal(String principal);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据发货计划ID查询已绑定的钢卷ID列表(可结合时间段筛选)
|
||||||
|
*/
|
||||||
|
List<Long> getBoundCoilIdsByPlanId(Long planId, Date startTime, Date endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -338,6 +338,33 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD
|
|||||||
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Long> getBoundCoilIdsByPlanId(Long planId, Date startTime, Date endTime) {
|
||||||
|
LambdaQueryWrapper<WmsDeliveryWaybill> 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<WmsDeliveryWaybill> waybills = wmsDeliveryWaybillMapper.selectList(waybillWrapper);
|
||||||
|
if (waybills == null || waybills.isEmpty()) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> waybillIds = waybills.stream().map(WmsDeliveryWaybill::getWaybillId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
LambdaQueryWrapper<WmsDeliveryWaybillDetail> detailWrapper = Wrappers.lambdaQuery();
|
||||||
|
detailWrapper.in(WmsDeliveryWaybillDetail::getWaybillId, waybillIds);
|
||||||
|
detailWrapper.isNotNull(WmsDeliveryWaybillDetail::getCoilId);
|
||||||
|
detailWrapper.eq(WmsDeliveryWaybillDetail::getDelFlag, 0);
|
||||||
|
detailWrapper.select(WmsDeliveryWaybillDetail::getCoilId);
|
||||||
|
List<WmsDeliveryWaybillDetail> list = baseMapper.selectList(detailWrapper);
|
||||||
|
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Long> getBoundCoilIdsByPrincipal(String principal) {
|
public List<Long> getBoundCoilIdsByPrincipal(String principal) {
|
||||||
if (principal == null || principal.trim().isEmpty()) {
|
if (principal == null || principal.trim().isEmpty()) {
|
||||||
|
|||||||
@@ -630,6 +630,8 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
qw.eq(StringUtils.isNotBlank(bo.getBusinessPurpose()), "mc.business_purpose", bo.getBusinessPurpose());
|
qw.eq(StringUtils.isNotBlank(bo.getBusinessPurpose()), "mc.business_purpose", bo.getBusinessPurpose());
|
||||||
// 是否与订单相关(0=否,1=是)
|
// 是否与订单相关(0=否,1=是)
|
||||||
qw.eq(bo.getIsRelatedToOrder() != null, "mc.is_related_to_order", bo.getIsRelatedToOrder());
|
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);
|
qw.eq("mc.del_flag", 0);
|
||||||
// 统一处理 warehouseId 与 warehouseIds:
|
// 统一处理 warehouseId 与 warehouseIds:
|
||||||
|
|||||||
Reference in New Issue
Block a user