From 147aef0bfd1b674ebca03bac0544385110de3ae3 Mon Sep 17 00:00:00 2001
From: xuyang <748613696@qq.com>
Date: Tue, 11 Jul 2023 10:22:06 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../njcn/access/enums/AccessResponseEnum.java | 3 +-
.../njcn/access/param/WgDevRegisterParam.java | 32 +++++
.../access/param/WgDeviceRegisterParam.java | 53 ++++++++
.../njcn/access/param/WgRegisterParam.java | 65 ++++++++++
.../com/njcn/access/pojo/po/CsGateway.java | 51 ++++++++
.../njcn/access/pojo/po/CsGatewayDevice.java | 32 +++++
.../com/njcn/access/pojo/vo/CsGatewayVo.java | 50 ++++++++
.../access/controller/CsDeviceController.java | 7 +-
.../controller/CsGatewayController.java | 92 ++++++++++++++
.../access/handler/MqttMessageHandler.java | 10 +-
.../access/mapper/CsGatewayDeviceMapper.java | 23 ++++
.../njcn/access/mapper/CsGatewayMapper.java | 24 ++++
.../mapper/mapping/CsGatewayDeviceMapper.xml | 14 +++
.../access/mapper/mapping/CsGatewayMapper.xml | 34 +++++
.../njcn/access/service/ICsDeviceService.java | 3 +-
.../service/ICsGatewayDeviceService.java | 27 ++++
.../access/service/ICsGatewayService.java | 51 ++++++++
.../service/impl/CsDeviceServiceImpl.java | 10 +-
.../impl/CsGatewayDeviceServiceImpl.java | 28 +++++
.../service/impl/CsGatewayServiceImpl.java | 116 ++++++++++++++++++
20 files changed, 711 insertions(+), 14 deletions(-)
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/param/WgDevRegisterParam.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/param/WgDeviceRegisterParam.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/param/WgRegisterParam.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGateway.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGatewayDevice.java
create mode 100644 iot-access/access-api/src/main/java/com/njcn/access/pojo/vo/CsGatewayVo.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/controller/CsGatewayController.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/CsGatewayDeviceMapper.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/CsGatewayMapper.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/mapping/CsGatewayDeviceMapper.xml
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/mapper/mapping/CsGatewayMapper.xml
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/ICsGatewayDeviceService.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/ICsGatewayService.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsGatewayDeviceServiceImpl.java
create mode 100644 iot-access/access-boot/src/main/java/com/njcn/access/service/impl/CsGatewayServiceImpl.java
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 48202ba..24e8a0a 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,7 +14,7 @@ public enum AccessResponseEnum {
* A0301 ~ A0399 用于用户模块的枚举
*
*/
- NDID_NO_FIND("A0301", "nDid在平台端未找到或者已接入"),
+ NDID_NO_FIND("A0301", "nDid在平台端未找到或者已注册"),
MODEL_REPEAT("A0302", "模板重复,请勿重复录入!"),
MODEL_NO_FIND("A0302", "模板不存在,请先录入模板数据!"),
@@ -24,6 +24,7 @@ public enum AccessResponseEnum {
DEV_NOT_FIND("A0303","装置类型未找到!"),
DEV_MODEL_NOT_FIND("A0303","装置型号未找到!"),
DEV_IS_NOT_ZL("A0303","注册装置不是直连装置!"),
+ DEV_IS_NOT_WG("A0303","注册装置不是网关!"),
REGISTER_RESPONSE_ERROR("A0304","装置注册,装置侧应答失败!"),
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/param/WgDevRegisterParam.java b/iot-access/access-api/src/main/java/com/njcn/access/param/WgDevRegisterParam.java
new file mode 100644
index 0000000..feede77
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/param/WgDevRegisterParam.java
@@ -0,0 +1,32 @@
+package com.njcn.access.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/7/7 15:00
+ */
+@Data
+public class WgDevRegisterParam {
+
+ @ApiModelProperty("网关id")
+ private String id;
+
+ @Data
+ public static class Device {
+
+ @ApiModelProperty("设备型号")
+ private String devModel;
+
+ @ApiModelProperty("设备码")
+ private String lDid;
+
+
+
+
+ }
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/param/WgDeviceRegisterParam.java b/iot-access/access-api/src/main/java/com/njcn/access/param/WgDeviceRegisterParam.java
new file mode 100644
index 0000000..87f6481
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/param/WgDeviceRegisterParam.java
@@ -0,0 +1,53 @@
+package com.njcn.access.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/7/6 16:11
+ */
+@Data
+public class WgDeviceRegisterParam {
+
+ @ApiModelProperty("网关id")
+ @NotNull(message = "网关id不能为空")
+ private String wgId;
+
+ @ApiModelProperty("装置型号")
+ @NotNull(message = "装置型号不能为空")
+ private String devModel;
+
+ @ApiModelProperty("did")
+ @NotNull(message = "did不能为空")
+ private String did;
+
+ @ApiModelProperty("拓扑图id")
+ @NotNull(message = "拓扑图id不能为空")
+ private String topologyDiagram;
+
+ @Data
+ public static class LineParam {
+
+ @ApiModelProperty("监测点名称")
+ @NotNull(message = "监测点名称不能为空")
+ private String name;
+
+ @ApiModelProperty("安装位置")
+ @NotNull(message = "安装位置不能为空")
+ private String position;
+
+ @ApiModelProperty("中心点经度")
+ @NotNull(message = "中心点经度不能为空")
+ private Double lng;
+
+ @ApiModelProperty("中心点纬度")
+ @NotNull(message = "中心点纬度不能为空")
+ private Double lat;
+ }
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/param/WgRegisterParam.java b/iot-access/access-api/src/main/java/com/njcn/access/param/WgRegisterParam.java
new file mode 100644
index 0000000..dadb4e5
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/param/WgRegisterParam.java
@@ -0,0 +1,65 @@
+package com.njcn.access.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/7/6 15:59
+ */
+@Data
+public class WgRegisterParam {
+
+ @ApiModelProperty("项目id")
+ @NotNull(message = "项目id不能为空")
+ private String projectId;
+
+ @ApiModelProperty("区域")
+ private String area;
+
+ @ApiModelProperty("拓扑图id")
+ @NotNull(message = "拓扑图id不能为空")
+ private String topologyDiagram;
+
+ @ApiModelProperty("设备识别码")
+ @NotNull(message = "设备识别码不能为空")
+ private String nDid;
+
+ @Data
+ public static class LineParam {
+
+ @ApiModelProperty("监测点名称")
+ @NotNull(message = "监测点名称不能为空")
+ private String name;
+
+ @ApiModelProperty("安装位置")
+ @NotNull(message = "安装位置不能为空")
+ private String position;
+
+ @ApiModelProperty("电压等级")
+ @NotNull(message = "电压等级不能为空")
+ private String volGrade;
+
+ @ApiModelProperty("PT变比")
+ @NotNull(message = "PT变比不能为空")
+ private String ptRatio;
+
+ @ApiModelProperty("CT变比")
+ @NotNull(message = "CT变比不能为空")
+ private String ctRatio;
+
+ @ApiModelProperty("中心点经度")
+ @NotNull(message = "中心点经度不能为空")
+ private Double lng;
+
+ @ApiModelProperty("中心点纬度")
+ @NotNull(message = "中心点纬度不能为空")
+ private Double lat;
+ }
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGateway.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGateway.java
new file mode 100644
index 0000000..864aa8d
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGateway.java
@@ -0,0 +1,51 @@
+package com.njcn.access.pojo.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.njcn.db.bo.BaseEntity;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 网关表
+ *
+ *
+ * @author xuyang
+ * @since 2023-07-06
+ */
+@Data
+@TableName("cs_gateway")
+public class CsGateway extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 网关id
+ */
+ private String id;
+
+ /**
+ * 项目id
+ */
+ private String pid;
+
+ /**
+ * 位置信息
+ */
+ private String area;
+
+ /**
+ * 拓扑图id
+ */
+ private String tid;
+
+ /**
+ * 状态 0-删除;1-正常;默认正常
+ */
+ private Integer status;
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGatewayDevice.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGatewayDevice.java
new file mode 100644
index 0000000..f56e952
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/po/CsGatewayDevice.java
@@ -0,0 +1,32 @@
+package com.njcn.access.pojo.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.njcn.db.bo.BaseEntity;
+import lombok.Data;
+
+/**
+ *
+ * 网关装置关系表
+ *
+ *
+ * @author xuyang
+ * @since 2023-07-07
+ */
+@Data
+@TableName("cs_gateway_device")
+public class CsGatewayDevice extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 网关id
+ */
+ private String id;
+
+ /**
+ * 网关下设备id
+ */
+ private String devId;
+
+
+}
diff --git a/iot-access/access-api/src/main/java/com/njcn/access/pojo/vo/CsGatewayVo.java b/iot-access/access-api/src/main/java/com/njcn/access/pojo/vo/CsGatewayVo.java
new file mode 100644
index 0000000..ecfc6fc
--- /dev/null
+++ b/iot-access/access-api/src/main/java/com/njcn/access/pojo/vo/CsGatewayVo.java
@@ -0,0 +1,50 @@
+package com.njcn.access.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 类的介绍:
+ *
+ * @author xuyang
+ * @version 1.0.0
+ * @createTime 2023/7/7 9:09
+ */
+@Data
+public class CsGatewayVo {
+
+ @ApiModelProperty("网关id")
+ private String id;
+
+ @ApiModelProperty("网关名称")
+ private String wgName;
+
+ @ApiModelProperty("项目名称")
+ private String proName;
+
+ @ApiModelProperty("设备型号")
+ private String devModel;
+
+ @ApiModelProperty("型号版本")
+ private String programVersion;
+
+ @ApiModelProperty("拓扑图")
+ private String filePath;
+
+ @ApiModelProperty("设备集合")
+ private List list;
+
+ @Data
+ public static class Device {
+
+ @ApiModelProperty("设备名称")
+ private String devName;
+
+ @ApiModelProperty("项目名称")
+ private String proName;
+ }
+
+
+}
diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/controller/CsDeviceController.java b/iot-access/access-boot/src/main/java/com/njcn/access/controller/CsDeviceController.java
index e6031ad..7863bf0 100644
--- a/iot-access/access-boot/src/main/java/com/njcn/access/controller/CsDeviceController.java
+++ b/iot-access/access-boot/src/main/java/com/njcn/access/controller/CsDeviceController.java
@@ -35,7 +35,7 @@ public class CsDeviceController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/register")
- @ApiOperation("设备注册")
+ @ApiOperation("直连设备注册")
@ApiImplicitParam(name = "nDid", value = "设备识别码", required = true)
public HttpResult devRegister(@RequestParam String nDid){
csDeviceService.devRegister(nDid);
@@ -44,7 +44,7 @@ public class CsDeviceController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/model")
- @ApiOperation("获取装置模板信息")
+ @ApiOperation("获取直连设备模板信息")
@ApiImplicitParam(name = "nDid", value = "设备识别码", required = true)
public HttpResult