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/TaskMissionSchedules.java |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
index 45015c1..9b14e17 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
@@ -13,6 +13,7 @@
 import com.vincent.rsf.server.manager.service.impl.BasStationAreaServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.DeviceSiteServiceImpl;
+import com.vincent.rsf.server.manager.utils.WarehouseLocationRetrievalUtil;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.entity.*;
 import com.vincent.rsf.server.system.service.ConfigService;
@@ -132,9 +133,21 @@
                 Loc loc2 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                 sou = loc2.getAreaId().toString();
             }
-            List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getSourceType, sou).eq(TaskPathTemplateMerge::getTargetType, end));
+            BasContainer containerByBarcode = new WarehouseLocationRetrievalUtil().getContainerByBarcode(task.getBarcode());
+            List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(
+                    new LambdaQueryWrapper<TaskPathTemplateMerge>()
+                            .eq(TaskPathTemplateMerge::getSourceType, sou)
+                            .eq(TaskPathTemplateMerge::getTargetType, end)
+                            .apply("container_type != '[]'")  // 涓嶆槸绌烘暟缁�
+                            .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString())
+            );
             if (Objects.isNull(taskPathTemplateMergeList) || taskPathTemplateMergeList.isEmpty() || !endSign) {
-                List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getStepSize,1));
+                List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(
+                        new LambdaQueryWrapper<TaskPathTemplateMerge>()
+                                .eq(TaskPathTemplateMerge::getStepSize,1)
+                                .apply("container_type != '[]'")  // 涓嶆槸绌烘暟缁�
+                                .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString())
+                );
                 if (!Cools.isEmpty(list)) {
                     List<String[]> stationList = new ArrayList<>();
                     list.forEach(taskPathTemplate -> {
@@ -196,11 +209,8 @@
                                     if (!siteListRoute.isEmpty()) {
                                         for (String[] siteArray : siteListRoute) {
                                             //鍑哄簱璺緞鎺掓煡
-                                            DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
-                                                    .eq(DeviceSite::getSite, siteArray[1])
-                                                    .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel())
-                                                    .eq(DeviceSite::getType, task.getTaskType()).last("limit 1"),false);
-                                            if (!Objects.isNull(deviceSite)) {
+                                            boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteArray[1], loc.getBarcode(),"out");
+                                            if (available) {
                                                 BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                                                         .eq(BasStation::getStationName, siteArray[1])
                                                         .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
@@ -218,7 +228,6 @@
                                 }
                             }
                         }
-
                     }
 //                    System.out.println("浠诲姟锛�"+task.getTaskCode()+"鏌ヨ姝ュ簭涓猴細"+longs);
                 }
@@ -234,7 +243,6 @@
 
 
     public boolean generateActualPath(Task task,TaskPathTemplateMerge taskPathTemplateMerge,boolean endSignUp) {
-        boolean actualPath = false;
         List<Integer> conditionExpression = taskPathTemplateMerge.getConditionExpression();
         Integer i = 0;//it椤哄簭
         Integer j = 0;//suT椤哄簭
@@ -355,12 +363,7 @@
                 basStationService.updateById(basStation);
             }
         }
-
-
-
         taskService.updateById(task);
-        return actualPath;
+        return true;
     }
-
-
 }

--
Gitblit v1.9.1