【功能新增】IoT:增加插件管理功能,包含插件实例和类型的定义及相关配置

This commit is contained in:
安浩浩
2024-12-14 21:51:17 +08:00
parent 39ba4e72da
commit 555310de66
30 changed files with 1726 additions and 1 deletions

View File

@@ -36,4 +36,15 @@ public interface ErrorCodeConstants {
// ========== 设备分组 1-050-005-000 ==========
ErrorCode DEVICE_GROUP_NOT_EXISTS = new ErrorCode(1_050_005_000, "设备分组不存在");
ErrorCode DEVICE_GROUP_DELETE_FAIL_DEVICE_EXISTS = new ErrorCode(1_050_005_001, "设备分组下存在设备,不允许删除");
}
// ========== 插件信息 1-050-006-000 ==========
ErrorCode PLUGIN_INFO_NOT_EXISTS = new ErrorCode(1_050_006_000, "插件信息不存在");
ErrorCode PLUGIN_INSTALL_FAILED = new ErrorCode(1_050_006_001, "插件安装失败");
ErrorCode PLUGIN_INSTALL_FAILED_FILE_NAME_NOT_MATCH = new ErrorCode(1_050_006_002, "插件安装失败文件名与原插件id不匹配");
ErrorCode PLUGIN_INFO_DELETE_FAILED_RUNNING = new ErrorCode(1_050_006_003, "请先停止插件");
ErrorCode PLUGIN_STATUS_INVALID = new ErrorCode(1_050_006_004, "插件状态无效");
// ========== 插件实例 1-050-007-000 ==========
ErrorCode PLUGIN_INSTANCE_NOT_EXISTS = new ErrorCode(1_050_007_000, "插件实例不存在");
}

View File

@@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.iot.enums.plugin;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.Getter;
import java.util.Arrays;
/**
* IoT 部署方式枚举
*
* @author haohao
*/
@Getter
public enum IotPluginDeployTypeEnum implements IntArrayValuable {
UPLOAD(0, "上传jar"),
ALONE(1, "独立运行");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotPluginDeployTypeEnum::getDeployType).toArray();
/**
* 部署方式
*/
private final Integer deployType;
/**
* 部署方式名
*/
private final String name;
IotPluginDeployTypeEnum(Integer deployType, String name) {
this.deployType = deployType;
this.name = name;
}
public static IotPluginDeployTypeEnum fromDeployType(Integer deployType) {
for (IotPluginDeployTypeEnum value : values()) {
if (value.getDeployType().equals(deployType)) {
return value;
}
}
return null;
}
public static boolean isValidDeployType(Integer deployType) {
return fromDeployType(deployType) != null;
}
@Override
public int[] array() {
return ARRAYS;
}
}

View File

@@ -0,0 +1,57 @@
package cn.iocoder.yudao.module.iot.enums.plugin;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.Getter;
import java.util.Arrays;
/**
* IoT 插件状态枚举
*
* @author haohao
*/
@Getter
public enum IotPluginStatusEnum implements IntArrayValuable {
STOPPED(0, "停止"),
RUNNING(1, "运行");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotPluginStatusEnum::getStatus).toArray();
/**
* 状态
*/
private final Integer status;
/**
* 状态名
*/
private final String name;
IotPluginStatusEnum(Integer status, String name) {
this.status = status;
this.name = name;
}
public static IotPluginStatusEnum fromState(Integer state) {
for (IotPluginStatusEnum value : values()) {
if (value.getStatus().equals(state)) {
return value;
}
}
return null;
}
public static boolean isValidState(Integer state) {
return fromState(state) != null;
}
public static boolean contains(Integer status) {
return Arrays.stream(values()).anyMatch(e -> e.getStatus().equals(status));
}
@Override
public int[] array() {
return new int[0];
}
}

View File

@@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.iot.enums.plugin;
import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
import lombok.Getter;
import java.util.Arrays;
/**
* IoT 插件类型枚举
*
* @author haohao
*/
@Getter
public enum IotPluginTypeEnum implements IntArrayValuable {
NORMAL(0, "普通插件"),
DEVICE(1, "设备插件");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(IotPluginTypeEnum::getType).toArray();
/**
* 类型
*/
private final Integer type;
/**
* 类型名
*/
private final String name;
IotPluginTypeEnum(Integer type, String name) {
this.type = type;
this.name = name;
}
public static IotPluginTypeEnum fromType(Integer type) {
for (IotPluginTypeEnum value : values()) {
if (value.getType().equals(type)) {
return value;
}
}
return null;
}
public static boolean isValidType(Integer type) {
return fromType(type) != null;
}
@Override
public int[] array() {
return ARRAYS;
}
}