From 4f56c3c94180bc68aaf59b8cc0ab3c37326c39c4 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Mon, 29 May 2023 17:05:09 +0800 Subject: [PATCH] =?UTF-8?q?2023-05-29=2017:04:19=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/psdc/entity/PsdcDevice.java | 5 ++++ .../com/psdc/entity/vo/DeviceStatusVo.java | 8 +++++ .../main/java/com/psdc/entity/vo/ModelVo.java | 30 +++++++++++++++++++ .../com/psdc/mapper/PsdcDeviceMapper.java | 2 ++ .../java/com/psdc/mapper/PsdcModelMapper.java | 23 ++++++++++++++ .../service/impl/PsdcDeviceServiceImpl.java | 25 ++++++++++++---- .../mapper/business/PsdcDeviceMapper.xml | 9 ++++++ .../mapper/business/PsdcModelMapper.xml | 19 ++++++++++++ 8 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 psdc-business/src/main/java/com/psdc/entity/vo/ModelVo.java create mode 100644 psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java create mode 100644 psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java index 7f4a8dc..5308419 100644 --- a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java +++ b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java @@ -6,6 +6,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; +import java.util.Map; /** @@ -64,6 +66,9 @@ public class PsdcDevice { /** 修改时间 */ private Date updateTime ; + /** 设备模型可控元素集合 */ + private List control_elements; + /** 设备运行状态:1-开启,2-关闭 */ private Integer deviceRunstatus ; diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java index e0d8042..64e4627 100644 --- a/psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java +++ b/psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java @@ -5,6 +5,9 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; + @Data @AllArgsConstructor @NoArgsConstructor @@ -35,4 +38,9 @@ public class DeviceStatusVo { /** 设备模型 */ private String deviceModel; + /** 设备是否可控 */ + private Integer isControl; + /** 设备模型可控元素集合 */ + private List control_elements; + } diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/ModelVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/ModelVo.java new file mode 100644 index 0000000..36b8a0f --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/vo/ModelVo.java @@ -0,0 +1,30 @@ +package com.psdc.entity.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * @author : Stone + * @date : 2023-5-29 16:29:40 + */ +@Data +@Component +@AllArgsConstructor +@NoArgsConstructor +public class ModelVo implements Serializable,Cloneable{ + /** 模型Id */ + private Integer modelId ; + /** 模型名称 */ + private String modelName ; + /** 关联域 */ + private String relationField ; + /** io描述 */ + private String ioDesc ; + /** io类型【serve服务;event事件,attribute属性】 */ + private String ioType ; + +} \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java index 028ff3d..5611191 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java @@ -86,6 +86,8 @@ public interface PsdcDeviceMapper{ List queryByUserId(@Param(value = "userId") Long userId, @Param(value = "parentId") Integer parentId); + List selDevicesByUserId(@Param(value = "userId") Long userId); + List queryByModel(@Param(value = "userId") Long userId, @Param(value = "devModel") String devModel); diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java new file mode 100644 index 0000000..5442d47 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java @@ -0,0 +1,23 @@ +package com.psdc.mapper; + +import com.psdc.entity.vo.ModelVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author:Stone + * @Project:psdc + * @Filename:PsdcModelMapper + * @Date:2023/5/29 16:34 + * @Version 1.0 + */ +@Mapper +@Repository +public interface PsdcModelMapper { + + List selDevIsControlByModelName(@Param("modelName") String modelName); + +} diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java index 63f3c3f..597ca56 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java @@ -6,10 +6,12 @@ import com.psdc.entity.PsdcDevice; import com.psdc.entity.PsdcScene; import com.psdc.entity.res.PsdcDeviceInfoRes; import com.psdc.entity.vo.DeviceStatusVo; +import com.psdc.entity.vo.ModelVo; import com.psdc.enums.ControlKeyEnum; import com.psdc.exception.ControlException; import com.psdc.mapper.PsdcControlLogMapper; import com.psdc.mapper.PsdcDeviceMapper; +import com.psdc.mapper.PsdcModelMapper; import com.psdc.mapper.PsdcSceneMapper; import com.psdc.mqtt.MyMQTTClient; import com.psdc.service.IPsdcDeviceService; @@ -23,10 +25,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -45,6 +44,9 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { @Resource private PsdcSceneMapper psdcSceneMapper; + @Resource + private PsdcModelMapper psdcModelMapper; + /** * 通过ID查询单条数据 * @@ -75,7 +77,20 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { } public List queryDeviceStatus() { - List psdcDevices = psdcDeviceMapper.queryByUserId(SecurityUtils.getUserId(), 0); + List psdcDevices = psdcDeviceMapper.selDevicesByUserId(SecurityUtils.getUserId()); + for (PsdcDevice pd : psdcDevices){ + String deviceModel = pd.getDeviceModel(); + List ary = new ArrayList<>(); + List list = psdcModelMapper.selDevIsControlByModelName(deviceModel); + for (ModelVo mv : list){ + Map map = new HashMap<>(); + map.put("controlElement", mv.getRelationField()); + map.put("controlRemark", mv.getIoDesc()); + ary.add(map); + } + pd.setControl_elements(ary); + } + return psdcDevices.stream().map(psdcDevice -> { DeviceStatusVo deviceStatusVo = new DeviceStatusVo(); BeanUtils.copyProperties(psdcDevice, deviceStatusVo); diff --git a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml index fa25ed7..ddd6582 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml @@ -105,6 +105,15 @@ GROUP BY device_model + + + Select + model_id,model_name,relation_field,io_desc,io_type + From psdc_model + Where model_name = #{modelName} + + \ No newline at end of file