Bladeren bron

新增 创建设备基础信息接口

zhaiyifei 1 jaar geleden
bovenliggende
commit
22215c35ee

+ 12 - 10
src/main/java/com/yunfeiyun/agmp/iotm/web/controller/IotDeviceController.java

@@ -2,8 +2,10 @@ package com.yunfeiyun.agmp.iotm.web.controller;
 
 
 import java.util.List;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +38,16 @@ public class IotDeviceController extends BaseController
     private IIotDeviceService iotDeviceService;
     private IIotDeviceService iotDeviceService;
 
 
     /**
     /**
+     * 新增设备基础
+     */
+    @PreAuthorize("@ss.hasPermi('iot:device:add')")
+    @Log(title = "设备基础", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody @Valid IotDeviceAddReqVo reqVo) {
+        return toAjax(iotDeviceService.addIotDevice(reqVo));
+    }
+
+    /**
      * 查询设备基础列表
      * 查询设备基础列表
      */
      */
     @PreAuthorize("@ss.hasPermi('iot:device:list')")
     @PreAuthorize("@ss.hasPermi('iot:device:list')")
@@ -78,16 +90,6 @@ public class IotDeviceController extends BaseController
     }
     }
 
 
     /**
     /**
-     * 新增设备基础
-     */
-    @PreAuthorize("@ss.hasPermi('iot:device:add')")
-    @Log(title = "设备基础", businessType = BusinessType.INSERT)
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody IotDevice iotDevice) {
-        return toAjax(iotDeviceService.insertIotDevice(iotDevice));
-    }
-
-    /**
      * 修改设备基础
      * 修改设备基础
      */
      */
     @PreAuthorize("@ss.hasPermi('iot:device:edit')")
     @PreAuthorize("@ss.hasPermi('iot:device:edit')")

+ 37 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/reqvo/IotDeviceAddReqVo.java

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

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotDeviceService.java

@@ -1,6 +1,8 @@
 package com.yunfeiyun.agmp.iotm.web.service;
 package com.yunfeiyun.agmp.iotm.web.service;
 
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
+
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -11,6 +13,8 @@ import java.util.List;
  */
  */
 public interface IIotDeviceService 
 public interface IIotDeviceService 
 {
 {
+    public int addIotDevice(IotDeviceAddReqVo reqVo);
+
     /**
     /**
      * 查询设备基础
      * 查询设备基础
      *
      *

+ 65 - 1
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotDeviceServiceImpl.java

@@ -3,17 +3,26 @@ package com.yunfeiyun.agmp.iotm.web.service.impl;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
+import com.yunfeiyun.agmp.common.utils.DateUtils;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
+import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
+import com.yunfeiyun.agmp.iot.common.enums.IotDeviceDelStatusEnum;
+import com.yunfeiyun.agmp.iot.common.enums.IotDeviceStatusTypeEnum;
+import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.service.TypeCacheService;
 import com.yunfeiyun.agmp.iot.common.service.TypeCacheService;
 import com.yunfeiyun.agmp.iotm.common.service.IotDeviceBaseService;
 import com.yunfeiyun.agmp.iotm.common.service.IotDeviceBaseService;
 
 
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotDeviceMapper;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotDeviceMapper;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 
 
 import com.yunfeiyun.agmp.iotm.mq.service.SendToTosMsgService;
 import com.yunfeiyun.agmp.iotm.mq.service.SendToTosMsgService;
 
 
 import com.yunfeiyun.agmp.iotm.mq.service.SendToIotsMsgService;
 import com.yunfeiyun.agmp.iotm.mq.service.SendToIotsMsgService;
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceconnService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -34,11 +43,65 @@ public class IotDeviceServiceImpl implements IIotDeviceService
     private SendToTosMsgService sendToTosMsgService;
     private SendToTosMsgService sendToTosMsgService;
     @Resource
     @Resource
     private SendToIotsMsgService sendToIotsMsgService;
     private SendToIotsMsgService sendToIotsMsgService;
-    @Resource
+//    @Resource
     private Map<String, IotDeviceBaseService> iotDeviceBaseServiceMap;
     private Map<String, IotDeviceBaseService> iotDeviceBaseServiceMap;
     @Resource
     @Resource
     private TypeCacheService typeCacheService;
     private TypeCacheService typeCacheService;
 
 
+    @Autowired
+    private IIotDeviceconnService iotDeviceconnService;
+
+    /**
+     * 新增设备基础
+     *
+     * @param reqVo@return 结果
+     */
+    @Override
+    public int addIotDevice(IotDeviceAddReqVo reqVo) {
+        String devconnBid = reqVo.getDevconnBid();
+        String devCode = reqVo.getDevCode();
+        String devName = reqVo.getDevName();
+
+        if(StringUtils.isEmpty(devCode) || StringUtils.isEmpty(devName) ){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备编码或设备名称不能为空");
+        }
+        IotDeviceconn selectDeviceconn = new IotDeviceconn();
+        selectDeviceconn.setDevconnBid(devconnBid);
+        List<IotDeviceconn> iotDeviceconnList = iotDeviceconnService.selectIotDeviceconnList(selectDeviceconn);
+        if(iotDeviceconnList == null || iotDeviceconnList.isEmpty()){
+            throw new RuntimeException("设备连接不存在");
+        }
+
+        IotDeviceconn iotDeviceconn = iotDeviceconnList.get(0);
+
+        String firmBid = iotDeviceconn.getFirmBid();
+        String devtypeBid = iotDeviceconn.getDevtypeBid();
+
+        IotDevice selectIotDevice = new IotDevice();
+        selectIotDevice.setDevCode(devCode);
+        selectIotDevice.setFirmBid(firmBid);
+        selectIotDevice.setDevtypeBid(devtypeBid);
+
+        List<IotDevice> iotDeviceList = selectIotDeviceList(selectIotDevice);
+        if(iotDeviceList != null && !iotDeviceList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"该设备已存在");
+        }
+
+        IotDevice iotDevice = new IotDevice();
+        iotDevice.setDevBid(iotDeviceconn.getUUId());
+        iotDevice.setDevtypeBid(devtypeBid);
+        iotDevice.setDevclassBid(iotDeviceconn.getDevclassBid());
+        iotDevice.setFirmBid(firmBid);
+        iotDevice.setDevconnBid(devconnBid);
+        iotDevice.setDevCode(devCode);
+        iotDevice.setDevName(devName);
+        iotDevice.setDevStatus(IotDeviceStatusTypeEnum.WAIT_ACTIVATE.getCode());
+        iotDevice.setDevCreator(SecurityUtils.getUserId());
+        iotDevice.setDevCreateddate(DateUtils.dateTimeNow());
+        iotDevice.setDevDelstatus(IotDeviceDelStatusEnum.NOT_DELETE.getCode());
+
+        return insertIotDevice(iotDevice);
+    }
     /**
     /**
      * 查询设备基础
      * 查询设备基础
      *
      *
@@ -59,6 +122,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
      */
      */
     @Override
     @Override
     public List<IotDevice> selectIotDeviceList(IotDevice iotDevice) {
     public List<IotDevice> selectIotDeviceList(IotDevice iotDevice) {
+        iotDevice.setTid(SecurityUtils.getTid());
         return iotDeviceMapper.selectIotDeviceList(iotDevice);
         return iotDeviceMapper.selectIotDeviceList(iotDevice);
     }
     }
 
 

+ 3 - 1
src/main/resources/mapper/IotDeviceconnMapper.xml

@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="devconnBid"    column="devconnBid"    />
         <result property="devconnBid"    column="devconnBid"    />
         <result property="devclassBid"    column="devclassBid"    />
         <result property="devclassBid"    column="devclassBid"    />
         <result property="devtypeBid"    column="devtypeBid"    />
         <result property="devtypeBid"    column="devtypeBid"    />
+        <result property="firmBid"    column="firmBid"    />
         <result property="devconnType"    column="devconnType"    />
         <result property="devconnType"    column="devconnType"    />
         <result property="devconnName"    column="devconnName"    />
         <result property="devconnName"    column="devconnName"    />
         <result property="devconnConfig"    column="devconnConfig"    />
         <result property="devconnConfig"    column="devconnConfig"    />
@@ -27,7 +28,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="selectIotDeviceconnList" parameterType="IotDeviceconn" resultMap="IotDeviceconnResult">
     <select id="selectIotDeviceconnList" parameterType="IotDeviceconn" resultMap="IotDeviceconnResult">
         select dcn.devconnBid, dcn.devtypeBid, dcn.devconnType, dcn.devconnName, dcn.devconnConfig, dcn.devconnRemark,
         select dcn.devconnBid, dcn.devtypeBid, dcn.devconnType, dcn.devconnName, dcn.devconnConfig, dcn.devconnRemark,
-            dcn.devconnCreator, dcn.devconnModifier, dcn.devconnModifieddate, dcn.devconnCreateddate, dt.devclassBid
+            dcn.devconnCreator, dcn.devconnModifier, dcn.devconnModifieddate, dcn.devconnCreateddate,
+            dt.devclassBid, dt.firmBid
         from IotDeviceconn as dcn
         from IotDeviceconn as dcn
             left join TosDevicetype as dt on dt.devtypeBid = dcn.devtypeBid
             left join TosDevicetype as dt on dt.devtypeBid = dcn.devtypeBid