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