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