#
luxiaotao1123
2024-10-19 00b0ec55e1b0eef82b3a31166e8273ecea776568
#
6个文件已修改
95 ■■■■■ 已修改文件
zy-acs-flow/src/map/MapPage.jsx 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/http.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/insight/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/MapPage.jsx
@@ -21,6 +21,7 @@
import ConfirmButton from "../page/components/ConfirmButton";
import { FitScreen } from '@mui/icons-material';
import MapSearch from "./header/MapSearch";
import { startupOrShutdown } from "./http";
let player;
let websocket;
@@ -48,6 +49,7 @@
    const prevCurSpriteRef = useRef();
    const [batchSprites, setBatchSprites] = useState([]);
    const [rcsStatus, setRcsStatus] = useState(null);
    const [curZone, setCurZone] = useState(() => {
        const storedValue = localStorage.getItem('curZone');
        return storedValue !== null ? JSON.parse(storedValue) : null;
@@ -73,7 +75,7 @@
            Http.setMapContainer(player.mapContainer);
            websocket = new WebSocketClient('/ws/map/websocket');
            await Http.fetchMapData();
            await Http.fetchMapData(curZone, setRcsStatus);
            websocket.connect();
            websocket.onMessage = (wsMsg) => {
                Tool.generateDynamicGraphic(curZone, JSON.parse(wsMsg), setCurSprite);
@@ -261,10 +263,15 @@
                    <>
                        <Button
                            variant="contained"
                            color="primary"
                            color={rcsStatus ? 'inherit' : 'primary'}
                            sx={{ mr: 2 }}
                            onClick={() => {
                                startupOrShutdown(() => {
                                    setRcsStatus(!rcsStatus);
                                });
                            }}
                        >
                            {translate('page.map.action.startup')}
                            {rcsStatus ? translate('page.map.action.shutdown') : translate('page.map.action.startup')}
                        </Button>
                        <Button variant="contained" color="primary">
                            {translate('page.map.action.monitor')}
zy-acs-flow/src/map/http.js
@@ -14,15 +14,16 @@
    mapContainer = param;
}
export const fetchMapData = (zoneId) => {
export const fetchMapData = (zoneId, setRcsStatus) => {
    Tool.clearMapData();
    return request.post('/map/data/fetch', {
        zoneId: zoneId
    }, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    }).then((res) => {
        const { code, msg, data: { common, point } } = res.data;
        const { code, msg, data: { rcsStatus, common, point } } = res.data;
        if (code === 200) {
            setRcsStatus(rcsStatus);
            const mapItemList = [...eval(common), ...eval(point)];
            mapItemList.forEach(item => {
                if (item.type !== DEVICE_TYPE.AGV) {
@@ -108,6 +109,23 @@
    })
}
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,
zy-acs-flow/src/map/insight/index.jsx
@@ -39,7 +39,7 @@
                    }}>
                        <Stack direction="row" p={2} pt={3}>
                            <Typography variant="h6" flex="1">
                                {title || translate('page.map.insight.title')}
                                {title || ''}
                            </Typography>
                            <IconButton onClick={handleClose} size="small">
                                <CloseIcon />
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
@@ -26,6 +26,7 @@
import com.zy.acs.manager.manager.mapper.MapMapper;
import com.zy.acs.manager.manager.service.*;
import com.zy.acs.manager.system.controller.BaseController;
import com.zy.acs.manager.system.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
@@ -63,6 +64,15 @@
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private LocService locService;
    @Autowired
    private ConfigService configService;
    @PreAuthorize("hasAuthority('manager:loc:update')")
    @PostMapping("/startupOrShutdown")
    public synchronized R startupOrShutdown() {
        Boolean taskAssignMode = configService.getVal("TaskAssignMode", Boolean.class);
        return configService.setVal("TaskAssignMode", !taskAssignMode) ? R.ok() : R.error();
    }
    @PreAuthorize("hasAuthority('manager:loc:list')")
    @PostMapping("/data/fetch")
@@ -82,6 +92,7 @@
        // common
        Map activeMap = mapMapper.selectActive(zoneId, floor);
        return R.ok().add(Cools
                .add("rcsStatus", configService.getVal("TaskAssignMode", Boolean.class))
                .add("point", GsonUtils.toJson(mapCodeItems))
                .add("common", activeMap.getData())
        );
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java
@@ -7,4 +7,6 @@
    <T> T getVal(String key, Class<T> clazz);
    <T> boolean setVal(String key, T val);
}
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
@@ -8,7 +8,6 @@
import com.zy.acs.manager.system.enums.ConfigType;
import com.zy.acs.manager.system.mapper.ConfigMapper;
import com.zy.acs.manager.system.service.ConfigService;
import com.zy.acs.framework.exception.CoolException;
import org.springframework.stereotype.Service;
import java.util.Date;
@@ -57,4 +56,48 @@
        }
    }
    @Override
    public <T> boolean setVal(String key, T val) {
        List<Config> list = this.list(new LambdaQueryWrapper<Config>().eq(Config::getFlag, key));
        Config config = list.stream().findFirst().orElse(null);
        if (config == null) {
            return false;
        }
        ConfigType configType = ConfigType.query(config.getType());
        switch (configType) {
            case BOOLEAN:
                if (!(val instanceof Boolean)) {
                    throw new IllegalArgumentException("Expected Boolean value for key: " + key);
                }
                config.setVal((Boolean) val ? "TRUE" : "FALSE");
                break;
            case NUMBER:
                if (val instanceof Integer || val instanceof Short || val instanceof Long || val instanceof Double) {
                    config.setVal(String.valueOf(val));
                } else {
                    throw new IllegalArgumentException("Expected a numeric value for key: " + key);
                }
                break;
            case STRING:
                if (!(val instanceof String)) {
                    throw new IllegalArgumentException("Expected a String value for key: " + key);
                }
                config.setVal((String) val);
                break;
            case JSON:
                config.setVal(GsonUtils.toJson(val));
                break;
            case DATE:
                if (!(val instanceof Date)) {
                    throw new IllegalArgumentException("Expected a Date value for key: " + key);
                }
                config.setVal(DateUtils.convert((Date) val));
                break;
            default:
                throw new UnsupportedOperationException("Unsupported ConfigType: " + configType);
        }
        return this.updateById(config);
    }
}