From 1da741e8519e13d8f92824bf8ef15b92800b70fc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期六, 28 六月 2025 16:27:30 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/http.js |  351 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 313 insertions(+), 38 deletions(-)

diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index aea7868..b126eed 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -1,62 +1,75 @@
 import request from '@/utils/request';
 import * as Tool from './tool';
 import { DEVICE_TYPE } from './constants';
+import { HANDLE_APP_KEY } from '@/config/setting';
 
 let notify;
+let mapContainer;
 
 export function setNotify(param) {
     notify = param;
 }
 
-export const fetchMapData = async (zoneId) => {
+export function setMapContainer(param) {
+    mapContainer = param;
+}
+
+export const fetchMapData = (zoneId, setRcsStatus, setCurSprite) => {
     Tool.clearMapData();
-    await request.post('/map/data/fetch', {
+    return request.post('/map/data/fetch', {
         zoneId: zoneId
     }, {
-        headers: {
-            'Content-Type': 'application/x-www-form-urlencoded'
-        }
+        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
     }).then((res) => {
-        const { code, msg, data } = res.data;
+        const { code, msg, data: { rcsStatus, common, point } } = res.data;
         if (code === 200) {
-            const mapItemList = eval(data);
+            setRcsStatus(rcsStatus);
+            const commonList = common ? eval(common) : [];
+            const pointList = point ? eval(point) : [];
+            const mapItemList = [...commonList, ...pointList];
+
+            mapItemList.forEach(item => {
+                if (item.type !== DEVICE_TYPE.AGV) {
+                    const sprite = Tool.generateSprite(item.type);
+                    if (sprite) {
+                        Tool.initSprite(sprite, item.type);
+                        // data
+                        sprite.data.uuid = item.uuid;
+                        sprite.data.no = item.no;
+
+                        // dynamical data
+                        Object.assign(sprite.data, item.property);
+
+                        // graph
+                        // setTimeout(() => {
+                        sprite.position.set(item.positionX, item.positionY);
+                        sprite.scale.set(item.scaleX, item.scaleY);
+                        sprite.rotation = Tool.rotationParseNum(item.rotation);
+
+                        // support
+                        switch (item.type) {
+                            case DEVICE_TYPE.POINT:
+                                sprite.scale.set(pointList.length < 2000 ? 1 : 1.6);
+                                break
+                            default:
+                                break
+                        }
+
+                        mapContainer.addChild(sprite);
+                        Tool.beInsight(sprite, setCurSprite);
+                    }
+                }
+            })
+        } else {
+            notify.error(msg);
         }
-
-        // mapItemList.forEach(item => {
-        //     if (!(
-        //         item.type === SENSOR_TYPE.SHUTTLE
-        //         || item.type === SENSOR_TYPE.AGV
-        //     )) {
-        //         const sprite = generateSprite(item.type);
-        //         if (sprite) {
-        //             initSprite(sprite, item.type);
-        //             // data
-        //             sprite.data.uuid = item.uuid;
-        //             sprite.data.no = item.no;
-
-        //             // dynamical data
-        //             Object.assign(sprite.data, item.property);
-
-        //             showSheflType(sprite);
-        //             // graph
-        //             setTimeout(() => {
-        //                 sprite.position.set(item.positionX, item.positionY);
-        //                 sprite.scale.set(item.scaleX, item.scaleY);
-        //                 sprite.rotation = rotationParseNum(item.rotation);
-        //             }, 50);
-
-        //             mapContainer.addChild(sprite);
-        //         }
-        //     }
-        // })
-
     }).catch((error) => {
         notify.error(error.message);
         console.error(error.message);
     })
 }
 
-export const saveMapData = async (zone, mapContainer) => {
+export const saveMapData = async (zone) => {
     if (!mapContainer) {
         return;
     }
@@ -65,7 +78,7 @@
     mapContainer.children.forEach(child => {
         if (child.data?.uuid) {
             const { type, uuid, no, ...property } = child.data;
-            if (type !== DEVICE_TYPE.AGV) {
+            if (type !== DEVICE_TYPE.AGV && type !== DEVICE_TYPE.POINT && type !== DEVICE_TYPE.ROUTE) {
                 sprites.push({
                     // graph
                     positionX: child.position.x,
@@ -98,3 +111,265 @@
         console.error(error.message);
     })
 }
+
+export const startupOrShutdown = async (callback) => {
+    try {
+        const res = await request.post('/map/startupOrShutdown');
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            if (callback) {
+                callback();
+            }
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+}
+
+export const getLocGroup = async (row, bay, callback) => {
+    await request.post('/map/shelf/group', {
+        row: row,
+        bay: bay
+    }, {
+        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 getAgvInfo = async (agvNo, callback) => {
+    await request.post('/map/agv/info', {
+        agvNo: agvNo,
+    }, {
+        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 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 getRouteList = async (zoneId, callback, errCallBack) => {
+    await request.post('/map/route/list', {
+        zoneId: zoneId,
+    }, {
+        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);
+            if (errCallBack) {
+                errCallBack();
+            }
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+        if (errCallBack) {
+            errCallBack();
+        }
+    })
+}
+
+
+export const handleControlAgv = async (param, callback) => {
+    await request.post('/handler/control/agv', param, {
+        headers: {
+            'appKey': HANDLE_APP_KEY
+        }
+    }).then((res) => {
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            if (callback) {
+                callback(data)
+            }
+        } else {
+            notify.error(msg);
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+    })
+}
+
+export const handleRestoreAgvAll = async (param, callback) => {
+    await request.post('/handler/restore/agv', param, {
+        headers: {
+            'appKey': HANDLE_APP_KEY
+        }
+    }).then((res) => {
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            if (callback) {
+                callback(data)
+            }
+        } else {
+            notify.error(msg);
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+    })
+}
+
+export const getFakeSign = async (param, callback) => {
+    await request.get('/fake/sign/get').then((res) => {
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            if (callback) {
+                callback(data)
+            }
+        } else {
+            notify.error(msg);
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+    })
+}
+
+export const setFakeSign = async (param, callback) => {
+    await request.post('/fake/sign/set', {
+        sign: param,
+    }, {
+        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+    }).then((res) => {
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            if (data) {
+                notify.success(msg);
+            }
+            if (callback) {
+                callback(data)
+            }
+        } else {
+            notify.error(msg);
+        }
+    }).catch((error) => {
+        notify.error(error.message);
+        console.error(error.message);
+    })
+}
+
+export const handleAgvPatrol = async (param) => {
+    try {
+        const res = await request.post('/handler/agv/patrol', param, {
+            headers: {
+                'appKey': HANDLE_APP_KEY
+            }
+        });
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            return true;
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+    return false;
+}
+
+export const locateAllAgv = async (param) => {
+    try {
+        const res = await request.post('/handler/locateAllAgv', param, {
+            headers: {
+                'appKey': HANDLE_APP_KEY
+            }
+        });
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            return true;
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+    return false;
+}
+
+export const startPatrolBatch = async (param) => {
+    try {
+        const res = await request.post('/handler/patrol/batch/startup', param, {
+            headers: {
+                'appKey': HANDLE_APP_KEY
+            }
+        });
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            return true;
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+    return false;
+}
+
+export const cancelPatrolBatch = async (param) => {
+    try {
+        const res = await request.post('/handler/patrol/batch/shutdown', param, {
+            headers: {
+                'appKey': HANDLE_APP_KEY
+            }
+        });
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            return true;
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+    return false;
+}
\ No newline at end of file

--
Gitblit v1.9.1