正在显示
9 个修改的文件
包含
92 行增加
和
25 行删除
| @@ -52,6 +52,7 @@ public abstract class ThingsModelItemBase<T> implements ThingsModelBase<T> | @@ -52,6 +52,7 @@ public abstract class ThingsModelItemBase<T> implements ThingsModelBase<T> | ||
| 52 | thingsModelItemBase.setValue(jsonElement.getAsInt()); | 52 | thingsModelItemBase.setValue(jsonElement.getAsInt()); |
| 53 | break; | 53 | break; |
| 54 | } | 54 | } |
| 55 | + thingsModelItemBase.setSaveView(jsonElement.getAsString()); | ||
| 55 | thingsModelItemBase.conversionThingsModel(thingsModel); | 56 | thingsModelItemBase.conversionThingsModel(thingsModel); |
| 56 | 57 | ||
| 57 | return thingsModelItemBase; | 58 | return thingsModelItemBase; |
| @@ -4,6 +4,7 @@ import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemB | @@ -4,6 +4,7 @@ import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelItemB | ||
| 4 | import lombok.Data; | 4 | import lombok.Data; |
| 5 | 5 | ||
| 6 | import java.math.BigDecimal; | 6 | import java.math.BigDecimal; |
| 7 | +import java.math.RoundingMode; | ||
| 7 | 8 | ||
| 8 | @Data | 9 | @Data |
| 9 | public class DecimalModelOutput extends ThingsModelItemBase<BigDecimal> | 10 | public class DecimalModelOutput extends ThingsModelItemBase<BigDecimal> |
| @@ -57,6 +58,21 @@ public class DecimalModelOutput extends ThingsModelItemBase<BigDecimal> | @@ -57,6 +58,21 @@ public class DecimalModelOutput extends ThingsModelItemBase<BigDecimal> | ||
| 57 | 58 | ||
| 58 | @Override | 59 | @Override |
| 59 | public void setSaveView(String value) { | 60 | public void setSaveView(String value) { |
| 60 | - setValue(new BigDecimal(value)); | 61 | + BigDecimal bigDecimalValue = new BigDecimal(value); |
| 62 | + if (null != step) | ||
| 63 | + { | ||
| 64 | + int decimalPlaces = getDecimalPlaces(step); | ||
| 65 | + BigDecimal roundedValue = bigDecimalValue.setScale(decimalPlaces, RoundingMode.HALF_UP); | ||
| 66 | + setValue(roundedValue); | ||
| 67 | + }else { | ||
| 68 | + setValue(bigDecimalValue); | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + private int getDecimalPlaces(BigDecimal number) { | ||
| 73 | + if (number == null || number.scale() <= 0) { | ||
| 74 | + return 0; | ||
| 75 | + } | ||
| 76 | + return number.stripTrailingZeros().scale(); | ||
| 61 | } | 77 | } |
| 62 | } | 78 | } |
| 1 | +#!/bin/bash | ||
| 2 | + | ||
| 3 | +# 定义脚本路径 | ||
| 4 | +SCRIPT_PATH="/opt/monitor.sh" | ||
| 5 | +CRON_LOG="/var/log/monitor.log" | ||
| 6 | + | ||
| 7 | +# 创建 monitor.sh 文件 | ||
| 8 | +( | ||
| 9 | + cat <<EOF | ||
| 10 | +#!/bin/bash | ||
| 11 | + | ||
| 12 | +# 定义API的URL | ||
| 13 | +API_URL="https://lh.admin.yu2le.com/api/monitor/server/upload" | ||
| 14 | + | ||
| 15 | +# 获取系统性能信息的函数 | ||
| 16 | +get_system_performance() { | ||
| 17 | + # 获取CPU使用率 | ||
| 18 | + CPU_USAGE=\$(top -bn1 | grep "Cpu(s)" | awk '{print \$2 + \$4}') | ||
| 19 | + | ||
| 20 | + # 获取内存使用率 | ||
| 21 | + MEMORY_USAGE=\$(free | grep Mem | awk '{print \$3/\$2 * 100.0}') | ||
| 22 | + | ||
| 23 | + # 获取磁盘使用率 | ||
| 24 | + DISK_USAGE=\$(df -h | grep '^/dev/' | grep -v 'boot' | awk '{print \$5}' | tr -d '%' | paste -sd+ | bc) | ||
| 25 | + | ||
| 26 | + # 获取系统连接数 | ||
| 27 | + CONNECTION_COUNT=\$(netstat -an | grep ESTABLISHED | wc -l) | ||
| 28 | + | ||
| 29 | + # 获取前10进程的内存详情,使用 "fg9527" 分隔符 | ||
| 30 | + MEMORY_INFO=\$(ps aux --sort=-rss | head -n 11 | awk 'NR==1 {print "USERfg9527PIDfg9527MEMORY(M)fg9527COMMAND"; next} {cmd=""; for(i=11;i<=NF;i++) cmd=cmd\$i" "; printf "%sfg9527%sfg9527%.2fMfg9527%s\n", \$1, \$2, \$6/1024, cmd}' | tr '\n' ';') | ||
| 31 | + | ||
| 32 | + # 获取前10进程的CPU详情,使用 "fg9527" 分隔符 | ||
| 33 | + CPU_INFO=\$(ps aux --sort=-%cpu | head -n 11 | awk 'NR==1 {print "USERfg9527PIDfg9527CPU(%)fg9527COMMAND"; next} {cmd=""; for(i=11;i<=NF;i++) cmd=cmd\$i" "; printf "%sfg9527%sfg9527%.2f%%fg9527%s\n", \$1, \$2, \$3, cmd}' | tr '\n' ';') | ||
| 34 | + | ||
| 35 | + # 生成 JSON 格式数据,转义双引号 | ||
| 36 | + MEMORY_INFO=\$(echo "\$MEMORY_INFO" | sed 's/"/\\"/g') | ||
| 37 | + CPU_INFO=\$(echo "\$CPU_INFO" | sed 's/"/\\"/g') | ||
| 38 | + | ||
| 39 | + # 生成 ip | ||
| 40 | + IP=\$(hostname -I | awk '{print \$1}') | ||
| 41 | + # 构建JSON数据 | ||
| 42 | + echo "{\"cpu_usage\": \"\${CPU_USAGE}\", \"memory_usage\": \"\${MEMORY_USAGE}\", \"disk_usage\": \"\${DISK_USAGE}\", \"connection_count\": \"\${CONNECTION_COUNT}\", \"memory_info\": \"\${MEMORY_INFO}\", \"cpu_info\": \"\${CPU_INFO}\", \"localip\": \"\${IP}\"}" | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +# 获取当前系统性能数据 | ||
| 46 | +DATA=\$(get_system_performance) | ||
| 47 | + | ||
| 48 | +echo \$DATA | ||
| 49 | + | ||
| 50 | +# 使用curl将数据上传到指定的API | ||
| 51 | +curl -X POST -H "Content-Type: application/json" -d "\$DATA" --insecure "\$API_URL" | ||
| 52 | +EOF | ||
| 53 | +) > $SCRIPT_PATH | ||
| 54 | + | ||
| 55 | +# 设置脚本执行权限 | ||
| 56 | +chmod +x $SCRIPT_PATH | ||
| 57 | + | ||
| 58 | +# 添加定时任务 | ||
| 59 | +(crontab -l 2>/dev/null; echo "*/1 * * * * $SCRIPT_PATH >> $CRON_LOG 2>&1") | crontab - | ||
| 60 | + | ||
| 61 | +# 确保 cron 服务已启动 | ||
| 62 | +systemctl enable cron | ||
| 63 | +systemctl restart cron | ||
| 64 | + | ||
| 65 | +$SCRIPT_PATH | ||
| 66 | + | ||
| 67 | +echo "Monitor setup completed." |
| @@ -54,7 +54,7 @@ import java.util.concurrent.TimeUnit; | @@ -54,7 +54,7 @@ import java.util.concurrent.TimeUnit; | ||
| 54 | * 设备指令监听服务 | 54 | * 设备指令监听服务 |
| 55 | */ | 55 | */ |
| 56 | @Service | 56 | @Service |
| 57 | -@RocketMQMessageListener(consumerGroup = "${rocketmq.consumerGroup}", topic = "${rocketmq.topic}",selectorType = SelectorType.TAG,selectorExpression = "${rocketmq.operationToken}",messageModel = MessageModel.BROADCASTING) | 57 | +@RocketMQMessageListener(consumerGroup = "deviceCommand", topic = "deviceCommandListen",selectorType = SelectorType.TAG,selectorExpression = "${rocketmq.operationToken}",messageModel = MessageModel.BROADCASTING) |
| 58 | public class DeviceCommandListenService implements RocketMQReplyListener<MessageExt, Message>, RocketMQPushConsumerLifecycleListener { | 58 | public class DeviceCommandListenService implements RocketMQReplyListener<MessageExt, Message>, RocketMQPushConsumerLifecycleListener { |
| 59 | private static final Logger log = LoggerFactory.getLogger(DeviceCommandListenService.class); | 59 | private static final Logger log = LoggerFactory.getLogger(DeviceCommandListenService.class); |
| 60 | 60 |
| @@ -26,6 +26,4 @@ mqtt: | @@ -26,6 +26,4 @@ mqtt: | ||
| 26 | rocketmq: | 26 | rocketmq: |
| 27 | #nameservice服务器地址(多个以英文逗号隔开) | 27 | #nameservice服务器地址(多个以英文逗号隔开) |
| 28 | name-server: 47.115.144.179:9876 | 28 | name-server: 47.115.144.179:9876 |
| 29 | - consumerGroup: lh-http-service-proxy | ||
| 30 | - topic: deviceCommandListen | ||
| 31 | - operationToken: ${random.uuid} | ||
| 29 | + operationToken: local_lh-http-service-proxy |
| @@ -20,7 +20,7 @@ spring: | @@ -20,7 +20,7 @@ spring: | ||
| 20 | mqtt: | 20 | mqtt: |
| 21 | #链接地址 | 21 | #链接地址 |
| 22 | # broker: tcp://175.24.61.68:1883 | 22 | # broker: tcp://175.24.61.68:1883 |
| 23 | - broker: tcp://47.112.163.61:1883 | 23 | + broker: tcp://8.129.82.37:1883 |
| 24 | #唯一标识 | 24 | #唯一标识 |
| 25 | clientId: ${random.uuid} | 25 | clientId: ${random.uuid} |
| 26 | topicconfig: "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{topicType}}/{{messageid}}" | 26 | topicconfig: "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{topicType}}/{{messageid}}" |
| @@ -34,7 +34,5 @@ mqtt: | @@ -34,7 +34,5 @@ mqtt: | ||
| 34 | #rocketmq配置信息 | 34 | #rocketmq配置信息 |
| 35 | rocketmq: | 35 | rocketmq: |
| 36 | #nameservice服务器地址(多个以英文逗号隔开) | 36 | #nameservice服务器地址(多个以英文逗号隔开) |
| 37 | - name-server: 47.115.144.179:9876 | ||
| 38 | - consumerGroup: ${random.uuid} | ||
| 39 | - topic: deviceCommandListen | 37 | + name-server: 8.129.224.117:9876 |
| 40 | operationToken: local_lh-mqtt-service-listen | 38 | operationToken: local_lh-mqtt-service-listen |
| @@ -22,13 +22,7 @@ | @@ -22,13 +22,7 @@ | ||
| 22 | <modules> | 22 | <modules> |
| 23 | <module>lh-web-douyin</module> | 23 | <module>lh-web-douyin</module> |
| 24 | </modules> | 24 | </modules> |
| 25 | - <dependencies> | ||
| 26 | - <dependency> | ||
| 27 | - <groupId>com.zhonglai.luhui</groupId> | ||
| 28 | - <artifactId>lh-web-douyin</artifactId> | ||
| 29 | - <version>${ruoyi.version}</version> | ||
| 30 | - </dependency> | ||
| 31 | - </dependencies> | 25 | + |
| 32 | <description> | 26 | <description> |
| 33 | web服务 | 27 | web服务 |
| 34 | </description> | 28 | </description> |
| @@ -75,7 +75,7 @@ | @@ -75,7 +75,7 @@ | ||
| 75 | 75 | ||
| 76 | <dependency> | 76 | <dependency> |
| 77 | <groupId>com.zhonglai.luhui</groupId> | 77 | <groupId>com.zhonglai.luhui</groupId> |
| 78 | - <artifactId>lh-superweb-jar</artifactId> | 78 | + <artifactId>lh-web-douyin</artifactId> |
| 79 | </dependency> | 79 | </dependency> |
| 80 | </dependencies> | 80 | </dependencies> |
| 81 | </project> | 81 | </project> |
| @@ -218,13 +218,6 @@ | @@ -218,13 +218,6 @@ | ||
| 218 | <version>${ruoyi.version}</version> | 218 | <version>${ruoyi.version}</version> |
| 219 | </dependency> | 219 | </dependency> |
| 220 | 220 | ||
| 221 | - <!-- 代码生成模块--> | ||
| 222 | - <dependency> | ||
| 223 | - <groupId>com.zhonglai.luhui</groupId> | ||
| 224 | - <artifactId>ruoyi-generator</artifactId> | ||
| 225 | - <version>${ruoyi.version}</version> | ||
| 226 | - </dependency> | ||
| 227 | - | ||
| 228 | <!-- 模型--> | 221 | <!-- 模型--> |
| 229 | <dependency> | 222 | <dependency> |
| 230 | <groupId>com.zhonglai.luhui</groupId> | 223 | <groupId>com.zhonglai.luhui</groupId> |
| @@ -372,7 +365,7 @@ | @@ -372,7 +365,7 @@ | ||
| 372 | </dependency> | 365 | </dependency> |
| 373 | <dependency> | 366 | <dependency> |
| 374 | <groupId>com.zhonglai.luhui</groupId> | 367 | <groupId>com.zhonglai.luhui</groupId> |
| 375 | - <artifactId>lh-superweb-jar</artifactId> | 368 | + <artifactId>lh-web-douyin</artifactId> |
| 376 | <version>${ruoyi.version}</version> | 369 | <version>${ruoyi.version}</version> |
| 377 | </dependency> | 370 | </dependency> |
| 378 | <dependency> | 371 | <dependency> |
-
请 注册 或 登录 后发表评论