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