From 6fb170791974cbfa4f7bd46eaa56d2cd1a9f732a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 19 十月 2024 15:37:03 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/http.js                                                               |   19 ++++++
 zy-acs-flow/src/map/insight/point/index.jsx                                               |   75 +++++++++++++++++++++++++
 zy-acs-flow/src/map/insight/index.jsx                                                     |   10 +++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java     |   13 ++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MapPointVo.java |   17 +++++
 5 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index 22fe804..5fa8812 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -163,6 +163,25 @@
     })
 }
 
+export const getPointInfo = async (point, callback) => {
+    await request.post('/map/point/info', {
+        codeData: point,
+    }, {
+        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+    }).then((res) => {
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            callback(data)
+        } else {
+            notify.error(msg);
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+    })
+}
+
+
 export const handleControlAgv = async (param, callback) => {
     await request.post('/handler/control/agv', param, {
         headers: {
diff --git a/zy-acs-flow/src/map/insight/index.jsx b/zy-acs-flow/src/map/insight/index.jsx
index be7a97f..6d1237a 100644
--- a/zy-acs-flow/src/map/insight/index.jsx
+++ b/zy-acs-flow/src/map/insight/index.jsx
@@ -8,6 +8,7 @@
 } from '../constants';
 import ShelfInsight from './shelf';
 import AgvInsight from './agv';
+import PointInsight from './point';
 
 const Insight = (props) => {
     const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH } = props;
@@ -77,6 +78,15 @@
                                             />
                                         </>
                                     )}
+
+                                    {deviceType === DEVICE_TYPE.POINT && (
+                                        <>
+                                            <PointInsight
+                                                sprite={sprite}
+                                                setTitle={setTitle}
+                                            />
+                                        </>
+                                    )}
                                 </CardContent>
                             </Card>
                         </Box>
diff --git a/zy-acs-flow/src/map/insight/point/index.jsx b/zy-acs-flow/src/map/insight/point/index.jsx
new file mode 100644
index 0000000..9dcc780
--- /dev/null
+++ b/zy-acs-flow/src/map/insight/point/index.jsx
@@ -0,0 +1,75 @@
+import React, { useState, useRef, useEffect } from 'react';
+import { useTranslate } from "react-admin";
+import { Box, Typography, Tabs, Tab, Stack, useTheme, Divider } from '@mui/material';
+import JsonShow from '../../JsonShow';
+import { getPointInfo } from '../../http';
+
+const PointInsight = (props) => {
+    const { sprite, setTitle } = props;
+    const translate = useTranslate();
+    const theme = useTheme();
+
+    const [activeTab, setActiveTab] = useState(0);
+    const [curPoint, setCurPoint] = useState(null);
+    const [curPointInfo, setCurPointInfo] = useState(null);
+
+    const fetchInfo = (param) => {
+        setTitle(translate('page.map.devices.point') + ' - ' + param);
+        setCurPoint(param);
+        getPointInfo(param, (response) => {
+            setCurPointInfo(response);
+        });
+    }
+
+    useEffect(() => {
+        if (sprite) {
+            const param = sprite.data.no;
+            if (param) {
+                fetchInfo(param);
+            }
+        }
+
+        return () => {
+            setTitle(null);
+            setCurPoint(null);
+            setCurPointInfo(null);
+        }
+    }, [sprite])
+
+    const handleTabChange = (event, newValue) => {
+        setActiveTab(newValue);
+    };
+
+    return (
+        <Box sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
+            <Tabs
+                value={activeTab}
+                onChange={handleTabChange}
+                centered
+                sx={{ mb: 0 }}
+            >
+                <Tab label={translate('page.map.insight.title')} />
+                <Tab label={'JSON'} />
+            </Tabs>
+
+            <Divider />
+
+            <Box flex={1} pt={2}>
+                {activeTab === 0 && (
+                    <JsonShow
+                        data={curPointInfo || sprite?.data}
+                        height={550}
+                    />
+                )}
+                {activeTab === 1 && (
+                    <JsonShow
+                        data={curPointInfo || sprite?.data}
+                        height={550}
+                    />
+                )}
+            </Box>
+        </Box>
+    )
+}
+
+export default PointInsight;
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
index 1ca13bb..20c77a8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
@@ -19,6 +19,7 @@
 import com.zy.acs.manager.manager.controller.param.MapDataParam;
 import com.zy.acs.manager.manager.controller.param.MapParam;
 import com.zy.acs.manager.manager.controller.result.MapAgvVo;
+import com.zy.acs.manager.manager.controller.result.MapPointVo;
 import com.zy.acs.manager.manager.entity.Map;
 import com.zy.acs.manager.manager.entity.*;
 import com.zy.acs.manager.manager.enums.AgvStsType;
@@ -166,6 +167,18 @@
         return R.ok().add(vo);
     }
 
+    @PostMapping("/point/info")
+    public R pointInfo(@RequestParam(required = false) String codeData) {
+        if (Cools.isEmpty(codeData)) {
+            return R.error();
+        }
+        Code code = codeService.selectByData(codeData);
+        MapPointVo vo = new MapPointVo();
+        vo.setCodeId(code.getId());
+        vo.setCodeData(code.getData());
+        vo.setStatus(code.getStatus());
+        return R.ok().add(vo);
+    }
 
 
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MapPointVo.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MapPointVo.java
new file mode 100644
index 0000000..e0c14a1
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/result/MapPointVo.java
@@ -0,0 +1,17 @@
+package com.zy.acs.manager.manager.controller.result;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 10/17/2024
+ */
+@Data
+public class MapPointVo {
+
+    private Long codeId;
+
+    private String codeData;
+
+    private Integer status;
+
+}

--
Gitblit v1.9.1