From e4fead2e56d729d91be4ad9d7241bbe30f5af378 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 29 九月 2024 10:40:54 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/config/setting.js                                                            |    4 +
 zy-acs-flow/src/page/agv/AgvList.jsx                                                         |   12 +++---
 zy-acs-flow/src/page/mission/MissionListContent.jsx                                          |   11 +++++
 zy-acs-flow/src/page/mission/MissionCard.jsx                                                 |    3 -
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java |   43 ++++++++++++++++++++-
 5 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/zy-acs-flow/src/config/setting.js b/zy-acs-flow/src/config/setting.js
index d99f1be..4d47db2 100644
--- a/zy-acs-flow/src/config/setting.js
+++ b/zy-acs-flow/src/config/setting.js
@@ -35,4 +35,6 @@
 
 export const EDIT_MODE = 'pessimistic'; // pessimistic | undoable
 
-export const LOGIN_BACKGROUND = 'media';  // image | media
\ No newline at end of file
+export const LOGIN_BACKGROUND = 'media';  // image | media
+
+export const CUSTOM_PAGES_DATA_INTERVAL = 1000;
\ No newline at end of file
diff --git a/zy-acs-flow/src/page/agv/AgvList.jsx b/zy-acs-flow/src/page/agv/AgvList.jsx
index 624f9db..ca963f0 100644
--- a/zy-acs-flow/src/page/agv/AgvList.jsx
+++ b/zy-acs-flow/src/page/agv/AgvList.jsx
@@ -45,7 +45,7 @@
 import MyExportButton from '../components/MyExportButton';
 import PageDrawer from "../components/PageDrawer";
 import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, CUSTOM_PAGES_DATA_INTERVAL } from '@/config/setting';
 import * as Common from '@/utils/common';
 import { ImageList } from "./GridList";
 import { AgvListFilter } from "./AgvListFilter";
@@ -69,16 +69,16 @@
 }
 
 const AgvGridLayout = ({ setCreateDialog }) => {
-    const refresh = useRefresh();
-    const { data, isPending, filterValues } = useListContext();
+    const { data, isPending, filterValues, refetch } = useListContext();
     const hasFilters = filterValues && Object.keys(filterValues).length > 0;
 
     React.useEffect(() => {
         const intervalId = setInterval(() => {
-            refresh();
-        }, 2000);
+            refetch();
+        }, CUSTOM_PAGES_DATA_INTERVAL);
+
         return () => clearInterval(intervalId);
-    }, [refresh]);
+    }, [refetch]);
 
     if (isPending) return null;
     if (!data?.length && !hasFilters) return <EmptyData onClick={() => { setCreateDialog(true) }} />;
diff --git a/zy-acs-flow/src/page/mission/MissionCard.jsx b/zy-acs-flow/src/page/mission/MissionCard.jsx
index 648c583..b2c4373 100644
--- a/zy-acs-flow/src/page/mission/MissionCard.jsx
+++ b/zy-acs-flow/src/page/mission/MissionCard.jsx
@@ -28,9 +28,6 @@
         });
     };
 
-    console.log(mission);
-
-
     return (
         <Box
             sx={{ marginBottom: 1, cursor: 'pointer' }}
diff --git a/zy-acs-flow/src/page/mission/MissionListContent.jsx b/zy-acs-flow/src/page/mission/MissionListContent.jsx
index 64ce7b8..7872ce4 100644
--- a/zy-acs-flow/src/page/mission/MissionListContent.jsx
+++ b/zy-acs-flow/src/page/mission/MissionListContent.jsx
@@ -10,6 +10,7 @@
 } from 'react-admin';
 import { MissionColumn } from './MissionColumn';
 import request from '@/utils/request';
+import { CUSTOM_PAGES_DATA_INTERVAL } from '@/config/setting';
 
 export const MissionListContent = () => {
     const translate = useTranslate();
@@ -34,7 +35,15 @@
             })
         }
         httpStages();
-    }, []);
+    }, [notify]);
+
+    useEffect(() => {
+        const intervalId = setInterval(() => {
+            refetch();
+        }, CUSTOM_PAGES_DATA_INTERVAL);
+
+        return () => clearInterval(intervalId);
+    }, [data, refetch])
 
     useEffect(() => {
         // if (data) {
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 7b50ca0..9a1959f 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
@@ -3,10 +3,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.manager.manager.controller.result.MissionVo;
+import com.zy.acs.manager.manager.entity.Action;
+import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.Code;
 import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.enums.SegmentStateType;
-import com.zy.acs.manager.manager.service.MissionService;
-import com.zy.acs.manager.manager.service.SegmentService;
+import com.zy.acs.manager.manager.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -22,6 +24,12 @@
 
     @Autowired
     private SegmentService segmentService;
+    @Autowired
+    private ActionService actionService;
+    @Autowired
+    private CodeService codeService;
+    @Autowired
+    private AgvDetailService agvDetailService;
 
     @Override
     public List<MissionVo> getList(Long agvId, String groupNo) {
@@ -52,7 +60,38 @@
         vo.setTaskNos(list.stream().map(Segment::getTaskId$).collect(Collectors.toList()));
         vo.setBackpack(segment.getBackpack());
         vo.setDestCode(segment.getEndNode$());
+        vo.setProgress(calcProgress(groupNo));
         return vo;
     }
 
+    public Double calcProgress(String groupNo) {
+        double progress = 0D;
+        List<Action> actionList = actionService.list(new LambdaQueryWrapper<Action>()
+                .eq(Action::getGroupId, groupNo).
+                        orderByDesc(Action::getPriority));
+
+        if (Cools.isEmpty(actionList)) {
+            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).collect(Collectors.toList());
+
+        int totalCodes = codeList.size();
+        int currentIndex = codeList.indexOf(code.getData());
+
+        if (currentIndex >= 0) {
+            progress = (currentIndex + 1) * 100.0 / totalCodes;
+        }
+
+        return progress;
+    }
+
 }

--
Gitblit v1.9.1