From 0114b079a32f03f69dfcd4d77ed89b54694126e2 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 29 九月 2024 16:25:03 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
index 1086f02..65656a3 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java
@@ -49,16 +49,27 @@
         if (Cools.isEmpty(groupNo)) {
             return null;
         }
+        // segment -------------------------------
         List<Segment> list = segmentService.list(new LambdaQueryWrapper<Segment>().eq(Segment::getGroupId, groupNo).orderByAsc(Segment::getSerial));
         if (Cools.isEmpty(list)) {
             return null;
         }
+        Segment segment = list.get(0);
+
+        // agv -------------------------------
+        AgvDetail agvDetail = agvDetailService.selectByAgvId(segment.getAgvId());
+        Long recentCode = agvDetail.getRecentCode();
+        String currCode = null;
+        if (null != recentCode) {
+            currCode = codeService.getById(recentCode).getData();
+        }
+
+        // action -------------------------------
         List<Action> actionList = actionService.list(new LambdaQueryWrapper<Action>()
                 .eq(Action::getGroupId, groupNo).orderByDesc(Action::getPriority));
         if (Cools.isEmpty(actionList)) {
             return null;
         }
-        Segment segment = list.get(0);
 
         MissionVo vo = new MissionVo();
         vo.setGroupNo(groupNo);
@@ -68,7 +79,8 @@
         vo.setTaskNos(list.stream().map(Segment::getTaskId$).collect(Collectors.toList()));
         vo.setBackpack(segment.getBackpack());
         vo.setDestCode(segment.getEndNode$());
-        vo.setProgress(calcProgress(actionList));
+        vo.setCurrCode(currCode);
+        vo.setProgress(calcProgress(currCode, actionList));
         return vo;
     }
 
@@ -100,24 +112,16 @@
         return vo;
     }
 
-    public Double calcProgress(List<Action> actionList) {
+    public Double calcProgress(String currCode, List<Action> actionList) {
         double progress = 0D;
-        if (Cools.isEmpty(actionList)) {
+        if (Cools.isEmpty(actionList, currCode)) {
             return progress;
         }
-
-        Action action = actionList.get(0);
-        AgvDetail agvDetail = agvDetailService.selectByAgvId(action.getAgvId());
-        Long recentCode = agvDetail.getRecentCode();
-        if (null == recentCode) {
-            return progress;
-        }
-        Code code = codeService.getById(recentCode);
 
         List<String> codeList = actionList.stream().map(Action::getCode).distinct().collect(Collectors.toList());
 
         int totalCodes = codeList.size();
-        int currentIndex = codeList.indexOf(code.getData());
+        int currentIndex = codeList.indexOf(currCode);
 
         if (currentIndex >= 0) {
             progress = (currentIndex + 1) * 100.0 / totalCodes;

--
Gitblit v1.9.1