From 36ab949f1777f1d82d725f57054d92601ba0c0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=ABUmbrella?= <2539020564@qq.com> Date: Mon, 30 Mar 2026 18:04:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=B5=81=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/logistics/pojo/entity/Task.java | 5 + .../controller/PipelineController.java | 9 +- .../desk/logistics/mapper/StationMapper.java | 2 +- .../desk/logistics/mapper/StationMapper.xml | 7 +- .../logistics/service/IOrderBoxService.java | 17 +-- .../logistics/service/IStationService.java | 2 +- .../service/impl/IOrderBoxServiceImpl.java | 122 +++++++++++------- .../service/impl/StationServiceImpl.java | 4 +- .../impl/StorageMonitoringServiceImpl.java | 3 +- 9 files changed, 106 insertions(+), 65 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java index 26bd50c9..65b2d2bf 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java @@ -119,6 +119,11 @@ public class Task extends BaseEntity { */ @Schema(description = "备注") private String remark; + /** + * 站点区域 + */ + @Schema(description = "站点区域") + private String stationRegion; public static String getStatusName(Integer taskStatus) { String name=""; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java index 78355bd8..abe08240 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java @@ -47,6 +47,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; +import java.util.LinkedHashMap; +import java.util.Map; /** @@ -82,11 +84,12 @@ public class PipelineController extends BladeController { ReturnToWarehouseDto returnToWarehouseDto = new ReturnToWarehouseDto(); returnToWarehouseDto.setBoxBarcode(boxBarcode); R wcIdR = iOrderBoxService.getWcId(boxBarcode); - Long wcId = (Long) wcIdR.getData(); - if (wcId==null) { + LinkedHashMap map = (LinkedHashMap) wcIdR.getData(); + if (map==null) { return R.fail("未查询到该箱条码的作业中心"); } - returnToWarehouseDto.setEndWcId(wcId); + returnToWarehouseDto.setEndWcId((Long) map.get("wcId")); + returnToWarehouseDto.setStationRegion((String) map.get("stationRegion")); R taskR = iOrderBoxService.saveTask(returnToWarehouseDto, false); if (!taskR.isSuccess()) { return taskR; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.java index 1ce60f8d..147e6175 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.java @@ -16,5 +16,5 @@ public interface StationMapper extends BaseMapper { List selectStationList(IPage page, @Param("station") Station station); - List getStatusStationList(@Param("stationStatus")Integer stationStatus, @Param("wcId")Long wcId,@Param("status")Integer status, @Param("include")boolean include); + List getStatusStationList(@Param("stationStatus")Integer stationStatus,@Param("stationStatusInclude") boolean stationStatusInclude, @Param("wcId")Long wcId, @Param("status")Integer status, @Param("include")boolean include); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml index c8016af3..856c6336 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/StationMapper.xml @@ -44,7 +44,12 @@ where l.IS_DELETED = 0 - and l.STATION_STATUS = #{stationStatus} + + and l.STATION_STATUS = #{stationStatus} + + + and l.STATION_STATUS != #{stationStatus} + and r.WC_ID = #{wcId} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBoxService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBoxService.java index eba90ca3..3e270d04 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBoxService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBoxService.java @@ -20,11 +20,11 @@ public interface IOrderBoxService { * 维护订单配件重量 * 功能:根据卡号(cardNo)更新对应订单配件的实际重量信息 * - * @param cardNo 配件卡号/标识,唯一标识需要更新重量的订单配件 + * @param cardNo 配件卡号/标识,唯一标识需要更新重量的订单配件 * @param actualWeight 实际称重的重量值,精度由业务场景决定(如千克/克) * @return R 通用返回结果 - * - 成功:R.success(),可携带更新成功的提示信息或数据 - * - 失败:R.fail(),携带具体的失败原因(如卡号不存在、重量非法等) + * - 成功:R.success(),可携带更新成功的提示信息或数据 + * - 失败:R.fail(),携带具体的失败原因(如卡号不存在、重量非法等) */ R upholdOrderPartWeight(String cardNo, BigDecimal actualWeight); @@ -34,26 +34,27 @@ public interface IOrderBoxService { * * @param boxBinding 箱绑定实体类,包含箱条码、订单ID列表、任务ID等核心绑定信息 * @return R 通用返回结果 - * - 成功:R.success(),携带绑定成功的提示或绑定记录数 - * - 失败:R.fail(),携带失败原因(如箱条码不存在、订单已绑定、唯一约束冲突等) + * - 成功:R.success(),携带绑定成功的提示或绑定记录数 + * - 失败:R.fail(),携带失败原因(如箱条码不存在、订单已绑定、唯一约束冲突等) */ R boxBinding(BoxBindingDto boxBinding); - R returnToWarehouseList(); - R receive(String stationCode) throws BusinessException; - R saveTask(ReturnToWarehouseDto returnToWarehouseDto,Boolean agvSend); + R saveTask(ReturnToWarehouseDto returnToWarehouseDto, Boolean agvSend); + R getWcId(String boxBarcode); R getQuantityLocation(String boxBarcode); + R getBoxbarcodeDetails(String boxBarcode); R getStationNameBoxBarcode(String stationCode); R getStationRegion(); + } \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java index 0755f2ce..18d2565c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java @@ -72,5 +72,5 @@ public interface IStationService extends BaseService { */ boolean updateStation(Station station); - List getStatusStationList(Integer stationStatus, Long wcId,Integer status, boolean include); + List getStatusStationList(Integer stationStatus, boolean stationStatusInclude, Long wcId,Integer status, boolean include); } 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 0f31f64a..e0d71e19 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 @@ -243,7 +243,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { // 1. 查询空闲状态的站点 - List freeStationList = stationService.getStatusStationList(STATUS_FREE, null,CONVEYOR_LINE_RECEIVE_ONLY,false); + List freeStationList = stationService.getStatusStationList(STATUS_FREE, true,null, CONVEYOR_LINE_RECEIVE_ONLY, false); // 2. 构建返回列表(默认添加输送线回库选项) List resultList = new ArrayList<>(); BsWorkCenterVO conveyorVO = new BsWorkCenterVO(); @@ -254,10 +254,10 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { // 3. 补充空闲站点关联的工位信息 if (!CollectionUtils.isEmpty(freeStationList)) { List wcIdList = freeStationList.stream() - .map( StationVO::getWcId) + .map(StationVO::getWcId) .distinct() .collect(Collectors.toList()); - List wcVOList = bsWorkCenterService.getByIds(wcIdList,freeStationList); + List wcVOList = bsWorkCenterService.getByIds(wcIdList, freeStationList); if (!CollectionUtils.isEmpty(wcVOList)) { resultList.addAll(wcVOList); log.info("【回库工位查询】查询到{}个空闲工位", wcVOList.size()); @@ -350,7 +350,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { Task task = new Task(); // 3. 处理起始站点编码 - R startStationResult = handleStartStationCode(returnToWarehouseDto,agvSend); + R startStationResult = handleStartStationCode(returnToWarehouseDto, agvSend); if (!startStationResult.isSuccess()) { return startStationResult; } @@ -371,6 +371,9 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { // 5. 设置结束工位ID并处理不同回库类型 Long endWcId = returnToWarehouseDto.getEndWcId(); task.setWcId(endWcId); + if (!returnToWarehouseDto.getStationRegion().isEmpty()) { + task.setStationRegion(returnToWarehouseDto.getStationRegion()); + } if (endWcId == 0) { // 5.1 输送线回库:校验空箱数量 // R conveyorCheckResult = checkConveyorEmptyBoxCount(); @@ -381,7 +384,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { endStationCode = DROPOFF_CONVEYOR_LINE; } else { // 5.2 普通工位回库:分配站点/库位 - R locationResult = allocateSiteOrLocation(startStationCode, task,agvSend); + R locationResult = allocateSiteOrLocation(returnToWarehouseDto, task, agvSend); if (!locationResult.isSuccess()) { return locationResult; } @@ -408,6 +411,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { // 8. 发送AGV调度任务(可选) if (agvSend) { R reult = sendAgvSchedulingTask(task, startStationCode, endStationCode); + if (!reult.isSuccess()) { taskService.removeById(task); } @@ -430,7 +434,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { * */ @Override - public R getWcId(String boxBarcode) { + public R> getWcId(String boxBarcode) { log.info("【工位ID查询】开始处理 - 箱条码:{}", boxBarcode); // 1. 参数校验 @@ -449,17 +453,25 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { log.warn("【工位ID查询】箱条码{}未绑定任何订单", boxBarcode); return R.fail("该箱子没有绑定数据"); } + Long wcID = orderBindList.get(0).getWcID(); + BsWorkCenterEntity workCenter = bsWorkCenterService.getById(wcID); - // 3. 查询工位ID -// Long orderId = orderBindList.get(0).getOrderId(); -// Long wcId = yieldOrderService.getWcId(orderId); -// log.info("【工位ID查询】箱条码{}对应的工位ID:{}", boxBarcode, wcId); + LinkedHashMap map = new LinkedHashMap<>(); + map.put("wcId",wcID); + if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) { + String useDept = yieldOrderService.list(new LambdaQueryWrapper().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo())).get(0).getUseDept(); + String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); + String logisticsAnagementRegion = DictCache.getValue(code, useDept); + map.put("stationRegion",logisticsAnagementRegion); - return R.data(orderBindList.get(0).getWcID()); + }else { + List statusStationList = stationService.getStatusStationList(STATUS_FREE, true,wcID, CONVEYOR_LINE_RECEIVE_ONLY, false); + map.put("stationRegion",statusStationList.get(0).getStationRegion()); + } + return R.data(map); } - // ========================== 私有工具方法 ========================== /** @@ -537,6 +549,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); } + /** * 计算订单列表总重量 *

累加订单的实际称重值,过滤null值,初始值为0

@@ -565,7 +578,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { * @param orderIdList 订单ID列表 * @return R 保存结果 */ - private R saveOrderBoxBinding(String boxBarcode, ArrayList orderIdList,Long wcId) { + private R saveOrderBoxBinding(String boxBarcode, ArrayList orderIdList, Long wcId) { if (CollectionUtils.isEmpty(orderIdList)) { return R.fail("订单id不能为空"); } @@ -609,15 +622,15 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { if (CollectionUtils.isEmpty(stationList)) { return R.fail("站点编码不存在"); } - // 校验站点是否空闲 - if (!stationList.get(0).getStationStatus().equals(STATUS_FREE)) { - return R.fail("起始站点非空闲状态,无法使用"); - } +// // 校验站点是否空闲 +// if (!stationList.get(0).getStationStatus().equals(STATUS_FREE)) { +// return R.fail("起始站点非空闲状态,无法使用"); +// } log.info(String.valueOf(stationList.get(0))); // 校验站点是否可以发送数据 - if (stationList.get(0).getStatus().equals(CONVEYOR_LINE_RECEIVE_ONLY)&&agvSend) { + if (stationList.get(0).getStatus().equals(CONVEYOR_LINE_RECEIVE_ONLY) && agvSend) { return R.fail("起始站点站码无法当开始站点编码"); - }else if (!stationList.get(0).getStatus().equals(CONVEYOR_LINE_RECEIVE_ONLY)&&!agvSend) { + } else if (!stationList.get(0).getStatus().equals(CONVEYOR_LINE_RECEIVE_ONLY) && !agvSend) { return R.fail("起始站点站码无法当开始站点编码"); } return R.data(startStationCode); @@ -671,26 +684,29 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { /** * 分配站点/库位资源(优先级:站点 → 库位) * - * @param startStationCode - * @param task 任务对象(含工位ID) + * @param returnToWarehouseDto + * @param task 任务对象(含工位ID) * @param agvSend * @return R 分配后的任务对象 */ - private R allocateSiteOrLocation(String startStationCode, Task task, Boolean agvSend) { + private R allocateSiteOrLocation(ReturnToWarehouseDto returnToWarehouseDto, Task task, Boolean agvSend) { // 1. 尝试分配空闲站点 -// List freeStationList = stationService.list( -// new LambdaQueryWrapper() -// .eq(Station::getWcId, task.getWcId()) -// .eq(Station::getStationStatus, STATUS_FREE) -// ); - List freeStationList =null; + List freeStationList = null; if (agvSend) { - freeStationList=stationService.getStatusStationList(STATUS_FREE, task.getWcId(), CONVEYOR_LINE_RECEIVE_ONLY, false); - }else { - freeStationList=stationService.getStatusStationList(STATUS_FREE, task.getWcId(), STATION_RECEIVE_ONLY, false); - } + freeStationList = stationService.getStatusStationList(STATUS_FREE, true,task.getWcId(), CONVEYOR_LINE_RECEIVE_ONLY, false); + } else { + freeStationList = stationService.getStatusStationList(STATUS_FREE, true,task.getWcId(), STATION_RECEIVE_ONLY, false); + } + String wcName = bsWorkCenterService.getById(task.getWcId()).getWcName(); + if (freeStationList!=null&&freeStationList.size()!=0) { + //判断是不是镀后库作业中心 + if (DistinguishRegionsEnum.includeByWcName(wcName)&&!agvSend) { + log.info("是读后库"); + freeStationList=freeStationList.stream().filter(s->s.getStationRegion().equals(task.getStationRegion())).toList(); + } - if (!CollectionUtils.isEmpty(freeStationList)) { + } + if (freeStationList!=null&&freeStationList.size()!=0) { StationVO station = null; station = freeStationList.get(0); task.setStationId(station.getId()); @@ -939,7 +955,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { } - @Override public R getQuantityLocation(String boxBarcode) { // 1. 校验箱条码非空(增加空白字符校验) @@ -969,13 +984,14 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { } quantityLocationVO.setWcName(workCenter.getWcName()); List stationCenterList = stationCenterService.list(new LambdaQueryWrapper().eq(StationCenter::getWcId, firstOrderBind.getWcID())); - if (stationCenterList==null||stationCenterList.size()==0) { + if (stationCenterList == null || stationCenterList.size() == 0) { return R.fail("获取站点区域有问题"); } List stationList = stationService.list(new LambdaQueryWrapper().eq(Station::getId, stationCenterList.get(0).getStationId())); quantityLocationVO.setStationRegion(stationList.get(0).getStationRegion()); return R.data(quantityLocationVO); } + @Override public R getBoxbarcodeDetails(String boxBarcode) { if (StringUtils.isBlank(boxBarcode)) { @@ -1040,12 +1056,16 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { new LambdaQueryWrapper().eq(StationCenter::getWcId, wcId) ); - if (stationCenterList!=null||stationCenterList.size()!=0) { - StationCenter stationCenter = stationCenterList.get(0); - Station station = stationService.getById(stationCenter.getStationId()); - if (station != null) { - detailsVO.setStationRegion(station.getStationRegion()); + if (stationCenterList != null || stationCenterList.size() > 0) { +// StationCenter stationCenter = stationCenterList.get(0); +// Station station = stationService.getById(stationCenter.getStationId()); + List stationIdList = stationCenterList.stream().map(s -> s.getStationId()).toList(); + List stationList = stationService.list(new LambdaQueryWrapper().in(Station::getId, stationIdList)); + List list = stationList.stream().map(s -> s.getStationRegion()).distinct().toList(); + if (list.size()==1) { + detailsVO.setStationRegion(stationList.get(0).getStationRegion()); } + } return R.data(detailsVO); @@ -1061,7 +1081,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { StationNameBoxBarcodeVO stationNameBoxBarcodeVO = new StationNameBoxBarcodeVO(); stationNameBoxBarcodeVO.setStation(station); List taskList = taskService.list(new LambdaQueryWrapper().eq(Task::getStationId, station.getId()).orderByDesc(Task::getUpdateTime)); - if (taskList==null||taskList.size()==0) { + if (taskList == null || taskList.size() == 0) { return R.data(stationNameBoxBarcodeVO); } R boxbarcodeDetailsR = getBoxbarcodeDetails(taskList.get(0).getBoxBarcode()); @@ -1075,8 +1095,12 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { @Override public R getStationRegion() { - List freeStationList = stationService.getStatusStationList(STATUS_FREE, null,CONVEYOR_LINE_RECEIVE_ONLY,false); - List stationRegionList = freeStationList.stream().map(StationVO::getStationRegion).distinct().collect(Collectors.toUnmodifiableList()); + List freeStationList = stationService.getStatusStationList(STATUS_FREE,false, null, CONVEYOR_LINE_RECEIVE_ONLY, false); + + if (freeStationList==null||freeStationList.size()==0) { + return R.fail("没有占用区域"); + } + List stationRegionList = freeStationList.stream().map(StationVO::getStationRegion).distinct().toList(); ArrayList list = new ArrayList<>(); for (String stationRegion : stationRegionList) { StationRegionVo stationRegionVo = new StationRegionVo(); @@ -1091,6 +1115,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { + @Override /** * 箱条码绑定主入口 @@ -1134,16 +1159,16 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { wcId = (Long) checkResult.getData(); } //判断是不是镀后库作业中心 - if(DistinguishRegionsEnum.includeByWcName( bsWorkCenterService.getById(wcId).getWcName())){ + if (DistinguishRegionsEnum.includeByWcName(bsWorkCenterService.getById(wcId).getWcName())) { List deptList = yieldOrderService.list(new LambdaQueryWrapper().in(YieldOrder::getCardNo, orderBindList)).stream().map(s -> s.getUseDept()).toList(); String code = DistinguishRegionsEnum.wcNameByCode(bsWorkCenterService.getById(wcId).getWcName()); - String stationRegion=""; + String stationRegion = ""; for (String s : deptList) { String logisticsAnagementRegion = DictCache.getValue(code, s); - if (logisticsAnagementRegion==null) { + if (logisticsAnagementRegion == null) { return R.fail("站点区域异常"); - }else if (stationRegion==null) { - stationRegion= logisticsAnagementRegion; + } else if (stationRegion == null) { + stationRegion = logisticsAnagementRegion; } if (!stationRegion.equals(logisticsAnagementRegion)) { return R.fail("站点区域异常,站点区域配送不统一"); @@ -1262,6 +1287,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { // 未找到任何订单 return R.fail(orderCardNo + "车间订单异常"); } + /** * 统一校验作业中心:空值校验 + 一致性校验 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java index d6590f70..c97eb02f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java @@ -118,8 +118,8 @@ public class StationServiceImpl extends BaseServiceImpl } @Override - public List getStatusStationList(Integer stationStatus, Long wcId,Integer status, boolean include) { - return baseMapper.getStatusStationList(stationStatus,wcId,status,include); + public List getStatusStationList(Integer stationStatus, boolean stationStatusInclude, Long wcId,Integer status, boolean include) { + return baseMapper.getStatusStationList(stationStatus,stationStatusInclude,wcId,status,include); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java index 0ac8f45e..eeda28ed 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java @@ -100,7 +100,7 @@ public class StorageMonitoringServiceImpl implements IStorageMonitoringService { // new LambdaQueryWrapper() // .eq(Station::getStationStatus, Station.STATUS_FREE) // 筛选条件:站点状态为空闲 // ); - List stationList = stationService.getStatusStationList(Station.STATUS_FREE, null, null, false); + List stationList = stationService.getStatusStationList(Station.STATUS_FREE, true,null, null, false); // 日志打印空闲站点数量,便于监控和问题排查 log.info("【仓储监控】定时任务执行 - 查询到空闲站点数量:{}", stationList == null ? 0 : stationList.size()); @@ -126,6 +126,7 @@ public class StorageMonitoringServiceImpl implements IStorageMonitoringService { new LambdaQueryWrapper() .eq(Task::getTaskStatus, Task.STATUS_TEMPORARY_STORAGE) // 任务状态:待库位 .eq(Task::getWcId, station.getWcId()) // 匹配当前站点的工位ID + .eq(Task::getStationRegion,station.getStationRegion()) .notIn(taskIdList!=null&&taskIdList.size()!=0,Task::getId,taskIdList) .orderByAsc(Task::getCreateTime) // 按创建时间升序,优先处理最早创建的任务 );