Compare commits
2 Commits
73c668709a
...
e73787ee8f
| Author | SHA1 | Date | |
|---|---|---|---|
| e73787ee8f | |||
| 0e1c7f52f1 |
@ -8,6 +8,7 @@ import com.xzzn.common.utils.file.FileUploadUtils;
|
|||||||
import com.xzzn.common.utils.file.MimeTypeUtils;
|
import com.xzzn.common.utils.file.MimeTypeUtils;
|
||||||
import com.xzzn.ems.domain.EmsDevicesSetting;
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
import com.xzzn.ems.domain.EmsSiteSetting;
|
import com.xzzn.ems.domain.EmsSiteSetting;
|
||||||
|
import com.xzzn.ems.domain.vo.DeviceUpdateRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointDataRequest;
|
import com.xzzn.ems.domain.vo.PointDataRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
||||||
import com.xzzn.ems.domain.vo.SiteDeviceListVo;
|
import com.xzzn.ems.domain.vo.SiteDeviceListVo;
|
||||||
@ -21,6 +22,8 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* 站点配置
|
* 站点配置
|
||||||
@ -177,4 +180,13 @@ public class EmsSiteConfigController extends BaseController{
|
|||||||
{
|
{
|
||||||
return success(iEmsDeviceSettingService.getDeviceListBySiteAndCategory(siteId, deviceCategory));
|
return success(iEmsDeviceSettingService.getDeviceListBySiteAndCategory(siteId, deviceCategory));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PCS设备开关机
|
||||||
|
*/
|
||||||
|
@PostMapping("/updateDeviceStatus")
|
||||||
|
public AjaxResult updateDeviceStatus(@Valid DeviceUpdateRequest request)
|
||||||
|
{
|
||||||
|
return success(iEmsDeviceSettingService.updateDeviceStatus(request));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public class ModbusPoller {
|
|||||||
public void pollAllDevices() {
|
public void pollAllDevices() {
|
||||||
logger.info("开始执行Modbus设备轮询...");
|
logger.info("开始执行Modbus设备轮询...");
|
||||||
EmsDevicesSetting selectEntity = new EmsDevicesSetting();
|
EmsDevicesSetting selectEntity = new EmsDevicesSetting();
|
||||||
selectEntity.setRunningStatus(DeviceRunningStatus.RUNNING.getCode());
|
selectEntity.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
||||||
List<EmsDevicesSetting> activeDevices = deviceRepo.selectEmsDevicesSettingList(selectEntity);
|
List<EmsDevicesSetting> activeDevices = deviceRepo.selectEmsDevicesSettingList(selectEntity);
|
||||||
|
|
||||||
EmsDevicesSetting device = activeDevices.get(0);
|
EmsDevicesSetting device = activeDevices.get(0);
|
||||||
@ -103,8 +103,8 @@ public class ModbusPoller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 设备轮询不到修改运行状态
|
// 设备轮询不到修改运行状态
|
||||||
String beforeStatus = device.getRunningStatus();
|
String beforeStatus = device.getDeviceStatus();
|
||||||
device.setRunningStatus(DeviceRunningStatus.SHUTDOWN.getCode());
|
device.setDeviceStatus(DeviceRunningStatus.SHUTDOWN.getCode());
|
||||||
emsDeviceSettingServiceImpl.updateDevice(device);
|
emsDeviceSettingServiceImpl.updateDevice(device);
|
||||||
|
|
||||||
// 轮询设备,设备状态变更日志
|
// 轮询设备,设备状态变更日志
|
||||||
@ -117,16 +117,16 @@ public class ModbusPoller {
|
|||||||
|
|
||||||
// 处理获取到的数据
|
// 处理获取到的数据
|
||||||
private void processData(EmsDevicesSetting device, int[] data) throws MqttException {
|
private void processData(EmsDevicesSetting device, int[] data) throws MqttException {
|
||||||
String beforeStatus = device.getRunningStatus();
|
String beforeStatus = device.getDeviceStatus();
|
||||||
Boolean error = true;
|
Boolean error = true;
|
||||||
if (data == null || data.length == 0) {
|
if (data == null || data.length == 0) {
|
||||||
logger.warn("设备{}返回空数据", device.getId());
|
logger.warn("设备{}返回空数据", device.getId());
|
||||||
// 设备读取不到-设置设备故障
|
// 设备读取不到-设置设备故障
|
||||||
device.setRunningStatus(DeviceRunningStatus.FAULT.getCode());
|
device.setDeviceStatus(DeviceRunningStatus.FAULT.getCode());
|
||||||
error = false;
|
error = false;
|
||||||
} else {
|
} else {
|
||||||
// 恢复设备状态 - 运行
|
// 恢复设备状态 - 运行
|
||||||
device.setRunningStatus(DeviceRunningStatus.RUNNING.getCode());
|
device.setDeviceStatus(DeviceRunningStatus.RUNNING.getCode());
|
||||||
}
|
}
|
||||||
emsDeviceSettingServiceImpl.updateDevice(device);
|
emsDeviceSettingServiceImpl.updateDevice(device);
|
||||||
// 轮询设备,设备状态变更日志
|
// 轮询设备,设备状态变更日志
|
||||||
@ -171,7 +171,7 @@ public class ModbusPoller {
|
|||||||
log.setSiteId(device.getSiteId());
|
log.setSiteId(device.getSiteId());
|
||||||
log.setDeviceId(device.getDeviceId());
|
log.setDeviceId(device.getDeviceId());
|
||||||
log.setBeforeStatus(beforeStatus);
|
log.setBeforeStatus(beforeStatus);
|
||||||
log.setAfterStatus(device.getRunningStatus());
|
log.setAfterStatus(device.getDeviceStatus());
|
||||||
log.setCreateBy("sys");
|
log.setCreateBy("sys");
|
||||||
log.setCreateTime(new Date());
|
log.setCreateTime(new Date());
|
||||||
return log;
|
return log;
|
||||||
|
|||||||
@ -104,7 +104,7 @@ public class EmsDevicesSetting extends BaseEntity
|
|||||||
|
|
||||||
/** 设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
/** 设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
||||||
@Excel(name = "设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机")
|
@Excel(name = "设备运行状态:0-离线、1-待机、2-运行、3-故障、4-停机")
|
||||||
private String runningStatus;
|
private String deviceStatus;
|
||||||
|
|
||||||
/** 设备图像地址 */
|
/** 设备图像地址 */
|
||||||
@Excel(name = "设备图像地址")
|
@Excel(name = "设备图像地址")
|
||||||
@ -320,12 +320,12 @@ public class EmsDevicesSetting extends BaseEntity
|
|||||||
return deviceCategory;
|
return deviceCategory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRunningStatus() {
|
public String getDeviceStatus() {
|
||||||
return runningStatus;
|
return deviceStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRunningStatus(String runningStatus) {
|
public void setDeviceStatus(String deviceStatus) {
|
||||||
this.runningStatus = runningStatus;
|
this.deviceStatus = deviceStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPictureUrl(String pictureUrl)
|
public void setPictureUrl(String pictureUrl)
|
||||||
@ -362,7 +362,7 @@ public class EmsDevicesSetting extends BaseEntity
|
|||||||
.append("deviceId", getDeviceId())
|
.append("deviceId", getDeviceId())
|
||||||
.append("parentId", getParentId())
|
.append("parentId", getParentId())
|
||||||
.append("deviceCategory", getDeviceCategory())
|
.append("deviceCategory", getDeviceCategory())
|
||||||
.append("runningStatus", getRunningStatus())
|
.append("deviceStatus", getDeviceStatus())
|
||||||
.append("pictureUrl", getPictureUrl())
|
.append("pictureUrl", getPictureUrl())
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,46 @@
|
|||||||
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备信息更新入参
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DeviceUpdateRequest {
|
||||||
|
|
||||||
|
/** 站点id */
|
||||||
|
@NotBlank(message = "站点ID不能为空")
|
||||||
|
private String siteId;
|
||||||
|
|
||||||
|
/** 设备id */
|
||||||
|
@NotBlank(message = "设备ID不能为空")
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
/** 设备状态:0-离线、1-待机、2-运行、3-故障、4-停机 */
|
||||||
|
private String deviceStatus;
|
||||||
|
|
||||||
|
|
||||||
|
public String getSiteId() {
|
||||||
|
return siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSiteId(String siteId) {
|
||||||
|
this.siteId = siteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceId(String deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDeviceStatus() {
|
||||||
|
return deviceStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceStatus(String deviceStatus) {
|
||||||
|
this.deviceStatus = deviceStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,7 +16,7 @@ public class SiteDeviceListVo {
|
|||||||
/** 设备类型 */
|
/** 设备类型 */
|
||||||
private String deviceType;
|
private String deviceType;
|
||||||
/** 运行状态 */
|
/** 运行状态 */
|
||||||
private String runningStatus;
|
private String deviceStatus;
|
||||||
/** 设备类型 */
|
/** 设备类型 */
|
||||||
private String deviceCategory;
|
private String deviceCategory;
|
||||||
/** 设备类型 */
|
/** 设备类型 */
|
||||||
@ -78,12 +78,12 @@ public class SiteDeviceListVo {
|
|||||||
this.deviceType = deviceType;
|
this.deviceType = deviceType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRunningStatus() {
|
public String getDeviceStatus() {
|
||||||
return runningStatus;
|
return deviceStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRunningStatus(String runningStatus) {
|
public void setDeviceStatus(String deviceStatus) {
|
||||||
this.runningStatus = runningStatus;
|
this.deviceStatus = deviceStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDeviceCategory() {
|
public String getDeviceCategory() {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.xzzn.ems.service;
|
|||||||
import com.xzzn.common.enums.DeviceCategory;
|
import com.xzzn.common.enums.DeviceCategory;
|
||||||
import com.xzzn.ems.domain.EmsDevicesSetting;
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
import com.xzzn.ems.domain.EmsPointMatch;
|
import com.xzzn.ems.domain.EmsPointMatch;
|
||||||
|
import com.xzzn.ems.domain.vo.DeviceUpdateRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointDataRequest;
|
import com.xzzn.ems.domain.vo.PointDataRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
||||||
|
|
||||||
@ -33,4 +34,6 @@ public interface IEmsDeviceSettingService
|
|||||||
public Map<String, List<EmsDevicesSetting>> initDeviceInfo();
|
public Map<String, List<EmsDevicesSetting>> initDeviceInfo();
|
||||||
|
|
||||||
public List<Map<String, Object>> getDeviceListBySiteAndCategory(String siteId, String deviceCategory);
|
public List<Map<String, Object>> getDeviceListBySiteAndCategory(String siteId, String deviceCategory);
|
||||||
|
|
||||||
|
public boolean updateDeviceStatus(DeviceUpdateRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -774,6 +774,12 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
emsPcsDataMapper.insertEmsPcsData(pcsData);
|
emsPcsDataMapper.insertEmsPcsData(pcsData);
|
||||||
redisCache.setCacheObject(RedisKeyConstants.PCS + siteId + "_" + deviceId, pcsData);
|
redisCache.setCacheObject(RedisKeyConstants.PCS + siteId + "_" + deviceId, pcsData);
|
||||||
|
|
||||||
|
// 同步更新PCS设备状态
|
||||||
|
// EmsDevicesSetting emsDevicesSetting = emsDevicesSettingMapper.getDeviceBySiteAndDeviceId(deviceId, siteId);
|
||||||
|
// emsDevicesSetting.setDeviceStatus(pcsData.getDeviceStatus());
|
||||||
|
// emsDevicesSetting.setUpdatedAt(DateUtils.getNowDate());
|
||||||
|
// emsDevicesSettingMapper.updateEmsDevicesSetting(emsDevicesSetting);
|
||||||
|
|
||||||
if (SiteEnum.FX.getCode().equals(siteId)) {
|
if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||||
//更新每日充放电数据
|
//更新每日充放电数据
|
||||||
dealFXXDailyChargeDate(siteId, deviceId, pcsData);
|
dealFXXDailyChargeDate(siteId, deviceId, pcsData);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.xzzn.common.enums.SiteEnum;
|
|||||||
import com.xzzn.common.utils.DateUtils;
|
import com.xzzn.common.utils.DateUtils;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
import com.xzzn.ems.domain.EmsDevicesSetting;
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
|
import com.xzzn.ems.domain.vo.DeviceUpdateRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointDataRequest;
|
import com.xzzn.ems.domain.vo.PointDataRequest;
|
||||||
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
import com.xzzn.ems.domain.vo.PointQueryResponse;
|
||||||
import com.xzzn.ems.mapper.EmsBatteryDataMinutesMapper;
|
import com.xzzn.ems.mapper.EmsBatteryDataMinutesMapper;
|
||||||
@ -468,4 +469,9 @@ public class EmsDeviceSettingServiceImpl implements IEmsDeviceSettingService
|
|||||||
public List<Map<String, Object>> getDeviceListBySiteAndCategory(String siteId, String deviceCategory) {
|
public List<Map<String, Object>> getDeviceListBySiteAndCategory(String siteId, String deviceCategory) {
|
||||||
return emsDevicesMapper.getDeviceInfosBySiteIdAndCategory(siteId, deviceCategory);
|
return emsDevicesMapper.getDeviceInfosBySiteIdAndCategory(siteId, deviceCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean updateDeviceStatus(DeviceUpdateRequest request) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -438,6 +438,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
// // 报警个数
|
// // 报警个数
|
||||||
// int alarmNum = emsAlarmRecordsMapper.getDeviceAlarmNum(siteId,pcsId);
|
// int alarmNum = emsAlarmRecordsMapper.getDeviceAlarmNum(siteId,pcsId);
|
||||||
pcsDetailInfoVo.setAlarmNum(alarmNum);
|
pcsDetailInfoVo.setAlarmNum(alarmNum);
|
||||||
|
pcsDetailInfoVo.setDeviceStatus(pcsDevice.get("deviceStatus") == null ? "" : pcsDevice.get("deviceStatus").toString());
|
||||||
|
|
||||||
pcsDetailInfoVoList.add(pcsDetailInfoVo);
|
pcsDetailInfoVoList.add(pcsDetailInfoVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,12 +26,12 @@
|
|||||||
<result property="deviceId" column="device_id" />
|
<result property="deviceId" column="device_id" />
|
||||||
<result property="parentId" column="parent_id" />
|
<result property="parentId" column="parent_id" />
|
||||||
<result property="deviceCategory" column="device_category" />
|
<result property="deviceCategory" column="device_category" />
|
||||||
<result property="runningStatus" column="running_status" />
|
<result property="deviceStatus" column="device_status" />
|
||||||
<result property="pictureUrl" column="picture_url" />
|
<result property="pictureUrl" column="picture_url" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectEmsDevicesSettingVo">
|
<sql id="selectEmsDevicesSettingVo">
|
||||||
select id, device_name, device_type, slave_id, timeout_ms, retries, ip_address, ip_port, serial_port, baud_rate, data_bits, stop_bits, parity, description, created_at, updated_at, site_id, communication_status, device_id, parent_id, device_category, running_status, picture_url from ems_devices_setting
|
select id, device_name, device_type, slave_id, timeout_ms, retries, ip_address, ip_port, serial_port, baud_rate, data_bits, stop_bits, parity, description, created_at, updated_at, site_id, communication_status, device_id, parent_id, device_category,device_status, picture_url from ems_devices_setting
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectEmsDevicesSettingList" parameterType="EmsDevicesSetting" resultMap="EmsDevicesSettingResult">
|
<select id="selectEmsDevicesSettingList" parameterType="EmsDevicesSetting" resultMap="EmsDevicesSettingResult">
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
|
<if test="deviceId != null and deviceId != ''"> and device_id = #{deviceId}</if>
|
||||||
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
|
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
|
||||||
<if test="deviceCategory != null and deviceCategory != ''"> and device_category = #{deviceCategory}</if>
|
<if test="deviceCategory != null and deviceCategory != ''"> and device_category = #{deviceCategory}</if>
|
||||||
<if test="runningStatus != null and runningStatus != ''"> and running_status = #{runningStatus}</if>
|
<if test="deviceStatus != null and deviceStatus != ''"> and device_status = #{deviceStatus}</if>
|
||||||
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
|
<if test="pictureUrl != null and pictureUrl != ''"> and picture_url = #{pictureUrl}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<if test="deviceId != null and deviceId != ''">device_id,</if>
|
<if test="deviceId != null and deviceId != ''">device_id,</if>
|
||||||
<if test="parentId != null">parent_id,</if>
|
<if test="parentId != null">parent_id,</if>
|
||||||
<if test="deviceCategory != null">device_category,</if>
|
<if test="deviceCategory != null">device_category,</if>
|
||||||
<if test="runningStatus != null">running_status,</if>
|
<if test="deviceStatus != null">device_status,</if>
|
||||||
<if test="pictureUrl != null">picture_url,</if>
|
<if test="pictureUrl != null">picture_url,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
@ -114,7 +114,7 @@
|
|||||||
<if test="deviceId != null and deviceId != ''">#{deviceId},</if>
|
<if test="deviceId != null and deviceId != ''">#{deviceId},</if>
|
||||||
<if test="parentId != null">#{parentId},</if>
|
<if test="parentId != null">#{parentId},</if>
|
||||||
<if test="deviceCategory != null">#{deviceCategory},</if>
|
<if test="deviceCategory != null">#{deviceCategory},</if>
|
||||||
<if test="runningStatus != null">#{runningStatus},</if>
|
<if test="deviceStatus != null">#{deviceStatus},</if>
|
||||||
<if test="pictureUrl != null">#{pictureUrl},</if>
|
<if test="pictureUrl != null">#{pictureUrl},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
@ -142,7 +142,7 @@
|
|||||||
<if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
|
<if test="deviceId != null and deviceId != ''">device_id = #{deviceId},</if>
|
||||||
<if test="parentId != null">parent_id = #{parentId},</if>
|
<if test="parentId != null">parent_id = #{parentId},</if>
|
||||||
<if test="deviceCategory != null">device_category = #{deviceCategory},</if>
|
<if test="deviceCategory != null">device_category = #{deviceCategory},</if>
|
||||||
<if test="runningStatus != null">running_status = #{runningStatus},</if>
|
<if test="deviceStatus != null">device_status = #{deviceStatus},</if>
|
||||||
<if test="pictureUrl != null">picture_url = #{pictureUrl},</if>
|
<if test="pictureUrl != null">picture_url = #{pictureUrl},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
@ -190,6 +190,7 @@
|
|||||||
select DISTINCT t1.device_id as id,
|
select DISTINCT t1.device_id as id,
|
||||||
t1.device_name as deviceName,
|
t1.device_name as deviceName,
|
||||||
t1.communication_status as communicationStatus,
|
t1.communication_status as communicationStatus,
|
||||||
|
t1.device_status as deviceStatus,
|
||||||
t1.parent_id as parentDeviceId,
|
t1.parent_id as parentDeviceId,
|
||||||
t2.device_name as parentDeviceName
|
t2.device_name as parentDeviceName
|
||||||
from ems_devices_setting t1
|
from ems_devices_setting t1
|
||||||
|
|||||||
@ -136,7 +136,7 @@
|
|||||||
<select id="getAllSiteDeviceList" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteDeviceListVo">
|
<select id="getAllSiteDeviceList" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteDeviceListVo">
|
||||||
select es.site_id as siteId,es.site_name as siteName,
|
select es.site_id as siteId,es.site_name as siteName,
|
||||||
ed.device_id as deviceId,ed.device_name as deviceName,
|
ed.device_id as deviceId,ed.device_name as deviceName,
|
||||||
ed.device_type as deviceType,ed.running_status as runningStatus,
|
ed.device_type as deviceType,ed.device_status as deviceStatus,
|
||||||
ed.device_category as deviceCategory,
|
ed.device_category as deviceCategory,
|
||||||
ed.picture_url as pictureUrl,
|
ed.picture_url as pictureUrl,
|
||||||
ed.id,
|
ed.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user