#
luxiaotao1123
2024-12-10 6224398d6ac2db27c33fb5a950cdab2b8e189814
#
5个文件已修改
1个文件已添加
138 ■■■■ 已修改文件
zy-acs-flow/src/map/MapPage.jsx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/header/RouteFab.jsx 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/http.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/tool.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/MapPage.jsx
@@ -19,11 +19,12 @@
import * as Http from './http';
import WebSocketClient from './websocket'
import ConfirmButton from "../page/components/ConfirmButton";
import { FitScreen, AltRoute, RotateRight } from '@mui/icons-material';
import { FitScreen, RotateRight } from '@mui/icons-material';
import MapSearch from "./header/MapSearch";
import { startupOrShutdown } from "./http";
import PulseSignal from "../page/components/PulseSignal";
import FakeFab from "./header/FakeFab";
import RouteFab from "./header/RouteFab";
let player;
let websocket;
@@ -409,17 +410,12 @@
                >
                    {mode !== MAP_MODE.MOVABLE_MODE && (
                        <>
                            <Fab
                                variant="extended"
                                color={showRoutes ? 'primary' : 'default'}
                                size="small"
                                onClick={() => {
                                    showRoutes ? Tool.hideRoutes(curZone, setShowRoutes) : Tool.showRoutes(curZone, setShowRoutes)
                                }}
                            >
                                <AltRoute />
                                &nbsp;{translate('page.map.action.route')}&nbsp;
                            </Fab>
                            <RouteFab
                                curZone={curZone}
                                showRoutes={showRoutes}
                                setShowRoutes={setShowRoutes}
                                notify={notify}
                            />
                            <FakeFab />
                        </>
                    )}
zy-acs-flow/src/map/header/RouteFab.jsx
New file
@@ -0,0 +1,64 @@
import React, { useState, useRef, useEffect, useMemo } from "react";
import { useTranslate } from "react-admin";
import {
    Fab,
    Box,
    Backdrop,
    useTheme,
} from '@mui/material';
import AltRouteIcon from '@mui/icons-material/AltRoute';
import CircularProgress from '@mui/material/CircularProgress';
import * as Tool from '../tool';
const RouteFab = (props) => {
    const { curZone, showRoutes, setShowRoutes, notify } = props;
    const translate = useTranslate();
    const theme = useTheme();   // theme.palette.primary.main
    const [loading, setLoading] = React.useState(false);
    const handleClick = () => {
        if (showRoutes) {
            Tool.hideRoutes(curZone, setShowRoutes);
        } else {
            Tool.showRoutes(curZone, setShowRoutes, setLoading);
        }
    }
    return (
        <>
            <Fab
                variant="extended"
                color={showRoutes ? 'primary' : 'default'}
                size="small"
                disabled={loading}
                onClick={handleClick}
            >
                <AltRouteIcon />
                &nbsp;{translate('page.map.action.route')}&nbsp;
                {loading && (
                    <>
                        <svg width={0} height={0}>
                            <defs>
                                <linearGradient id="my_gradient" x1="0%" y1="0%" x2="0%" y2="100%">
                                    <stop offset="0%" stopColor="#e01cd5" />
                                    <stop offset="100%" stopColor="#1CB5E0" />
                                </linearGradient>
                            </defs>
                        </svg>
                        <CircularProgress size={18} thickness={8} sx={{ 'svg circle': { stroke: 'url(#my_gradient)' } }} />
                    </>
                )}
            </Fab>
            {/* global */}
            {/* <Backdrop
                sx={{ color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }}
                open={loading}
            >
                <CircularProgress color="inherit" />
            </Backdrop> */}
        </>
    )
}
export default RouteFab;
zy-acs-flow/src/map/http.js
@@ -49,12 +49,11 @@
                        // support
                        switch (item.type) {
                            case DEVICE_TYPE.POINT:
                                sprite.scale.set(1);
                                sprite.scale.set(pointList.length < 2000 ? 1 : 1.6);
                                break
                            default:
                                break
                        }
                        // }, 50);
                        mapContainer.addChild(sprite);
                        Tool.beInsight(sprite, setCurSprite);
@@ -185,7 +184,7 @@
    })
}
export const getRouteList = async (zoneId, callback) => {
export const getRouteList = async (zoneId, callback, errCallBack) => {
    await request.post('/map/route/list', {
        zoneId: zoneId,
    }, {
@@ -196,10 +195,16 @@
            callback(data)
        } else {
            notify.error(msg);
            if (errCallBack) {
                errCallBack();
            }
        }
    }).catch((error) => {
        notify.error(error.message);
        console.error(error.message);
        if (errCallBack) {
            errCallBack();
        }
    })
}
zy-acs-flow/src/map/tool.js
@@ -489,9 +489,11 @@
    effectCircle.position.set(selectedSprite.x, selectedSprite.y);
};
export const showRoutes = (curZone, setShowRoutes) => {
    setShowRoutes(true);
    getRouteList(curZone, (routeList) => {
export const showRoutes = (curZone, setShowRoutes, setLoading) => {
    setLoading(true);
    getRouteList(
        curZone,
        (routeList) => {
        routeList.forEach(route => {
            const startPoint = querySprite(DEVICE_TYPE.POINT, route.startCodeStr);
            const endPoint = querySprite(DEVICE_TYPE.POINT, route.endCodeStr);
@@ -504,7 +506,13 @@
            pointRoute.alpha = 1;
            mapContainer.addChild(pointRoute);
        })
    })
            setLoading(false);
            setShowRoutes(true);
        },
        () => {
            setLoading(false);
        },
    )
};
export const hideRoutes = (curZone, setShowRoutes) => {
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java
@@ -4,6 +4,7 @@
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.core.service.*;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.core.utils.RouteGenerator;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.enums.TaskTypeType;
import com.zy.acs.manager.manager.service.*;
@@ -50,12 +51,21 @@
    private AvoidWaveCalculator avoidWaveCalculator;
    @Autowired
    private PatrolService patrolService;
    @Autowired
    private RouteGenerator routeGenerator;
    @RequestMapping(value = "/system/info", method = {RequestMethod.GET, RequestMethod.POST})
    public R systemInfo() {
        return R.ok("RCS-FLOW-1.0.0");
    }
//    @RequestMapping(value = "/system/route/generate", method = {RequestMethod.GET, RequestMethod.POST})
//    public R generate() {
//        String[][] codeMatrix = mapDataDispatcher.getCodeMatrix(null);
//        List<String> list = routeGenerator.generateRoutes(codeMatrix);
//        return R.ok(String.valueOf(list.size())).add(list);
//    }
    @GetMapping("/dead/lock")
    public R aaa() {
        AgvDetail agvDetail11 = agvDetailService.selectByAgvNo("11");
zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java
@@ -4,10 +4,10 @@
import com.zy.acs.manager.core.service.astart.CodeNodeType;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Route;
import com.zy.acs.manager.manager.service.CodeGapService;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.RouteService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -17,6 +17,7 @@
/**
 * Created by vincent on 12/9/2024
 */
@Slf4j
@Component
public class RouteGenerator {
@@ -29,8 +30,8 @@
    @Autowired
    private CodeGapService codeGapService;
    public List<Route> generateRoutes(String[][] codeMatrix) {
        List<Route> routes = new ArrayList<>();
    public List<String> generateRoutes(String[][] codeMatrix) {
        List<String> list = new ArrayList<>();
        int rows = codeMatrix.length;
        int cols = codeMatrix[0].length;
@@ -51,7 +52,11 @@
                    String rightCodeData = codeMatrix[i][j + 1];
                    if (!Cools.isEmpty(rightCodeData) && !CodeNodeType.NONE.val.equals(rightCodeData)) {
                        Code rightCode = codeService.selectByData(rightCodeData);
                        list.add(currCode.getData() + "-" + rightCode.getData());
                        routeService.createRouteByCode(currCode, rightCode, 0, null);
                        codeGapService.createCodeGapByCode(currCode, rightCode, null);
                        log.info(currCode.getData() + "-" + rightCode.getData() + " [finished]");
                    }
                }
@@ -60,13 +65,17 @@
                    String bottomCodeData = codeMatrix[i + 1][j];
                    if (!Cools.isEmpty(bottomCodeData) && !CodeNodeType.NONE.val.equals(bottomCodeData)) {
                        Code bottomCode = codeService.selectByData(bottomCodeData);
                        list.add(currCode.getData() + "-" + bottomCode.getData());
                        routeService.createRouteByCode(currCode, bottomCode, 0, null);
                        codeGapService.createCodeGapByCode(currCode, bottomCode, null);
                        log.info(currCode.getData() + "-" + bottomCode.getData() + " [finished]");
                    }
                }
            }
        }
        return routes;
        return list;
    }