zy-acs-flow/src/config/setting.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-flow/src/page/agv/AgvList.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-flow/src/page/mission/MissionCard.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-flow/src/page/mission/MissionListContent.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 export const LOGIN_BACKGROUND = 'media'; // image | media export const CUSTOM_PAGES_DATA_INTERVAL = 1000; 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) }} />; zy-acs-flow/src/page/mission/MissionCard.jsx
@@ -28,9 +28,6 @@ }); }; console.log(mission); return ( <Box sx={{ marginBottom: 1, cursor: 'pointer' }} 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) { 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; } }