From 3553afdbe35ed5ff5d2ce2a85e90962a01de9a4a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期六, 21 三月 2026 16:26:43 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/http.js | 74 ++++++++++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java | 51 ++++++++++++
zy-acs-fake/pom.xml | 3
zy-acs-flow/src/map/insight/code/CodeMain.jsx | 33 +++----
zy-acs-manager/pom.xml | 2
pom.xml | 1
zy-acs-flow/src/map/insight/code/index.jsx | 23 ++++-
7 files changed, 159 insertions(+), 28 deletions(-)
diff --git a/pom.xml b/pom.xml
index a843c56..b1f20dc 100644
--- a/pom.xml
+++ b/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>
diff --git a/zy-acs-fake/pom.xml b/zy-acs-fake/pom.xml
index 6826c81..39da1dd 100644
--- a/zy-acs-fake/pom.xml
+++ b/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>
-
diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index bf59dcc..b0c48b1 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/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,
@@ -511,4 +583,4 @@
console.error(error.message);
}
return null;
-}
\ No newline at end of file
+}
diff --git a/zy-acs-flow/src/map/insight/code/CodeMain.jsx b/zy-acs-flow/src/map/insight/code/CodeMain.jsx
index 6719584..f89fb26 100644
--- a/zy-acs-flow/src/map/insight/code/CodeMain.jsx
+++ b/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}
- />
- {funcStaText && funcStaText !== funcStaLabel && (
- <Typography variant="body2" color="text.secondary">
- {funcStaText}
- </Typography>
- )}
- </Stack>
+ <RelationsChips
+ items={funcStaRelations}
+ emptyLabel={translate('page.map.insight.code.relations.empty', { _: '鏆傛棤鍏宠仈淇℃伅' })}
+ />
</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);
diff --git a/zy-acs-flow/src/map/insight/code/index.jsx b/zy-acs-flow/src/map/insight/code/index.jsx
index 63c651c..07ec19a 100644
--- a/zy-acs-flow/src/map/insight/code/index.jsx
+++ b/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);
diff --git a/zy-acs-manager/pom.xml b/zy-acs-manager/pom.xml
index 5ee362c..b7c433d 100644
--- a/zy-acs-manager/pom.xml
+++ b/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>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java
index b5c4826..b541781 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java
+++ b/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")
--
Gitblit v1.9.1