2023-05-29 17:04:19 优化完善获取设备状态列表接口!

master
魔神煜修罗皇 2 years ago
parent c5f5c2a986
commit 4f56c3c941
  1. 5
      psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java
  2. 8
      psdc-business/src/main/java/com/psdc/entity/vo/DeviceStatusVo.java
  3. 30
      psdc-business/src/main/java/com/psdc/entity/vo/ModelVo.java
  4. 2
      psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java
  5. 23
      psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java
  6. 25
      psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
  7. 9
      psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml
  8. 19
      psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml

@ -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<Map> control_elements;
/** 设备运行状态:1-开启,2-关闭 */
private Integer deviceRunstatus ;

@ -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<Map> control_elements;
}

@ -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 ;
}

@ -86,6 +86,8 @@ public interface PsdcDeviceMapper{
List<PsdcDevice> queryByUserId(@Param(value = "userId") Long userId,
@Param(value = "parentId") Integer parentId);
List<PsdcDevice> selDevicesByUserId(@Param(value = "userId") Long userId);
List<PsdcDevice> queryByModel(@Param(value = "userId") Long userId,
@Param(value = "devModel") String devModel);

@ -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;
/**
* @AuthorStone
* @Projectpsdc
* @FilenamePsdcModelMapper
* @Date2023/5/29 16:34
* @Version 1.0
*/
@Mapper
@Repository
public interface PsdcModelMapper {
List<ModelVo> selDevIsControlByModelName(@Param("modelName") String modelName);
}

@ -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<DeviceStatusVo> queryDeviceStatus() {
List<PsdcDevice> psdcDevices = psdcDeviceMapper.queryByUserId(SecurityUtils.getUserId(), 0);
List<PsdcDevice> psdcDevices = psdcDeviceMapper.selDevicesByUserId(SecurityUtils.getUserId());
for (PsdcDevice pd : psdcDevices){
String deviceModel = pd.getDeviceModel();
List<Map> ary = new ArrayList<>();
List<ModelVo> list = psdcModelMapper.selDevIsControlByModelName(deviceModel);
for (ModelVo mv : list){
Map<String, Object> 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);

@ -105,6 +105,15 @@
GROUP BY device_model
</select>
<select id="selDevicesByUserId" resultMap="PsdcDeviceMap">
Select * From psdc_device
<where>
<if test="userId != null and userId != ''">
user_id = #{userId}
</if>
</where>
</select>
<select id="queryByModel" resultMap="PsdcDeviceMap">
Select * From psdc_device
<where>

@ -0,0 +1,19 @@
<?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.psdc.mapper.PsdcModelMapper">
<resultMap type="com.psdc.entity.vo.ModelVo" id="PsdcModelMap">
<result property="modelId" column="model_id" />
<result property="modelName" column="model_name" />
<result property="relationField" column="relation_field" />
<result property="ioDesc" column="io_desc" />
<result property="ioType" column="io_type" />
</resultMap>
<!-- 通过model_name查询数据 -->
<select id="selDevIsControlByModelName" resultMap="PsdcModelMap">
Select
model_id,model_name,relation_field,io_desc,io_type
From psdc_model
Where model_name = #{modelName}
</select>
</mapper>
Loading…
Cancel
Save