mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
Merge remote-tracking branch 'origin/5.X' into 5.X
This commit is contained in:
commit
7129a9b825
@ -18,12 +18,14 @@ public class CommonYmlConfig {
|
||||
public static String URL_IOT_TELEMETRY = "遥测";
|
||||
public static String URL_IOT_OPERATE = "操作控制";
|
||||
public static String URL_IOT_DEVICE = "设备信息";
|
||||
public static String URL_IOT_DEVICE_BY_NAME = "设备名称查询设备信息";
|
||||
|
||||
public String baseurl = "";
|
||||
public String scopeAttribute = "";
|
||||
public String telemetry = "";
|
||||
public String operate = "";
|
||||
public String device = "";
|
||||
public String deviceByName = "";
|
||||
|
||||
@Value("${iot.url.scopeAttribute}")
|
||||
public String setScopeAttribute(String scopeAttribute) {
|
||||
@ -49,4 +51,11 @@ public class CommonYmlConfig {
|
||||
public String setDevice(String device) {
|
||||
return URL_IOT_DEVICE = device;
|
||||
}
|
||||
|
||||
@Value("${iot.url.deviceByName}")
|
||||
public String setDeviceByName(String deviceByName) {
|
||||
return URL_IOT_DEVICE_BY_NAME = deviceByName;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.web.controller.app;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
@ -16,16 +17,14 @@ import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.ISysDictTypeService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.web.device.iot.DeviceByDeviceName;
|
||||
import org.dromara.web.device.iot.DeviceDto;
|
||||
import org.dromara.web.domain.bo.*;
|
||||
import org.dromara.web.domain.vo.*;
|
||||
import org.dromara.web.service.*;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
@ -136,7 +135,7 @@ public class EqDeviceController extends BaseController {
|
||||
* @return todo
|
||||
*/
|
||||
@GetMapping("/getDeviceLogs")
|
||||
public Map<String, List<EqEquipmentLogVo>> getDeviceLogs(EqAppHomeBo bo,PageQuery pageQuery){
|
||||
public Map<String, List<EqEquipmentLogVo>> getDeviceLogs(EqAppHomeBo bo,String createdYearDay,PageQuery pageQuery){
|
||||
if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空");
|
||||
String zoneId = bo.getZoneId();
|
||||
if (StringUtils.isEmpty(zoneId)) throw new ServiceException("时区zoneId(如 UTC+08:00)不能为空");
|
||||
@ -149,6 +148,8 @@ public class EqDeviceController extends BaseController {
|
||||
if (zoneId.contains(" ")) zoneId = zoneId.replace(" ", "+");
|
||||
EqEquipmentLogBo eqEquipmentLogBo = new EqEquipmentLogBo();
|
||||
eqEquipmentLogBo.setEquipmentId(bo.getEquipmentId());
|
||||
BeanUtil.copyProperties(bo, eqEquipmentLogBo);
|
||||
eqEquipmentLogBo.setCreatedYearDay(createdYearDay);
|
||||
TableDataInfo<EqEquipmentLogVo> data = logService.queryPageList(eqEquipmentLogBo, pageQuery);
|
||||
List<EqEquipmentLogVo> rows = data.getRows();
|
||||
if (CollUtil.isEmpty(rows)) return new HashMap<>();
|
||||
@ -179,15 +180,23 @@ public class EqDeviceController extends BaseController {
|
||||
* 保存日志(iot使用 设备状态变动时会触发该状态)
|
||||
* @param eqEquipmentLogBo
|
||||
*/
|
||||
@GetMapping("/saveDeviceLogs")
|
||||
public void saveDeviceLogs(EqEquipmentLogBo eqEquipmentLogBo){
|
||||
|
||||
@PostMapping("/saveDeviceLogs")
|
||||
public void saveDeviceLogs(@RequestBody EqEquipmentLogBo eqEquipmentLogBo){
|
||||
String equipmentName = eqEquipmentLogBo.getEquipmentName();
|
||||
Integer status = eqEquipmentLogBo.getStatus();
|
||||
//设备id查询
|
||||
DeviceByDeviceName deviceByNameDto = iotService.apiTenantDevicesByName(equipmentName);//无信息会抛异常 无需判断
|
||||
if (deviceByNameDto==null) throw new RuntimeException("设备不存在");
|
||||
String equipmentCode = deviceByNameDto.getId().getId();
|
||||
//设备查询
|
||||
EqEquipmentBo eqEquipmentBo = new EqEquipmentBo();
|
||||
eqEquipmentBo.setEquipmentCode(eqEquipmentLogBo.getEquipmentCode());
|
||||
eqEquipmentBo.setEquipmentCode(equipmentCode);
|
||||
List<EqEquipmentVo> eqEquipmentVos = eqEquipmentService.queryList(eqEquipmentBo);
|
||||
if (CollectionUtils.isEmpty(eqEquipmentVos)) return;
|
||||
EqEquipmentVo eqEquipmentVo = eqEquipmentVos.get(0);
|
||||
eqEquipmentBo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
||||
//日志数据组装
|
||||
eqEquipmentLogBo.setEquipmentCode(equipmentCode);
|
||||
eqEquipmentLogBo.setEquipmentName(equipmentName);
|
||||
eqEquipmentLogBo.setUserId(eqEquipmentVo.getUserId());
|
||||
eqEquipmentLogBo.setUserName(eqEquipmentVo.getUserName());
|
||||
eqEquipmentLogBo.setNickName(eqEquipmentVo.getNickName());
|
||||
@ -202,6 +211,7 @@ public class EqDeviceController extends BaseController {
|
||||
String[] timeStr = formattedDate.split(" ");
|
||||
eqEquipmentLogBo.setCreatedYearDay(timeStr[0]);//年月日
|
||||
eqEquipmentLogBo.setCreatedHourSecond(timeStr[1]);//时分秒
|
||||
eqEquipmentLogBo.setStatus(status);//状态
|
||||
//星期
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(createTime);
|
||||
@ -212,9 +222,15 @@ public class EqDeviceController extends BaseController {
|
||||
logService.insertByBo(eqEquipmentLogBo);
|
||||
|
||||
//更新开合度状态到设备
|
||||
eqEquipmentBo.setStatus(eqEquipmentLogBo.getOpenStatus());
|
||||
eqEquipmentBo.setFaultStatus(eqEquipmentBo.getFaultStatus());
|
||||
eqEquipmentBo.setLineStatus(eqEquipmentBo.getLineStatus());
|
||||
eqEquipmentBo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
||||
// eqEquipmentBo.setStatus(eqEquipmentLogBo.getOpenStatus());//该参数暂时无用
|
||||
if (status == 500||status==501){
|
||||
eqEquipmentBo.setLineStatus(status-500);
|
||||
}
|
||||
if (status>=10&&status<=14){
|
||||
eqEquipmentBo.setFaultStatus(eqEquipmentBo.getFaultStatus());
|
||||
}
|
||||
|
||||
eqEquipmentService.updateByBo(eqEquipmentBo);
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,6 @@ public class EqHomeController extends BaseController {
|
||||
private final IEqAreaService eqAreaService;
|
||||
private final IEqFamilyService eqFamilyService;
|
||||
private final IEqEquipmentService eqEquipmentService;
|
||||
|
||||
private final IEqShareService shareService;
|
||||
private final ISysUserService userService;
|
||||
private final IEqUserConfigService eqUserConfigService;
|
||||
@ -249,9 +248,9 @@ public class EqHomeController extends BaseController {
|
||||
}
|
||||
bo.setSharedUserId(sysUserVo.getUserId());
|
||||
bo.setSharedUserName(sysUserVo.getUserName());
|
||||
List<EqShareVo> eqShareVos = eqShareService.queryList(bo);
|
||||
List<EqShareVo> eqShareVos = shareService.queryList(bo);
|
||||
if (!eqShareVos.isEmpty()) throw new RuntimeException("该成员已被分享");
|
||||
return toAjax(eqShareService.insertByBo(bo));
|
||||
return toAjax(shareService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -263,7 +262,7 @@ public class EqHomeController extends BaseController {
|
||||
@DeleteMapping("/deleteFamily/{sharedId}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable String sharedId) {
|
||||
return toAjax(eqShareService.deleteBySharedId(sharedId));
|
||||
return toAjax(shareService.deleteBySharedId(sharedId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -275,7 +274,7 @@ public class EqHomeController extends BaseController {
|
||||
@DeleteMapping("/deleteMember/{shareId}")
|
||||
public R<Void> removeShare(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable String shareId) {
|
||||
return toAjax(eqShareService.deleteByShareId(shareId));
|
||||
return toAjax(shareService.deleteByShareId(shareId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -379,7 +378,7 @@ public class EqHomeController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
private final IEqShareService eqShareService;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -61,55 +61,85 @@ public class EqTextController extends BaseController {
|
||||
@GetMapping("/allText")
|
||||
public R<Map<String,List<String>>> allText(){
|
||||
Map<String, List<String>> result = new HashMap<>();
|
||||
|
||||
//《登录》login
|
||||
result.put("login",Arrays.asList(
|
||||
MessageUtils.message("login.name0"),
|
||||
MessageUtils.message("login.name1"),
|
||||
MessageUtils.message("login.name2"),
|
||||
MessageUtils.message("login.name3"),
|
||||
MessageUtils.message("login.name4")
|
||||
MessageUtils.message("login.name4"),
|
||||
MessageUtils.message("login.name5")
|
||||
));
|
||||
|
||||
//《注册》register
|
||||
result.put("register",Arrays.asList(
|
||||
MessageUtils.message("register.name0"),
|
||||
MessageUtils.message("register.name1"),
|
||||
MessageUtils.message("register.name0"),
|
||||
MessageUtils.message("register.name2"),
|
||||
MessageUtils.message("register.name3"),
|
||||
MessageUtils.message("register.name4")
|
||||
MessageUtils.message("register.name4"),
|
||||
MessageUtils.message("register.name5")
|
||||
));
|
||||
|
||||
//《注册成功》registerSuccess
|
||||
result.put("registerSuccess",Arrays.asList(
|
||||
MessageUtils.message("registerSuccess.name0"),
|
||||
MessageUtils.message("registerSuccess.name1"),
|
||||
MessageUtils.message("registerSuccess.name2"),
|
||||
MessageUtils.message("registerSuccess.name3")
|
||||
));
|
||||
|
||||
//《首页》homepage
|
||||
result.put("homepage",Arrays.asList(
|
||||
MessageUtils.message("homepage.name0"),
|
||||
MessageUtils.message("homepage.name1"),
|
||||
MessageUtils.message("homepage.name2"),
|
||||
MessageUtils.message("homepage.name3")
|
||||
MessageUtils.message("homepage.name3"),
|
||||
MessageUtils.message("homepage.name4"),
|
||||
MessageUtils.message("homepage.name5"),
|
||||
MessageUtils.message("homepage.name6"),
|
||||
MessageUtils.message("homepage.name7"),
|
||||
MessageUtils.message("homepage.name8"),
|
||||
MessageUtils.message("homepage.name9"),
|
||||
MessageUtils.message("homepage.name10")
|
||||
));
|
||||
|
||||
//《关门提醒》warningClose
|
||||
result.put("warningClose",Arrays.asList(
|
||||
MessageUtils.message("warningClose.name0"),
|
||||
MessageUtils.message("warningClose.name1"),
|
||||
MessageUtils.message("warningClose.name2"),
|
||||
MessageUtils.message("warningClose.name3")
|
||||
MessageUtils.message("warningClose.name3"),
|
||||
MessageUtils.message("warningClose.name4"),
|
||||
MessageUtils.message("warningClose.name5"),
|
||||
MessageUtils.message("warningClose.name6")
|
||||
));
|
||||
|
||||
//《添加设备》add
|
||||
result.put("add",Arrays.asList(
|
||||
MessageUtils.message("add.name0"),
|
||||
MessageUtils.message("add.name1"),
|
||||
MessageUtils.message("add.name2"),
|
||||
MessageUtils.message("add.name3")
|
||||
));
|
||||
|
||||
//《添加成功》addSuccess
|
||||
result.put("addSuccess",Arrays.asList(
|
||||
MessageUtils.message("addSuccess.name0"),
|
||||
MessageUtils.message("addSuccess.name1"),
|
||||
MessageUtils.message("addSuccess.name2")
|
||||
));
|
||||
|
||||
//《添加失败》addFailure
|
||||
result.put("addFailure",Arrays.asList(
|
||||
MessageUtils.message("addFailure.name0"),
|
||||
MessageUtils.message("addFailure.name1"),
|
||||
MessageUtils.message("addFailure.name2"),
|
||||
// MessageUtils.message("addFailure.name2"),
|
||||
MessageUtils.message("addFailure.name3")
|
||||
));
|
||||
|
||||
//《设备详情》detail
|
||||
result.put("detail",Arrays.asList(
|
||||
MessageUtils.message("detail.name0"),
|
||||
MessageUtils.message("detail.name1"),
|
||||
@ -129,13 +159,19 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("detail.name15"),
|
||||
MessageUtils.message("detail.name16"),
|
||||
MessageUtils.message("detail.name17"),
|
||||
MessageUtils.message("detail.name18")
|
||||
MessageUtils.message("detail.name18"),
|
||||
MessageUtils.message("detail.name19"),
|
||||
MessageUtils.message("detail.name20")
|
||||
));
|
||||
|
||||
//《倒计时设置》countdown
|
||||
result.put("countdown",Arrays.asList(
|
||||
MessageUtils.message("countdown.name0"),
|
||||
MessageUtils.message("countdown.name1"),
|
||||
MessageUtils.message("countdown.name2")
|
||||
));
|
||||
|
||||
//《数据日志》log
|
||||
result.put("log",Arrays.asList(
|
||||
MessageUtils.message("log.name0"),
|
||||
MessageUtils.message("log.name1"),
|
||||
@ -147,9 +183,16 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("log.name7"),
|
||||
MessageUtils.message("log.name8"),
|
||||
MessageUtils.message("log.name9"),
|
||||
MessageUtils.message("log.name10")
|
||||
MessageUtils.message("log.name10"),
|
||||
MessageUtils.message("log.name11"),
|
||||
MessageUtils.message("log.name12"),
|
||||
MessageUtils.message("log.name13"),
|
||||
MessageUtils.message("log.name14"),
|
||||
MessageUtils.message("log.name15"),
|
||||
MessageUtils.message("log.name16")
|
||||
));
|
||||
|
||||
//《对码》clearcode
|
||||
result.put("checkcode",Arrays.asList(
|
||||
MessageUtils.message("checkcode.name0"),
|
||||
MessageUtils.message("checkcode.name1"),
|
||||
@ -157,6 +200,7 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("checkcode.name3")
|
||||
));
|
||||
|
||||
//《清码》checkcode
|
||||
result.put("clearcode",Arrays.asList(
|
||||
MessageUtils.message("clearcode.name0"),
|
||||
MessageUtils.message("clearcode.name1"),
|
||||
@ -166,12 +210,13 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("clearcode.name5")
|
||||
));
|
||||
|
||||
//《设备掉线详情》offDetail
|
||||
result.put("offDetail",Arrays.asList(
|
||||
MessageUtils.message("offDetail.name0"),
|
||||
MessageUtils.message("offDetail.name1")
|
||||
));
|
||||
|
||||
|
||||
//《优化-设置》set
|
||||
result.put("set",Arrays.asList(
|
||||
MessageUtils.message("set.name0"),
|
||||
MessageUtils.message("set.name1"),
|
||||
@ -194,10 +239,11 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("set.name18"),
|
||||
MessageUtils.message("set.name19"),
|
||||
MessageUtils.message("set.name20"),
|
||||
MessageUtils.message("set.name21")
|
||||
MessageUtils.message("set.name21"),
|
||||
MessageUtils.message("set.name22")
|
||||
));
|
||||
|
||||
|
||||
//《通用》setCommon
|
||||
result.put("setCommon",Arrays.asList(
|
||||
MessageUtils.message("setCommon.detail"),
|
||||
MessageUtils.message("setCommon.add"),
|
||||
@ -208,6 +254,7 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("setCommon.confirm")
|
||||
));
|
||||
|
||||
//《未设置详情》noinit
|
||||
result.put("noinit",Arrays.asList(
|
||||
MessageUtils.message("noinit.name0"),
|
||||
MessageUtils.message("noinit.name1"),
|
||||
@ -230,6 +277,7 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("noinit.name18")
|
||||
));
|
||||
|
||||
//《修改设备名称》setEqname
|
||||
result.put("setEqname",Arrays.asList(
|
||||
MessageUtils.message("setEqname.name0"),
|
||||
MessageUtils.message("setEqname.name1"),
|
||||
@ -238,13 +286,14 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("setEqname.name4")
|
||||
));
|
||||
|
||||
//《设备位置修改》setEqarea
|
||||
result.put("setEqarea",Arrays.asList(
|
||||
MessageUtils.message("setEqarea.name0"),
|
||||
MessageUtils.message("setEqarea.name1"),
|
||||
MessageUtils.message("setEqarea.name2")
|
||||
));
|
||||
|
||||
|
||||
//《反弹力设置》setRebound
|
||||
result.put("setRebound",Arrays.asList(
|
||||
MessageUtils.message("setRebound.name0"),
|
||||
MessageUtils.message("setRebound.name1"),
|
||||
@ -252,6 +301,7 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("setRebound.name3")
|
||||
));
|
||||
|
||||
//《删除设备》setDelete
|
||||
result.put("setDelete",Arrays.asList(
|
||||
MessageUtils.message("setDelete.name0"),
|
||||
MessageUtils.message("setDelete.name1"),
|
||||
@ -260,19 +310,206 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("setDelete.name4")
|
||||
));
|
||||
|
||||
//《时区设置》setZone
|
||||
result.put("setZone",Arrays.asList(
|
||||
MessageUtils.message("setZone.name0"),
|
||||
MessageUtils.message("setZone.name1")
|
||||
MessageUtils.message("setZone.name1"),
|
||||
MessageUtils.message("setZone.name2")
|
||||
));
|
||||
|
||||
//《wifi网络》setWifi
|
||||
result.put("setWifi",Arrays.asList(
|
||||
MessageUtils.message("setWifi.name0"),
|
||||
MessageUtils.message("setWifi.name1"),
|
||||
MessageUtils.message("setWifi.name2"),
|
||||
MessageUtils.message("setWifi.name3"),
|
||||
MessageUtils.message("setWifi.name4"),
|
||||
MessageUtils.message("setWifi.name5"),
|
||||
MessageUtils.message("setWifi.name6")
|
||||
MessageUtils.message("setWifi.name5")
|
||||
));
|
||||
|
||||
//《设备共享》deviceShare
|
||||
result.put("deviceShare",Arrays.asList(
|
||||
MessageUtils.message("deviceShare.name0"),
|
||||
MessageUtils.message("deviceShare.name1"),
|
||||
MessageUtils.message("deviceShare.name2"),
|
||||
MessageUtils.message("deviceShare.name3"),
|
||||
MessageUtils.message("deviceShare.name4")
|
||||
));
|
||||
|
||||
//《我的》noinit
|
||||
result.put("my",Arrays.asList(
|
||||
MessageUtils.message("my.name0"),
|
||||
MessageUtils.message("my.name1"),
|
||||
MessageUtils.message("my.name2"),
|
||||
MessageUtils.message("my.name3"),
|
||||
MessageUtils.message("my.name4"),
|
||||
MessageUtils.message("my.name5"),
|
||||
MessageUtils.message("my.name6"),
|
||||
MessageUtils.message("my.name7")
|
||||
));
|
||||
|
||||
//《我的账号》account
|
||||
result.put("account",Arrays.asList(
|
||||
MessageUtils.message("account.name0"),
|
||||
MessageUtils.message("account.name1"),
|
||||
MessageUtils.message("account.name2"),
|
||||
MessageUtils.message("account.name3"),
|
||||
MessageUtils.message("account.name4"),
|
||||
MessageUtils.message("account.name5"),
|
||||
MessageUtils.message("account.name6"),
|
||||
MessageUtils.message("account.name7"),
|
||||
MessageUtils.message("account.name8"),
|
||||
MessageUtils.message("account.name9"),
|
||||
MessageUtils.message("account.name10"),
|
||||
MessageUtils.message("account.name11"),
|
||||
MessageUtils.message("account.name12"),
|
||||
MessageUtils.message("account.name13"),
|
||||
MessageUtils.message("account.name14"),
|
||||
MessageUtils.message("account.name15"),
|
||||
MessageUtils.message("account.name16")
|
||||
));
|
||||
|
||||
//《修改昵称》accountForm
|
||||
result.put("accountForm",Arrays.asList(
|
||||
MessageUtils.message("accountForm.name0"),
|
||||
MessageUtils.message("accountForm.name1"),
|
||||
MessageUtils.message("accountForm.name2"),
|
||||
MessageUtils.message("accountForm.name3"),
|
||||
MessageUtils.message("accountForm.name4"),
|
||||
MessageUtils.message("accountForm.name5"),
|
||||
MessageUtils.message("accountForm.name6"),
|
||||
MessageUtils.message("accountForm.name7"),
|
||||
MessageUtils.message("accountForm.name8"),
|
||||
MessageUtils.message("accountForm.name9"),
|
||||
MessageUtils.message("accountForm.name10"),
|
||||
MessageUtils.message("accountForm.name11"),
|
||||
MessageUtils.message("accountForm.name12"),
|
||||
MessageUtils.message("accountForm.name13"),
|
||||
MessageUtils.message("accountForm.name14"),
|
||||
MessageUtils.message("accountForm.name15"),
|
||||
MessageUtils.message("accountForm.name16"),
|
||||
MessageUtils.message("accountForm.name17"),
|
||||
MessageUtils.message("accountForm.name18"),
|
||||
MessageUtils.message("accountForm.name19"),
|
||||
MessageUtils.message("accountForm.name20"),
|
||||
MessageUtils.message("accountForm.name21"),
|
||||
MessageUtils.message("accountForm.name22"),
|
||||
MessageUtils.message("accountForm.name23"),
|
||||
MessageUtils.message("accountForm.name24"),
|
||||
MessageUtils.message("accountForm.name25")
|
||||
));
|
||||
|
||||
//《修改昵称》devForm
|
||||
result.put("devForm",Arrays.asList(
|
||||
MessageUtils.message("devForm.name0"),
|
||||
MessageUtils.message("devForm.name1"),
|
||||
MessageUtils.message("devForm.name2"),
|
||||
MessageUtils.message("devForm.name3"),
|
||||
MessageUtils.message("devForm.name4"),
|
||||
MessageUtils.message("devForm.name5"),
|
||||
MessageUtils.message("devForm.name6")
|
||||
));
|
||||
|
||||
//《分布管理》distribution
|
||||
result.put("distribution",Arrays.asList(
|
||||
MessageUtils.message("distribution.name0"),
|
||||
MessageUtils.message("distribution.name1")
|
||||
));
|
||||
|
||||
//《家庭管理》family
|
||||
result.put("family",Arrays.asList(
|
||||
MessageUtils.message("family.name0"),
|
||||
MessageUtils.message("family.name1"),
|
||||
MessageUtils.message("family.name2"),
|
||||
MessageUtils.message("family.name3"),
|
||||
MessageUtils.message("family.name4")
|
||||
));
|
||||
|
||||
//《成员管理》familyDetail
|
||||
result.put("familyDetail",Arrays.asList(
|
||||
MessageUtils.message("familyDetail.name0"),
|
||||
MessageUtils.message("familyDetail.name1"),
|
||||
MessageUtils.message("familyDetail.name2"),
|
||||
MessageUtils.message("familyDetail.name3"),
|
||||
MessageUtils.message("familyDetail.name4"),
|
||||
MessageUtils.message("familyDetail.name5"),
|
||||
MessageUtils.message("familyDetail.name6"),
|
||||
MessageUtils.message("familyDetail.name7"),
|
||||
MessageUtils.message("familyDetail.name8")
|
||||
));
|
||||
|
||||
//《设置语言》setLanguage
|
||||
result.put("setLanguage",Arrays.asList(
|
||||
MessageUtils.message("setLanguage.name0")
|
||||
));
|
||||
|
||||
//《配网》ble
|
||||
result.put("ble",Arrays.asList(
|
||||
MessageUtils.message("ble.name0"),
|
||||
MessageUtils.message("ble.name1"),
|
||||
MessageUtils.message("ble.name2"),
|
||||
MessageUtils.message("ble.name3"),
|
||||
MessageUtils.message("ble.name4"),
|
||||
MessageUtils.message("ble.name5"),
|
||||
MessageUtils.message("ble.name6"),
|
||||
MessageUtils.message("ble.name7"),
|
||||
MessageUtils.message("ble.name8"),
|
||||
MessageUtils.message("ble.name9"),
|
||||
MessageUtils.message("ble.name10"),
|
||||
MessageUtils.message("ble.name11"),
|
||||
MessageUtils.message("ble.name12"),
|
||||
MessageUtils.message("ble.name13"),
|
||||
MessageUtils.message("ble.name14"),
|
||||
MessageUtils.message("ble.name15"),
|
||||
MessageUtils.message("ble.name16"),
|
||||
MessageUtils.message("ble.name17"),
|
||||
MessageUtils.message("ble.name18"),
|
||||
MessageUtils.message("ble.name19"),
|
||||
MessageUtils.message("ble.name20"),
|
||||
MessageUtils.message("ble.name21"),
|
||||
MessageUtils.message("ble.name22"),
|
||||
MessageUtils.message("ble.name23"),
|
||||
MessageUtils.message("ble.name24"),
|
||||
MessageUtils.message("ble.name25"),
|
||||
MessageUtils.message("ble.name26"),
|
||||
MessageUtils.message("ble.name27"),
|
||||
MessageUtils.message("ble.name28"),
|
||||
MessageUtils.message("ble.name29"),
|
||||
MessageUtils.message("ble.name30"),
|
||||
MessageUtils.message("ble.name31"),
|
||||
MessageUtils.message("ble.name32"),
|
||||
MessageUtils.message("ble.name33"),
|
||||
MessageUtils.message("ble.name34"),
|
||||
MessageUtils.message("ble.name35"),
|
||||
MessageUtils.message("ble.name36"),
|
||||
MessageUtils.message("ble.name37"),
|
||||
MessageUtils.message("ble.name38"),
|
||||
MessageUtils.message("ble.name39"),
|
||||
MessageUtils.message("ble.name40"),
|
||||
MessageUtils.message("ble.name41"),
|
||||
MessageUtils.message("ble.name42"),
|
||||
MessageUtils.message("ble.name43"),
|
||||
MessageUtils.message("ble.name44"),
|
||||
MessageUtils.message("ble.name45"),
|
||||
MessageUtils.message("ble.name46"),
|
||||
MessageUtils.message("ble.name47"),
|
||||
MessageUtils.message("ble.name48"),
|
||||
MessageUtils.message("ble.name49"),
|
||||
MessageUtils.message("ble.name50"),
|
||||
MessageUtils.message("ble.name51"),
|
||||
MessageUtils.message("ble.name52"),
|
||||
MessageUtils.message("ble.name53"),
|
||||
MessageUtils.message("ble.name54"),
|
||||
MessageUtils.message("ble.name55"),
|
||||
MessageUtils.message("ble.name56"),
|
||||
MessageUtils.message("ble.name57"),
|
||||
MessageUtils.message("ble.name58"),
|
||||
MessageUtils.message("ble.name59"),
|
||||
MessageUtils.message("ble.name60"),
|
||||
MessageUtils.message("ble.name61"),
|
||||
MessageUtils.message("ble.name62"),
|
||||
MessageUtils.message("ble.name63"),
|
||||
MessageUtils.message("ble.name64")
|
||||
));
|
||||
|
||||
return R.ok(result);
|
||||
|
||||
@ -1,24 +1,14 @@
|
||||
package org.dromara.web.controller.show;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.web.domain.vo.EqEquipmentStatisticsVo;
|
||||
import org.dromara.web.service.IEqEquipmentService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.web.domain.vo.EqEquipmentLogVo;
|
||||
import org.dromara.web.domain.bo.EqEquipmentLogBo;
|
||||
import org.dromara.web.service.IEqEquipmentLogService;
|
||||
@ -53,10 +43,10 @@ public class EqShowEquipmentLogController extends BaseController {
|
||||
/**
|
||||
* 设备类型统计
|
||||
*/
|
||||
@SaCheckPermission("device:showEquipmentLog:list")
|
||||
@GetMapping("/statisticEquipmentList")
|
||||
public R<EqEquipmentStatisticsVo> statisticEquipmentList(Integer type, String startTime, String endTime) {
|
||||
return R.ok(eqEquipmentService.statisticEquipmentList(type,startTime,endTime));
|
||||
// @SaCheckPermission("device:showEquipmentLog:list")
|
||||
@GetMapping("/selectEquipmentStatistic")
|
||||
public R<EqEquipmentStatisticsVo> selectEquipmentStatistic(Integer type, String startTime, String endTime) {
|
||||
return R.ok(eqEquipmentService.selectEquipmentStatistic(type,startTime,endTime));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -74,7 +74,7 @@ public class EqEquipmentBo extends BaseEntity {
|
||||
/**
|
||||
* 设备状态
|
||||
*/
|
||||
@NotNull(message = "设备状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "设备运行状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
|
||||
@ -31,7 +31,7 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
@ -47,17 +47,23 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
/**
|
||||
* 设备ID
|
||||
*/
|
||||
@NotNull(message = "设备ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotNull(message = "设备ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long equipmentId;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
*/
|
||||
@NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 状态 eq_status_log_type
|
||||
*
|
||||
* 0.停止中 stop
|
||||
* 1.关闭中 closing
|
||||
* 2.开启中 openning
|
||||
@ -82,8 +88,11 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
* 112.门体手动开启提醒
|
||||
* 113.半开门运行提醒
|
||||
* 114.门体停止运行提醒
|
||||
*
|
||||
* 500.设备离线 offline
|
||||
* 501.设备在线 online
|
||||
*/
|
||||
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
|
||||
@ -9,7 +9,7 @@ import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 设备信息视图对象 eq_user_equipment
|
||||
* 设备信息视图对象 eq_equipment_statistics
|
||||
*
|
||||
* @author zzc
|
||||
* @date 2024-08-13
|
||||
|
||||
@ -2,15 +2,12 @@ package org.dromara.web.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.web.domain.EqEquipment;
|
||||
import org.dromara.web.domain.vo.EqEquipmentStatisticsVo;
|
||||
import org.dromara.web.domain.vo.EqEquipmentVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.web.domain.vo.EqUserEquipmentVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 设备信息Mapper接口
|
||||
*
|
||||
@ -26,5 +23,5 @@ public interface EqEquipmentMapper extends BaseMapperPlus<EqEquipment, EqEquipme
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
EqEquipmentStatisticsVo selectStatisticEquipmentList(Integer type, String startTime, String endTime);
|
||||
EqEquipmentStatisticsVo selectEquipmentStatistic(Integer type, String startTime, String endTime);
|
||||
}
|
||||
|
||||
@ -105,5 +105,5 @@ public interface IEqEquipmentService {
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
EqEquipmentStatisticsVo statisticEquipmentList(Integer type, String startTime, String endTime);
|
||||
EqEquipmentStatisticsVo selectEquipmentStatistic(Integer type, String startTime, String endTime);
|
||||
}
|
||||
|
||||
@ -60,6 +60,7 @@ public class IotService {
|
||||
map.put("entityType","DEVICE");
|
||||
map.put("entityId",deviceCode);
|
||||
String send = getSend(CommonYmlConfig.URL_IOT_TELEMETRY, map);
|
||||
if (send.startsWith("{\"status\":")) return null;
|
||||
JSONObject jsonObject = JSON.parseObject(send);
|
||||
//转换
|
||||
Map<String, String> resultMap = new HashMap<>();
|
||||
@ -176,6 +177,21 @@ public class IotService {
|
||||
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() {
|
||||
String token = tokenCache.getIfPresent("token");
|
||||
|
||||
@ -78,7 +78,7 @@ public class EqEquipmentLogServiceImpl implements IEqEquipmentLogService {
|
||||
lqw.eq(bo.getStatus() != null, EqEquipmentLog::getStatus, bo.getStatus());
|
||||
lqw.eq(bo.getFaultStatus() != null, EqEquipmentLog::getFaultStatus, bo.getFaultStatus());
|
||||
lqw.eq(bo.getLineStatus() != null, EqEquipmentLog::getLineStatus, bo.getLineStatus());
|
||||
lqw.eq(bo.getCreatedYearDay() != null, EqEquipmentLog::getCreatedYearDay, bo.getCreatedYearDay());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCreatedYearDay()), EqEquipmentLog::getCreatedYearDay, bo.getCreatedYearDay());
|
||||
lqw.eq(bo.getCreatedHourSecond() != null, EqEquipmentLog::getCreatedHourSecond, bo.getCreatedHourSecond());
|
||||
lqw.eq(bo.getDayOfWeek() != null, EqEquipmentLog::getDayOfWeek, bo.getDayOfWeek());
|
||||
// lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.web.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.MessageUtils;
|
||||
@ -14,10 +14,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.web.device.*;
|
||||
import org.dromara.web.device.iot.DeviceClientMsgDto;
|
||||
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.device.iot.*;
|
||||
import org.dromara.web.domain.EqArea;
|
||||
import org.dromara.web.domain.bo.*;
|
||||
import org.dromara.web.domain.vo.EqEquipmentDetailVo;
|
||||
@ -73,6 +70,21 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
public TableDataInfo<EqEquipmentVo> queryPageList(EqEquipmentBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<EqEquipment> lqw = buildQueryWrapper(bo);
|
||||
Page<EqEquipmentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
List<EqEquipmentVo> records = result.getRecords();
|
||||
if (CollUtil.isEmpty(records)) return TableDataInfo.build(result);
|
||||
//获取遥测数据
|
||||
|
||||
for (EqEquipmentVo record : records) {
|
||||
String equipmentCode = record.getEquipmentCode();
|
||||
DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(equipmentCode);
|
||||
if (telemetryMsg == null) {
|
||||
record.setLineStatus(0);//未获取到数据统一为离线
|
||||
continue;
|
||||
}
|
||||
record.setStatus(telemetryMsg.getOpenPercentage());
|
||||
record.setFaultStatus(telemetryMsg.getGarageException());
|
||||
}
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@ -222,7 +234,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
//获取服务属性状态
|
||||
DeviceServerMsgDto serverMsg = iotService.httpServerGetSend(bo.getEquipmentCode());
|
||||
result.setLineStatus(serverMsg.getLineStatus()?1:0);
|
||||
|
||||
if (!serverMsg.getLineStatus()) return result;
|
||||
//获取客户端属性
|
||||
DeviceClientMsgDto clientMsg = iotService.httpClientGetSend(bo.getEquipmentCode());
|
||||
result.setEquipmentType(clientMsg.getEquipmentType());
|
||||
@ -233,7 +245,10 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
|
||||
//获取遥测数据
|
||||
DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(bo.getEquipmentCode());
|
||||
|
||||
if (telemetryMsg == null) {
|
||||
System.out.println("未获取到设备信息");
|
||||
result.setLineStatus(0);
|
||||
}
|
||||
//开合状态
|
||||
result.setOpenStatus(telemetryMsg.getOpenPercentage());
|
||||
result.setOpenStatusText(
|
||||
@ -254,15 +269,27 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
@Override
|
||||
public Boolean bindDevice(EqAppHomeBo bo) {
|
||||
|
||||
String equipmentCode = bo.getEquipmentCode();
|
||||
String equipmentCode = bo.getEquipmentCode(); //这里的设备编码改成了设备mac地址
|
||||
//通过设备mac地址查询设备编码
|
||||
final String macPrefix = "mock_";
|
||||
|
||||
equipmentCode = macPrefix + equipmentCode;
|
||||
|
||||
//根据设备名称地址查询设备id(设备code)
|
||||
DeviceByDeviceName deviceByNameDto = iotService.apiTenantDevicesByName(equipmentCode);//无信息会抛异常 无需判断
|
||||
if (deviceByNameDto==null) throw new RuntimeException(MessageUtils.message("iot.device.notFound"));
|
||||
String equipmentName = equipmentCode;//暂时不存设备名称 下面从其他接口获取并存入了
|
||||
equipmentCode = deviceByNameDto.getId().getId();
|
||||
|
||||
LambdaQueryWrapper<EqEquipment> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq( EqEquipment::getEquipmentCode,equipmentCode);
|
||||
EqEquipmentVo eqEquipmentVo = baseMapper.selectVoOne(lqw);
|
||||
if (eqEquipmentVo!=null) throw new RuntimeException("设备已绑定");
|
||||
if (eqEquipmentVo!=null) throw new RuntimeException(MessageUtils.message("message.fault.device.isbind"));
|
||||
|
||||
DeviceServerMsgDto deviceServerMsgDto = iotService.httpServerGetSend(equipmentCode);
|
||||
if (!deviceServerMsgDto.getLineStatus()) throw new RuntimeException("设备未连接 无法绑定");
|
||||
if (!deviceServerMsgDto.getLineStatus()) throw new RuntimeException(MessageUtils.message("message.fault.device.offline"));
|
||||
|
||||
|
||||
|
||||
//从iot平台设置用户绑定 并获取设备信息
|
||||
DeviceDto deviceDto = iotService.httpDeviceGetSend(equipmentCode);//无信息会抛异常 无需判断
|
||||
@ -277,14 +304,17 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
eqEquipmentBo.setUserName(sysUserVo.getUserName());
|
||||
eqEquipmentBo.setNickName(sysUserVo.getNickName());
|
||||
DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode);
|
||||
if (deviceMsgDto==null){
|
||||
eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值
|
||||
eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException());
|
||||
eqEquipmentBo.setLineStatus(1);//在线
|
||||
}else{
|
||||
eqEquipmentBo.setLineStatus(0);//离线
|
||||
}
|
||||
|
||||
eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值
|
||||
eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException());
|
||||
eqEquipmentBo.setLineStatus(1);//在线
|
||||
|
||||
//判断是否获取到信息 无信息会抛异常 无需判断
|
||||
EqEquipment add = MapstructUtils.convert(eqEquipmentBo, EqEquipment.class);
|
||||
validEntityBeforeSave(add);
|
||||
baseMapper.insert(add);
|
||||
return true;
|
||||
}
|
||||
@ -308,8 +338,8 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EqEquipmentStatisticsVo statisticEquipmentList(Integer type, String startTime, String endTime) {
|
||||
EqEquipmentStatisticsVo result = baseMapper.selectStatisticEquipmentList(type, startTime, endTime);
|
||||
public EqEquipmentStatisticsVo selectEquipmentStatistic(Integer type, String startTime, String endTime) {
|
||||
EqEquipmentStatisticsVo result = baseMapper.selectEquipmentStatistic(type, startTime, endTime);
|
||||
result.setType(type);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ spring.data:
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
database: 2
|
||||
# redis 密码必须配置
|
||||
password: ruoyi123
|
||||
# 连接超时时间
|
||||
@ -264,3 +264,4 @@ iot:
|
||||
telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries
|
||||
operate: /api/plugins/rpc/oneway/{deviceId}
|
||||
device: /api/device/{deviceId}
|
||||
deviceByName: /api/tenant/devices?deviceName={deviceName}
|
||||
|
||||
@ -259,3 +259,5 @@ runStatus.name14=deviceException
|
||||
|
||||
|
||||
message.fault.device.notfound = Device not found
|
||||
message.fault.device.isbind = Device is offline
|
||||
message.fault.device.offline = Device is offline
|
||||
|
||||
@ -60,191 +60,6 @@ tenant.not.exists=对不起, 您的租户不存在,请联系管理员
|
||||
tenant.blocked=对不起,您的租户已禁用,请联系管理员
|
||||
tenant.expired=对不起,您的租户已过期,请联系管理员
|
||||
|
||||
|
||||
|
||||
|
||||
##《登录》login
|
||||
login.name0=登录
|
||||
login.name1=请输入账号
|
||||
login.name2=请输入密码
|
||||
login.name3=我已阅读并同意签署
|
||||
login.name4=立即注册
|
||||
##《注册》register
|
||||
register.name0=注册
|
||||
register.name1=注册账号
|
||||
register.name2=请输入账号
|
||||
register.name3=请输入密码
|
||||
register.name4=请再次输入密码
|
||||
##《注册成功》registerSuccess
|
||||
registerSuccess.name0=注册成功
|
||||
registerSuccess.name1=您的登录账号
|
||||
registerSuccess.name2=您的密码
|
||||
registerSuccess.name3=立即登录
|
||||
##《首页》homepage
|
||||
homepage.name0=首页
|
||||
homepage.name1=状态
|
||||
homepage.name2=已关闭
|
||||
homepage.name3=打开
|
||||
##《关门提醒》warningClose
|
||||
warningClose.name0=关门提醒
|
||||
warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门
|
||||
warningClose.name2=关门
|
||||
warningClose.name3=我知道了
|
||||
##《添加设备》add
|
||||
add.name0=添加设备
|
||||
add.name1=请输入设备编码
|
||||
add.name2=请输入
|
||||
add.name3=添加
|
||||
## 《添加成功》addSuccess
|
||||
addSuccess.name0=添加成功
|
||||
addSuccess.name1=返回
|
||||
addSuccess.name2=继续搜索
|
||||
##《添加失败》addFailure
|
||||
addFailure.name0=添加失败
|
||||
addFailure.name1=请正确的设备编号后再试
|
||||
addFailure.name2=返回
|
||||
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=对码
|
||||
##《倒计时设置》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=开门提醒
|
||||
##《对码》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=删除设备
|
||||
|
||||
##《通用》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=时间格式
|
||||
##《wifi网络》setWifi
|
||||
setWifi.name0=wifi网络
|
||||
setWifi.name1=提示
|
||||
setWifi.name2=已链接WiFi:XXXXXXXX
|
||||
setWifi.name3=若需更换网络,请确保你在设备旁
|
||||
setWifi.name4=边后,点击重置WiFi按钮
|
||||
setWifi.name5=确认删除
|
||||
setWifi.name6=取消
|
||||
|
||||
## 《开合状态》
|
||||
openStatus.name0=已关闭
|
||||
openStatus.name1=打开
|
||||
@ -285,3 +100,368 @@ logStatus.name113=半开门运行提醒
|
||||
logStatus.name114=门体停止运行提醒
|
||||
|
||||
message.fault.device.notfound = 设备不存在
|
||||
message.fault.device.isbind = 设备已绑定
|
||||
message.fault.device.offline = 设备未连接 无法绑定
|
||||
|
||||
|
||||
#====== app =========
|
||||
##《登录》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=取消
|
||||
|
||||
# 《设备共享》deviceShare
|
||||
deviceShare.name1 = 设备共享
|
||||
deviceShare.name2 = 请输入对方登录账号
|
||||
deviceShare.name3 = 温馨提示
|
||||
deviceShare.name4 = 设备共享后,对方账号也可以访问管理当前账号所有设备,对方不可删除当前账号设备。
|
||||
|
||||
# 《我的》my
|
||||
my.name0 = 登录账号
|
||||
my.name1 = 账号管理
|
||||
my.name2 = 分布管理
|
||||
my.name3 = 家庭管理
|
||||
my.name4 = 设备共享
|
||||
my.name5 = 切换语言
|
||||
my.name6 = 我的
|
||||
my.name7 = 设备配网
|
||||
|
||||
# 《我的账号》account
|
||||
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
|
||||
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
|
||||
distribution.name0=分布管理
|
||||
distribution.name1=默认
|
||||
# 《家庭管理》 family
|
||||
family.name0=家庭管理
|
||||
family.name1=我的家
|
||||
family.name2=我加入的家庭
|
||||
family.name3=个区域
|
||||
family.name4=个设备
|
||||
# 《成员管理》familyDetail
|
||||
familyDetail.name0=成员管理
|
||||
familyDetail.name1=家庭名称
|
||||
familyDetail.name2=我加入的家庭
|
||||
familyDetail.name3=提示
|
||||
familyDetail.name4=移除当前成员后,对方将不能访问当前家庭进行设备管理!
|
||||
familyDetail.name5=取消
|
||||
familyDetail.name6=确定
|
||||
familyDetail.name7=删除
|
||||
familyDetail.name8=主人
|
||||
# 《设置语言》setLanguage
|
||||
setLanguage.name0=设置语言
|
||||
#《配网》ble
|
||||
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=返回首页
|
||||
|
||||
@ -28,24 +28,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
e.user_id,
|
||||
s.nick_name,
|
||||
e.user_name,
|
||||
COUNT(*) AS bind_num, -- 设备总数
|
||||
COUNT(e.equipment_id) AS bind_num, -- 设备总数
|
||||
SUM(CASE WHEN e.line_status = 0 THEN 1 ELSE 0 END) AS offline_num, -- 离线个数
|
||||
SUM(CASE WHEN e.line_status = 1 THEN 1 ELSE 0 END) AS online_num -- 在线个数
|
||||
FROM
|
||||
eq_equipment e
|
||||
JOIN
|
||||
sys_user s ON e.user_id = s.user_id
|
||||
sys_user s
|
||||
left JOIN
|
||||
eq_equipment e
|
||||
ON e.user_id = s.user_id
|
||||
<where>
|
||||
s.user_type='app_user'
|
||||
<if test="nickName != null and nickName != ''">
|
||||
AND nick_name like
|
||||
AND s.nick_name like
|
||||
CONCAT('%', #{nickName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
e.user_name, s.nick_name;
|
||||
e.user_id,e.user_name, s.nick_name
|
||||
</select>
|
||||
|
||||
<select id="selectStatisticEquipmentList" resultType="org.dromara.web.domain.vo.EqEquipmentStatisticsVo">
|
||||
<select id="selectEquipmentStatistic" resultType="org.dromara.web.domain.vo.EqEquipmentStatisticsVo">
|
||||
SELECT
|
||||
COUNT(*) AS bind_num, -- 设备总数
|
||||
SUM(CASE WHEN line_status = 0 THEN 1 ELSE 0 END) AS offline_num, -- 离线个数
|
||||
|
||||
Loading…
Reference in New Issue
Block a user