Просмотр исходного кода

完成项目关联设备开发

sptkw 2 лет назад
Родитель
Сommit
dd234a960c
16 измененных файлов с 520 добавлено и 52 удалено
  1. 19 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProjectController.java
  2. 59 3
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProjectDeviceController.java
  3. 2 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotDevicePara.java
  4. 45 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProDevicePara.java
  5. 30 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProjectDevicePara.java
  6. 1 1
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProjectPara.java
  7. 10 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/vo/IotDeviceVo.java
  8. 1 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/entity/IotProjectDevice.java
  9. 45 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/entity/IotProjectDeviceLog.java
  10. 17 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/mapper/IotProjectDeviceLogMapper.java
  11. 15 0
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/mapper/IotProjectDeviceMapper.java
  12. 108 3
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectDeviceService.java
  13. 24 1
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectService.java
  14. 23 4
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotDeviceMapper.xml
  15. 55 39
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotProductMapper.xml
  16. 66 1
      iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotProjectDeviceMapper.xml

+ 19 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProjectController.java

@@ -66,4 +66,23 @@ public class IotProjectController {
     }
 
 
+
+    /**
+     * 设备位置选点
+     */
+
+
+    /**
+     * 项目关联设备
+     */
+
+
+    /**
+     * 设备解绑
+     */
+
+
+
+
+
 }

+ 59 - 3
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/controller/IotProjectDeviceController.java

@@ -1,8 +1,14 @@
 package com.middle.platform.manage.biz.controller;
 
+import com.middle.platform.common.utils.Result;
+import com.middle.platform.manage.biz.domain.req.IotProDevicePara;
+import com.middle.platform.manage.biz.domain.req.IotProjectDevicePara;
+import com.middle.platform.manage.biz.service.IotProjectDeviceService;
+import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 产品关联设备表(iot_project_device)表控制层
@@ -10,8 +16,58 @@ import org.springframework.web.bind.annotation.RestController;
  * @author xxxxx
  */
 @RestController
-@RequestMapping("/iot_project_device")
+@RequestMapping("/iotProjectDevice")
 @RequiredArgsConstructor
 public class IotProjectDeviceController {
 
+    private final IotProjectDeviceService iotProjectDeviceService;
+
+    /**
+     * 关联设备列表查询
+     */
+    @PostMapping("/list")
+    public Result<Object> list(@RequestBody @Validated IotProjectDevicePara iotProjectDevicePara) {
+        return Result.ok(iotProjectDeviceService.pageQuery(iotProjectDevicePara));
+    }
+
+
+    /**
+     * 项目关联设备
+     */
+    @PostMapping("/save")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<Object> save(@RequestBody @Validated IotProjectDevicePara iotProjectDevicePara) {
+        return Result.ok(iotProjectDeviceService.save(iotProjectDevicePara), "保存成功");
+    }
+
+
+    /**
+     * 修改项目关联设备位置选点
+     */
+    @PostMapping("/updateProjectDevice")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<Object> updateProjectDevice(@RequestBody @Validated IotProDevicePara iotProDevicePara) {
+        return Result.ok(iotProjectDeviceService.updateProjectDevice(iotProDevicePara), "保存成功");
+    }
+
+    /**
+     * 设备状态修改
+     */
+    @GetMapping("/updateDeviceStatus")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<Object> updateDeviceStatus(@RequestParam("deviceId") @NotNull(message = "deviceId不能为空") Long deviceId, @RequestParam("enableFlag") @NotNull(message = "启用状态不能为空") Long enableFlag) {
+        return Result.ok(iotProjectDeviceService.updateProDeviceStatus(deviceId, enableFlag), "保存成功");
+    }
+
+
+    /**
+     * 设备解绑
+     */
+    @GetMapping("/deleteProDeviceUntie")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<Object> deleteProDeviceUntie(@RequestParam("id") @NotNull(message = "id不能为空") Long id) {
+        return Result.ok(iotProjectDeviceService.deleteProDeviceUntie(id), "保存成功");
+    }
+
+
 }

+ 2 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotDevicePara.java

@@ -17,6 +17,8 @@ import java.time.LocalDateTime;
 @Setter
 public class IotDevicePara{
 
+
+
     /**
      * 所属产品
      */

+ 45 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProDevicePara.java

@@ -0,0 +1,45 @@
+package com.middle.platform.manage.biz.domain.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 设备位置表
+ *
+ * @author Aick Spt
+ * @date 2023-12-24 11:27
+ */
+@Getter
+@Setter
+public class IotProDevicePara {
+
+    /**
+     * ID
+     */
+    @NotNull(message = "设备id不能为空")
+    private Long id;
+
+    /**
+     * 经度
+     */
+    @NotNull(message = "设备经度不能为空")
+    private BigDecimal lon;
+
+    /**
+     * 纬度
+     */
+    @NotNull(message = "设备纬度不能为空")
+    private BigDecimal lat;
+
+    /**
+     * 所属区域
+     */
+    @NotBlank(message = "设备所属区域不能为空")
+    private String address;
+
+
+}

+ 30 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProjectDevicePara.java

@@ -0,0 +1,30 @@
+package com.middle.platform.manage.biz.domain.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 项目关联设备新增参数
+ * @author Aick Spt
+ * @date 2023-12-22 09:34
+ */
+@Getter
+@Setter
+public class IotProjectDevicePara extends ProjectPage{
+
+    /**
+     * 项目ID
+     */
+    @NotNull(message = "项目ID不能为空")
+    private Long projectId;
+
+    /**
+     * 设备ID
+     */
+    private List<Long> deviceIds;
+
+}

+ 1 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/req/IotProjectPara.java

@@ -35,7 +35,7 @@ public class IotProjectPara {
 
 
     /**
-     * 状态
+     * 状态 0 启用 1 禁用
      */
     @NotNull(message = "项目状态不能为空")
     private Integer status;

+ 10 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/domain/vo/IotDeviceVo.java

@@ -70,11 +70,21 @@ public class IotDeviceVo extends BaseVO {
      */
     private Integer status;
 
+    /**
+     * 状态名称
+     */
+    private String statusName;
+
     /**
      * 启用状态 1-启用 0-禁用
      */
     private Integer enableFlag;
 
+    /**
+     * 启用状态名称
+     */
+    private String enableFlagName;
+
     /**
      * 备注
      */

+ 1 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/entity/IotProjectDevice.java

@@ -35,4 +35,5 @@ public class IotProjectDevice extends BaseDO {
      */
     @TableField(value = "device_id")
     private Long deviceId;
+
 }

+ 45 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/entity/IotProjectDeviceLog.java

@@ -0,0 +1,45 @@
+package com.middle.platform.manage.biz.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.middle.platform.mybatis.core.dataobject.BaseDO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 产品关联设备表
+ *
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
+@Getter
+@Setter
+@TableName(value = "iot_project_device_log")
+public class IotProjectDeviceLog extends BaseDO {
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 项目id
+     */
+    @TableField(value = "project_id")
+    private Long projectId;
+
+    /**
+     * 设备id
+     */
+    @TableField(value = "device_id")
+    private Long deviceId;
+
+    /**
+     * 解绑备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+}

+ 17 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/mapper/IotProjectDeviceLogMapper.java

@@ -0,0 +1,17 @@
+package com.middle.platform.manage.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.middle.platform.manage.biz.entity.IotProjectDeviceLog;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ *
+ * @author Aick Spt
+ * @date 2023-12-24 15:20
+ */
+@Mapper
+public interface IotProjectDeviceLogMapper extends BaseMapper<IotProjectDeviceLog> {
+
+}

+ 15 - 0
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/mapper/IotProjectDeviceMapper.java

@@ -1,10 +1,15 @@
 package com.middle.platform.manage.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.middle.platform.manage.biz.domain.req.IotProjectDevicePara;
+import com.middle.platform.manage.biz.domain.req.ProjectPage;
+import com.middle.platform.manage.biz.domain.vo.IotDeviceVo;
 import com.middle.platform.manage.biz.entity.IotProjectDevice;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * @author xucaiqin
  * @date 2023-12-19 13:43:38
@@ -22,4 +27,14 @@ public interface IotProjectDeviceMapper extends BaseMapper<IotProjectDevice> {
     Integer queryDeviceNum(@Param("projectId") Long projectId, @Param("status") Integer status);
 
 
+    List<IotDeviceVo> pageQuery(@Param("iotProjectDevicePara") IotProjectDevicePara iotProjectDevicePara);
+
+    IotProjectDevice selectByProjectDevice(IotProjectDevice iotProjectDevice);
+
+    Integer updateById(@Param("deviceId") Long deviceId,@Param("enableFlag")  Long enableFlag);
+
+    Integer updateProDeviceUntie(@Param("id") Long id);
+    Integer deleteProDeviceUntie(@Param("id") Long id);
+
+    Integer updateByProjectDevice(IotProjectDevice iotProjectDevice);
 }

+ 108 - 3
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectDeviceService.java

@@ -1,14 +1,119 @@
 package com.middle.platform.manage.biz.service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.middle.platform.common.utils.PageRes;
+import com.middle.platform.manage.biz.domain.req.IotProDevicePara;
+import com.middle.platform.manage.biz.domain.req.IotProjectDevicePara;
+import com.middle.platform.manage.biz.domain.vo.IotDeviceVo;
+import com.middle.platform.manage.biz.entity.IotDevice;
 import com.middle.platform.manage.biz.entity.IotProjectDevice;
+import com.middle.platform.manage.biz.entity.IotProjectDeviceLog;
+import com.middle.platform.manage.biz.mapper.IotDeviceMapper;
+import com.middle.platform.manage.biz.mapper.IotProjectDeviceLogMapper;
 import com.middle.platform.manage.biz.mapper.IotProjectDeviceMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+
 /**
-* @date 2023-12-19 13:43:38
-* @author xucaiqin
-*/
+ * @author xucaiqin
+ * @date 2023-12-19 13:43:38
+ */
 @Service
+@RequiredArgsConstructor
 public class IotProjectDeviceService extends ServiceImpl<IotProjectDeviceMapper, IotProjectDevice> {
 
+    private final IotProjectDeviceMapper iotProjectDeviceMapper;
+
+    private final IotProjectDeviceLogMapper iotProjectDeviceLogMapper;
+
+    private final IotDeviceMapper iotDeviceMapper;
+
+    /**
+     * 项目设备关联查询
+     *
+     * @author Aick Spt
+     * @date 2023-12-23 14:56
+     */
+    public Object pageQuery(IotProjectDevicePara iotProjectDevicePara) {
+        PageHelper.startPage(iotProjectDevicePara.getPage(), iotProjectDevicePara.getPageSize());
+        List<IotDeviceVo> iotDeviceVos = iotProjectDeviceMapper.pageQuery(iotProjectDevicePara);
+        iotDeviceVos.forEach(e -> {
+            e.setStatusName((e.getStatus().equals(1)) ? "在线" : "离线");
+            e.setEnableFlagName((e.getEnableFlag().equals(1)) ? "启用" : "禁用");
+        });
+        return new PageRes<>(iotDeviceVos);
+    }
+
+
+    /**
+     * 新增插入关联设备
+     *
+     * @author Aick Spt
+     * @date 2023-12-24 11:08
+     */
+    public Object save(IotProjectDevicePara iotProjectDevicePara) {
+        if (iotProjectDevicePara.getDeviceIds() == null) {
+            throw new RuntimeException("设备ID集合不能为空");
+        }
+        iotProjectDevicePara.getDeviceIds().forEach(e -> {
+            IotProjectDevice iotProjectDevice = new IotProjectDevice();
+            iotProjectDevice.setDeviceId(e);
+            iotProjectDevice.setProjectId(iotProjectDevicePara.getProjectId());
+            IotProjectDevice res = iotProjectDeviceMapper.selectByProjectDevice(iotProjectDevice);
+            if (res == null) {
+                //没有则新增
+                iotProjectDeviceMapper.insert(iotProjectDevice);
+            } else {
+                //有则更新状态即可
+                iotProjectDeviceMapper.updateByProjectDevice(iotProjectDevice);
+            }
+        });
+        return true;
+    }
+
+    /**
+     * 修改关联设备位置
+     *
+     * @author Aick Spt
+     * @date 2023-12-24 11:34
+     */
+    public Object updateProjectDevice(IotProDevicePara iotProDevicePara) {
+        IotDevice iotDevice = iotDeviceMapper.selectById(iotProDevicePara.getId());
+        BeanUtils.copyProperties(iotProDevicePara, iotDevice);
+        return iotDeviceMapper.updateById(iotDevice);
+    }
+
+
+    /**
+     * 设备状态修改
+     *
+     * @author Aick Spt
+     * @date 2023-12-24 14:21
+     */
+    public Object updateProDeviceStatus(Long deviceId, Long enableFlag) {
+        if (!(enableFlag == 1 || enableFlag == 0)) {
+            throw new RuntimeException("修改状态异常");
+        }
+        return iotProjectDeviceMapper.updateById(deviceId, enableFlag);
+    }
+
+    /**
+     * 设备解绑
+     */
+    public Object deleteProDeviceUntie(Long id) {
+        IotProjectDevice res = iotProjectDeviceMapper.selectById(id);
+        if (res != null) {
+            IotProjectDeviceLog iotProjectDeviceLog = new IotProjectDeviceLog();
+            BeanUtils.copyProperties(res, iotProjectDeviceLog);
+            iotProjectDeviceLog.setRemark("设备解绑");
+            iotProjectDeviceLogMapper.insert(iotProjectDeviceLog);
+            return iotProjectDeviceMapper.deleteProDeviceUntie(id);
+        } else {
+            throw new RuntimeException("查无设备,解绑失败");
+        }
+    }
 }

+ 24 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotProjectService.java

@@ -19,6 +19,8 @@ import java.util.Arrays;
 import java.util.List;
 
 /**
+ * 项目
+ *
  * @author xucaiqin
  * @date 2023-12-19 13:43:38
  */
@@ -29,6 +31,12 @@ public class IotProjectService extends ServiceImpl<IotProjectMapper, IotProject>
     private final IotProjectMapper iotProjectMapper;
     private final IotProjectDeviceMapper iotProjectDeviceMapper;
 
+
+    /**
+     * 分页查询
+     * @author Aick Spt
+     * @date 2023-12-23 14:35
+     */
     public Object pageQuery(ProjectPage projectPage) {
         PageHelper.startPage(projectPage.getPage(), projectPage.getPageSize());
         List<IotProjectVo> iotProductVos = iotProjectMapper.pageQuery(projectPage);
@@ -53,17 +61,32 @@ public class IotProjectService extends ServiceImpl<IotProjectMapper, IotProject>
     }
 
 
+    /**
+     * 删除
+     * @author Aick Spt
+     * @date 2023-12-23 14:35
+     */
     public int remove(Long id) {
         return iotProjectMapper.delete(id);
     }
 
+    /**
+     * 详情
+     * @author Aick Spt
+     * @date 2023-12-23 14:36
+     */
     public IotProjectVo detail(Long id) {
         IotProjectVo iotProjectVo = iotProjectMapper.detail(id);
         return this.getIotProjectStatusAndDeviceNum(iotProjectVo);
     }
 
+    /**
+     * 调整返回结果
+     * @author Aick Spt
+     * @date 2023-12-23 14:36
+     */
     private IotProjectVo getIotProjectStatusAndDeviceNum(IotProjectVo iotProjectVo) {
-        iotProjectVo.setStatusName((iotProjectVo.getStatus().equals(1)) ? "停用" : "正常");
+        iotProjectVo.setStatusName((iotProjectVo.getStatus().equals(1)) ? "禁用" : "运行中");
         Integer deviceNum = iotProjectDeviceMapper.queryDeviceNum(iotProjectVo.getId(), null);
         Integer deviceOnlineNum = iotProjectDeviceMapper.queryDeviceNum(iotProjectVo.getId(), DeviceStatus.ONLINE_VAL);
         iotProjectVo.setDeviceNum(deviceNum);

+ 23 - 4
iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotDeviceMapper.xml

@@ -25,10 +25,26 @@
     <result column="del_flag" jdbcType="TINYINT" property="delFlag" />
   </resultMap>
   <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, product_id, `name`, sn, guid, subtitle, lon, lat, address, online_time, `status`,
-    enable_flag, remark, create_by, create_time, update_by, update_time, delete_time,
-    del_flag
+      <!--@mbg.generated-->
+      id,
+      product_id,
+      `name`,
+      sn,
+      guid,
+      subtitle,
+      lon,
+      lat,
+      address,
+      online_time,
+      `status`,
+      enable_flag,
+      remark,
+      create_by,
+      create_time,
+      update_by,
+      update_time,
+      delete_time,
+      del_flag
   </sql>
 
   <select id="queryByProduct" resultType="java.lang.Long">
@@ -48,4 +64,7 @@
           </if>
       </where>
   </select>
+
+
+
 </mapper>

+ 55 - 39
iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotProductMapper.xml

@@ -1,44 +1,60 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.middle.platform.manage.biz.mapper.IotProductMapper">
-  <resultMap id="BaseResultMap" type="com.middle.platform.manage.biz.entity.IotProduct">
-    <!--@mbg.generated-->
-    <!--@Table iot_product-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="code" jdbcType="VARCHAR" property="code" />
-    <result column="name" jdbcType="VARCHAR" property="name" />
-    <result column="secret" jdbcType="VARCHAR" property="secret" />
-    <result column="node_type" jdbcType="TINYINT" property="nodeType" />
-    <result column="network_type" jdbcType="TINYINT" property="networkType" />
-    <result column="report_protocol" jdbcType="TINYINT" property="reportProtocol" />
-    <result column="vendors" jdbcType="TINYINT" property="vendors" />
-    <result column="data_format" jdbcType="TINYINT" property="dataFormat" />
-    <result column="auth_type" jdbcType="TINYINT" property="authType" />
-    <result column="tag" jdbcType="VARCHAR" property="tag" />
-    <result column="size" jdbcType="INTEGER" property="size" />
-    <result column="remark" jdbcType="VARCHAR" property="remark" />
-    <result column="create_by" jdbcType="BIGINT" property="createBy" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
-    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
-    <result column="delete_time" jdbcType="TIMESTAMP" property="deleteTime" />
-    <result column="del_flag" jdbcType="TINYINT" property="delFlag" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, code, `name`, secret, node_type, network_type, report_protocol, data_format, vendors,
-    auth_type, tag, `size`, remark, create_by, create_time, update_by, update_time, delete_time,
-    del_flag
-  </sql>
+    <resultMap id="BaseResultMap" type="com.middle.platform.manage.biz.entity.IotProduct">
+        <!--@mbg.generated-->
+        <!--@Table iot_product-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="code" jdbcType="VARCHAR" property="code"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="secret" jdbcType="VARCHAR" property="secret"/>
+        <result column="node_type" jdbcType="TINYINT" property="nodeType"/>
+        <result column="network_type" jdbcType="TINYINT" property="networkType"/>
+        <result column="report_protocol" jdbcType="TINYINT" property="reportProtocol"/>
+        <result column="vendors" jdbcType="TINYINT" property="vendors"/>
+        <result column="data_format" jdbcType="TINYINT" property="dataFormat"/>
+        <result column="auth_type" jdbcType="TINYINT" property="authType"/>
+        <result column="tag" jdbcType="VARCHAR" property="tag"/>
+        <result column="size" jdbcType="INTEGER" property="size"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="create_by" jdbcType="BIGINT" property="createBy"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="delete_time" jdbcType="TIMESTAMP" property="deleteTime"/>
+        <result column="del_flag" jdbcType="TINYINT" property="delFlag"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id,
+        code,
+        `name`,
+        secret,
+        node_type,
+        network_type,
+        report_protocol,
+        data_format,
+        vendors,
+        auth_type,
+        tag,
+        `size`,
+        remark,
+        create_by,
+        create_time,
+        update_by,
+        update_time,
+        delete_time,
+        del_flag
+    </sql>
 
-  <select id="pageQuery" resultType="com.middle.platform.manage.biz.domain.vo.IotProductVo">
-      select *
-      from iot_product ip
-      <where>
-          <if test="keywords != null and keywords != ''">
-              and ip.name like concat('%', #{keywords,jdbcType=VARCHAR}, '%')
-          </if>
-          and ip.del_flag = 0
-      </where>
-  </select>
+    <select id="pageQuery" resultType="com.middle.platform.manage.biz.domain.vo.IotProductVo">
+        select *
+        from iot_product ip
+        <where>
+            <if test="keywords != null and keywords != ''">
+                and ip.name like concat('%', #{keywords,jdbcType=VARCHAR}, '%')
+            </if>
+            and ip.del_flag = 0
+        </where>
+    </select>
 </mapper>

+ 66 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotProjectDeviceMapper.xml

@@ -27,6 +27,7 @@
         del_flag
     </sql>
 
+
     <select id="queryDeviceNum" resultType="java.lang.Integer">
         select count(ipd.id) as deviceNum
         from iot_project_device ipd
@@ -34,7 +35,7 @@
         <where>
             ipd.del_flag = 0
               and ide.del_flag = 0
-              and ide.enable_flag = 1
+            <!--              and ide.enable_flag = 1-->
             <if test="projectId != null">
                 and ipd.project_id = #{projectId}
             </if>
@@ -43,4 +44,68 @@
             </if>
         </where>
     </select>
+
+
+    <select id="pageQuery" resultType="com.middle.platform.manage.biz.domain.vo.IotDeviceVo">
+        select ide.*
+        from iot_project_device ipd
+                 left join iot_device ide on ide.id = ipd.device_id
+        <where>
+            ipd.project_id = #{iotProjectDevicePara.projectId,jdbcType=BIGINT}
+              and ipd.del_flag = 0
+              and ide.del_flag = 0
+            <if test="iotProjectDevicePara.keywords != null and iotProjectDevicePara.keywords != ''">
+                and ide.name like concat('%', #{iotProjectDevicePara.keywords,jdbcType=VARCHAR}, '%')
+            </if>
+        </where>
+    </select>
+
+
+    <update id="updateById">
+        update iot_device
+        <set>
+            enable_flag = #{enableFlag,jdbcType=BIGINT}
+        </set>
+        <where>
+            id = #{deviceId,jdbcType=BIGINT}
+        </where>
+    </update>
+
+    <update id="updateProDeviceUntie">
+        update iot_project_device
+        <set>
+            del_flag = 1
+        </set>
+        <where>
+            id = #{id,jdbcType=BIGINT}
+        </where>
+    </update>
+
+    <delete id="deleteProDeviceUntie">
+        delete from iot_project_device
+        <where>
+            id = #{id,jdbcType=BIGINT}
+        </where>
+
+    </delete>
+
+    <select id="selectByProjectDevice" resultMap="BaseResultMap">
+        select *
+        from iot_project_device
+        <where>
+            project_id = #{projectId,jdbcType=BIGINT}
+              and device_id = #{deviceId,jdbcType=BIGINT}
+        </where>
+    </select>
+
+    <update id="updateByProjectDevice">
+        update iot_project_device
+        <set>
+            del_flag = 0
+        </set>
+        <where>
+            project_id = #{projectId,jdbcType=BIGINT}
+                and device_id = #{deviceId,jdbcType=BIGINT}
+        </where>
+    </update>
 </mapper>