添加设备功能优化等优化

This commit is contained in:
zzc 2024-08-20 00:49:02 +08:00
parent 7f2b10f352
commit 36dd8ee92a
5 changed files with 583 additions and 6 deletions

View File

@ -0,0 +1,91 @@
package org.dromara.web.device.iot;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName : DeviceByDeviceName
* @Author : ZZC
* @Date : 2024/8/20 0:26
* @Description : 根据设备名称查询的信息 /api/tenant/devices
**/
@NoArgsConstructor
@Data
public class DeviceByDeviceName {
private IdDTO id;
private Long createdTime;
private AdditionalInfoDTO additionalInfo;
private TenantIdDTO tenantId;
private CustomerIdDTO customerId;
private String name;
private String type;
private String label;
private DeviceProfileIdDTO deviceProfileId;
private DeviceDataDTO deviceData;
private FirmwareIdDTO firmwareId;
private Object softwareId;
@NoArgsConstructor
@Data
public static class IdDTO {
private String entityType;
private String id;
}
@NoArgsConstructor
@Data
public static class AdditionalInfoDTO {
private Boolean gateway;
private Boolean overwriteActivityTime;
private String description;
}
@NoArgsConstructor
@Data
public static class TenantIdDTO {
private String entityType;
private String id;
}
@NoArgsConstructor
@Data
public static class CustomerIdDTO {
private String entityType;
private String id;
}
@NoArgsConstructor
@Data
public static class DeviceProfileIdDTO {
private String entityType;
private String id;
}
@NoArgsConstructor
@Data
public static class DeviceDataDTO {
private ConfigurationDTO configuration;
private TransportConfigurationDTO transportConfiguration;
@NoArgsConstructor
@Data
public static class ConfigurationDTO {
private String type;
}
@NoArgsConstructor
@Data
public static class TransportConfigurationDTO {
private String type;
}
}
@NoArgsConstructor
@Data
public static class FirmwareIdDTO {
private String entityType;
private String id;
}
}

View File

@ -176,6 +176,21 @@ public class IotService {
return deviceDto; return deviceDto;
} }
/**
* 根据设备名称获取获取设备信息
* @param deviceName
* @return
*/
public DeviceByDeviceName apiTenantDevicesByName(String deviceName){
Map<String, String> map = new HashMap<>();
map.put("deviceName",deviceName);
String send = getSend(CommonYmlConfig.URL_IOT_DEVICE_BY_NAME, map);
JSONObject jsonObject = JSON.parseObject(send);
DeviceByDeviceName deviceDto = jsonObject.toJavaObject(DeviceByDeviceName.class);
if (deviceDto.getId()==null) throw new RuntimeException(MessageUtils.message("message.fault.device.notfound"));
return deviceDto;
}
public String getToken() { public String getToken() {
String token = tokenCache.getIfPresent("token"); String token = tokenCache.getIfPresent("token");

View File

@ -14,10 +14,7 @@ import lombok.RequiredArgsConstructor;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysUserService; import org.dromara.system.service.ISysUserService;
import org.dromara.web.device.*; import org.dromara.web.device.*;
import org.dromara.web.device.iot.DeviceClientMsgDto; import org.dromara.web.device.iot.*;
import org.dromara.web.device.iot.DeviceDto;
import org.dromara.web.device.iot.DeviceMsgDto;
import org.dromara.web.device.iot.DeviceServerMsgDto;
import org.dromara.web.domain.EqArea; import org.dromara.web.domain.EqArea;
import org.dromara.web.domain.bo.*; import org.dromara.web.domain.bo.*;
import org.dromara.web.domain.vo.EqEquipmentDetailVo; import org.dromara.web.domain.vo.EqEquipmentDetailVo;
@ -258,6 +255,14 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
//通过设备mac地址查询设备编码 //通过设备mac地址查询设备编码
final String macPrefix = "mock_"; final String macPrefix = "mock_";
equipmentCode = macPrefix + equipmentCode;
//根据设备名称地址查询设备id设备code
DeviceByDeviceName deviceByNameDto = iotService.apiTenantDevicesByName(equipmentCode);//无信息会抛异常 无需判断
if (deviceByNameDto==null) throw new RuntimeException("设备不存在");
String equipmentName = equipmentCode;//暂时不存设备名称 下面从其他接口获取并存入了
equipmentCode = deviceByNameDto.getId().getId();
LambdaQueryWrapper<EqEquipment> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<EqEquipment> lqw = Wrappers.lambdaQuery();
lqw.eq( EqEquipment::getEquipmentCode,equipmentCode); lqw.eq( EqEquipment::getEquipmentCode,equipmentCode);
EqEquipmentVo eqEquipmentVo = baseMapper.selectVoOne(lqw); EqEquipmentVo eqEquipmentVo = baseMapper.selectVoOne(lqw);

View File

@ -44,7 +44,7 @@ spring:
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://8.219.157.97:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true url: jdbc:mysql://8.219.157.97:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root username: root
password: root password: d.u=6m9D)jrVT%!
# 从库数据源 # 从库数据源
slave: slave:
lazy: true lazy: true
@ -95,7 +95,7 @@ spring.data:
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引
database: 0 database: 2
# redis 密码必须配置 # redis 密码必须配置
password: ruoyi123 password: ruoyi123
# 连接超时时间 # 连接超时时间
@ -264,3 +264,4 @@ iot:
telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries
operate: /api/plugins/rpc/oneway/{deviceId} operate: /api/plugins/rpc/oneway/{deviceId}
device: /api/device/{deviceId} device: /api/device/{deviceId}
deviceByName: /api/tenant/devices?deviceName={deviceName}

View File

@ -0,0 +1,465 @@
#错误消息
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=对不起, 您的账号:{0} 不存在.
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
user.password.delete=对不起,您的账号:{0} 已被删除
user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员
role.blocked=角色已封禁,请联系管理员
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.blank=用户名不能为空
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成且必须以非数字开头
user.username.length.valid=账户长度必须在{min}到{max}个字符之间
user.password.not.blank=用户密码不能为空
user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.email.not.blank=邮箱不能为空
user.phonenumber.not.blank=用户手机号不能为空
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.register.save.error=保存用户 {0} 失败,注册账号已存在
user.register.error=注册失败,请联系系统管理人员
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
auth.grant.type.error=认证权限类型错误
auth.grant.type.blocked=认证权限类型已禁用
auth.grant.type.not.blank=认证权限类型不能为空
auth.clientid.not.blank=认证客户端id不能为空
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
repeat.submit.message=不允许重复提交,请稍候再试
rate.limiter.message=访问过于频繁,请稍候再试
sms.code.not.blank=短信验证码不能为空
sms.code.retry.limit.count=短信验证码输入错误{0}次
sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟
email.code.not.blank=邮箱验证码不能为空
email.code.retry.limit.count=邮箱验证码输入错误{0}次
email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,帐户锁定{1}分钟
xcx.code.not.blank=小程序[code]不能为空
social.source.not.blank=第三方登录平台[source]不能为空
social.code.not.blank=第三方登录平台[code]不能为空
social.state.not.blank=第三方登录平台[state]不能为空
##租户
tenant.number.not.blank=租户编号不能为空
tenant.not.exists=对不起, 您的租户不存在,请联系管理员
tenant.blocked=对不起,您的租户已禁用,请联系管理员
tenant.expired=对不起,您的租户已过期,请联系管理员
##《登录》login
login.name0=登录
login.name1=请输入账号
login.name2=请输入密码
login.name3=我已阅读并同意签署
login.name4=立即注册
login.name5=支持手机号/邮箱登录
##《注册》register
register.name0=注册
register.name1=注册账号
register.name2=请输入账号
register.name3=请输入密码
register.name4=请再次输入密码
register.name5=两次输入的密码不一致
##《注册成功》registerSuccess
registerSuccess.name0=注册成功
registerSuccess.name1=您的登录账号
registerSuccess.name2=您的密码
registerSuccess.name3=立即登录
##《首页》homepage
homepage.name0=首页
homepage.name1=状态
homepage.name2=已关闭
homepage.name3=打开
homepage.name4=关门提醒
homepage.name5=开门提醒
homepage.name6=暂停提醒
homepage.name7=已关门
homepage.name8=是否开门?
homepage.name9=是否暂停
homepage.name10=请选择
##《关门提醒》warningClose
warningClose.name0=关门提醒
warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门
warningClose.name2=设备
warningClose.name3=已开门
warningClose.name4=分钟了,请记得关门
warningClose.name5=关门
warningClose.name6=我知道了
##《添加设备》add
add.name0=添加设备
add.name1=请输入设备编码
add.name2=请输入
add.name3=添加
## 《添加成功》addSuccess
addSuccess.name0=添加成功
addSuccess.name1=返回
addSuccess.name2=继续搜索
##《添加失败》addFailure
addFailure.name0=添加失败
addFailure.name1=请输入正确的设备编号后再试
addFailure.name3=重新添加
##《设备详情》detail
detail.name0=详情
##(已关闭 打开10% 打开100%
detail.name1=状态
detail.name2=已关闭
detail.name3=打开
detail.name4=运行状态
detail.name5=半开
detail.name6=
detail.name7=
detail.name8=
detail.name9=半开门
detail.name10=灯管理
detail.name11=设置
detail.name12=min分second秒后关灯
detail.name13=倒计时重置
detail.name14=运行次数
detail.name15=操作次数
detail.name16=数据日志
detail.name17=清码
detail.name18=对码
detail.name19=开门设置
detail.name20=已打开
##《倒计时设置》countdown
countdown.name0=倒计时设置
countdown.name1=取消
countdown.name2=确认
##《数据日志》log
log.name0=数据日志
log.name1=选择日期
log.name2=今天
log.name3=周日
log.name4=周一
log.name5=周二
log.name6=周三
log.name7=周四
log.name8=周五
log.name9=周六
log.name10=开门提醒
log.name11=
log.name12=
log.name13=
log.name14=
log.name15=
log.name16=
##《对码》checkcode
checkcode.name0=对码
checkcode.name1=对码中
checkcode.name2=对码成功
checkcode.name3=对码失败请重试
##《清码》clearcode
clearcode.name0=提示
clearcode.name1=请输入登录密码
clearcode.name2=请输入登录密码才能进行设备清码
clearcode.name3=取消
clearcode.name4=确认
clearcode.name5=密码错误请重试
##《设备掉线详情》offDetail
offDetail.name0=详情
offDetail.name1=设备已离线
##《优化-设置》set
set.name0=设置
set.name1=设备名称
set.name2=设备位置
set.name3=反弹力设置
set.name4=红外感应
set.name5=开启此功能,电机关门时,如有人或物在门下经过则触发红外感应器 ,门会立即停止关闭,并打开。
set.name6=行程距离限制
set.name7=半开门功能开关
set.name8=半开门高度设置
set.name9=提醒关门功能开关
set.name10=提醒关门时间设置
set.name11=自动关门
set.name12=打开此功能,当门开到最大时,在设置的倒计时时间内,门没有被控制,则在倒计时结束后,门会自动关闭。
set.name13=自动关门时间设置
set.name14=运行次数
set.name15=WiFi网络
set.name16=时区
set.name17=设备型号
set.name18=序列号
set.name19=模组版本
set.name20=MCU版本
set.name21=删除设备
set.name22=启动自动开门功能,需要先打开红外保护感应功能
##《通用》setCommon
setCommon.detail=详情
setCommon.add=添加
setCommon.edit=编辑
setCommon.delete=删除
setCommon.alert=提示
setCommon.cancel=取消
setCommon.confirm=确认
##《未设置详情》noinit
noinit.name0=详情
noinit.name1=行程未校准
noinit.name2=设备未校准行程,将不能进行设备控制
noinit.name3=行程校准教程
noinit.name4=请在设备上操作
noinit.name5=设置开门位置
noinit.name6=1.请长按“SET”键
noinit.name7=观察:显示器显示“1”闪烁
noinit.name8=2.再次按下"SET"键
noinit.name9=观察:显示器显示为“1”常亮
noinit.name10=3.长按“UP”键,使门至最大开门位置后松手停止
noinit.name11=观察:门向开门方向运行,当门达到最大开门位置后
noinit.name12=设置关门位置:
noinit.name13=4.再次按下“SET”键
noinit.name14=观察:显示器显示为“2”常亮
noinit.name15=5.长按“向下”键至关闭位置后松手
noinit.name16=观察:门向关门方向运行,当门达到关闭位置后停止
noinit.name17=自动校验:
noinit.name18=6.再次按下“SET”键
##《修改设备名称》setEqname
setEqname.name0=修改设备名称
setEqname.name1=请输入名称
setEqname.name2=上一页
setEqname.name3=确认
##《设备位置修改》setEqarea
setEqarea.name0=修改设备位置
setEqarea.name1=上一页
setEqarea.name2=确认
##《反弹力设置》setRebound
setRebound.name0=电机反弹力
setRebound.name1=调节反弹力
setRebound.name2=电机在开门时,若开门的力超出设定范围值,门会立即停止开门;
setRebound.name3=若关门的力超出设定范围值,门会立即停止关闭并开门,此功能可以调整开/关门感应力的范围值。
##《删除设备》setDelete
setDelete.name0=删除设备
setDelete.name1=提示
setDelete.name2=删除设备后,将不能管理设备请谨慎操作!
setDelete.name3=取消
setDelete.name4=确认删除
##《时区设置》setZone
setZone.name0=时区
setZone.name1=选择时间格式
setZone.name2=时间格式
##《wifi网络》setWifi
setWifi.name0=wifi网络
setWifi.name1=提示
setWifi.name2=已连接WiFi
setWifi.name3=若需更换网络请确保你在设备旁边后点击重置WiFi按钮
setWifi.name4=确认删除
setWifi.name5=取消
## 《开合状态》
openStatus.name0=已关闭
openStatus.name1=打开
## 《运行状态》
runStatus.name0=停止中
runStatus.name1=关闭中
runStatus.name2=开启中
runStatus.name11=红外故障
runStatus.name12=电机运转故障
runStatus.name13=电机维护故障
runStatus.name14=设备故障
## 日志状态
## 《运行状态》
logStatus.name0=停止中
logStatus.name1=关闭中
logStatus.name2=开启中
## 《故障状态》
logStatus.name10=无异常
logStatus.name11=红外故障
logStatus.name12=电机运转故障
logStatus.name13=电机维护故障
logStatus.name14=设备故障
## 《故障状态》
logStatus.name101=烟雾报警
logStatus.name102=红外触发报警
logStatus.name103=电机运行报警
logStatus.name104=电机维修报警
logStatus.name105=非APP开门提醒
logStatus.name106=非APP关门提醒
logStatus.name107=关门故障报警
logStatus.name108=开门故障报警
logStatus.name109=开门运行提醒
logStatus.name110=关门运行提醒
logStatus.name111=忘记关门提醒
logStatus.name112=门体手动开启提醒
logStatus.name113=半开门运行提醒
logStatus.name114=门体停止运行提醒
# 设备共享
deviceShare.name1 = 设备共享
deviceShare.name2 = 请输入对方登录账号
deviceShare.name3 = 温馨提示
deviceShare.name4 = 设备共享后,对方账号也可以访问管理当前账号所有设备,对方不可删除当前账号设备。
# 我的
my.name0 = 登录账号
my.name1 = 账号管理
my.name2 = 分布管理
my.name3 = 家庭管理
my.name4 = 设备共享
my.name5 = 切换语言
my.name6 = 我的
my.name7 = 设备配网
message.fault.device.notfound = 设备不存在
# 我的账号
account.name0=我的账号
account.name1=退出登录
account.name2=头像
account.name3=昵称
account.name4=邮箱
account.name5=设置登录密码
account.name6=修改密码
account.name7=注销账号
account.name8=注销后无法恢复,请谨慎操作
account.name9=退出登录会清除您的登录信息,确认退出吗?
account.name10=重选
account.name11=关闭
account.name12=旋转
account.name13=预览
account.name14=上传
account.name15=注销账号后无法恢复,确认注销吗?
account.name16=注销账号
# 修改昵称
accountForm.name0=修改昵称
accountForm.name1=修改登录密码
accountForm.name2=绑定邮箱
accountForm.name3=添加
accountForm.name4=家庭名称
accountForm.name5=请输入昵称
accountForm.name6=请输入名称
accountForm.name7=请输入旧密码
accountForm.name8=请输入新密码
accountForm.name9=请再次输入密码
accountForm.name10=请输入邮箱
accountForm.name11=请输入验证码
accountForm.name12=发送验证码
accountForm.name13=请稍候……
accountForm.name14=s后获取
accountForm.name15=您当前邮箱号为
accountForm.name16=上一页
accountForm.name17=确认
accountForm.name18=两次输入的密码不一致
accountForm.name19=请输入正确的邮箱
accountForm.name20=请上传图片
accountForm.name21=上传/拍照
accountForm.name22=上传中...
accountForm.name23=上传失败
accountForm.name24=重新上传
accountForm.name25=修改头像
# devForm 设备共享
devForm.name0 = 设备共享
devForm.name1 = 请输入对方登录账号
devForm.name2 = 温馨提示
devForm.name3 = 设备共享后,对方账号也可以访问管理当前账号所有设备,对方不可删除当前账号设备。
devForm.name4 = 上一页
devForm.name5 = 添加
devForm.name6 = 设备共享成功,是否继续共享?
# 分布管理
distribution.name0=分布管理
distribution.name1=默认
# family 家庭管理
family.name0=家庭管理
family.name1=我的家
family.name2=我加入的家庭
family.name3=个区域
family.name4=个设备
# 成员管理
familyDetail.name0=成员管理
familyDetail.name1=家庭名称
familyDetail.name2=我加入的家庭
familyDetail.name3=提示
familyDetail.name4=移除当前成员后,对方将不能访问当前家庭进行设备管理!
familyDetail.name5=取消
familyDetail.name6=确定
familyDetail.name7=删除
familyDetail.name8=主人
# 设置语言
setLanguage.name0=设置语言
#配网
ble.name0=设备配网
ble.name1=执行成功!
ble.name2=环境已存在,不需要重复初始化!
ble.name3=配网环境未得到初始化,请先执行环境初始化!
ble.name4=搜索蓝牙任务,已经停止运行,无需重复停止!
ble.name5=搜索蓝牙任务,已经在运行,无需重复运行!
ble.name6=蓝牙设备不具备扫描WIFI列表的能力!
ble.name7=蓝牙设备未连接,请先连接设备!
ble.name8=传递参数错误!
ble.name9=初始化会话失败,请重新初始化!
ble.name10=预留!
ble.name11=环境检查OK!
ble.name12=位置权限未打开!
ble.name13=GPS未打开!
ble.name14=此设备不支持蓝牙!
ble.name15=需要打开蓝牙开关,才能继续!
ble.name16=需要位置权限,才能继续!
ble.name17=请允许位置权限,才能继续!
ble.name18=需要位置权限,才能继续!
ble.name19=正在连接蓝牙设备,请允许配对或稍后重试!!
ble.name20=已经连接蓝牙设备,请断开蓝牙后重新尝试!
ble.name21=正在供应配网数据,稍后重试!
ble.name22=需要蓝牙权限,才能继续!
ble.name23=需要蓝牙权限,才能继续!
ble.name24= 无需密码,点击确定开始配网!
ble.name25=请输入
ble.name26= 的密码!
ble.name27=APP需要位置权限,才能继续!
ble.name28=APP需要蓝牙权限,才能继续!
ble.name29=需要根据提示处理!
ble.name30=正在扫描蓝牙设备....
ble.name31=正在连接蓝牙设备....(最长40S)
ble.name32=参数错误,请重试!
ble.name33=正在获取WIFI列表....
ble.name34=配网中....
ble.name35=扫描完成!
ble.name36=请打开蓝牙!
ble.name37=未知错误!
ble.name38=连接蓝牙成功!
ble.name39=连接蓝牙失败!可尝试重新搜索,重启蓝牙,或重启应用!
ble.name40=蓝牙连接断开!
ble.name41=未知错误!尝试手动重启蓝牙,或重启应用!
ble.name42=配网成功!
ble.name43=密码错误,重新尝试!
ble.name44=无法找到网络,重新尝试!
ble.name45=设备断开连接,重新尝试!
ble.name46=失败,可重启APP或重新尝试!
ble.name47=初始化配网环境
ble.name48=操作说明
ble.name49=第一步
ble.name50=第二步
ble.name51=下一步
ble.name52=扫描蓝牙设备结果
ble.name53=提示:没有扫描到蓝牙设备!
ble.name54=提示:点击需要配网的蓝牙设备,进入下一步。
ble.name55=重新搜索
ble.name56=获取WIFI列表结果
ble.name57=提示:没有扫描到可用的WIFI网络!
ble.name58=提示:点击要连接的WIFI网络,输入密码,开始配网!
ble.name59=重新获取
ble.name60=长按设备WIFI按键10秒以上,LED灯快速闪烁后,松手。
ble.name61=点击,下一步,按提示输入信息,开始配网。
ble.name62=提示输入wifi密码
ble.name63=提示:开始配网
ble.name64=返回首页