From 736a85729a54bcce593914eedf52120465433f23 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 11 九月 2024 10:26:08 +0800
Subject: [PATCH] #
---
zy-acs-flow/.env | 4
zy-acs-flow/src/page/operationRecord/OperationDetail.jsx | 14 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 4
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MockService.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java | 43 +++++++++++++
zy-acs-common/src/main/java/com/zy/acs/common/utils/GsonUtils.java | 37 ++++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/system/enums/ConfigType.java | 29 +++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/ConfigController.java | 1
zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java | 6 +-
zy-acs-common/pom.xml | 6 ++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java | 2
12 files changed, 131 insertions(+), 19 deletions(-)
diff --git a/zy-acs-common/pom.xml b/zy-acs-common/pom.xml
index 6e8f775..5ab1a1d 100644
--- a/zy-acs-common/pom.xml
+++ b/zy-acs-common/pom.xml
@@ -17,11 +17,17 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <gson.version>2.11.0</gson.version>
<fastjson.version>1.2.58</fastjson.version>
</properties>
<dependencies>
<dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>${gson.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/utils/GsonUtils.java b/zy-acs-common/src/main/java/com/zy/acs/common/utils/GsonUtils.java
new file mode 100644
index 0000000..53d5efd
--- /dev/null
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/utils/GsonUtils.java
@@ -0,0 +1,37 @@
+package com.zy.acs.common.utils;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonSyntaxException;
+import com.google.gson.reflect.TypeToken;
+import java.lang.reflect.Type;
+import java.util.List;
+import java.util.Map;
+
+public class GsonUtils {
+
+ // include cache
+ private static final Gson gson = new Gson();
+
+ public static String toJson(Object object) {
+ return gson.toJson(object);
+ }
+
+ public static <T> T fromJson(String json, Class<T> clazz) throws JsonSyntaxException {
+ return gson.fromJson(json, clazz);
+ }
+
+ public static <T> T fromJson(String json, Type typeOfT) throws JsonSyntaxException {
+ return gson.fromJson(json, typeOfT);
+ }
+
+ public static <T> List<T> fromJsonToList(String json, Class<T> clazz) throws JsonSyntaxException {
+ Type type = TypeToken.getParameterized(List.class, clazz).getType();
+ return gson.fromJson(json, type);
+ }
+
+ public static <K, V> Map<K, V> fromJsonToMap(String json, Class<K> keyType, Class<V> valueType) throws JsonSyntaxException {
+ Type type = TypeToken.getParameterized(Map.class, keyType, valueType).getType();
+ return gson.fromJson(json, type);
+ }
+
+}
diff --git a/zy-acs-flow/.env b/zy-acs-flow/.env
index 5ad1587..f3ded7f 100644
--- a/zy-acs-flow/.env
+++ b/zy-acs-flow/.env
@@ -1,5 +1,5 @@
-COOL_BASE_IP = '10.242.136.69'
+# COOL_BASE_IP = '10.242.136.69'
# COOL_BASE_IP = 'localhost'
-# COOL_BASE_IP = '192.168.4.36'
+COOL_BASE_IP = '192.168.4.36'
COOL_BASE_PORT = 9090
diff --git a/zy-acs-flow/src/page/operationRecord/OperationDetail.jsx b/zy-acs-flow/src/page/operationRecord/OperationDetail.jsx
index f4739fc..ca45841 100644
--- a/zy-acs-flow/src/page/operationRecord/OperationDetail.jsx
+++ b/zy-acs-flow/src/page/operationRecord/OperationDetail.jsx
@@ -12,7 +12,7 @@
const OperationDetail = (props) => {
const { operation, ...rest } = props;
-
+
return (
<>
<Box width={{ xs: '100vW', sm: 400 }} mt={{ xs: 2, sm: 1 }}>
@@ -25,7 +25,7 @@
variant="body2"
flexWrap="nowrap"
>
- {operation.namespace}
+ {operation.namespace || ''}
</Typography>
</Labeled>
</Grid>
@@ -35,7 +35,7 @@
variant="body2"
flexWrap="nowrap"
>
- {operation.url}
+ {operation.url || ''}
</Typography>
</Labeled>
</Grid>
@@ -55,14 +55,14 @@
variant="body2"
flexWrap="nowrap"
>
- {operation.userId$}
+ {operation.userId$ || ''}
</Typography>
</Labeled>
</Grid>
<Grid item sm={12}>
<TextField
label="Request"
- value={operation.request}
+ value={operation.request || ''}
maxRows={15}
multiline
/>
@@ -71,7 +71,7 @@
<Grid item sm={12}>
<TextField
label="Response"
- value={operation.response}
+ value={operation.response || ''}
maxRows={15}
multiline
/>
@@ -82,7 +82,7 @@
variant="body2"
flexWrap="nowrap"
>
- {operation.clientIp}
+ {operation.clientIp || ''}
</Typography>
</Labeled>
</Grid>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java
index 2a4a0ae..07b3c4e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java
@@ -172,7 +172,7 @@
@Scheduled(cron = "0/1 * * * * ? ")
private void demo() throws InterruptedException {
if (!this.autoDemo) { return; }
- int busLimit = Integer.parseInt(configService.getVal("busLimit"));
+ int busLimit = configService.getVal("busLimit", Integer.class);
if (autoSize != null) {
busLimit = autoSize;
}
@@ -246,7 +246,7 @@
@Scheduled(cron = "0/3 * * * * ? ")
private void demo1() throws InterruptedException {
if (!this.autoDemo1) { return; }
- int busLimit = Integer.parseInt(configService.getVal("busLimit"));
+ int busLimit = configService.getVal("busLimit", Integer.class);
if (autoSize != null) {
busLimit = autoSize;
}
@@ -314,7 +314,7 @@
@Scheduled(cron = "0/3 * * * * ? ")
private void demo2() throws InterruptedException {
if (!this.autoDemo2) { return; }
- int busLimit = Integer.parseInt(configService.getVal("busLimit"));
+ int busLimit = configService.getVal("busLimit", Integer.class);
if (autoSize != null) {
busLimit = autoSize;
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 6ac9ad2..371d75b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -255,7 +255,7 @@
throw new CoolException("generate [task] action fail, cause can not acquire lock ...");
}
Date now = new Date();
- final String sameGroupXy = configService.getVal( "sameGroupXy");
+ final String sameGroupXy = configService.getVal( "sameGroupXy", String.class);
Agv agv = agvService.getById(agvId);
if (!agvService.judgeEnable(agv.getId(), agvDetail -> agvDetail.getVol() > agv.getChargeLine())) {
@@ -590,7 +590,7 @@
try {
if (Cools.isEmpty(agvId, segmentList)) { return; }
Date now = new Date();
- JSONObject storeDirection = JSON.parseObject(configService.getVal("storeDirection"));
+ JSONObject storeDirection = configService.getVal("storeDirection", JSONObject.class);
Agv agv = agvService.getById(agvId);
if (!agvService.judgeEnable(agv.getId())) {
throw new CoolException("AGV[" + agv.getUuid() + "]褰撳墠涓嶅彲鐢�...");
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
index bfecd47..f421485 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -133,7 +133,7 @@
double deltaX = x1 - x0;
double deltaY = y1 - y0;
double angle = Math.atan2(deltaX, deltaY);
- int offsetAngle = Integer.parseInt(configService.getVal("mapXoffset"));
+ int offsetAngle = configService.getVal("mapXoffset", Integer.class);
angle = angle + offsetAngle;
angle = Math.toDegrees(angle);
angle = (angle + 360) % 360; // 灏嗚搴﹁浆鎹负姝e��
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MockService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MockService.java
index 8404b86..de2f583 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MockService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MockService.java
@@ -66,7 +66,7 @@
@Transactional
public List<MockVo> submit(List<MockAgvDto> agvList, List<MockDto> taskList) {
- final String sameGroupXy = configService.getVal("sameGroupXy");
+ final String sameGroupXy = configService.getVal("sameGroupXy", String.class);
List<MockVo> result = new ArrayList<>();
if (Cools.isEmpty(taskList)) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/ConfigController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/ConfigController.java
index 2e7fc99..b0eb20d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/ConfigController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/ConfigController.java
@@ -1,5 +1,6 @@
package com.zy.acs.manager.system.controller;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.acs.framework.common.Cools;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/enums/ConfigType.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/enums/ConfigType.java
new file mode 100644
index 0000000..c43c2da
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/enums/ConfigType.java
@@ -0,0 +1,29 @@
+package com.zy.acs.manager.system.enums;
+
+import com.zy.acs.framework.exception.CoolException;
+
+public enum ConfigType {
+
+ BOOLEAN(1),
+ NUMBER(2),
+ STRING(3),
+ JSON(4),
+ DATE(5),
+ ;
+
+ public int type;
+
+ ConfigType(int type) {
+ this.type = type;
+ }
+
+ public static ConfigType query(int type) {
+ for (ConfigType value : ConfigType.values()) {
+ if (type == value.type) {
+ return value;
+ }
+ }
+ throw new CoolException("ConfigType Error!");
+ }
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java
index c09b597..f8c45ba 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/ConfigService.java
@@ -5,6 +5,6 @@
public interface ConfigService extends IService<Config> {
- String getVal(String key);
+ <T> T getVal(String key, Class<T> clazz);
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
index 69d58ba..29230e8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/system/service/impl/ConfigServiceImpl.java
@@ -1,11 +1,18 @@
package com.zy.acs.manager.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.acs.common.utils.GsonUtils;
+import com.zy.acs.framework.common.DateUtils;
import com.zy.acs.manager.system.entity.Config;
+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;
+import java.util.List;
/**
* Created by vincent on 8/30/2024
@@ -14,8 +21,40 @@
public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> implements ConfigService {
@Override
- public String getVal(String key) {
- throw new CoolException("Config杩樻病鍋�");
+ @SuppressWarnings("unchecked")
+ public <T> T getVal(String key, Class<T> clazz) {
+ List<Config> list = this.list(new LambdaQueryWrapper<Config>().eq(Config::getFlag, key));
+ Config config = list.stream().findFirst().orElse(null);
+ if (null == config) {
+ return null;
+ }
+ String val = config.getVal();
+ switch (ConfigType.query(config.getType())) {
+ case BOOLEAN:
+ if (val.equals("1") || val.trim().toUpperCase().equals("TRUE")) {
+ return (T) Boolean.TRUE;
+ }
+ return (T) Boolean.FALSE;
+ case NUMBER:
+ if (clazz == Integer.class) {
+ return (T) Integer.valueOf(val);
+ } else if (clazz == Short.class) {
+ return (T) Short.valueOf(val);
+ } else if (clazz == Long.class) {
+ return (T) Long.valueOf(val);
+ } else if (clazz == Double.class) {
+ return (T) Double.valueOf(val);
+ }
+ throw new UnsupportedOperationException("Unsupported type: " + clazz.getName());
+ case STRING:
+ return (T) val;
+ case JSON:
+ return GsonUtils.fromJson(val, clazz);
+ case DATE:
+ return (T) DateUtils.convert(val);
+ default:
+ return null;
+ }
}
}
--
Gitblit v1.9.1