From b1843065587b180bffc2eca3a055f47a39fb754f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=ABUmbrella?= <2539020564@qq.com> Date: Thu, 12 Mar 2026 17:51:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BA=93=E4=BD=8D=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E9=80=81=EF=BC=8C=E5=8F=98=E6=88=90=E4=BC=98=E5=85=88?= =?UTF-8?q?=E9=80=81=E5=86=85=E5=B1=82=EF=BC=8C=E6=9C=80=E5=90=8E=E9=80=81?= =?UTF-8?q?=E5=A4=96=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderBindController.java | 5 ---- .../service/impl/IOrderBoxServiceImpl.java | 23 ++++++++++++++----- .../service/LiquidTankTaskServiceTest.java | 18 +++++++++++++-- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java index 4226f561..cf491320 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java @@ -82,11 +82,6 @@ public class OrderBindController { return iOrderBindService.getBoxcodelist(); } - @GetMapping("/demo") - @ApiOperationSupport(order = 6) - public R demo(@RequestParam String boxCode) throws BusinessException { - return iOrderBoxService.getWcId(boxCode); - } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java index a638ef77..5a921b61 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java @@ -700,12 +700,23 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { } // 2. 尝试分配空闲库位 - List freeLocationList = locationService.list( - new LambdaQueryWrapper() - .ne(Location::getStatus, ORIGINAL_RACK) - .eq(Location::getLocationStatus, STATUS_FREE) - .orderByDesc((sql -> "RIGHT(LOCATION_CODE, 1) = '2'") - )); + List freeLocationList = null; + QueryWrapper wrapper2 = new QueryWrapper() + .ne("status", ORIGINAL_RACK) + .eq("location_status", STATUS_FREE) + .apply("SUBSTR(LOCATION_CODE, -1) = '2'"); + List list2 = locationService.list(wrapper2); + if (!list2.isEmpty()) { + // 优先返回尾号为2的位置 + freeLocationList = list2; + } else { + // 无尾号2的,查询所有符合条件的空闲位置 + freeLocationList = locationService.list( + new QueryWrapper() + .ne("status", ORIGINAL_RACK) + .eq("location_status", STATUS_FREE) + ); + } if (!CollectionUtils.isEmpty(freeLocationList)) { Location location = freeLocationList.get(0); task.setLocationId(location.getId()); diff --git a/blade-service/blade-desk/src/test/java/org/springblade/desk/quality/service/LiquidTankTaskServiceTest.java b/blade-service/blade-desk/src/test/java/org/springblade/desk/quality/service/LiquidTankTaskServiceTest.java index 7d1576f4..e95e8964 100644 --- a/blade-service/blade-desk/src/test/java/org/springblade/desk/quality/service/LiquidTankTaskServiceTest.java +++ b/blade-service/blade-desk/src/test/java/org/springblade/desk/quality/service/LiquidTankTaskServiceTest.java @@ -1,15 +1,29 @@ package org.springblade.desk.quality.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.annotation.Resource; +import org.springblade.desk.logistics.pojo.entity.Location; +import org.springblade.desk.logistics.service.ILocationService; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.util.List; + +import static org.springblade.desk.logistics.pojo.entity.Location.ORIGINAL_RACK; +import static org.springblade.desk.logistics.pojo.entity.Station.STATUS_FREE; + @SpringBootApplication class LiquidTankTaskServiceTest { @Resource - private LiquidTankTaskService222 liquidTankTaskService; + private ILocationService locationService; void contextLoads() { - + List freeLocationList = locationService.list( + new LambdaQueryWrapper() + .ne(Location::getStatus, ORIGINAL_RACK) + .eq(Location::getLocationStatus, STATUS_FREE) + .orderByDesc((sql -> "RIGHT(LOCATION_CODE, 1) = '2'") + )); + System.out.println(freeLocationList); } }