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