Commit b06556da2d053e39ba3e1f82958984bcd6f39cce

Authored by YunaiV
1 parent 6488d5bc

feat:【IoT 产品】产品的协议,改成 codec 字段

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 { @@ -10,12 +10,9 @@ public class DictTypeConstants {
10 public static final String PRODUCT_STATUS = "iot_product_status"; 10 public static final String PRODUCT_STATUS = "iot_product_status";
11 public static final String PRODUCT_DEVICE_TYPE = "iot_product_device_type"; 11 public static final String PRODUCT_DEVICE_TYPE = "iot_product_device_type";
12 public static final String NET_TYPE = "iot_net_type"; 12 public static final String NET_TYPE = "iot_net_type";
13 - public static final String PROTOCOL_TYPE = "iot_protocol_type";  
14 - public static final String DATA_FORMAT = "iot_data_format";  
15 - public static final String VALIDATE_TYPE = "iot_validate_type"; 13 + public static final String CODEC_TYPE = "iot_codec_type";
16 14
17 public static final String DEVICE_STATE = "iot_device_state"; 15 public static final String DEVICE_STATE = "iot_device_state";
18 16
19 - public static final String CODEC_TYPE = "iot_codec_type";  
20 17
21 } 18 }
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotDataFormatEnum.java deleted
1 -package cn.iocoder.yudao.module.iot.enums.product;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.ArrayValuable;  
4 -import lombok.AllArgsConstructor;  
5 -import lombok.Getter;  
6 -  
7 -import java.util.Arrays;  
8 -  
9 -/**  
10 - * 产品数据格式枚举类  
11 - *  
12 - * @author ahh  
13 - * @see <a href="https://help.aliyun.com/zh/iot/user-guide/message-parsing">阿里云 - 什么是消息解析</a>  
14 - */  
15 -@AllArgsConstructor  
16 -@Getter  
17 -public enum IotDataFormatEnum implements ArrayValuable<Integer> {  
18 -  
19 - JSON(0, "标准数据格式(JSON)"),  
20 - CUSTOMIZE(1, "透传/自定义");  
21 -  
22 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotDataFormatEnum::getType).toArray(Integer[]::new);  
23 -  
24 - /**  
25 - * 类型  
26 - */  
27 - private final Integer type;  
28 - /**  
29 - * 描述  
30 - */  
31 - private final String description;  
32 -  
33 - @Override  
34 - public Integer[] array() {  
35 - return ARRAYS;  
36 - }  
37 -  
38 -}  
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotProtocolTypeEnum.java deleted
1 -package cn.iocoder.yudao.module.iot.enums.product;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.ArrayValuable;  
4 -import lombok.AllArgsConstructor;  
5 -import lombok.Getter;  
6 -  
7 -import java.util.Arrays;  
8 -  
9 -/**  
10 - * IoT 接入网关协议枚举类  
11 - *  
12 - * @author ahh  
13 - */  
14 -@AllArgsConstructor  
15 -@Getter  
16 -public enum IotProtocolTypeEnum implements ArrayValuable<Integer> {  
17 -  
18 - CUSTOM(0, "自定义"),  
19 - MODBUS(1, "Modbus"),  
20 - OPC_UA(2, "OPC UA"),  
21 - ZIGBEE(3, "ZigBee"),  
22 - BLE(4, "BLE");  
23 -  
24 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotProtocolTypeEnum::getType).toArray(Integer[]::new);  
25 -  
26 - /**  
27 - * 类型  
28 - */  
29 - private final Integer type;  
30 - /**  
31 - * 描述  
32 - */  
33 - private final String description;  
34 -  
35 - @Override  
36 - public Integer[] array() {  
37 - return ARRAYS;  
38 - }  
39 -  
40 -}  
yudao-module-iot/yudao-module-iot-api/src/main/java/cn/iocoder/yudao/module/iot/enums/product/IotValidateTypeEnum.java deleted
1 -package cn.iocoder.yudao.module.iot.enums.product;  
2 -  
3 -import cn.iocoder.yudao.framework.common.core.ArrayValuable;  
4 -import lombok.AllArgsConstructor;  
5 -import lombok.Getter;  
6 -  
7 -import java.util.Arrays;  
8 -  
9 -/**  
10 - * IoT 数据校验级别枚举类  
11 - *  
12 - * @author ahh  
13 - */  
14 -@AllArgsConstructor  
15 -@Getter  
16 -public enum IotValidateTypeEnum implements ArrayValuable<Integer> {  
17 -  
18 - WEAK(0, "弱校验"),  
19 - NONE(1, "免校验");  
20 -  
21 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotValidateTypeEnum::getType).toArray(Integer[]::new);  
22 -  
23 - /**  
24 - * 类型  
25 - */  
26 - private final Integer type;  
27 - /**  
28 - * 描述  
29 - */  
30 - private final String description;  
31 -  
32 - @Override  
33 - public Integer[] array() {  
34 - return ARRAYS;  
35 - }  
36 -  
37 -}  
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 { @@ -61,24 +61,10 @@ public class IotProductRespVO {
61 @DictFormat(DictTypeConstants.NET_TYPE) 61 @DictFormat(DictTypeConstants.NET_TYPE)
62 private Integer netType; 62 private Integer netType;
63 63
64 - @Schema(description = "接入网关协议", example = "2")  
65 - @ExcelProperty(value = "接入网关协议", converter = DictConvert.class)  
66 - @DictFormat(DictTypeConstants.PROTOCOL_TYPE)  
67 - private Integer protocolType;  
68 -  
69 - @Schema(description = "协议编号(脚本解析 id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13177")  
70 - @ExcelProperty("协议编号(脚本解析 id)")  
71 - private Long protocolId;  
72 -  
73 - @Schema(description = "数据格式") 64 + @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
74 @ExcelProperty(value = "数据格式", converter = DictConvert.class) 65 @ExcelProperty(value = "数据格式", converter = DictConvert.class)
75 - @DictFormat(DictTypeConstants.DATA_FORMAT)  
76 - private Integer dataFormat;  
77 -  
78 - @Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
79 - @ExcelProperty(value = "数据校验级别", converter = DictConvert.class)  
80 - @DictFormat(DictTypeConstants.VALIDATE_TYPE)  
81 - private Integer validateType; 66 + @DictFormat(DictTypeConstants.CODEC_TYPE)
  67 + private String codecType;
82 68
83 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) 69 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
84 @ExcelProperty("创建时间") 70 @ExcelProperty("创建时间")
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/product/vo/product/IotProductSaveReqVO.java
1 package cn.iocoder.yudao.module.iot.controller.admin.product.vo.product; 1 package cn.iocoder.yudao.module.iot.controller.admin.product.vo.product;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 -import cn.iocoder.yudao.module.iot.enums.product.*; 4 +import cn.iocoder.yudao.module.iot.enums.product.IotNetTypeEnum;
  5 +import cn.iocoder.yudao.module.iot.enums.product.IotProductDeviceTypeEnum;
5 import io.swagger.v3.oas.annotations.media.Schema; 6 import io.swagger.v3.oas.annotations.media.Schema;
6 import jakarta.validation.constraints.NotEmpty; 7 import jakarta.validation.constraints.NotEmpty;
7 import jakarta.validation.constraints.NotNull; 8 import jakarta.validation.constraints.NotNull;
@@ -43,18 +44,8 @@ public class IotProductSaveReqVO { @@ -43,18 +44,8 @@ public class IotProductSaveReqVO {
43 @InEnum(value = IotNetTypeEnum.class, message = "联网方式必须是 {value}") 44 @InEnum(value = IotNetTypeEnum.class, message = "联网方式必须是 {value}")
44 private Integer netType; 45 private Integer netType;
45 46
46 - @Schema(description = "接入网关协议", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")  
47 - @InEnum(value = IotProtocolTypeEnum.class, message = "接入网关协议必须是 {value}")  
48 - private Integer protocolType;  
49 -  
50 - @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")  
51 - @InEnum(value = IotDataFormatEnum.class, message = "数据格式必须是 {value}")  
52 - @NotNull(message = "数据格式不能为空")  
53 - private Integer dataFormat;  
54 -  
55 - @Schema(description = "数据校验级别", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")  
56 - @InEnum(value = IotValidateTypeEnum.class, message = "数据校验级别必须是 {value}")  
57 - @NotNull(message = "数据校验级别不能为空")  
58 - private Integer validateType; 47 + @Schema(description = "数据格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
  48 + @NotEmpty(message = "数据格式不能为空")
  49 + private String codecType;
59 50
60 } 51 }
61 \ No newline at end of file 52 \ No newline at end of file
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 { @@ -71,34 +71,12 @@ public class IotProductDO extends TenantBaseDO {
71 private Integer netType; 71 private Integer netType;
72 72
73 /** 73 /**
74 - * 编解码器类型  
75 - * 74 + * 数据格式(编解码器类型)
  75 + * <p>
76 * 字典 {@link cn.iocoder.yudao.module.iot.enums.DictTypeConstants#CODEC_TYPE} 76 * 字典 {@link cn.iocoder.yudao.module.iot.enums.DictTypeConstants#CODEC_TYPE}
  77 + *
  78 + * 目的:用于 gateway-server 解析消息格式
77 */ 79 */
78 private String codecType; 80 private String codecType;
79 - /**  
80 - * 接入网关协议  
81 - * <p>  
82 - * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotProtocolTypeEnum}  
83 - */  
84 - private Integer protocolType;  
85 - /**  
86 - * 协议编号  
87 - * <p>  
88 - * TODO 外键:后续加  
89 - */  
90 - private Long protocolId;  
91 - /**  
92 - * 数据格式  
93 - * <p>  
94 - * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotDataFormatEnum}  
95 - */  
96 - private Integer dataFormat;  
97 - /**  
98 - * 数据校验级别  
99 - * <p>  
100 - * 枚举 {@link cn.iocoder.yudao.module.iot.enums.product.IotValidateTypeEnum}  
101 - */  
102 - private Integer validateType;  
103 81
104 } 82 }
105 \ No newline at end of file 83 \ No newline at end of file
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 { @@ -26,7 +26,7 @@ public interface IotDeviceMessageCodec {
26 IotDeviceMessage decode(byte[] bytes); 26 IotDeviceMessage decode(byte[] bytes);
27 27
28 /** 28 /**
29 - * @return 类型 29 + * @return 数据格式(编码器类型)
30 */ 30 */
31 String type(); 31 String type();
32 32
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 { @@ -81,7 +81,7 @@ public class IotAlinkDeviceMessageCodec implements IotDeviceMessageCodec {
81 81
82 @Override 82 @Override
83 public String type() { 83 public String type() {
84 - return "alink"; 84 + return "Alink";
85 } 85 }
86 86
87 } 87 }