From c07c14d7768098f82807d8598ad3fb5c392bd3c0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 20 九月 2024 14:52:36 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/agv/AgvCard.jsx | 78 ++++++++++++++++++++++----------------
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/AgvResult.java | 18 ++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/common/exception/GlobalExceptionHandler.java | 1
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java | 5 ++
4 files changed, 67 insertions(+), 35 deletions(-)
diff --git a/zy-acs-flow/src/page/agv/AgvCard.jsx b/zy-acs-flow/src/page/agv/AgvCard.jsx
index 6e695e8..53e4a00 100644
--- a/zy-acs-flow/src/page/agv/AgvCard.jsx
+++ b/zy-acs-flow/src/page/agv/AgvCard.jsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import { useState } from 'react';
-import { Paper, Typography, Box, Chip, Stack } from '@mui/material';
+import { Paper, Typography, Box, AvatarGroup, Avatar } from '@mui/material';
import ContactsIcon from '@mui/icons-material/AccountCircle';
import DealIcon from '@mui/icons-material/MonetizationOn';
import {
@@ -9,6 +9,7 @@
useRecordContext,
Link,
useResourceContext,
+ useDataProvider,
} from 'react-admin';
import PulseSignal from '../components/PulseSignal';
import { AgvAvatar } from './AgvAvatar';
@@ -20,10 +21,7 @@
const createPath = useCreatePath();
const record = useRecordContext(props);
if (!record) return null;
-
console.log(record);
-
-
return (
<Link
to={createPath({
@@ -62,7 +60,7 @@
</Box>
<Box display="flex" flexDirection="column" alignItems="center">
<AgvAvatar />
- <Box textAlign="center" marginTop={1}>
+ <Box textAlign="center" marginTop={2}>
<Typography variant="subtitle2">
{record.agvStatus}
</Typography>
@@ -73,37 +71,51 @@
</Box>
<Box display="flex" justifyContent="space-around" width="100%">
<Box display="flex" alignItems="center">
- <ContactsIcon color="disabled" sx={{ mr: 1 }} />
- <div>
- <Typography variant="subtitle2" sx={{ mb: -1 }}>
- {record.nb_contacts}
- </Typography>
- <Typography variant="caption" color="textSecondary">
- {record.nb_contacts
- ? record.nb_contacts > 1
- ? 'contacts'
- : 'contact'
- : 'contact'}
- </Typography>
- </div>
- </Box>
- <Box sx={{ display: 'flex', alignItems: 'center' }}>
- <DealIcon color="disabled" sx={{ mr: 1 }} />
- <div>
- <Typography variant="subtitle2" sx={{ mb: -1 }}>
- {record.nb_deals}
- </Typography>
- <Typography variant="caption" color="textSecondary">
- {record.nb_deals
- ? record.nb_deals > 1
- ? 'deals'
- : 'deal'
- : 'deal'}
- </Typography>
- </div>
+ <TaskAvatarGroupIterator taskIds={record.taskIds} />
</Box>
</Box>
</Paper>
</Link>
);
};
+
+const TaskAvatarGroupIterator = ({ taskIds }) => {
+ const dataProvider = useDataProvider();
+ const [data, setData] = React.useState([]);
+ const [total, setTotal] = React.useState(0);
+
+ React.useEffect(() => {
+ if (taskIds?.length > 0) {
+ dataProvider.getMany('task', { ids: taskIds }).then(res => {
+ if (res.data?.length > 0) {
+ setTotal(res.data.length);
+ setData(res.data);
+ }
+ })
+ }
+ }, [taskIds])
+
+ return (
+ <AvatarGroup
+ max={4}
+ total={total}
+ spacing="medium"
+ sx={{
+ '& .MuiAvatar-circular': {
+ width: 35,
+ height: 25,
+ fontSize: '0.7rem',
+ },
+ }}
+ >
+ {data.map((record) => (
+ <Avatar
+ key={record.id}
+ title={`${record.seqNum}`}
+ >
+ {record.seqNum}
+ </Avatar>
+ ))}
+ </AvatarGroup>
+ );
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/exception/GlobalExceptionHandler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/exception/GlobalExceptionHandler.java
index 426d68d..53fd732 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/exception/GlobalExceptionHandler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/exception/GlobalExceptionHandler.java
@@ -27,6 +27,7 @@
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public R methodNotSupportedExceptionHandler(HttpRequestMethodNotSupportedException e,
HttpServletResponse response) {
+ e.printStackTrace();
CommonUtil.addCrossHeaders(response);
return R.error("璇锋眰鏂瑰紡涓嶆纭�");
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java
index 18ec049..a754666 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java
@@ -15,6 +15,7 @@
import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvService;
import com.zy.acs.manager.manager.service.CodeService;
+import com.zy.acs.manager.manager.service.TaskService;
import com.zy.acs.manager.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -33,6 +34,8 @@
private AgvDetailService agvDetailService;
@Autowired
private CodeService codeService;
+ @Autowired
+ private TaskService taskService;
// @PreAuthorize("hasAuthority('manager:agv:list')")
// @PostMapping("/agv/page")
@@ -54,7 +57,7 @@
PageParam<Agv, BaseParam> pageParam = new PageParam<>(baseParam, Agv.class);
PageResult<AgvResult> page = agvService.pageRel(pageParam);
for (AgvResult result : page.getRecords()) {
- result.sync(agvDetailService.selectByAgvId(result.getId()), codeService);
+ result.sync(agvDetailService.selectByAgvId(result.getId()), codeService, taskService);
}
return R.ok().add(page);
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/AgvResult.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/AgvResult.java
index 5d6ae0b..e129094 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/AgvResult.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/AgvResult.java
@@ -1,10 +1,18 @@
package com.zy.acs.manager.manager.controller.result;
+import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.Task;
+import com.zy.acs.manager.manager.enums.TaskStsType;
import com.zy.acs.manager.manager.service.CodeService;
+import com.zy.acs.manager.manager.service.TaskService;
import lombok.Data;
import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
/**
* Created by vincent on 9/20/2024
@@ -21,8 +29,9 @@
private String code = "-";
+ private List<Long> taskIds = new ArrayList<>();
- public void sync(Object obj, CodeService codeService) {
+ public void sync(Object obj, CodeService codeService, TaskService taskService) {
if (null == obj) return;
if (obj instanceof AgvDetail) {
AgvDetail agvDetail = (AgvDetail) obj;
@@ -36,6 +45,13 @@
if (null != agvDetail.getRecentCode()) {
this.setCode(codeService.getById(agvDetail.getRecentCode()).getData());
}
+ List<Task> tasks = taskService.selectInSts(agvDetail.getAgvId(), TaskStsType.WAITING, TaskStsType.ASSIGN, TaskStsType.PROGRESS);
+ if (!Cools.isEmpty(tasks)) {
+ this.setTaskIds(tasks.stream().map(Task::getId).collect(Collectors.toList()));
+ this.getTaskIds().add(6441L);
+ this.getTaskIds().add(6442L);
+ this.getTaskIds().add(6443L);
+ }
}
}
--
Gitblit v1.9.1