From e711c834aec2293c53b07efe53e81e3573c289b6 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 01 四月 2026 11:42:44 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java |   54 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
index 655148d..e5b357e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
@@ -14,6 +14,7 @@
 import com.vincent.rsf.server.manager.enums.TaskStsType;
 import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.utils.WarehouseLocationRetrievalUtil;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.service.ConfigService;
@@ -107,9 +108,13 @@
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                 .in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type,
-                        TaskType.TASK_TYPE_PICK_IN.type,
-                        TaskType.TASK_TYPE_PICK_AGAIN_OUT.type,
-                        TaskType.TASK_TYPE_CHECK_IN.type)));
+//                        TaskType.TASK_TYPE_PICK_IN.type,
+                        TaskType.TASK_TYPE_PICK_AGAIN_OUT.type
+//                                ,
+//                        TaskType.TASK_TYPE_CHECK_IN.type
+                        )
+                )
+        );
 
         if (!tasks.isEmpty()) {
             tasks.forEach(task -> {
@@ -217,32 +222,33 @@
                 });
                 List<BasStation> stations = stationService.list(new LambdaQueryWrapper<BasStation>()
                         .eq(BasStation::getStatus, 1)
-                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type));
+                );
+//                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                 List<String> stationNames = stations.stream().map(BasStation::getStationName).collect(Collectors.toList());
                 if (Cools.isEmpty(stations)) {
                     throw new CoolException("鏃犲彲鐢ㄧ珯鐐癸紒锛�");
                 }
-                DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
-                        .in(DeviceSite::getSite, stationNames)
-                        .eq(DeviceSite::getType, TaskType.TASK_TYPE_CHECK_OUT.type).last("limit 1"));
-                if (Cools.isEmpty(deviceSite)) {
-                    throw new CoolException("鏃犲彲鐢ㄨ矾寰勶紒锛�");
-                }
-                //鐢熸垚鐩樼偣浠诲姟鍙傛暟
-                LocToTaskParams locToTaskParams = new LocToTaskParams();
-                locToTaskParams.setType(Constants.TASK_TYPE_OUT_CHECK)
-                        .setItems(locItems)
-                        .setSiteNo(deviceSite.getSite())
-                        .setOrgLoc(loc.getCode());
+                for (String stationName : stationNames) {
+                    boolean isItAvailable = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId(), stationName, loc.getBarcode(), TaskType.TASK_TYPE_CHECK_OUT.type);
+                    if (!isItAvailable) {
+                        continue;
+                    }
+                    //鐢熸垚鐩樼偣浠诲姟鍙傛暟
+                    LocToTaskParams locToTaskParams = new LocToTaskParams();
+                    locToTaskParams.setType(Constants.TASK_TYPE_OUT_CHECK)
+                            .setItems(locItems)
+                            .setSiteNo(stationName)
+                            .setOrgLoc(loc.getCode());
 
-                List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTargSite, deviceSite.getSite()));
-                if (!tasks.isEmpty()) {
-                    continue;
-                }
-                try {
-                    locItemService.generateTask(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val, locToTaskParams, getLoginUserId());
-                } catch (Exception e) {
-                    throw new CoolException(e.getMessage());
+                    List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTargSite, stationName));
+                    if (!tasks.isEmpty()) {
+                        continue;
+                    }
+                    try {
+                        locItemService.generateTask(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val, locToTaskParams, getLoginUserId());
+                    } catch (Exception e) {
+                        throw new CoolException(e.getMessage());
+                    }
                 }
             }
         }

--
Gitblit v1.9.1