From 78b4513880c30ab4141d64f624ea1a726a24ed28 Mon Sep 17 00:00:00 2001
From: xuyang <748613696@qq.com>
Date: Fri, 12 May 2023 15:42:33 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/njcn/access/enums/AccessEnum.java | 58 ++++++
.../njcn/access/enums/AccessResponseEnum.java | 10 +-
.../njcn/access/enums/AccessStatusEnum.java | 34 ----
.../java/com/njcn/access/enums/TypeEnum.java | 77 ++++++++
.../com/njcn/access/pojo/MessageParam.java | 19 ++
.../com/njcn/access/pojo/dto/AccessDto.java | 4 +-
.../com/njcn/access/pojo/dto/DevCfgDto.java | 19 +-
.../{DevModelDto.java => DevModInfoDto.java} | 7 +-
.../com/njcn/access/pojo/dto/ModelDto.java | 7 +-
.../com/njcn/access/pojo/dto/PublicDto.java | 28 ---
.../njcn/access/pojo/dto/PublicParamDTO.java | 44 -----
.../com/njcn/access/pojo/dto/RegisterDTO.java | 53 ------
.../access/pojo/dto/RegisterParamDTO.java | 57 ------
.../com/njcn/access/pojo/dto/TopicDto.java | 24 +++
.../com/njcn/access/pojo/dto/data/AlmDto.java | 11 +-
.../com/njcn/access/pojo/dto/data/BmdDto.java | 50 +++++
.../njcn/access/pojo/dto/data/CtrlDto.java | 24 ++-
.../com/njcn/access/pojo/dto/data/DiDto.java | 2 +
.../com/njcn/access/pojo/dto/data/DoDto.java | 11 +-
.../njcn/access/pojo/dto/data/EpdPqdDto.java | 23 ++-
.../com/njcn/access/pojo/dto/data/EvtDto.java | 10 +-
.../access/pojo/dto/data/EvtParamDto.java | 6 +
.../njcn/access/pojo/dto/data/InSetDto.java | 21 +++
.../com/njcn/access/pojo/dto/data/MdDto.java | 43 -----
.../dto/data/{ParDto.java => ParmDto.java} | 21 ++-
.../com/njcn/access/pojo/dto/data/SetDto.java | 48 +++++
.../com/njcn/access/pojo/dto/data/StsDto.java | 18 ++
.../njcn/access/pojo/dto/devModel/CfgDto.java | 2 +-
.../access/pojo/dto/devModel/ClDevDto.java | 36 ++++
.../{CpuInfoDTO.java => CpuInfoDto.java} | 11 +-
.../pojo/dto/devModel/DataArrayDto.java | 8 +-
.../access/pojo/dto/devModel/DataDto.java | 19 --
.../access/pojo/dto/devModel/DataSetDTO.java | 42 -----
.../access/pojo/dto/devModel/DataSetDto.java | 43 +++++
.../pojo/dto/devModel/DevCfgDetailDto.java | 31 ---
.../{DevInfoDTO.java => DevInfoDto.java} | 18 +-
.../pojo/dto/devModel/DevModDetailDto.java | 82 --------
.../access/pojo/dto/devModel/DevModDto.java | 44 +++++
.../{DiskInfoDTO.java => DiskInfoDto.java} | 12 +-
.../access/pojo/dto/devModel/LdevInfoDto.java | 40 ++++
.../{MemInfoDTO.java => MemInfoDto.java} | 12 +-
.../pojo/dto/devModel/NetDevModDto.java | 43 +----
.../access/pojo/dto/devModel/ParamDto.java | 26 ---
.../access/pojo/dto/devModel/SoftInfoDTO.java | 35 ----
.../access/pojo/dto/devModel/SoftInfoDto.java | 49 +++++
.../pojo/dto/devModel/TemplateDetailDto.java | 27 ---
.../access/pojo/dto/devModel/TemplateDto.java | 24 +--
.../access/pojo/dto/heart/HeartBeatDto.java | 21 +++
.../access/pojo/param/ReqAndResParam.java | 69 +++++++
.../java/com/njcn/access/pojo/po/CsBmdPO.java | 40 ++++
.../com/njcn/access/pojo/po/CsEpdPqdPO.java | 42 +++++
.../com/njcn/access/pojo/po/CsTopicPO.java | 30 +++
.../access/controller/AccessController.java | 3 -
.../access/controller/KafkaController.java | 54 ++++++
.../access/controller/TopicController.java | 48 +++++
.../access/handler/MqttMessageHandler.java | 178 ++++++++++++++----
.../listener/RedisKeyExpirationListener.java | 66 +++++++
.../com/njcn/access/mapper/CsBmdMapper.java | 16 ++
.../njcn/access/mapper/CsEpdPqdMapper.java | 16 ++
.../com/njcn/access/mapper/CsTopicMapper.java | 18 ++
.../njcn/access/mapper/DataGroupMapper.xml | 17 --
.../njcn/access/service/ICsBmdService.java | 16 ++
.../njcn/access/service/ICsEpdPqdService.java | 16 ++
.../njcn/access/service/ICsTopicService.java | 22 +++
.../serviceImpl/AccessServiceImpl.java | 23 +--
.../service/serviceImpl/CsBmdServiceImpl.java | 20 ++
.../serviceImpl/CsEpdPqdServiceImpl.java | 20 ++
.../serviceImpl/CsTopicServiceImpl.java | 61 ++++++
.../serviceImpl/DevModelServiceImpl.java | 114 +++++------
.../src/main/resources/bootstrap.yml | 2 +
iot-access/pom.xml | 21 +++
iot-analysis/analysis-api/pom.xml | 61 +-----
72 files changed, 1535 insertions(+), 792 deletions(-)
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/enums/AccessEnum.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/enums/AccessStatusEnum.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/enums/TypeEnum.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/MessageParam.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/{DevModelDto.java => DevModInfoDto.java} (60%)
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicParamDTO.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterDTO.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterParamDTO.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/TopicDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/BmdDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/InSetDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/MdDto.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/{ParDto.java => ParmDto.java} (50%)
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/SetDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/ClDevDto.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/{CpuInfoDTO.java => CpuInfoDto.java} (58%)
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDTO.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DataSetDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DevCfgDetailDto.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/{DevInfoDTO.java => DevInfoDto.java} (55%)
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DevModDetailDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/DevModDto.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/{DiskInfoDTO.java => DiskInfoDto.java} (56%)
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/LdevInfoDto.java
rename iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/{MemInfoDTO.java => MemInfoDto.java} (56%)
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/ParamDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/SoftInfoDTO.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/SoftInfoDto.java
delete mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/devModel/TemplateDetailDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/heart/HeartBeatDto.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/param/ReqAndResParam.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsBmdPO.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsEpdPqdPO.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsTopicPO.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/controller/KafkaController.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/controller/TopicController.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/listener/RedisKeyExpirationListener.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/CsBmdMapper.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/CsEpdPqdMapper.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/CsTopicMapper.java
delete mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/DataGroupMapper.xml
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/ICsBmdService.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/ICsEpdPqdService.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/ICsTopicService.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/serviceImpl/CsBmdServiceImpl.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/serviceImpl/CsEpdPqdServiceImpl.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/serviceImpl/CsTopicServiceImpl.java
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessEnum.java b/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessEnum.java
new file mode 100644
index 0000000..cd38b50
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessEnum.java
@@ -0,0 +1,58 @@
+package com.njcn.access.enums;
+
+import lombok.Getter;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/4/18 9:35
+ */
+@Getter
+public enum AccessEnum {
+
+ /**
+ * 装置出厂状态
+ * 0:删除 1:未注册(默认状态) 2:注册 3:接入
+ */
+ DELETE(0, "删除"),
+ UNREGISTERED(1, "未注册"),
+ REGISTERED(2, "注册"),
+ ACCESS(3, "接入"),
+
+ /**
+ * 报文处理优先级
+ */
+ FIRST_CHANNEL(1,"I类紧急请求/响应"),
+ SECOND_CHANNEL(2,"Ⅱ类紧急请求/响应"),
+ THIRD_CHANNEL(3,"普通请求/响应"),
+ FOURTH_CHANNEL(4,"广播报文"),
+
+ /**
+ * 应答code
+ */
+ SUCCESS(200,"请求成功 "),
+ START_CHANNEL(201,"请求被接受,开始处理"),
+ WAIT_CHANNEL(202,"请求被接受,但是未处理完"),
+ FAIL(400,"请求失败"),
+ ERROR(401,"请求未认证/认证错误(不支持的请求)"),
+ REFUSE_WAIT(402,"请求被拒绝,在处理同类命令。(待处理完可响应)"),
+ REFUSE_UNKNOWN(403,"请求被拒绝(未知原因)"),
+ NOT_FIND(404,"请求的资源不存在 "),
+ BUSY(405,"当前忙,无法响应。(等一段时间可尝试重新下发)"),
+ TIME_OUT(406,"请求超出了等待时间"),
+ OTHER_ERROR(500,"其他错误"),
+
+ ;
+
+ private final int code;
+
+ private final String message;
+
+ AccessEnum(int code, String message) {
+ this.code=code;
+ this.message=message;
+ }
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessResponseEnum.java b/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessResponseEnum.java
index e714119..80236f5 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessResponseEnum.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessResponseEnum.java
@@ -14,10 +14,18 @@ public enum AccessResponseEnum {
* A0301 ~ A0399 用于用户模块的枚举
*
*/
- DEV_NO_FIND("A0301", "通过nDid未找到相关装置信息!"),
+ DEV_NO_FIND("A0301", "nDid未匹配!"),
MODEL_REPEAT("A0302", "模板重复,请勿重复录入!"),
MODEL_NO_FIND("A0302", "模板不存在,请先录入模板数据!"),
+
+ MESSAGE_TYPE_ERROR("A0303","报文消息类型Type错误!"),
+
+ RESPONSE_ERROR("A0304","装置请求响应错误!"),
+
+ DEV_TYPE_NOT_FIND("A0305","装置类型未找到,需要录入!"),
+
+
;
private final String code;
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessStatusEnum.java b/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessStatusEnum.java
deleted file mode 100644
index ec1b7a8..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/enums/AccessStatusEnum.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.njcn.access.enums;
-
-import lombok.Getter;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2023/4/18 9:35
- */
-@Getter
-public enum AccessStatusEnum {
-
- /**
- * 装置出厂状态
- * 0:删除 1:未注册(默认状态) 2:注册 3:接入
- */
- DELETE(0, "删除"),
- UNREGISTERED(1, "未注册"),
- REGISTERED(2, "注册"),
- ACCESS(3, "接入"),
- ;
-
- private final int code;
-
- private final String message;
-
- AccessStatusEnum(int code, String message) {
- this.code=code;
- this.message=message;
- }
-
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/enums/TypeEnum.java b/iot-access/access-api/src/main/java/com/njcn/access/enums/TypeEnum.java
new file mode 100644
index 0000000..1458408
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/enums/TypeEnum.java
@@ -0,0 +1,77 @@
+package com.njcn.access.enums;
+
+import lombok.Getter;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/5/12 14:07
+ */
+@Getter
+public enum TypeEnum {
+ /**
+ * 报文消息类型
+ */
+ TYPE_1("0x2101","平台询问装置支持主题"),
+ TYPE_2("0x2102","平台向装置发送设备注册请求"),
+ TYPE_3("0x2103","平台询问设备模板信息"),
+ TYPE_4("0x2104","设备配置信息下发"),
+ TYPE_5("0x2105","设备接入命令"),
+ TYPE_6("0x2106","平台向设备发送数据命令"),
+ TYPE_7("0x2107","平台向设备发送控制命令"),
+ TYPE_8("0x2131","设备文件/目录信息询问"),
+ TYPE_9("0x2132","设备文件下载"),
+ TYPE_10("0x2133","设备文件上传"),
+ TYPE_11("0x2134","设备文件删除"),
+ TYPE_12("0x2135","设备目录创建"),
+ TYPE_13("0x2136","设备根目录查询"),
+ TYPE_14("0x2201","设备心跳应答 "),
+ TYPE_15("0x2401","设备数据主动上送应答"),
+ TYPE_16("0x1201","设备支持主题应答"),
+ TYPE_17("0x1202","联网装置应答注册请求"),
+ TYPE_18("0x1203","设备模板信息应答 "),
+ TYPE_19("0x1204","下发设备配置信息应答 "),
+ TYPE_20("0x1205","设备接入平台应答"),
+ TYPE_21("0x1206","平台向设备发送数据命令"),
+ TYPE_22("0x1207","设备控制命令应答"),
+ TYPE_23("0x1231","设备文件信息应答 "),
+ TYPE_24("0x1232","设备文件下载应答 "),
+ TYPE_25("0x1233","设备文件上传"),
+ TYPE_26("0x1234","设备文件删除"),
+ TYPE_27("0x1235","设备文件删除"),
+ TYPE_28("0x1236","设备根目录查询应答"),
+ TYPE_29("0x1101","设备心跳请求"),
+ TYPE_30("0x1301","设备数据主动上送"),
+
+ /**
+ * 数据类型
+ */
+ DATA_1("0x01","软件信息SoftInfo"),
+ DATA_2("0x02","设备信息LdevInfo"),
+ DATA_3("0x03","电能数据Epd"),
+ DATA_4("0x04","电能质量数据Pqd"),
+ DATA_5("0x05","基础测量数据Bmd"),
+ DATA_6("0x06","事件Evt"),
+ DATA_7("0x07","告警Alm"),
+ DATA_8("0x08","状态Sts"),
+ DATA_9("0x08","开入Di"),
+ DATA_10("0x0A","开出Do"),
+ DATA_11("0x0B","参数Param"),
+ DATA_12("0x0C","定值Set"),
+ DATA_13("0x0D","内部定值InSet"),
+ DATA_14("0x0E","控制Ctrl"),
+
+ ;
+
+ private final String code;
+
+ private final String message;
+
+ TypeEnum(String code, String message) {
+ this.code=code;
+ this.message=message;
+ }
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/MessageParam.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/MessageParam.java
new file mode 100644
index 0000000..90a8226
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/MessageParam.java
@@ -0,0 +1,19 @@
+package com.njcn.access.pojo;
+
+import lombok.Data;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/4/18 13:57
+ */
+@Data
+public class MessageParam {
+
+ String topic;
+
+ String message;
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/AccessDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/AccessDto.java
index 57dbb78..a650d8f 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/AccessDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/AccessDto.java
@@ -15,9 +15,9 @@ import java.io.Serializable;
@Data
public class AccessDto implements Serializable {
- @ParamName("NDID")
+ @ParamName("Ndid")
private String nDid;
- @ParamName("dev_type")
+ @ParamName("DevType")
private String devType;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevCfgDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevCfgDto.java
index d28ced2..25dcd39 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevCfgDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevCfgDto.java
@@ -1,8 +1,11 @@
package com.njcn.access.pojo.dto;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import com.njcn.access.param.ParamName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -15,10 +18,24 @@ import java.io.Serializable;
@Data
public class DevCfgDto implements Serializable {
- @SerializedName("DID")
+ @SerializedName("Did")
+ @ParamName("Did")
+ @NotNull(message = "设备Id,不为空")
private String did;
+ @SerializedName("DevName")
+ @ParamName("DevName")
+ @NotNull(message = "设备名称,不为空")
+ private String devName;
+
@SerializedName("DevType")
+ @ParamName("DevType")
+ @NotNull(message = "设备型号,不为空")
private String devType;
+ @SerializedName("DevCategory")
+ @ParamName("DevCategory")
+ @NotNull(message = "设备类别,不为空")
+ private String devCategory;
+
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModelDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModInfoDto.java
similarity index 60%
rename from iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModelDto.java
rename to iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModInfoDto.java
index 8d7b555..70929fd 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModelDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/DevModInfoDto.java
@@ -3,6 +3,7 @@ package com.njcn.access.pojo.dto;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -13,18 +14,22 @@ import java.io.Serializable;
* @createTime 2023/4/10 10:14
*/
@Data
-public class DevModelDto implements Serializable {
+public class DevModInfoDto implements Serializable {
@SerializedName("DevType")
+ @NotNull(message = "设备型号,不为空")
private String devType;
@SerializedName("Version")
+ @NotNull(message = "数据模板版本号,不为空")
private String versionNo;
@SerializedName("Time")
+ @NotNull(message = "创建或最后修改时间,不为空")
private String versionDate;
@SerializedName("Crc")
+ @NotNull(message = "模板CRC校验码,不为空")
private String crc;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/ModelDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/ModelDto.java
index d326cfc..31f81dc 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/ModelDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/ModelDto.java
@@ -3,6 +3,7 @@ package com.njcn.access.pojo.dto;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@@ -17,8 +18,10 @@ import java.util.List;
public class ModelDto implements Serializable {
@SerializedName("DevCfg")
+ @NotNull(message = "设备配置序列,不为空")
private List devCfg;
- @SerializedName("DevMod")
- private List devMod;
+ @SerializedName("DevModInfo")
+ @NotNull(message = "设备模板信息序列,不为空")
+ private List devMod;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicDto.java
deleted file mode 100644
index e815037..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicDto.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.njcn.access.pojo.dto;
-
-import com.njcn.access.param.ParamName;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2023/3/31 14:04
- */
-@Data
-public class PublicDto implements Serializable {
-
- private String mid;
-
- @ParamName("NDID")
- private String nDid;
-
- private Long timestamp;
-
- private String type;
-
- private AccessDto param;
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicParamDTO.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicParamDTO.java
deleted file mode 100644
index 1e44c00..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/PublicParamDTO.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.njcn.access.pojo.dto;
-
-import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-import java.io.Serializable;
-
-;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2022/3/12 19:18
- */
-@Data
-public class PublicParamDTO implements Serializable {
-
- /**
- * 在请求报文中该值为请求 ID,在设备主动上报数据的报文中该字段可不填写
- */
- @SerializedName("mid")
- private Integer mid;
-
- @SerializedName("userId")
- private String userId;
-
- @SerializedName("deviceId")
- private String deviceId;
-
- @SerializedName("timestamp")
- private String timestamp;
-
- /**
- * 报文处理的优先级
- */
- @SerializedName("level")
- private Integer level;
-
- @SerializedName("type")
- private String type;
-
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterDTO.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterDTO.java
deleted file mode 100644
index f4143eb..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterDTO.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.njcn.access.pojo.dto;
-
-import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serializable;
-
-;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2022/3/11 14:36
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class RegisterDTO extends PublicParamDTO implements Serializable {
-
- /**
- * 请求参数
- */
- @Data
- @EqualsAndHashCode(callSuper = true)
- public static class RegisterRequest extends RegisterDTO implements Serializable{
-
- @SerializedName("expire")
- private Integer expire;
-
- @SerializedName("param")
- private RegisterParamDTO.RegisterParamRequest param;
- }
-
- /**
- * 应答参数
- */
- @Data
- @EqualsAndHashCode(callSuper = true)
- public static class RegisterResponse extends RegisterDTO implements Serializable{
-
- @SerializedName("code")
- private Integer code;
-
- @SerializedName("msg")
- private String msg;
-
- @SerializedName("param")
- private RegisterParamDTO.RegisterParamResponse param;
- }
-
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterParamDTO.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterParamDTO.java
deleted file mode 100644
index 2558198..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/RegisterParamDTO.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.njcn.access.pojo.dto;
-
-
-import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2022/3/11 14:58
- */
-@Data
-public class RegisterParamDTO implements Serializable {
-
- @SerializedName("NDID")
- private String nDid;
-
- @SerializedName("DID")
- private List did;
-
- /**
- * 请求参数
- */
- @Data
- @EqualsAndHashCode(callSuper = true)
- public static class RegisterParamRequest extends RegisterParamDTO implements Serializable{
- @SerializedName("type")
- private Integer type;
- }
-
- /**
- * 应答参数
- */
- @Data
- @EqualsAndHashCode(callSuper = true)
- public static class RegisterParamResponse extends RegisterParamDTO implements Serializable{
- @SerializedName("res")
- private Integer res;
-
- @SerializedName("type")
- private Integer resType;
-
- @SerializedName("NDID")
- private String nDid;
-
- @SerializedName("DEV_TYPE")
- private String dev_type;
-
- }
-
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/TopicDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/TopicDto.java
new file mode 100644
index 0000000..3eddf6e
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/TopicDto.java
@@ -0,0 +1,24 @@
+package com.njcn.access.pojo.dto;
+
+import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/5/12 14:35
+ */
+@Data
+public class TopicDto implements Serializable {
+
+ @SerializedName("Topic")
+ @NotNull(message = "设备支持主题及版本,不为空")
+ private List topicList;
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/AlmDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/AlmDto.java
index a1117ae..4a9e94b 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/AlmDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/AlmDto.java
@@ -3,6 +3,7 @@ package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -15,14 +16,20 @@ import java.io.Serializable;
@Data
public class AlmDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "告警事件名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "告警事件编号,不为空")
private Integer idx;
@SerializedName("Type")
+ @NotNull(message = "告警事件类别,不为空")
private String type;
-
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/BmdDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/BmdDto.java
new file mode 100644
index 0000000..5ac5626
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/BmdDto.java
@@ -0,0 +1,50 @@
+package com.njcn.access.pojo.dto.data;
+
+import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/5/4 10:43
+ */
+@Data
+public class BmdDto implements Serializable {
+
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
+ @SerializedName("Name")
+ @NotNull(message = "数据名称,不为空")
+ private String name;
+
+ @SerializedName("Idx")
+ @NotNull(message = "数据编号,不为空")
+ private Integer idx;
+
+ @SerializedName("Type")
+ @NotNull(message = "数据类型,不为空")
+ private String type;
+
+ @SerializedName("Unit")
+ @ApiModelProperty("单位")
+ private String unit;
+
+ @SerializedName("StatMethod")
+ @ApiModelProperty("数据统计方法(max,min,avg,cp95)")
+ private List statMethod;
+
+ @SerializedName("TranRule")
+ @NotNull(message = "上送规则,不为空")
+ @ApiModelProperty("变化:change 周期:period 周期读取变位上送:perchg")
+ private String tranRule;
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/CtrlDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/CtrlDto.java
index 3c1b162..5f160aa 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/CtrlDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/CtrlDto.java
@@ -1,8 +1,10 @@
package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@@ -16,33 +18,47 @@ import java.util.List;
@Data
public class CtrlDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "控制名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "控制编号,不为空")
private Integer idx;
@SerializedName("Type")
+ @NotNull(message = "下发数据类型,不为空")
private String type;
@SerializedName("Check")
- private Integer remoteCheck;
+ @NotNull(message = "是否需遥控校验,不为空")
+ private Integer check;
- @SerializedName("Auto")
+ @SerializedName("auto")
+ @NotNull(message = "是否支持自动控制,不为空")
private Integer auto;
@SerializedName("MaxNum")
+ @ApiModelProperty("设置最大值")
private Integer maxNum;
@SerializedName("MinNum")
+ @ApiModelProperty("设置最小值")
private Integer minNum;
@SerializedName("Ctlvalue")
- private List ctlValue;
+ @ApiModelProperty("参数为enum时可设置的所有值序列")
+ private Integer ctlValue;
@SerializedName("Strlen")
+ @ApiModelProperty("参数string可设置字符串的长度上限")
private Integer strLen;
@SerializedName("Encode")
+ @NotNull(message = "是否加密,不为空")
private Integer encode;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DiDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DiDto.java
index c25d045..cb25dfb 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DiDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DiDto.java
@@ -4,6 +4,7 @@ import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -18,6 +19,7 @@ import java.io.Serializable;
public class DiDto extends StsDto implements Serializable {
@SerializedName("TranFlag")
+ @NotNull(message = "数据是否上送,不为空")
private Integer tranFlag;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DoDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DoDto.java
index e2b3835..141e1b7 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DoDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/DoDto.java
@@ -3,6 +3,7 @@ package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -15,15 +16,23 @@ import java.io.Serializable;
@Data
public class DoDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "开出信号名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "DO编号,不为空")
private Integer idx;
@SerializedName("CurSts")
+ @NotNull(message = "当前值/设定值,不为空")
private Integer curSts;
@SerializedName("CtlSts")
+ @NotNull(message = "是否可远程控制,不为空")
private Integer ctlSts;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EpdPqdDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EpdPqdDto.java
index 3d521f5..fe80b0e 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EpdPqdDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EpdPqdDto.java
@@ -1,8 +1,10 @@
package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@@ -16,31 +18,40 @@ import java.util.List;
@Data
public class EpdPqdDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "数据名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "数据编号,不为空")
private Integer idx;
@SerializedName("Type")
+ @NotNull(message = "数据类型,不为空")
private String type;
@SerializedName("Phase")
+ @ApiModelProperty("相别")
private String phase;
@SerializedName("Unit")
+ @ApiModelProperty("单位")
private String unit;
@SerializedName("HarmStart")
- private String harmStart;
+ @ApiModelProperty("数据开始谐波次数")
+ private Integer harmStart;
@SerializedName("HarmEnd")
- private String harmEnd;
-
- @SerializedName("ClassID")
- private String classId;
+ @ApiModelProperty("数据结束谐波次数")
+ private Integer harmEnd;
@SerializedName("StatMethod")
+ @ApiModelProperty("数据统计方法(max,min,avg,cp95)")
private List statMethod;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtDto.java
index 43a2587..3384dfc 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtDto.java
@@ -3,6 +3,7 @@ package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@@ -16,13 +17,20 @@ import java.util.List;
@Data
public class EvtDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "事件信息名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "事件编号,不为空")
private Integer idx;
@SerializedName("Type")
+ @NotNull(message = "事件类别,不为空")
private String type;
@SerializedName("Parm")
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtParamDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtParamDto.java
index d34d724..ea2d05f 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtParamDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/EvtParamDto.java
@@ -1,8 +1,10 @@
package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
@@ -16,15 +18,19 @@ import java.io.Serializable;
public class EvtParamDto implements Serializable {
@SerializedName("Name")
+ @NotNull(message = "参数名称,不为空")
private String name;
@SerializedName("Type")
+ @NotNull(message = "参数类型,不为空")
private String type;
@SerializedName("Unit")
+ @ApiModelProperty("参数单位")
private String unit;
@SerializedName("Data")
+ @NotNull(message = "参数值,不为空")
private String data;
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/InSetDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/InSetDto.java
new file mode 100644
index 0000000..247ff3e
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/InSetDto.java
@@ -0,0 +1,21 @@
+package com.njcn.access.pojo.dto.data;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/5/4 11:41
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class InSetDto extends SetDto implements Serializable{
+
+
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/MdDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/MdDto.java
deleted file mode 100644
index ad2185b..0000000
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/MdDto.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.njcn.access.pojo.dto.data;
-
-import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 类的介绍:
- *
- * @author xuyang
- * @version 1.0.0
- * @createTime 2022/3/13 14:48
- */
-@Data
-public class MdDto implements Serializable {
-
- @SerializedName("Name")
- private String name;
-
- @SerializedName("IDX")
- private Integer idx;
-
- @SerializedName("Type")
- private String type;
-
- @SerializedName("Unit")
- private String unit;
-
- @SerializedName("Phase")
- private String phase;
-
- @SerializedName("ClassID")
- private String classId;
-
- @SerializedName("StatMethod")
- private List statMethod;
-
- @SerializedName("TranRule")
- private String tranRule;
-
-}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParmDto.java
similarity index 50%
rename from iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParDto.java
rename to iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParmDto.java
index 61dfd52..3ff04d0 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/ParmDto.java
@@ -1,8 +1,10 @@
package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@@ -14,36 +16,51 @@ import java.util.List;
* @createTime 2022/3/13 15:02
*/
@Data
-public class ParDto implements Serializable {
+public class ParmDto implements Serializable {
+
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
@SerializedName("Name")
+ @NotNull(message = "参数名称,不为空")
private String name;
- @SerializedName("IDX")
+ @SerializedName("Idx")
+ @NotNull(message = "参数编号,不为空")
private Integer idx;
@SerializedName("Type")
+ @NotNull(message = "参数类型,不为空")
+ @ApiModelProperty("系统参数:sys 运行参数:run 功能参数:fun")
private String type;
@SerializedName("DataType")
+ @NotNull(message = "参数数据类型,不为空")
private String dataType;
@SerializedName("ModifyFlag")
+ @NotNull(message = "是否可修改,不为空")
private Integer modifyFlag;
@SerializedName("MaxNum")
+ @ApiModelProperty("设置最大值")
private Integer maxNum;
@SerializedName("MinNum")
+ @ApiModelProperty("设置最小值")
private Integer minNum;
@SerializedName("SetValue")
+ @ApiModelProperty("参数为enum可设置的所有值序列")
private List setValue;
@SerializedName("Strlen")
+ @ApiModelProperty("参数string可设置字符串的长度上限")
private Integer strLen;
@SerializedName("DefaultValue")
+ @NotNull(message = "参数缺省值")
private String defaultValue;
}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/SetDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/SetDto.java
new file mode 100644
index 0000000..45a31a0
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/SetDto.java
@@ -0,0 +1,48 @@
+package com.njcn.access.pojo.dto.data;
+
+import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/5/4 11:37
+ */
+@Data
+public class SetDto implements Serializable {
+
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
+ @SerializedName("Name")
+ @NotNull(message = "参数名称,不为空")
+ private String name;
+
+ @SerializedName("Idx")
+ @NotNull(message = "参数编号,不为空")
+ private Integer idx;
+
+ @SerializedName("DataType")
+ @NotNull(message = "参数数据类型,不为空")
+ private String dataType;
+
+ @SerializedName("MaxNum")
+ @ApiModelProperty("设置最大值")
+ private Integer maxNum;
+
+ @SerializedName("MinNum")
+ @ApiModelProperty("设置最小值")
+ private Integer minNum;
+
+ @SerializedName("DefaultValue")
+ @NotNull(message = "参数缺省值")
+ private String defaultValue;
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/StsDto.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/StsDto.java
index fd067b9..03743a7 100644
--- a/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/StsDto.java
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/dto/data/StsDto.java
@@ -1,9 +1,12 @@
package com.njcn.access.pojo.dto.data;
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.io.Serializable;
+import java.util.List;
/**
* 类的介绍:
@@ -15,22 +18,37 @@ import java.io.Serializable;
@Data
public class StsDto implements Serializable {
+ @SerializedName("OpAttr")
+ @NotNull(message = "读写操作属性,不为空")
+ private String opAttr;
+
@SerializedName("Name")
+ @NotNull(message = "状态名称,不为空")
private String name;
@SerializedName("IDX")
+ @NotNull(message = "状态编号,不为空")
private Integer idx;
@SerializedName("StoreFlag")
+ @NotNull(message = "是否存储,不为空")
private Integer storeFlag;
@SerializedName("CurSts")
+ @NotNull(message = "当前值,不为空")
private Integer curSts;
@SerializedName("ClassID")
+ @NotNull(message = "数据分类,不为空")
private String classId;
@SerializedName("TranRule")
+ @NotNull(message = "上送规则,不为空")
+ @ApiModelProperty("变化:change 周期:period")
private String tranRule;
+ //todo 不确定是否还有这个字段先保留
+ @SerializedName("GroupId")
+ @NotNull(message = "数据分组组号,不为空")
+ private List