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); } }