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