feat(wms): 添加按时间范围查询已绑定钢卷ID功能
- 在 IWmsDeliveryWaybillDetailService 接口中新增 getBoundCoilIdsByTimeRange 方法 - 在控制器中添加 startTime 和 endTime 参数支持时间范围查询 - 实现服务层方法根据时间段筛选已绑定的钢卷ID列表 - 使用 LambdaQueryWrapper 构建时间范围查询条件 - 对查询结果进行空值检查和去重处理 - 保持原有无时间范围查询的兼容性逻辑
This commit is contained in:
@@ -2,6 +2,7 @@ package com.klp.controller;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import com.klp.domain.vo.WmsMaterialCoilBindVo;
|
import com.klp.domain.vo.WmsMaterialCoilBindVo;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -115,8 +116,17 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
|
|||||||
* 查询已发货绑定的钢卷列表
|
* 查询已发货绑定的钢卷列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/boundCoilList")
|
@GetMapping("/boundCoilList")
|
||||||
public TableDataInfo<WmsMaterialCoilBindVo> boundCoilList(WmsMaterialCoilBo bo, PageQuery pageQuery) {
|
public TableDataInfo<WmsMaterialCoilBindVo> boundCoilList(
|
||||||
List<Long> boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
WmsMaterialCoilBo bo,
|
||||||
|
PageQuery pageQuery,
|
||||||
|
@RequestParam(required = false) Date startTime,
|
||||||
|
@RequestParam(required = false) Date endTime) {
|
||||||
|
List<Long> boundCoilIds;
|
||||||
|
if (startTime != null || endTime != null) {
|
||||||
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
|
||||||
|
} else {
|
||||||
|
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
|
||||||
|
}
|
||||||
if (boundCoilIds == null || boundCoilIds.isEmpty()) {
|
if (boundCoilIds == null || boundCoilIds.isEmpty()) {
|
||||||
return new TableDataInfo<>();
|
return new TableDataInfo<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.klp.common.core.page.TableDataInfo;
|
|||||||
import com.klp.common.core.domain.PageQuery;
|
import com.klp.common.core.domain.PageQuery;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,4 +57,9 @@ public interface IWmsDeliveryWaybillDetailService {
|
|||||||
* 查询所有已绑定的钢卷ID列表
|
* 查询所有已绑定的钢卷ID列表
|
||||||
*/
|
*/
|
||||||
List<Long> getBoundCoilIds();
|
List<Long> getBoundCoilIds();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据时间段查询已绑定的钢卷ID列表
|
||||||
|
*/
|
||||||
|
List<Long> getBoundCoilIdsByTimeRange(Date startTime, Date endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,7 @@ import com.klp.domain.vo.WmsDeliveryWaybillDetailVo;
|
|||||||
import com.klp.domain.vo.WmsCoilBindInfoVo;
|
import com.klp.domain.vo.WmsCoilBindInfoVo;
|
||||||
import com.klp.service.IWmsDeliveryWaybillDetailService;
|
import com.klp.service.IWmsDeliveryWaybillDetailService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -224,5 +222,31 @@ public class WmsDeliveryWaybillDetailServiceImpl implements IWmsDeliveryWaybillD
|
|||||||
List<WmsDeliveryWaybillDetail> list = baseMapper.selectList(lqw);
|
List<WmsDeliveryWaybillDetail> list = baseMapper.selectList(lqw);
|
||||||
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
return list.stream().map(WmsDeliveryWaybillDetail::getCoilId).distinct().collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Long> getBoundCoilIdsByTimeRange(Date startTime, Date endTime) {
|
||||||
|
LambdaQueryWrapper<WmsDeliveryWaybill> 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<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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user