From 2ab3366ad79370c1fbe7b665e6a50148463ab640 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期日, 29 九月 2024 13:46:59 +0800 Subject: [PATCH] # --- zy-acs-flow/src/config/setting.js | 2 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MissionController.java | 13 ++- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/MissionService.java | 2 zy-acs-flow/src/page/mission/MissionList.jsx | 4 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java | 3 zy-acs-flow/src/page/mission/MissionShow.jsx | 198 +++++++++++++++++++++++++++++++++++++++++++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java | 8 + 7 files changed, 217 insertions(+), 13 deletions(-) diff --git a/zy-acs-flow/src/config/setting.js b/zy-acs-flow/src/config/setting.js index 4d47db2..a59789d 100644 --- a/zy-acs-flow/src/config/setting.js +++ b/zy-acs-flow/src/config/setting.js @@ -37,4 +37,4 @@ export const LOGIN_BACKGROUND = 'media'; // image | media -export const CUSTOM_PAGES_DATA_INTERVAL = 1000; \ No newline at end of file +export const CUSTOM_PAGES_DATA_INTERVAL = 100000; \ No newline at end of file diff --git a/zy-acs-flow/src/page/mission/MissionList.jsx b/zy-acs-flow/src/page/mission/MissionList.jsx index 0273f92..1611f8a 100644 --- a/zy-acs-flow/src/page/mission/MissionList.jsx +++ b/zy-acs-flow/src/page/mission/MissionList.jsx @@ -68,7 +68,7 @@ const MissionLayout = () => { const location = useLocation(); const matchShow = matchPath('/mission/:id/show', location.pathname); - console.log(matchShow); + console.log(matchShow?.params.id); const { data, isPending, filterValues } = useListContext(); const hasFilters = filterValues && Object.keys(filterValues).length > 0; @@ -78,7 +78,7 @@ return ( <> <EmptyDataLoader> - <MissionShow open={!!matchShow} id={matchShow?.params.id} /> + <MissionShow open={!!matchShow} groupNo={matchShow?.params.id} /> </EmptyDataLoader> </> ); diff --git a/zy-acs-flow/src/page/mission/MissionShow.jsx b/zy-acs-flow/src/page/mission/MissionShow.jsx index 7c4d545..fb0c7ce 100644 --- a/zy-acs-flow/src/page/mission/MissionShow.jsx +++ b/zy-acs-flow/src/page/mission/MissionShow.jsx @@ -1,9 +1,203 @@ +import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; +import { + DeleteButton, + EditButton, + ReferenceArrayField, + ReferenceField, + ReferenceManyField, + ShowBase, + useDataProvider, + useNotify, + useRecordContext, + useRedirect, + useRefresh, + useUpdate, +} from 'react-admin'; +import { + Box, + Button, + Chip, + Dialog, + DialogContent, + Divider, + Stack, + Typography, +} from '@mui/material'; +import DialogCloseButton from "../components/DialogCloseButton"; - -const MissionShow = () => { +const MissionShow = ({ open, id }) => { + const redirect = useRedirect(); + const handleClose = () => { + redirect('list', 'mission'); + }; return ( <> + <Dialog + open={open} + onClose={handleClose} + fullWidth + maxWidth="md" + sx={{ + '& .MuiDialog-container': { + alignItems: 'flex-start', + }, + }} + > + <DialogContent sx={{ padding: 0 }}> + {!!id ? ( + <ShowBase id={id}> + <MissionShowContent handleClose={handleClose} /> + </ShowBase> + ) : null} + </DialogContent> + </Dialog> + </> + ) +} + +const CLOSE_TOP_WITH_ARCHIVED = 14; +const MissionShowContent = ({ handleClose }) => { + const record = useRecordContext(); + if (!record) return null; + + return ( + <> + <DialogCloseButton + onClose={handleClose} + /> + <Stack gap={1}> + <Box display="flex" p={2}> + <Box flex="1"> + <Stack + direction="row" + justifyContent="space-between" + mb={4} + > + <Stack direction="row" alignItems="center" gap={2}> + <Typography variant="h5"> + {record.name} + </Typography> + </Stack> + <Stack + gap={1} + direction="row" + pr={record.archived_at ? 0 : 6} + > + </Stack> + </Stack> + + <Box display="flex" m={2}> + <Box display="flex" mr={5} flexDirection="column"> + <Typography + color="textSecondary" + variant="caption" + > + Expected closing date + </Typography> + <Stack + direction="row" + alignItems="center" + gap={1} + > + <Typography variant="body2"> + </Typography> + {new Date(record.expected_closing_date) < + new Date() ? ( + <Chip + label="Past" + color="error" + size="small" + /> + ) : null} + </Stack> + </Box> + + <Box display="flex" mr={5} flexDirection="column"> + <Typography + color="textSecondary" + variant="caption" + > + Budget + </Typography> + <Typography variant="body2"> + </Typography> + </Box> + + {record.category && ( + <Box + display="flex" + mr={5} + flexDirection="column" + > + <Typography + color="textSecondary" + variant="caption" + > + Category + </Typography> + <Typography variant="body2"> + {record.category} + </Typography> + </Box> + )} + + <Box display="flex" mr={5} flexDirection="column"> + <Typography + color="textSecondary" + variant="caption" + > + Stage + </Typography> + <Typography variant="body2"> + </Typography> + </Box> + </Box> + + {!!record.contact_ids?.length && ( + <Box m={2}> + <Box + display="flex" + mr={5} + flexDirection="column" + minHeight={48} + > + <Typography + color="textSecondary" + variant="caption" + > + Contacts + </Typography> + <ReferenceArrayField + source="contact_ids" + reference="contacts_summary" + > + <ContactList /> + </ReferenceArrayField> + </Box> + </Box> + )} + + {record.description && ( + <Box m={2} sx={{ whiteSpace: 'pre-line' }}> + <Typography + color="textSecondary" + variant="caption" + > + Description + </Typography> + <Typography variant="body2"> + {record.description} + </Typography> + </Box> + )} + + <Box m={2}> + <Divider /> + </Box> + </Box> + </Box> + </Stack> </> ) } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java index 0aa3468..a126df9 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java @@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -64,7 +63,7 @@ return this.matrixHeader.get(idx); } - @PostConstruct +// @PostConstruct @SuppressWarnings("all") public void generateMatrix() { log.info("銆怓LOYD銆戞鍦ㄨ绠楃煩闃垫暟鎹�......"); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MissionController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MissionController.java index 8896c77..9fa3964 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MissionController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MissionController.java @@ -3,15 +3,13 @@ import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; import com.zy.acs.manager.core.domain.TaskPosDto; +import com.zy.acs.manager.manager.entity.Segment; import com.zy.acs.manager.manager.service.MissionService; import com.zy.acs.manager.manager.service.SegmentService; import com.zy.acs.manager.system.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @@ -53,4 +51,11 @@ return R.ok().add(list); } + @PreAuthorize("hasAuthority('manager:mission:list')") + @GetMapping("/mission/{id}") + public R get(@PathVariable("id") Long id) { + Segment segment = segmentService.getById(id); + return R.ok().add(missionService.generateVo(segment.getGroupId())); + } + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/MissionService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/MissionService.java index dab1692..2ae8b21 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/MissionService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/MissionService.java @@ -8,4 +8,6 @@ List<MissionVo> getList(Long agvId, String groupNo); + MissionVo generateVo(String groupNo); + } 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 9a1959f..11d3248 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 @@ -36,7 +36,7 @@ List<MissionVo> result = new ArrayList<>(); List<String> runningGroupNos = segmentService.getGroupNo(SegmentStateType.RUNNING, agvId, groupNo); for (String runningGroupNo : runningGroupNos) { - MissionVo vo = generate(runningGroupNo); + MissionVo vo = generateVo(runningGroupNo); if (null != vo) { result.add(vo); } @@ -45,7 +45,11 @@ return result; } - public MissionVo generate(String groupNo) { + @Override + public MissionVo generateVo(String groupNo) { + if (Cools.isEmpty(groupNo)) { + return null; + } List<Segment> list = segmentService.list(new LambdaQueryWrapper<Segment>().eq(Segment::getGroupId, groupNo).orderByAsc(Segment::getSerial)); if (Cools.isEmpty(list)) { return null; -- Gitblit v1.9.1