同一货主可以在多个仓库进行租赁

This commit is contained in:
zhou-hongcheng
2026-03-02 09:10:20 +08:00
parent 0227379e07
commit 6b3c73f25a
@@ -149,7 +149,7 @@ public class LeaseApplicationService {
leaseDO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); leaseDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
leaseDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId()); leaseDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
} }
List<Lease> timeOverlapSimple = isTimeOverlapSimple(leaseDO.getCargoOwnerName(), leaseDO.getStartDate(), leaseDO.getEndDate(), null); List<Lease> timeOverlapSimple = isTimeOverlapSimple(leaseDO.getCargoOwnerName(), leaseDO.getStartDate(), leaseDO.getEndDate(), null,leaseDO.getWarehouseId());
if (ObjectUtil.isNotEmpty(timeOverlapSimple)) { if (ObjectUtil.isNotEmpty(timeOverlapSimple)) {
throw new ServiceException("同一货主租赁信息时间不能重叠"); throw new ServiceException("同一货主租赁信息时间不能重叠");
} }
@@ -166,12 +166,13 @@ public class LeaseApplicationService {
leaseDO.setWarehouseName(warehouseFeignPO.getWarehouseName()); leaseDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
} }
private List<Lease> isTimeOverlapSimple(String cargoOwnerName, Date startDate, Date endDate, Long excludeId) { private List<Lease> isTimeOverlapSimple(String cargoOwnerName, Date startDate, Date endDate, Long excludeId,Long warehouseId) {
LambdaQueryWrapper<Lease> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Lease> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Lease::getCargoOwnerName, cargoOwnerName) wrapper.eq(Lease::getCargoOwnerName, cargoOwnerName)
.eq(Lease::getDelFlag, 1) // 只查询正常状态 .eq(Lease::getDelFlag, 1) // 只查询正常状态
.le(Lease::getStartDate, endDate) .le(Lease::getStartDate, endDate)
.ge(Lease::getEndDate, startDate); .ge(Lease::getEndDate, startDate)
.eq(Lease::getWarehouseId, warehouseId);
if (excludeId != null) { if (excludeId != null) {
wrapper.ne(Lease::getId, excludeId); wrapper.ne(Lease::getId, excludeId);
} }
@@ -182,7 +183,7 @@ public class LeaseApplicationService {
* 修改租赁管理 * 修改租赁管理
*/ */
public Boolean update(LeaseDO leaseDO) { public Boolean update(LeaseDO leaseDO) {
List<Lease> timeOverlapSimple = isTimeOverlapSimple(leaseDO.getCargoOwnerName(), leaseDO.getStartDate(), leaseDO.getEndDate(), leaseDO.getId()); List<Lease> timeOverlapSimple = isTimeOverlapSimple(leaseDO.getCargoOwnerName(), leaseDO.getStartDate(), leaseDO.getEndDate(), leaseDO.getId(),leaseDO.getWarehouseId());
if (ObjectUtil.isNotEmpty(timeOverlapSimple)) { if (ObjectUtil.isNotEmpty(timeOverlapSimple)) {
throw new ServiceException("同一货主租赁信息时间不能重叠"); throw new ServiceException("同一货主租赁信息时间不能重叠");
} }