#
vincentlu
2 天以前 3553afdbe35ed5ff5d2ce2a85e90962a01de9a4a
#
7个文件已修改
183 ■■■■ 已修改文件
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-fake/pom.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/http.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/insight/code/CodeMain.jsx 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/insight/code/index.jsx 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -33,6 +33,7 @@
        <spring-boot.version>2.5.3</spring-boot.version>
        <jedis.version>2.9.0</jedis.version>
        <snakeyaml.version>1.33</snakeyaml.version>
        <druid.version>1.2.27</druid.version>
    </properties>
    <dependencies>
zy-acs-fake/pom.xml
@@ -82,7 +82,7 @@
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
@@ -103,4 +103,3 @@
    </build>
</project>
zy-acs-flow/src/map/http.js
@@ -204,6 +204,78 @@
    })
}
export const getCodeInfo = async (codeData, callback, errCallBack) => {
    await request.post('/code/info', {
        codeData,
    }, {
        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 getCodeRouteList = async (codeData, callback, errCallBack) => {
    await request.post('/code/route/list', {
        codeData,
    }, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    }).then((res) => {
        const { code, msg, data } = res.data;
        if (code === 200) {
            callback(Array.isArray(data) ? data : []);
        } else {
            notify?.error(msg);
            if (errCallBack) {
                errCallBack();
            }
        }
    }).catch((error) => {
        notify?.error(error.message);
        console.error(error.message);
        if (errCallBack) {
            errCallBack();
        }
    })
}
export const getCodeFuncStaList = async (codeData, callback, errCallBack) => {
    await request.post('/code/funcSta/list', {
        codeData,
    }, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    }).then((res) => {
        const { code, msg, data } = res.data;
        if (code === 200) {
            callback(Array.isArray(data) ? data : []);
        } else {
            notify?.error(msg);
            if (errCallBack) {
                errCallBack();
            }
        }
    }).catch((error) => {
        notify?.error(error.message);
        console.error(error.message);
        if (errCallBack) {
            errCallBack();
        }
    })
}
export const getRouteList = async (zoneId, callback, errCallBack) => {
    await request.post('/map/route/list', {
        zoneId: zoneId,
zy-acs-flow/src/map/insight/code/CodeMain.jsx
@@ -55,10 +55,10 @@
        () => extractRelationItems(info, ['routeList', 'routes', 'routeRefs']),
        [info]
    );
    const funcStaBool = detectBoolean(
        info?.funcStaBool ?? info?.isFuncSta ?? info?.funcStation ?? info?.funcStaFlag
    const funcStaRelations = useMemo(
        () => extractRelationItems(info, ['funcStaList', 'funcStas']),
        [info]
    );
    const funcStaText = info?.funcSta$ || info?.funcStaName || info?.funcStaType || info?.funcStaCode || info?.funcStaUuid || info?.funcSta;
    const ruleList = useMemo(() => normalizeDirRule(info?.dirRule), [info?.dirRule]);
@@ -103,10 +103,6 @@
        }
    };
    const funcStaLabel = funcStaBool == null
        ? translate('common.enums.na')
        : translate(funcStaBool ? 'common.enums.true' : 'common.enums.false');
    return (
        <Box sx={{ pr: 1, pb: 3 }}>
            <Grid container spacing={3} alignItems="flex-start">
@@ -147,7 +143,7 @@
                                    disabled={!info?.id}
                                    sx={{ alignSelf: 'flex-start', textTransform: 'none', px: 3 }}
                                >
                                    {translate('page.map.insight.code.actions.openDetail', { _: '进入 Code 页面' })}
                                    {translate('page.map.insight.code.actions.openDetail', { _: '编辑' })}
                                </Button>
                            </Stack>
                        </Paper>
@@ -180,17 +176,10 @@
                                />
                            </InfoPanel>
                            <InfoPanel title={translate('menu.funcSta', { _: '功能站' })}>
                                <Stack spacing={1}>
                                    <BooleanDisplay
                                        value={funcStaBool}
                                        label={funcStaLabel}
                                <RelationsChips
                                    items={funcStaRelations}
                                    emptyLabel={translate('page.map.insight.code.relations.empty', { _: '暂无关联信息' })}
                                    />
                                    {funcStaText && funcStaText !== funcStaLabel && (
                                        <Typography variant="body2" color="text.secondary">
                                            {funcStaText}
                                        </Typography>
                                    )}
                                </Stack>
                            </InfoPanel>
                        </Stack>
                    </Paper>
@@ -592,6 +581,12 @@
        return item;
    }
    if (typeof item === 'object') {
        if (item.startCode$ && item.endCode$) {
            return `${item.startCode$} -> ${item.endCode$}`;
        }
        if (item.name || item.type || item.state) {
            return [item.name, item.type, item.state].filter(Boolean).join(' / ');
        }
        return item.name || item.code || item.data || item.no || item.uuid || item.locNo || item.staNo || JSON.stringify(item);
    }
    return String(item);
zy-acs-flow/src/map/insight/code/index.jsx
@@ -2,7 +2,7 @@
import { useTranslate } from 'react-admin';
import { Box, Tabs, Tab, Divider } from '@mui/material';
import JsonShow from '../../JsonShow';
import { getPointInfo } from '../../http';
import { getCodeInfo, getCodeRouteList, getCodeFuncStaList } from '../../http';
import CodeMain from './CodeMain';
const CodeInsight = ({ sprite, setTitle }) => {
@@ -13,7 +13,7 @@
    const [loading, setLoading] = useState(false);
    const codeLabel = translate('page.map.devices.code', {
        _: translate('page.map.devices.point', { _: 'Code' })
        _: '地面码'
    });
    const fetchCodeInfo = useCallback(async (code, options = {}) => {
@@ -26,9 +26,22 @@
        setTitle(`${codeLabel} - ${code}`);
        setCurrentCode(code);
        try {
            await getPointInfo(code, (response) => {
                setCodeInfo(response || null);
            });
            const [info, routeList, funcStaList] = await Promise.all([
                new Promise((resolve) => {
                    getCodeInfo(code, resolve, () => resolve(null));
                }),
                new Promise((resolve) => {
                    getCodeRouteList(code, resolve, () => resolve([]));
                }),
                new Promise((resolve) => {
                    getCodeFuncStaList(code, resolve, () => resolve([]));
                }),
            ]);
            setCodeInfo(info ? {
                ...info,
                routeList,
                funcStaList,
            } : null);
        } finally {
            if (!options?.silent) {
                setLoading(false);
zy-acs-manager/pom.xml
@@ -137,7 +137,7 @@
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java
@@ -16,10 +16,12 @@
import com.zy.acs.manager.common.utils.ExcelUtil;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.CodeGap;
import com.zy.acs.manager.manager.entity.FuncSta;
import com.zy.acs.manager.manager.entity.Route;
import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.service.CodeGapService;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.FuncStaService;
import com.zy.acs.manager.manager.service.RouteService;
import com.zy.acs.manager.manager.service.impl.CodeServiceImpl;
import com.zy.acs.manager.system.controller.BaseController;
@@ -43,6 +45,8 @@
    private CodeGapService codeGapService;
    @Autowired
    private RouteService routeService;
    @Autowired
    private FuncStaService funcStaService;
    @PreAuthorize("hasAuthority('manager:code:list')")
    @PostMapping("/code/page")
@@ -70,6 +74,53 @@
        return R.ok().add(codeService.getCacheById(id));
    }
    @PreAuthorize("hasAuthority('manager:code:list')")
    @PostMapping("/code/info")
    public R info(@RequestParam(required = false) String codeData) {
        if (Cools.isEmpty(codeData)) {
            return R.error();
        }
        Code code = codeService.getCacheByData(codeData);
        if (code == null) {
            return R.error("Code Not Found");
        }
        return R.ok().add(code);
    }
    @PreAuthorize("hasAuthority('manager:code:list')")
    @PostMapping("/code/route/list")
    public R routeList(@RequestParam(required = false) String codeData) {
        if (Cools.isEmpty(codeData)) {
            return R.error();
        }
        Code code = codeService.getCacheByData(codeData);
        if (code == null) {
            return R.ok().add(Collections.emptyList());
        }
        List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>()
                .eq(Route::getStatus, StatusType.ENABLE.val)
                .and(wrapper -> wrapper.eq(Route::getStartCode, code.getId()).or().eq(Route::getEndCode, code.getId()))
                .orderByAsc(Route::getId));
        return R.ok().add(routeList);
    }
    @PreAuthorize("hasAuthority('manager:code:list')")
    @PostMapping("/code/funcSta/list")
    public R funcStaList(@RequestParam(required = false) String codeData) {
        if (Cools.isEmpty(codeData)) {
            return R.error();
        }
        Code code = codeService.getCacheByData(codeData);
        if (code == null) {
            return R.ok().add(Collections.emptyList());
        }
        List<FuncSta> funcStaList = funcStaService.list(new LambdaQueryWrapper<FuncSta>()
                .eq(FuncSta::getCode, code.getId())
                .eq(FuncSta::getStatus, StatusType.ENABLE.val)
                .orderByAsc(FuncSta::getId));
        return R.ok().add(funcStaList);
    }
    @PreAuthorize("hasAuthority('manager:code:save')")
    @OperationLog("Create Code")
    @PostMapping("/code/save")