فهرست منبع

Merge remote-tracking branch 'origin/master'

liuyaowen 1 سال پیش
والد
کامیت
3ef218935e

+ 28 - 24
src/main/java/com/yunfeiyun/agmp/iotm/device/controller/IotDeviceconnController.java

@@ -7,8 +7,9 @@ import javax.validation.Valid;
 import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
 import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnAddReqVo;
+import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnEditReqVo;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnListReqVo;
-import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListRspVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListResVo;
 import com.yunfeiyun.agmp.iotm.device.service.IIotDeviceconnService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,31 +60,18 @@ public class IotDeviceconnController extends BaseController
     public TableDataInfo list(IotDeviceconnListReqVo reqVo)
     {
         startPage();
-        List<IotDeviceconnListRspVo> list = iotDeviceconnService.listDeviceconn(reqVo);
+        List<IotDeviceconnListResVo> list = iotDeviceconnService.listDeviceconn(reqVo);
         return getDataTable(list);
     }
 
     /**
-     * 导出设备连接配置列表
-     */
-    @PreAuthorize("@ss.hasPermi('iot:deviceconn:export')")
-    @Log(title = "设备连接配置", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, IotDeviceconn iotDeviceconn)
-    {
-        List<IotDeviceconn> list = iotDeviceconnService.selectIotDeviceconnList(iotDeviceconn);
-        ExcelUtil<IotDeviceconn> util = new ExcelUtil<IotDeviceconn>(IotDeviceconn.class);
-        util.exportExcel(response, list, "设备连接配置数据");
-    }
-
-    /**
      * 获取设备连接配置详细信息
      */
-    @PreAuthorize("@ss.hasPermi('iot:deviceconn:query')")
-    @GetMapping(value = "/info/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
+    @PreAuthorize("@ss.hasPermi('iot:deviceconn:info')")
+    @GetMapping(value = "/info/{devtypeBid}")
+    public AjaxResult getInfo(@PathVariable("devtypeBid") String devtypeBid)
     {
-        return success(iotDeviceconnService.selectIotDeviceconnById(id));
+        return success(iotDeviceconnService.selectIotDeviceconnInfo(devtypeBid));
     }
 
     /**
@@ -91,10 +79,11 @@ public class IotDeviceconnController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('iot:deviceconn:edit')")
     @Log(title = "设备连接配置", businessType = BusinessType.UPDATE)
+    @Transactional(rollbackFor=Exception.class)
     @PutMapping("/edit")
-    public AjaxResult edit(@RequestBody IotDeviceconn iotDeviceconn)
+    public AjaxResult edit(@RequestBody @Valid IotDeviceconnEditReqVo reqVo)
     {
-        return toAjax(iotDeviceconnService.updateIotDeviceconn(iotDeviceconn));
+        return toAjax(iotDeviceconnService.editIotDeviceconn(reqVo));
     }
 
     /**
@@ -102,9 +91,24 @@ public class IotDeviceconnController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('iot:deviceconn:remove')")
     @Log(title = "设备连接配置", businessType = BusinessType.DELETE)
-	@DeleteMapping("/delete/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
+    @Transactional(rollbackFor=Exception.class)
+    @DeleteMapping("/delete/{devtypeBid}")
+    public AjaxResult remove(@PathVariable String devtypeBid)
     {
-        return toAjax(iotDeviceconnService.deleteIotDeviceconnByIds(ids));
+        return toAjax(iotDeviceconnService.deleteIotDeviceconn(devtypeBid));
+    }
+
+
+    /**
+     * 导出设备连接配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('iot:deviceconn:export')")
+    @Log(title = "设备连接配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, IotDeviceconn iotDeviceconn)
+    {
+        List<IotDeviceconn> list = iotDeviceconnService.selectIotDeviceconnList(iotDeviceconn);
+        ExcelUtil<IotDeviceconn> util = new ExcelUtil<IotDeviceconn>(IotDeviceconn.class);
+        util.exportExcel(response, list, "设备连接配置数据");
     }
 }

+ 5 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/domain/IotDevconnConfigInfoVo.java

@@ -1,5 +1,6 @@
 package com.yunfeiyun.agmp.iotm.device.domain;
 
+import com.yunfeiyun.agmp.common.annotation.Excel;
 import lombok.Data;
 
 import javax.validation.constraints.NotEmpty;
@@ -15,6 +16,10 @@ import javax.validation.constraints.NotNull;
 
 @Data
 public class IotDevconnConfigInfoVo {
+
+    /** 连接配置标识 */
+    private String devconnBid;
+
     /** 连接名称 */
     @NotNull(message = "连接名称不能为空")
     @NotEmpty(message = "连接名称不能为空")

+ 0 - 1
src/main/java/com/yunfeiyun/agmp/iotm/device/domain/reqvo/IotDeviceconnAddReqVo.java

@@ -27,6 +27,5 @@ public class IotDeviceconnAddReqVo
     private String devconnType;
 
     /** 连接配置列表 */
-    @NotNull(message = "设备类型标识不能为空")
     private List<IotDevconnConfigInfoVo> devconnConfigList;
 }

+ 39 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/domain/reqvo/IotDeviceconnEditReqVo.java

@@ -0,0 +1,39 @@
+package com.yunfeiyun.agmp.iotm.device.domain.reqvo;
+
+import com.yunfeiyun.agmp.iotm.device.domain.IotDevconnConfigInfoVo;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 设备连接配置对象 IotDeviceconn
+ * 
+ * @author 杨晓辉
+ * @date 2024-11-06
+ */
+@Data
+public class IotDeviceconnEditReqVo
+{
+
+    /** 设备类型标识 */
+    @NotNull(message = "设备类型标识不能为空")
+    @NotEmpty(message = "设备类型标识不能为空")
+    private String oldDevtypeBid;
+
+    /** 设备类型标识 */
+    @NotNull(message = "设备类型标识不能为空")
+    @NotEmpty(message = "设备类型标识不能为空")
+    private String newDevtypeBid;
+
+    /** 连接类型 */
+    @Min(value = 0, message = "连接类型只能是私有或者通用")
+    @Max(value = 1, message = "连接类型只能是私有或者通用")
+    private String devconnType;
+
+    /** 连接配置列表 */
+    private List<IotDevconnConfigInfoVo> devconnConfigList;
+}

+ 33 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/domain/resvo/IotDeviceconnInfoResVo.java

@@ -0,0 +1,33 @@
+package com.yunfeiyun.agmp.iotm.device.domain.resvo;
+
+import com.yunfeiyun.agmp.common.annotation.Excel;
+import com.yunfeiyun.agmp.iotm.device.domain.IotDevconnConfigInfoVo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 设备连接配置对象 IotDeviceconn
+ * 
+ * @author 杨晓辉
+ * @date 2024-11-06
+ */
+@Data
+public class IotDeviceconnInfoResVo
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 设备型号标识 */
+    @Excel(name = "设备类型标识")
+    private String devtypeBid;
+
+    /** 设备类别标识 */
+    private String devclassBid;
+
+    /** 连接类型 */
+    @Excel(name = "连接类型")
+    private String devconnType;
+
+    /** 连接配置列表 */
+    private List<IotDevconnConfigInfoVo> devconnConfigList;
+}

+ 3 - 2
src/main/java/com/yunfeiyun/agmp/iotm/device/domain/resvo/IotDeviceconnListRspVo.java

@@ -1,6 +1,5 @@
 package com.yunfeiyun.agmp.iotm.device.domain.resvo;
 
-import com.yunfeiyun.agmp.common.annotation.Excel;
 import com.yunfeiyun.agmp.iot.common.enums.IotDeviceconnTypeEnum;
 import lombok.Data;
 
@@ -11,7 +10,7 @@ import lombok.Data;
  * @date 2024-11-06
  */
 @Data
-public class IotDeviceconnListRspVo
+public class IotDeviceconnListResVo
 {
     private static final long serialVersionUID = 1L;
 
@@ -52,4 +51,6 @@ public class IotDeviceconnListRspVo
     /** 型号名称 */
     private String devtypeName;
 
+    private String devconnCreateddate;
+
 }

+ 3 - 35
src/main/java/com/yunfeiyun/agmp/iotm/device/mapper/IotDeviceconnMapper.java

@@ -2,7 +2,7 @@ package com.yunfeiyun.agmp.iotm.device.mapper;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnListReqVo;
-import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListRspVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListResVo;
 
 import java.util.List;
 
@@ -15,14 +15,6 @@ import java.util.List;
 public interface IotDeviceconnMapper 
 {
     /**
-     * 查询设备连接配置
-     * 
-     * @param id 设备连接配置主键
-     * @return 设备连接配置
-     */
-    public IotDeviceconn selectIotDeviceconnById(Long id);
-
-    /**
      * 查询设备连接配置列表
      * 
      * @param iotDeviceconn 设备连接配置
@@ -31,36 +23,12 @@ public interface IotDeviceconnMapper
     public List<IotDeviceconn> selectIotDeviceconnList(IotDeviceconn iotDeviceconn);
 
     /**
-     * 新增设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 结果
-     */
-    public int insertIotDeviceconn(IotDeviceconn iotDeviceconn);
-
-    /**
-     * 修改设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 结果
-     */
-    public int updateIotDeviceconn(IotDeviceconn iotDeviceconn);
-
-    /**
-     * 删除设备连接配置
-     * 
-     * @param id 设备连接配置主键
-     * @return 结果
-     */
-    public int deleteIotDeviceconnById(Long id);
-
-    /**
      * 批量删除设备连接配置
      * 
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteIotDeviceconnByIds(Long[] ids);
+    public int deleteIotDeviceconnByBids(String[] devconnBids);
 
 
     /**
@@ -69,7 +37,7 @@ public interface IotDeviceconnMapper
      * @param reqVo 设备连接配置
      * @return 设备连接配置集合
      */
-    public List<IotDeviceconnListRspVo> listDeviceconn(IotDeviceconnListReqVo reqVo);
+    public List<IotDeviceconnListResVo> listDeviceconn(IotDeviceconnListReqVo reqVo);
 
     /**
      * 批量新增设备连接配置

+ 36 - 30
src/main/java/com/yunfeiyun/agmp/iotm/device/service/IIotDeviceconnService.java

@@ -2,8 +2,10 @@ package com.yunfeiyun.agmp.iotm.device.service;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDeviceconn;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnAddReqVo;
+import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnEditReqVo;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnListReqVo;
-import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListRspVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnInfoResVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListResVo;
 
 import java.util.List;
 
@@ -15,63 +17,67 @@ import java.util.List;
  */
 public interface IIotDeviceconnService 
 {
-    /**
-     * 查询设备连接配置
-     * 
-     * @param id 设备连接配置主键
-     * @return 设备连接配置
-     */
-    public IotDeviceconn selectIotDeviceconnById(Long id);
+
+    public int addDeviceconn(IotDeviceconnAddReqVo reqVo);
+
+    public int addDeviceconn(IotDeviceconnAddReqVo reqVo, boolean isCreateConnect);
 
     /**
      * 查询设备连接配置列表
-     * 
-     * @param iotDeviceconn 设备连接配置
+     *
+     * @param
      * @return 设备连接配置集合
      */
-    public List<IotDeviceconn> selectIotDeviceconnList(IotDeviceconn iotDeviceconn);
+    public List<IotDeviceconnListResVo> listDeviceconn(IotDeviceconnListReqVo reqVo);
 
     /**
-     * 新增设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 结果
+     * 获取设备连接配置详细信息
+     *
+     * @param devtypeBid 设备连接配置主键
+     * @return 设备连接配置
      */
-    public int insertIotDeviceconn(IotDeviceconn iotDeviceconn);
+    public IotDeviceconnInfoResVo selectIotDeviceconnInfo(String devtypeBid);
 
     /**
      * 修改设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
+     *
+     * @param
      * @return 结果
      */
-    public int updateIotDeviceconn(IotDeviceconn iotDeviceconn);
+    public int editIotDeviceconn(IotDeviceconnEditReqVo reqVo);
+
+    /**
+     * 删除设备连接配置信息
+     *
+     * @param devtypeBid 设备连接配置主键
+     * @return 设备连接配置
+     */
+    public int deleteIotDeviceconn(String devtypeBid);
+
 
     /**
      * 批量删除设备连接配置
-     * 
-     * @param ids 需要删除的设备连接配置主键集合
+     *
+     * @param devconnBids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteIotDeviceconnByIds(Long[] ids);
+    public int deleteIotDeviceconnByBids(String[] devconnBids);
 
     /**
-     * 删除设备连接配置信息
-     * 
-     * @param id 设备连接配置主键
+     * 批量删除设备连接配置
+     *
+     * @param devconnBids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteIotDeviceconnById(Long id);
-
-    public int addDeviceconn(IotDeviceconnAddReqVo reqVo);
+    public int deleteIotDeviceconnByBids(String[] devconnBids, boolean isDeleteConnect);
 
     /**
      * 查询设备连接配置列表
-     *
+     * 
      * @param iotDeviceconn 设备连接配置
      * @return 设备连接配置集合
      */
-    public List<IotDeviceconnListRspVo> listDeviceconn(IotDeviceconnListReqVo reqVo);
+    public List<IotDeviceconn> selectIotDeviceconnList(IotDeviceconn iotDeviceconn);
 
     /**
      * 批量新增设备连接配置

+ 164 - 85
src/main/java/com/yunfeiyun/agmp/iotm/device/service/impl/IotDeviceconnServiceImpl.java

@@ -14,8 +14,10 @@ import com.yunfeiyun.agmp.iot.common.enums.IotDeviceconnTypeEnum;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iotm.device.domain.IotDevconnConfigInfoVo;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnAddReqVo;
+import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnEditReqVo;
 import com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnListReqVo;
-import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListRspVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnInfoResVo;
+import com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListResVo;
 import com.yunfeiyun.agmp.iotm.device.mapper.IotDeviceconnMapper;
 import com.yunfeiyun.agmp.iotm.device.service.IIotDeviceconnService;
 import com.yunfeiyun.agmp.iotm.device.service.ITosDevicetypeService;
@@ -37,88 +39,10 @@ public class IotDeviceconnServiceImpl implements IIotDeviceconnService
     @Autowired
     private ITosDevicetypeService tosDevicetypeService;
 
-    /**
-     * 查询设备连接配置
-     * 
-     * @param id 设备连接配置主键
-     * @return 设备连接配置
-     */
-    @Override
-    public IotDeviceconn selectIotDeviceconnById(Long id)
-    {
-        return iotDeviceconnMapper.selectIotDeviceconnById(id);
-    }
-
-    /**
-     * 查询设备连接配置列表
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 设备连接配置
-     */
-    @Override
-    public List<IotDeviceconn> selectIotDeviceconnList(IotDeviceconn iotDeviceconn)
-    {
-        iotDeviceconn.setTid(SecurityUtils.getTid());
-        return iotDeviceconnMapper.selectIotDeviceconnList(iotDeviceconn);
-    }
-
-    /**
-     * 新增设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 结果
-     */
-    @Override
-    public int insertIotDeviceconn(IotDeviceconn iotDeviceconn)
-    {
-        iotDeviceconn.setTid(SecurityUtils.getTid());
-        return iotDeviceconnMapper.insertIotDeviceconn(iotDeviceconn);
-    }
-
-    /**
-     * 修改设备连接配置
-     * 
-     * @param iotDeviceconn 设备连接配置
-     * @return 结果
-     */
-    @Override
-    public int updateIotDeviceconn(IotDeviceconn iotDeviceconn)
-    {
-        return iotDeviceconnMapper.updateIotDeviceconn(iotDeviceconn);
-    }
-
-    /**
-     * 批量删除设备连接配置
-     * 
-     * @param ids 需要删除的设备连接配置主键
-     * @return 结果
-     */
-    @Override
-    public int deleteIotDeviceconnByIds(Long[] ids)
-    {
-        return iotDeviceconnMapper.deleteIotDeviceconnByIds(ids);
-    }
-
-    /**
-     * 删除设备连接配置信息
-     * 
-     * @param id 设备连接配置主键
-     * @return 结果
-     */
-    @Override
-    public int deleteIotDeviceconnById(Long id)
-    {
-        return iotDeviceconnMapper.deleteIotDeviceconnById(id);
-    }
-
     @Override
-    public int addDeviceconn(IotDeviceconnAddReqVo reqVo) {
+    public int addDeviceconn(IotDeviceconnAddReqVo reqVo, boolean isCreateConnect) {
         String devconnType = reqVo.getDevconnType();
         String devtypeBid = reqVo.getDevtypeBid();
-        List<IotDevconnConfigInfoVo> devconnConfigList = reqVo.getDevconnConfigList();
-        if(devconnConfigList == null || devconnConfigList.isEmpty()){
-            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"连接配置不能为空");
-        }
 
         TosDevicetype tosDevicetype = tosDevicetypeService.selectTosDevicetypeByDevtypeBid(devtypeBid);
         if(tosDevicetype == null){
@@ -146,6 +70,10 @@ public class IotDeviceconnServiceImpl implements IIotDeviceconnService
 
             insertIotDeviceconnList.add(iotDeviceconn);
         }else{
+            List<IotDevconnConfigInfoVo> devconnConfigList = reqVo.getDevconnConfigList();
+            if(devconnConfigList == null || devconnConfigList.isEmpty()){
+                throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"连接配置不能为空");
+            }
             String diffName = "";
             for(IotDevconnConfigInfoVo devconnConfigInfo : devconnConfigList){
                 String devconnName = devconnConfigInfo.getDevconnName();
@@ -184,21 +112,170 @@ public class IotDeviceconnServiceImpl implements IIotDeviceconnService
         }
 
         int status = insertIotDeviceconnByBatch(insertIotDeviceconnList);
-
-        // Todo 发送消息,创建设备连接
+        if(isCreateConnect) {
+            // Todo 发送消息,创建设备连接
+        }
         return status;
     }
 
+    @Override
+    public int addDeviceconn(IotDeviceconnAddReqVo reqVo) {
+        return addDeviceconn(reqVo, true);
+    }
+
     /**
      * 查询设备连接配置列表
      *
      * @param reqVo@return 设备连接配置集合
      */
     @Override
-    public List<IotDeviceconnListRspVo> listDeviceconn(IotDeviceconnListReqVo reqVo) {
+    public List<IotDeviceconnListResVo> listDeviceconn(IotDeviceconnListReqVo reqVo) {
         reqVo.setTid(SecurityUtils.getTid());
-        List<IotDeviceconnListRspVo> iotDeviceconnListRspVoList = iotDeviceconnMapper.listDeviceconn(reqVo);
-        return iotDeviceconnListRspVoList;
+        return iotDeviceconnMapper.listDeviceconn(reqVo);
+    }
+
+    /**
+     * 获取设备连接配置详细信息
+     *
+     * @param devtypeBid 设备连接配置主键
+     * @return 设备连接配置
+     */
+    @Override
+    public IotDeviceconnInfoResVo selectIotDeviceconnInfo(String devtypeBid) {
+        if(StringUtils.isEmpty(devtypeBid)){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"参数不能为空");
+        }
+        IotDeviceconn selectIotDeviceconn = new IotDeviceconn();
+        selectIotDeviceconn.setDevtypeBid(devtypeBid);
+
+        List<IotDeviceconn> iotDeviceconnList = selectIotDeviceconnList(selectIotDeviceconn);
+        if(iotDeviceconnList == null || iotDeviceconnList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"连接配置不存在");
+        }
+
+        IotDeviceconnInfoResVo iotDeviceconnInfoResVo = new IotDeviceconnInfoResVo();
+        iotDeviceconnInfoResVo.setDevconnConfigList(new ArrayList<>());
+
+        for(IotDeviceconn iotDeviceconn : iotDeviceconnList){
+            iotDeviceconnInfoResVo.setDevclassBid(iotDeviceconn.getDevclassBid());
+            iotDeviceconnInfoResVo.setDevtypeBid(iotDeviceconn.getDevtypeBid());
+            iotDeviceconnInfoResVo.setDevconnType(iotDeviceconn.getDevconnType());
+
+            IotDevconnConfigInfoVo iotDevconnConfigInfoVo = new IotDevconnConfigInfoVo();
+            iotDevconnConfigInfoVo.setDevconnBid(iotDeviceconn.getDevconnBid());
+            iotDevconnConfigInfoVo.setDevconnName(iotDeviceconn.getDevconnName());
+            iotDevconnConfigInfoVo.setDevconnConfig(iotDeviceconn.getDevconnConfig());
+            iotDeviceconnInfoResVo.getDevconnConfigList().add(iotDevconnConfigInfoVo);
+        }
+        return iotDeviceconnInfoResVo;
+    }
+
+    /**
+     * 修改设备连接配置
+     *
+     * @param reqVo@return 结果
+     */
+    @Override
+    public int editIotDeviceconn(IotDeviceconnEditReqVo reqVo) {
+        String devconnType = reqVo.getDevconnType();
+        String oldDevtypeBid = reqVo.getOldDevtypeBid();
+        String newDevtypeBid = reqVo.getNewDevtypeBid();
+
+        IotDeviceconn selectIotDeviceconn = new IotDeviceconn();
+        selectIotDeviceconn.setDevtypeBid(oldDevtypeBid);
+        List<IotDeviceconn> iotDeviceconnList = selectIotDeviceconnList(selectIotDeviceconn);
+        if(iotDeviceconnList == null || iotDeviceconnList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"连接配置不存在");
+        }
+
+        TosDevicetype tosDevicetype = tosDevicetypeService.selectTosDevicetypeByDevtypeBid(newDevtypeBid);
+        if(tosDevicetype == null){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"设备型号不存在");
+        }
+
+        List<String> devconnBids = new ArrayList<>();
+        for(IotDeviceconn iotDeviceconn : iotDeviceconnList){
+            devconnBids.add(iotDeviceconn.getDevconnBid());
+        }
+
+        deleteIotDeviceconnByBids(devconnBids.toArray(new String[0]), false);
+
+        IotDeviceconnAddReqVo addReqVo = new IotDeviceconnAddReqVo();
+        addReqVo.setDevtypeBid(newDevtypeBid);
+        addReqVo.setDevconnType(devconnType);
+        addReqVo.setDevconnConfigList(reqVo.getDevconnConfigList());
+
+        int status = addDeviceconn(addReqVo, false);
+        // Todo 发送消息,删除设备连接
+        // Todo 发送消息,更新设备连接
+
+        return status;
+    }
+
+    /**
+     * 删除设备连接配置信息
+     *
+     * @param devtypeBid 设备连接配置主键
+     * @return 设备连接配置
+     */
+    @Override
+    public int deleteIotDeviceconn(String devtypeBid) {
+        if(StringUtils.isEmpty(devtypeBid)){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"参数不能为空");
+        }
+        IotDeviceconn selectIotDeviceconn = new IotDeviceconn();
+        selectIotDeviceconn.setDevtypeBid(devtypeBid);
+        List<IotDeviceconn> iotDeviceconnList = selectIotDeviceconnList(selectIotDeviceconn);
+        if(iotDeviceconnList == null || iotDeviceconnList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(),"连接配置不存在");
+        }
+        // Todo 检测设备是否引用此连接配置,如果有则不允许删除
+        List<String> devconnBids = new ArrayList<>();
+        for(IotDeviceconn iotDeviceconn : iotDeviceconnList){
+            devconnBids.add(iotDeviceconn.getDevconnBid());
+        }
+        return deleteIotDeviceconnByBids(devconnBids.toArray(new String[0]));
+    }
+
+
+    /**
+     * 批量删除设备连接配置
+     *
+     * @param devconnBids 需要删除的数据主键集合
+     * @return 结果
+     */
+    @Override
+    public int deleteIotDeviceconnByBids(String[] devconnBids, boolean isDeleteConnect) {
+        int status = iotDeviceconnMapper.deleteIotDeviceconnByBids(devconnBids);
+        if(isDeleteConnect) {
+            // 删除设备连接配置
+        }
+        return status;
+    }
+
+    /**
+     * 批量删除设备连接配置
+     *
+     * @param devconnBids     需要删除的数据主键集合
+     * @param
+     * @return 结果
+     */
+    @Override
+    public int deleteIotDeviceconnByBids(String[] devconnBids) {
+        return deleteIotDeviceconnByBids(devconnBids, true);
+    }
+
+    /**
+     * 查询设备连接配置列表
+     * 
+     * @param iotDeviceconn 设备连接配置
+     * @return 设备连接配置
+     */
+    @Override
+    public List<IotDeviceconn> selectIotDeviceconnList(IotDeviceconn iotDeviceconn)
+    {
+        iotDeviceconn.setTid(SecurityUtils.getTid());
+        return iotDeviceconnMapper.selectIotDeviceconnList(iotDeviceconn);
     }
 
     /**
@@ -214,4 +291,6 @@ public class IotDeviceconnServiceImpl implements IIotDeviceconnService
         }
         return iotDeviceconnMapper.insertIotDeviceconnByBatch(iotDeviceconnList);
     }
+
+
 }

+ 23 - 73
src/main/resources/mapper/IotDeviceconnMapper.xml

@@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <resultMap type="IotDeviceconn" id="IotDeviceconnResult">
         <result property="id"    column="id"    />
         <result property="devconnBid"    column="devconnBid"    />
+        <result property="devclassBid"    column="devclassBid"    />
         <result property="devtypeBid"    column="devtypeBid"    />
         <result property="devconnType"    column="devconnType"    />
         <result property="devconnName"    column="devconnName"    />
@@ -25,32 +26,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectIotDeviceconnList" parameterType="IotDeviceconn" resultMap="IotDeviceconnResult">
-        <include refid="selectIotDeviceconnVo"/>
+        select dcn.devconnBid, dcn.devtypeBid, dcn.devconnType, dcn.devconnName, dcn.devconnConfig, dcn.devconnRemark,
+            dcn.devconnCreator, dcn.devconnModifier, dcn.devconnModifieddate, dcn.devconnCreateddate, dt.devclassBid
+        from IotDeviceconn as dcn
+            left join TosDevicetype as dt on dt.devtypeBid = dcn.devtypeBid
+
         <where>
             tid = #{tid}
-            <if test="devconnBid != null  and devconnBid != ''"> and devconnBid = #{devconnBid}</if>
-            <if test="devtypeBid != null  and devtypeBid != ''"> and devtypeBid = #{devtypeBid}</if>
-            <if test="devconnType != null  and devconnType != ''"> and devconnType = #{devconnType}</if>
-            <if test="devconnName != null  and devconnName != ''"> and devconnName like concat('%', #{devconnName}, '%')</if>
-            <if test="devconnConfig != null  and devconnConfig != ''"> and devconnConfig = #{devconnConfig}</if>
-            <if test="devconnRemark != null  and devconnRemark != ''"> and devconnRemark = #{devconnRemark}</if>
-            <if test="devconnCreator != null  and devconnCreator != ''"> and devconnCreator = #{devconnCreator}</if>
-            <if test="devconnModifier != null  and devconnModifier != ''"> and devconnModifier = #{devconnModifier}</if>
-            <if test="devconnModifieddate != null  and devconnModifieddate != ''"> and devconnModifieddate = #{devconnModifieddate}</if>
-            <if test="devconnCreateddate != null  and devconnCreateddate != ''"> and devconnCreateddate = #{devconnCreateddate}</if>
+            <if test="devconnBid != null  and devconnBid != ''"> and dcn.devconnBid = #{devconnBid}</if>
+            <if test="devtypeBid != null  and devtypeBid != ''"> and dcn.devtypeBid = #{devtypeBid}</if>
+            <if test="devconnType != null  and devconnType != ''"> and dcn.devconnType = #{devconnType}</if>
+            <if test="devconnName != null  and devconnName != ''"> and dcn.devconnName like concat('%', #{devconnName}, '%')</if>
+            <if test="devconnConfig != null  and devconnConfig != ''"> and dcn.devconnConfig = #{devconnConfig}</if>
+            <if test="devconnRemark != null  and devconnRemark != ''"> and dcn.devconnRemark = #{devconnRemark}</if>
+            <if test="devconnCreator != null  and devconnCreator != ''"> and dcn.devconnCreator = #{devconnCreator}</if>
+            <if test="devconnModifier != null  and devconnModifier != ''"> and dcn.devconnModifier = #{devconnModifier}</if>
+            <if test="devconnModifieddate != null  and devconnModifieddate != ''"> and dcn.devconnModifieddate = #{devconnModifieddate}</if>
+            <if test="devconnCreateddate != null  and devconnCreateddate != ''"> and dcn.devconnCreateddate = #{devconnCreateddate}</if>
         </where>
     </select>
-    
-    <select id="selectIotDeviceconnById" parameterType="Long" resultMap="IotDeviceconnResult">
-        <include refid="selectIotDeviceconnVo"/>
-        where id = #{id}
-    </select>
 
     <select id="listDeviceconn"
             parameterType="com.yunfeiyun.agmp.iotm.device.domain.reqvo.IotDeviceconnListReqVo"
-            resultType="com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListRspVo">
+            resultType="com.yunfeiyun.agmp.iotm.device.domain.resvo.IotDeviceconnListResVo">
         SELECT dcn.devconnBid, dcn.devconnType, dcn.devconnName, dcn.devconnRemark, dc.devclassBid, dc.devclassCode,
-            dc.devclassName, dt.devtypeBid, dt.devtypeCode, dt.devtypeName
+            dc.devclassName, dt.devtypeBid, dt.devtypeCode, dt.devtypeName, dcn.devconnCreateddate
         FROM IotDeviceconn AS dcn
             LEFT JOIN TosDevicetype AS dt ON dt.devtypeBid = dcn.devtypeBid
             LEFT JOIN TosDeviceclass AS dc ON dc.devclassBid = dt.devclassBid
@@ -63,37 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devconnName != null  and devconnName != ''"> and dcn.devconnName like concat('%', #{devconnName}, '%')</if>
             <if test="devconnType != null  and devconnType != ''"> and devconnType = #{devconnType}</if>
         </where>
+        GROUP BY dcn.devtypeBid
     </select>
 
-    <insert id="insertIotDeviceconn" parameterType="IotDeviceconn" useGeneratedKeys="true" keyProperty="id">
-        insert into IotDeviceconn
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="devconnBid != null">devconnBid,</if>
-            <if test="devtypeBid != null">devtypeBid,</if>
-            <if test="devconnType != null">devconnType,</if>
-            <if test="devconnName != null">devconnName,</if>
-            <if test="devconnConfig != null">devconnConfig,</if>
-            <if test="devconnRemark != null">devconnRemark,</if>
-            <if test="devconnCreator != null">devconnCreator,</if>
-            <if test="devconnModifier != null">devconnModifier,</if>
-            <if test="devconnModifieddate != null">devconnModifieddate,</if>
-            <if test="devconnCreateddate != null">devconnCreateddate,</if>
-            <if test="tid != null">tid,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="devconnBid != null">#{devconnBid},</if>
-            <if test="devtypeBid != null">#{devtypeBid},</if>
-            <if test="devconnType != null">#{devconnType},</if>
-            <if test="devconnName != null">#{devconnName},</if>
-            <if test="devconnConfig != null">#{devconnConfig},</if>
-            <if test="devconnRemark != null">#{devconnRemark},</if>
-            <if test="devconnCreator != null">#{devconnCreator},</if>
-            <if test="devconnModifier != null">#{devconnModifier},</if>
-            <if test="devconnModifieddate != null">#{devconnModifieddate},</if>
-            <if test="devconnCreateddate != null">#{devconnCreateddate},</if>
-            <if test="tid != null">#{tid},</if>
-         </trim>
-    </insert>
     <insert id="insertIotDeviceconnByBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
         insert into IotDeviceconn (
             devconnBid, devtypeBid, devconnType, devconnName, devconnConfig, devconnRemark, devconnCreator,
@@ -109,32 +81,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </insert>
 
-    <update id="updateIotDeviceconn" parameterType="IotDeviceconn">
-        update IotDeviceconn
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="devconnBid != null">devconnBid = #{devconnBid},</if>
-            <if test="devtypeBid != null">devtypeBid = #{devtypeBid},</if>
-            <if test="devconnType != null">devconnType = #{devconnType},</if>
-            <if test="devconnName != null">devconnName = #{devconnName},</if>
-            <if test="devconnConfig != null">devconnConfig = #{devconnConfig},</if>
-            <if test="devconnRemark != null">devconnRemark = #{devconnRemark},</if>
-            <if test="devconnCreator != null">devconnCreator = #{devconnCreator},</if>
-            <if test="devconnModifier != null">devconnModifier = #{devconnModifier},</if>
-            <if test="devconnModifieddate != null">devconnModifieddate = #{devconnModifieddate},</if>
-            <if test="devconnCreateddate != null">devconnCreateddate = #{devconnCreateddate},</if>
-            <if test="tid != null">tid = #{tid},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteIotDeviceconnById" parameterType="Long">
-        delete from IotDeviceconn where id = #{id}
-    </delete>
-
-    <delete id="deleteIotDeviceconnByIds" parameterType="String">
-        delete from IotDeviceconn where id in 
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
+    <delete id="deleteIotDeviceconnByBids" parameterType="String">
+        delete from IotDeviceconn where devconnBid in
+        <foreach item="devconnBid" collection="array" open="(" separator="," close=")">
+            #{devconnBid}
         </foreach>
     </delete>
 </mapper>