From 6cedbc26af4978f24d20bdb8cd2a7642e1c9a220 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 29 九月 2024 15:17:05 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/mission/TaskList.jsx                                                    |   55 +++++++++++++++++++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java     |    2 +
 zy-acs-flow/src/page/segment/SegmentPanel.jsx                                                |    2 
 zy-acs-flow/src/page/agv/show/AgvShowTask.jsx                                                |    5 +-
 zy-acs-flow/src/page/mission/MissionShow.jsx                                                 |    7 ++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/MissionServiceImpl.java |    1 
 6 files changed, 65 insertions(+), 7 deletions(-)

diff --git a/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx b/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
index fb7af4a..c5474b4 100644
--- a/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
+++ b/zy-acs-flow/src/page/agv/show/AgvShowTask.jsx
@@ -171,15 +171,14 @@
                     <List>
                         {records.map(record => {
                             return (
-                                <>
+                                <React.Fragment key={record.id}>
                                     <TaskItem
                                         key={record.id}
                                         record={record}
                                         now={now}
                                     />
                                     <Divider />
-                                </>
-
+                                </React.Fragment>
                             )
                         })}
                         {currCount < total && (
diff --git a/zy-acs-flow/src/page/mission/MissionShow.jsx b/zy-acs-flow/src/page/mission/MissionShow.jsx
index 451db8c..00c4c62 100644
--- a/zy-acs-flow/src/page/mission/MissionShow.jsx
+++ b/zy-acs-flow/src/page/mission/MissionShow.jsx
@@ -28,6 +28,7 @@
 import { blueGrey } from '@mui/material/colors';
 import MoveToInboxIcon from '@mui/icons-material/MoveToInbox';
 import { format } from 'date-fns';
+import { TaskList } from "./TaskList";
 
 const MissionShow = ({ open, id }) => {
     const redirect = useRedirect();
@@ -157,7 +158,7 @@
                             </Box>
                         </Box>
 
-                        {!!record.contact_ids?.length && (
+                        {!!record.taskIds?.length && (
                             <Box m={2}>
                                 <Box
                                     display="flex"
@@ -169,13 +170,13 @@
                                         color="textSecondary"
                                         variant="caption"
                                     >
-                                        Contacts
+                                        Tasks
                                     </Typography>
                                     <ReferenceArrayField
                                         source="contact_ids"
                                         reference="contacts_summary"
                                     >
-                                        <ContactList />
+                                        <TaskList taskIds={record.taskIds} />
                                     </ReferenceArrayField>
                                 </Box>
                             </Box>
diff --git a/zy-acs-flow/src/page/mission/TaskList.jsx b/zy-acs-flow/src/page/mission/TaskList.jsx
new file mode 100644
index 0000000..e537699
--- /dev/null
+++ b/zy-acs-flow/src/page/mission/TaskList.jsx
@@ -0,0 +1,55 @@
+import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
+import { Link, Stack, Typography, Avatar } from '@mui/material';
+import {
+    useDataProvider,
+    useTranslate,
+} from 'react-admin';
+import { getTaskStsColor } from '@/utils/color-util';
+
+export const TaskList = ({ taskIds }) => {
+    const dataProvider = useDataProvider();
+
+    const [tasks, setTasks] = useState([]);
+
+    useEffect(() => {
+        if (taskIds?.length > 0) {
+            dataProvider.getMany('task', { ids: taskIds }).then(res => {
+                if (res.data?.length > 0) {
+                    setTasks(res.data);
+                }
+            })
+        }
+    }, [taskIds])
+
+    if (!taskIds?.length) return <div style={{ height: '2em' }} />;
+
+    return (
+        <Stack direction="row" flexWrap="wrap" gap={3} mt={1}>
+            {tasks.map(task => (
+                <Stack direction="row" key={task.id} gap={1}>
+                    <Avatar
+                        alt={task.seqNum}
+                        // variant="square"
+                        sx={{
+                            '& img': { objectFit: 'contain' },
+                            fontSize: '1rem',
+                            width: 55,
+                            height: 40,
+                            bgcolor: getTaskStsColor(task.taskSts$),
+                        }}
+                    >
+                        {task.seqNum}
+                    </Avatar>
+                    <Stack>
+                        <Typography variant="body2" color="inherit">
+                            {task.taskType$}
+                        </Typography>
+                        <Typography variant="caption" color="text.secondary">
+                            {task.oriDesc || ''} - {task.destDesc || ''}
+                        </Typography>
+                    </Stack>
+                </Stack>
+            ))}
+        </Stack>
+    );
+};
diff --git a/zy-acs-flow/src/page/segment/SegmentPanel.jsx b/zy-acs-flow/src/page/segment/SegmentPanel.jsx
index 9a7bf71..c8eef12 100644
--- a/zy-acs-flow/src/page/segment/SegmentPanel.jsx
+++ b/zy-acs-flow/src/page/segment/SegmentPanel.jsx
@@ -23,7 +23,7 @@
                                 overflow: 'hidden',
                                 textOverflow: 'ellipsis',
                             }}>
-                                {Common.camelToPascalWithSpaces(translate('table.field.segment.id'))}: {record.id}
+                                {Common.camelToPascalWithSpaces(translate('common.field.id'))}: {record.id}
                             </Typography>
                             {/*  inherit, primary, secondary, textPrimary, textSecondary, error */}
                             <Typography variant="h6" gutterBottom align="right" >
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
index dc6a829..87fdb8d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MissionVo.java
@@ -22,6 +22,8 @@
 
     private List<String> taskNos = new ArrayList<>();
 
+    private List<Long> taskIds = new ArrayList<>();
+
     private Integer backpack;
 
     private String destCode;
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 9c6b1ba..f16c79c 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
@@ -94,6 +94,7 @@
 //        vo.setSendTime(action.getStartTime());
         vo.setBusNo(task.getBusId$());
         vo.setActionCount(actionList.size());
+        vo.setTaskIds(list.stream().map(Segment::getTaskId).collect(Collectors.toList()));
         return vo;
     }
 

--
Gitblit v1.9.1