Parcourir la source

新增 删除设备基础信息接口

zhaiyifei il y a 1 an
Parent
commit
fed25fabed

+ 23 - 13
src/main/java/com/yunfeiyun/agmp/iotm/web/controller/IotDeviceController.java

@@ -9,6 +9,7 @@ import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceModifyReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -31,7 +32,7 @@ import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 
 /**
  * 设备基础Controller
- *
+ * 
  * @author 杨晓辉
  * @date 2024-11-06
  */
@@ -74,6 +75,27 @@ public class IotDeviceController extends BaseController
     }
 
     /**
+     * 修改设备名称
+     */
+    @PreAuthorize("@ss.hasPermi('iot:device:modify:name')")
+    @Log(title = "设备基础", businessType = BusinessType.UPDATE)
+    @Transactional(rollbackFor = Exception.class)
+    @PutMapping("/modify/name")
+    public AjaxResult modifyName(@RequestBody @Valid IotDeviceModifyReqVo reqVo) {
+        return toAjax(iotDeviceService.modifyNameIotDevice(reqVo));
+    }
+
+    /**
+     * 删除设备基础
+     */
+    @PreAuthorize("@ss.hasPermi('iot:device:remove')")
+    @Log(title = "设备基础", businessType = BusinessType.DELETE)
+    @DeleteMapping("/delete/{devBid}")
+    public AjaxResult remove(@PathVariable String devBid) {
+        return toAjax(iotDeviceService.removeIotDevice(devBid));
+    }
+
+    /**
      * 导出设备基础列表
      */
     @PreAuthorize("@ss.hasPermi('iot:device:export')")
@@ -93,16 +115,4 @@ public class IotDeviceController extends BaseController
     public AjaxResult getInfo(@PathVariable("devBid") String devBid) {
         return success(iotDeviceService.selectIotDeviceByDevBid(devBid));
     }
-
-    /**
-     * 删除设备基础
-     */
-    @PreAuthorize("@ss.hasPermi('iot:device:remove')")
-    @Log(title = "设备基础", businessType = BusinessType.DELETE)
-	@DeleteMapping("/delete/{devBid}")
-    public AjaxResult remove(@PathVariable String devBid) {
-        return toAjax(iotDeviceService.deleteIotDeviceByDevBid(devBid));
-    }
-
-
 }

+ 27 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/reqvo/IotDeviceModifyReqVo.java

@@ -0,0 +1,27 @@
+package com.yunfeiyun.agmp.iotm.web.domain.reqvo;
+
+import com.yunfeiyun.agmp.common.annotation.Excel;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 设备基础对象 IotDevice
+ * 
+ * @author 杨晓辉
+ * @date 2024-11-06
+ */
+@Data
+public class IotDeviceModifyReqVo {
+    /** 设备标识 */
+    @NotNull(message = "设备标识不能为空")
+    @NotEmpty(message = "设备标识不能为空")
+    private String devBid;
+
+    /** 设备名称 */
+    @NotNull(message = "设备编号不能为空")
+    @NotEmpty(message = "设备编号不能为空")
+    @Excel(name = "设备名称")
+    private String devName;
+}

+ 6 - 1
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotDeviceService.java

@@ -7,6 +7,7 @@ import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseCtlReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceModifyReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
 
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseListReqVo;
@@ -26,6 +27,10 @@ public interface IIotDeviceService {
 
     public int editIotDevice(IotDeviceEditReqVo reqVo);
 
+    public int modifyNameIotDevice(IotDeviceModifyReqVo reqVo);
+
+    public int removeIotDevice(String devBid);
+
     /**
      * 查询设备基础
      *
@@ -72,7 +77,7 @@ public interface IIotDeviceService {
      * @param devBid 设备基础主键
      * @return 结果
      */
-    public int deleteIotDeviceByDevBid(String devBid);
+    public int deleteIotDeviceByDevBid(IotDevice iotDevice);
 
     List<IotDeviceListResVo> selectIotDeviceListByType(IotDeviceListReqVo reqVo);
 

+ 37 - 5
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotDeviceServiceImpl.java

@@ -23,6 +23,7 @@ import com.yunfeiyun.agmp.iotm.util.MyPageUtil;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceModifyReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotDeviceMapper;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
@@ -199,6 +200,35 @@ public class IotDeviceServiceImpl implements IIotDeviceService
         return updateIotDevice(updateIotDevice, oldIotDeviceconn, newIotDeviceconn);
     }
 
+    @Override
+    public int modifyNameIotDevice(IotDeviceModifyReqVo reqVo) {
+        String devBid = reqVo.getDevBid();
+        String devName = reqVo.getDevName();
+        if(StringUtils.isEmpty(devName)){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"参数不能为空");
+        }
+        IotDevice iotDevice = selectIotDeviceByDevBid(devBid);
+        if(iotDevice == null){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备不存在");
+        }
+        IotDevice updateIotDevice = new IotDevice();
+        updateIotDevice.setDevBid(iotDevice.getDevBid());
+        updateIotDevice.setDevName(devName);
+        updateIotDevice.setDevModifier(SecurityUtils.getUserId());
+        updateIotDevice.setDevModifieddate(DateUtils.dateTimeNow());
+        // 修改设备名称 不用同步修改连接客户端,只需同步设备信息到TOS即可
+        return updateIotDevice(updateIotDevice, null, null);
+    }
+
+    @Override
+    public int removeIotDevice(String devBid) {
+        IotDevice iotDevice = selectIotDeviceByDevBid(devBid);
+        if(iotDevice == null){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备不存在");
+        }
+        return deleteIotDeviceByDevBid(iotDevice);
+    }
+
     /**
      * 查询设备基础
      *
@@ -254,6 +284,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
         int status = iotDeviceMapper.insertIotDeviceByBatch(iotDeviceList);
         // TODO 发送消息
         // 获取连接 订阅设备
+        // 同步新增设备到TOS
         return status;
     }
 
@@ -269,6 +300,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
         // TODO 发送消息
         // 解除旧连接订阅
         // 订阅新连接
+        // 同步修改设备到TOS
         sendToTosMsgService.sendIotDeviceUpdateMsg(iotDevice);
         sendToIotsMsgService.sendIotDeviceUpdateMsg(iotDevice);
         return result;
@@ -283,12 +315,12 @@ public class IotDeviceServiceImpl implements IIotDeviceService
      * @return 结果
      */
     @Override
-    public int deleteIotDeviceByDevBid(String devBid) {
-        IotDevice iotDevice = iotDeviceMapper.selectIotDeviceByDevBid(devBid);
-        if(null == iotDevice){
-           return 0;
-        }
+    public int deleteIotDeviceByDevBid(IotDevice iotDevice) {
+        String devBid = iotDevice.getDevBid();
         int result = iotDeviceMapper.deleteIotDeviceByDevBid(devBid);
+        // TODO
+        // 解除连接订阅
+        // 同步删除设备到TOS
         sendToTosMsgService.sendIotDeviceDeleteMsg(iotDevice);
         sendToIotsMsgService.sendIotDeviceDeleteMsg(iotDevice);
         return result;