TRX 1 год назад
Родитель
Сommit
8d2dccd165

+ 11 - 1
src/main/java/com/zswl/dataservice/controller/hardware/DeviceController.java

@@ -35,7 +35,7 @@ public class DeviceController {
     @Autowired
     DeviceInfoService deviceInfoService;
 
-    @Operation(summary = "添加设备")
+    @Operation(summary = "添加-编辑设备")
     @RequestMapping(value = "addDeviceInfo", method = {RequestMethod.POST})
     public ResultContent addDeviceInfo(@RequestBody DeviceInfoAddParam param) {
         Assert.hasText(param.getDeviceId(), "设备ID不能为空");
@@ -79,6 +79,16 @@ public class DeviceController {
         return deviceInfoService.updateIopTemplate(param);
     }
 
+    @Operation(summary = "启用-禁用 设备")
+    @RequestMapping(value = "updateDeviceState", method = {RequestMethod.POST})
+    public ResultContent updateDeviceState(@RequestBody DeviceInfoUpdateRemark param) {
+        Assert.hasText(param.getId(), "ID不能为空");
+        if (param.getState() != null) {
+            return ResultContent.buildFail("state不能为空");
+        }
+        return deviceInfoService.updateDeviceState(param);
+    }
+
     @Operation(summary = "改变是否上传日志")
     @RequestMapping(value = "updateIsReportLogs", method = {RequestMethod.POST})
     public ResultContent updateIsReportLogs(@RequestBody DeviceInfoUpdateRemark param) {

+ 4 - 0
src/main/java/com/zswl/dataservice/domain/mqtt/DeviceInfo.java

@@ -3,6 +3,7 @@ package com.zswl.dataservice.domain.mqtt;
 import cn.hutool.json.JSONObject;
 import com.zswl.dataservice.domain.base.SuperEntity;
 import com.zswl.dataservice.domain.iot.IotTemplate;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.utils.mqtt.type.OnLineState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -32,6 +33,9 @@ public class DeviceInfo extends SuperEntity {
     @Schema(description = "在线状态")
     private OnLineState onLineState;
 
+    @Schema(description = "数据状态")
+    private DataState state = DataState.Enable;
+
     @Schema(description = "ip地址")
     private String ip;
 

+ 4 - 0
src/main/java/com/zswl/dataservice/model/mqtt/DeviceInfoAddParam.java

@@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
 import com.zswl.dataservice.domain.iot.IotTemplate;
 import com.zswl.dataservice.domain.mqtt.ProjectInfo;
 import com.zswl.dataservice.model.baseParam.SuperParam;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.utils.mqtt.type.OnLineState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -25,6 +26,9 @@ public class DeviceInfoAddParam extends SuperParam {
     @Schema(description = "在线状态")
     private OnLineState onLineState;
 
+    @Schema(description = "数据状态")
+    private DataState state = DataState.Enable;
+
     @Schema(description = "ip地址")
     private String ip;
 

+ 13 - 0
src/main/java/com/zswl/dataservice/model/mqtt/DeviceInfoModel.java

@@ -5,6 +5,7 @@ import com.zswl.dataservice.domain.iot.IotTemplate;
 import com.zswl.dataservice.domain.mqtt.ProjectInfo;
 import com.zswl.dataservice.model.baseParam.SuperModel;
 import com.zswl.dataservice.model.iot.IotTemplateModel;
+import com.zswl.dataservice.type.DataState;
 import com.zswl.dataservice.utils.mqtt.type.OnLineState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -35,6 +36,18 @@ public class DeviceInfoModel extends SuperModel {
         return "";
     }
 
+    @Schema(description = "数据状态")
+    private DataState state;
+
+    private String stateStr;
+
+    public String getStateStr() {
+        if (state != null) {
+            return state.getRemark();
+        }
+        return "";
+    }
+
     @Schema(description = "ip地址")
     private String ip;
 

+ 4 - 0
src/main/java/com/zswl/dataservice/model/mqtt/DeviceInfoUpdateRemark.java

@@ -1,5 +1,6 @@
 package com.zswl.dataservice.model.mqtt;
 
+import com.zswl.dataservice.type.DataState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -21,4 +22,7 @@ public class DeviceInfoUpdateRemark {
 
     @Schema(description = "设备本地日志上报")
     private Boolean isReportLogs = Boolean.TRUE;
+
+    @Schema(description = "数据状态")
+    private DataState state;
 }

+ 27 - 6
src/main/java/com/zswl/dataservice/service/mqtt/DeviceInfoService.java

@@ -52,23 +52,28 @@ public class DeviceInfoService {
     ProjectInfoService projectInfoService;
 
     /**
-     * 添加设备
+     * 添加-编辑设备
      *
      * @param param
      * @return
      */
     public ResultContent<DeviceInfo> addDeviceInfo(DeviceInfoAddParam param) {
-        DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(param.getDeviceId());
-        if (ObjectUtils.isNotEmpty(deviceInfo)) {
-            return ResultContent.buildFail(String.format("设备ID已存在:%s", param.getDeviceId()));
+        DeviceInfo deviceInfo = new DeviceInfo();
+        DeviceInfo temp = deviceInfoDao.findTopByDeviceId(param.getDeviceId());
+        if (ObjectUtils.isNotEmpty(temp)) {
+            deviceInfo = temp;
+            param.setId(null);
         }
-        deviceInfo = new DeviceInfo();
-        BeanUtils.copyProperties(param, deviceInfo);
+        BeanUtils.copyProperties(param, deviceInfo, "id");
+
+        // 项目
         ProjectInfo projectInfo = null;
         if (StringUtils.isNotEmpty(param.getProjectInfoOid())) {
             projectInfo = projectInfoDao.findTopByCode(param.getProjectInfoOid());
         }
         deviceInfo.setProjectInfo(projectInfo);
+
+        // 模版
         IotTemplate iotTemplate = null;
         if (StringUtils.isNotEmpty(param.getIotTemplateId())) {
             iotTemplate = iotTemplateDao.findTopById(param.getIotTemplateId());
@@ -156,6 +161,22 @@ public class DeviceInfoService {
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 改变设备状态
+     *
+     * @param param
+     * @return
+     */
+    public ResultContent updateDeviceState(DeviceInfoUpdateRemark param) {
+        DeviceInfo deviceInfo = deviceInfoDao.findTopById(param.getId());
+        if (ObjectUtils.isEmpty(deviceInfo)) {
+            return ResultContent.buildFail(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
+        }
+        deviceInfo.setState(param.getState());
+        deviceInfoDao.save(deviceInfo);
+        return ResultContent.buildSuccess();
+    }
+
     /**
      * 测试设备的连接时间
      *