From b06556da2d053e39ba3e1f82958984bcd6f39cce Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 13 Jun 2025 07:45:51 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90IoT=20=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E3=80=91=E4=BA=A7=E5=93=81=E7=9A=84=E5=8D=8F=E8=AE=AE=EF=BC=8C?= =?UTF-8?q?=E6=94=B9=E6=88=90=20codec=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/iot/enums/DictTypeConstants.java | 5 +-- .../iot/enums/product/IotDataFormatEnum.java | 38 ------------------ .../enums/product/IotProtocolTypeEnum.java | 40 ------------------- .../enums/product/IotValidateTypeEnum.java | 37 ----------------- .../product/vo/product/IotProductRespVO.java | 20 ++-------- .../vo/product/IotProductSaveReqVO.java | 19 +++------ .../dal/dataobject/product/IotProductDO.java | 30 ++------------ .../gateway/codec/IotDeviceMessageCodec.java | 2 +- .../alink/IotAlinkDeviceMessageCodec.java | 2 +- 9 files changed, 15 insertions(+), 178 deletions(-) delete mode 100644 yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotDataFormatEnum.java delete mode 100644 yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProtocolTypeEnum.java delete mode 100644 yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotValidateTypeEnum.java diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/DictTypeConstants.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/DictTypeConstants.java index dc94854566..37c8044211 100644 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/DictTypeConstants.java +++ b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/DictTypeConstants.java @@ -10,12 +10,9 @@ public class DictTypeConstants { public static final String PRODUCT_STATUS = "iot_product_status"; public static final String PRODUCT_DEVICE_TYPE = "iot_product_device_type"; public static final String NET_TYPE = "iot_net_type"; - public static final String PROTOCOL_TYPE = "iot_protocol_type"; - public static final String DATA_FORMAT = "iot_data_format"; - public static final String VALIDATE_TYPE = "iot_validate_type"; + public static final String CODEC_TYPE = "iot_codec_type"; public static final String DEVICE_STATE = "iot_device_state"; - public static final String CODEC_TYPE = "iot_codec_type"; } diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotDataFormatEnum.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotDataFormatEnum.java deleted file mode 100644 index 0cfe1c9f48..0000000000 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotDataFormatEnum.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.iocoder.yudao.module.iot.enums.product; - -import cn.iocoder.yudao.framework.common.core.ArrayValuable; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.Arrays; - -/** - * 产品数据格式枚举类 - * - * @author ahh - * @see 阿里云 - 什么是消息解析 - */ -@AllArgsConstructor -@Getter -public enum IotDataFormatEnum implements ArrayValuable { - - JSON(0, "标准数据格式(JSON)"), - CUSTOMIZE(1, "透传/自定义"); - - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotDataFormatEnum::getType).toArray(Integer[]::new); - - /** - * 类型 - */ - private final Integer type; - /** - * 描述 - */ - private final String description; - - @Override - public Integer[] array() { - return ARRAYS; - } - -} diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProtocolTypeEnum.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProtocolTypeEnum.java deleted file mode 100644 index d24dea92ee..0000000000 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProtocolTypeEnum.java +++ /dev/null @@ -1,40 +0,0 @@ -package cn.iocoder.yudao.module.iot.enums.product; - -import cn.iocoder.yudao.framework.common.core.ArrayValuable; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.Arrays; - -/** - * IoT 接入网关协议枚举类 - * - * @author ahh - */ -@AllArgsConstructor -@Getter -public enum IotProtocolTypeEnum implements ArrayValuable { - - CUSTOM(0, "自定义"), - MODBUS(1, "Modbus"), - OPC_UA(2, "OPC UA"), - ZIGBEE(3, "ZigBee"), - BLE(4, "BLE"); - - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotProtocolTypeEnum::getType).toArray(Integer[]::new); - - /** - * 类型 - */ - private final Integer type; - /** - * 描述 - */ - private final String description; - - @Override - public Integer[] array() { - return ARRAYS; - } - -} diff --git a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotValidateTypeEnum.java b/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotValidateTypeEnum.java deleted file mode 100644 index 2a15d16a4b..0000000000 --- a/yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotValidateTypeEnum.java +++ /dev/null @@ -1,37 +0,0 @@ -package cn.iocoder.yudao.module.iot.enums.product; - -import cn.iocoder.yudao.framework.common.core.ArrayValuable; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.util.Arrays; - -/** - * IoT 数据校验级别枚举类 - * - * @author ahh - */ -@AllArgsConstructor -@Getter -public enum IotValidateTypeEnum implements ArrayValuable { - - WEAK(0, "弱校验"), - NONE(1, "免校验"); - - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotValidateTypeEnum::getType).toArray(Integer[]::new); - - /** - * 类型 - */ - private final Integer type; - /** - * 描述 - */ - private final String description; - - @Override - public Integer[] array() { - return ARRAYS; - } - -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductRespVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductRespVO.java index f674651d51..1d47d33f3a 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductRespVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductRespVO.java @@ -61,24 +61,10 @@ public class IotProductRespVO { @DictFormat(DictTypeConstants.NET_TYPE) private Integer netType; - @Schema(description = "接入网关协议", example = "2") - @ExcelProperty(value = "接入网关协议", converter = DictConvert.class) - @DictFormat(DictTypeConstants.PROTOCOL_TYPE) - private Integer protocolType; - - @Schema(description = "协议编号(脚本解析 id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13177") - @ExcelProperty("协议编号(脚本解析 id)") - private Long protocolId; - - @Schema(description = "数据格式") + @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty(value = "数据格式", converter = DictConvert.class) - @DictFormat(DictTypeConstants.DATA_FORMAT) - private Integer dataFormat; - - @Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @ExcelProperty(value = "数据校验级别", converter = DictConvert.class) - @DictFormat(DictTypeConstants.VALIDATE_TYPE) - private Integer validateType; + @DictFormat(DictTypeConstants.CODEC_TYPE) + private String codecType; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductSaveReqVO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductSaveReqVO.java index 268ab7c6fa..38f2d24ac8 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductSaveReqVO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductSaveReqVO.java @@ -1,7 +1,8 @@ package cn.iocoder.yudao.module.iot.controller.admin.product.vo.product; import cn.iocoder.yudao.framework.common.validation.InEnum; -import cn.iocoder.yudao.module.iot.enums.product.*; +import cn.iocoder.yudao.module.iot.enums.product.IotNetTypeEnum; +import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -43,18 +44,8 @@ public class IotProductSaveReqVO { @InEnum(value = IotNetTypeEnum.class, message = "联网方式必须是 {value}") private Integer netType; - @Schema(description = "接入网关协议", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") - @InEnum(value = IotProtocolTypeEnum.class, message = "接入网关协议必须是 {value}") - private Integer protocolType; - - @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") - @InEnum(value = IotDataFormatEnum.class, message = "数据格式必须是 {value}") - @NotNull(message = "数据格式不能为空") - private Integer dataFormat; - - @Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") - @InEnum(value = IotValidateTypeEnum.class, message = "数据校验级别必须是 {value}") - @NotNull(message = "数据校验级别不能为空") - private Integer validateType; + @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "数据格式不能为空") + private String codecType; } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/product/IotProductDO.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/product/IotProductDO.java index 2611a45f0e..f7218ecbe4 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/product/IotProductDO.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/dataobject/product/IotProductDO.java @@ -71,34 +71,12 @@ public class IotProductDO extends TenantBaseDO { private Integer netType; /** - * 编解码器类型 - * + * 数据格式(编解码器类型) + *

* 字典 {@link cn.iocoder.yudao.module.iot.enums.DictTypeConstants#CODEC_TYPE} + * + * 目的:用于 gateway-server 解析消息格式 */ private String codecType; - /** - * 接入网关协议 - *

- * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotProtocolTypeEnum} - */ - private Integer protocolType; - /** - * 协议编号 - *

- * TODO 外键:后续加 - */ - private Long protocolId; - /** - * 数据格式 - *

- * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotDataFormatEnum} - */ - private Integer dataFormat; - /** - * 数据校验级别 - *

- * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotValidateTypeEnum} - */ - private Integer validateType; } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/IotDeviceMessageCodec.java b/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/IotDeviceMessageCodec.java index 08558bd0c8..94dd309dd1 100644 --- a/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/IotDeviceMessageCodec.java +++ b/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/IotDeviceMessageCodec.java @@ -26,7 +26,7 @@ public interface IotDeviceMessageCodec { IotDeviceMessage decode(byte[] bytes); /** - * @return 类型 + * @return 数据格式(编码器类型) */ String type(); diff --git a/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/alink/IotAlinkDeviceMessageCodec.java b/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/alink/IotAlinkDeviceMessageCodec.java index e71728708c..300b2e48ec 100644 --- a/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/alink/IotAlinkDeviceMessageCodec.java +++ b/yudao-module-iot/yudao-module-iot-gateway/src/main/java/cn/iocoder/yudao/module/iot/gateway/codec/alink/IotAlinkDeviceMessageCodec.java @@ -81,7 +81,7 @@ public class IotAlinkDeviceMessageCodec implements IotDeviceMessageCodec { @Override public String type() { - return "alink"; + return "Alink"; } }