From 5b7abad9f80bb0b4c9d0bb2d85e0368a92888b30 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期三, 31 十二月 2025 14:34:21 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   39 ++++++++++++++++++++++++++++++++-------
 1 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 13ef79e..33d4e20 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -245,19 +245,44 @@
                 return;
             }
 
-            List<Long> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList());
+//            List<Long> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList());
             for (Task t : taskList) {
                 String resultAgvNo = allocateService.execute(t
                         // inbound
-                        , (task, agvNo) -> {
+                        , (task, agvNo, sta) -> {
+                            Long agvId = agvService.getAgvId(agvNo);
 
+                            List<Travel> travelList = travelService.list(new LambdaQueryWrapper<Travel>()
+                                    .eq(Travel::getAgvId, agvId)
+                                    .eq(Travel::getState, TravelStateType.RUNNING.toString())
+                                    .orderByDesc(Travel::getCreateTime));
+                            if (Cools.isEmpty(travelList)) {
+                                throw new BusinessException("[Agv: " + agvNo + "]allocate inbound failed to find travel");
+                            }
+                            Travel travel = travelList.get(0);
+
+                            List<Segment> currSegments = segmentService.list(new LambdaQueryWrapper<Segment>()
+                                    .eq(Segment::getAgvId, agvId)
+                                    .eq(Segment::getTravelId, travel.getId())
+                            );
+                            // load segment
+                            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
+
+
+                            // place segment
+
+                            task.setAgvId(agvId);
+                            task.setTaskSts(TaskStsType.ASSIGN.val());
+                            task.setIoTime(now);
+                            task.setUpdateTime(now);
+                            if (!taskService.updateById(task)) {
+                                throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update");
+                            }
                         }
                         // normal
-                        , (task, agvNo) -> {
-                            if (Cools.isEmpty(agvNo)) {
-                                return;
-                            }
-                            task.setAgvId(agvService.getAgvId(agvNo));
+                        , (task, agvNo, sta) -> {
+                            Long agvId = agvService.getAgvId(agvNo);
+                            task.setAgvId(agvId);
                             task.setTaskSts(TaskStsType.WAITING.val());
                             task.setIoTime(now);
                             task.setUpdateTime(now);

--
Gitblit v1.9.1