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
04348c7fe1
@ -1,5 +1,6 @@
|
||||
package org.dromara.web.controller.app;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@ -180,6 +181,7 @@ public class EqDeviceController extends BaseController {
|
||||
* 保存日志(iot使用 设备状态变动时会触发该状态)
|
||||
* @param eqEquipmentLogBo
|
||||
*/
|
||||
@SaIgnore
|
||||
@PostMapping("/saveDeviceLogs")
|
||||
public void saveDeviceLogs(@RequestBody EqEquipmentLogBo eqEquipmentLogBo){
|
||||
String equipmentName = eqEquipmentLogBo.getEquipmentName();
|
||||
|
||||
@ -22,6 +22,7 @@ import org.dromara.web.domain.bo.*;
|
||||
import org.dromara.web.domain.vo.*;
|
||||
import org.dromara.web.service.*;
|
||||
import org.dromara.web.domain.bo.EqAppHomeBo;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -325,13 +326,34 @@ public class EqHomeController extends BaseController {
|
||||
@PostMapping("/list")
|
||||
public TableDataInfo<EqEquipmentVo> list(EqAppHomeBo bo, PageQuery pageQuery){
|
||||
//当前用户为家庭主体 切换用户后需要传输用户id
|
||||
if (bo.getUserId() == null) bo.setUserId(LoginHelper.getUserId());
|
||||
Long currentUserId = LoginHelper.getUserId();
|
||||
if (bo.getUserId() == null) bo.setUserId(currentUserId);
|
||||
checkUserId(bo.getUserId(), currentUserId);
|
||||
// 下面返回的状态 会在设备状态变化时更新设备状态 状态更新由iot触发
|
||||
EqEquipmentBo eqEquipmentBo = new EqEquipmentBo();
|
||||
eqEquipmentBo.setUserId(bo.getUserId());
|
||||
eqEquipmentBo.setAreaId(bo.getAreaId());
|
||||
return eqEquipmentService.queryPageList(eqEquipmentBo, pageQuery); //在设备表中增加了分布id
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查要查询的userId 是否为分享给当前用户的userId
|
||||
* 如果不是 则抛出异常
|
||||
* @param userId
|
||||
* @param currentUserId
|
||||
*/
|
||||
private void checkUserId(Long userId, Long currentUserId) {
|
||||
if (!currentUserId.equals(userId)){
|
||||
EqShareBo eqShareBo = new EqShareBo();
|
||||
eqShareBo.setShareUserId(userId);
|
||||
eqShareBo.setSharedUserId(currentUserId);
|
||||
List<EqShareVo> eqShareVos = shareService.queryList(eqShareBo);
|
||||
if (CollectionUtils.isEmpty(eqShareVos)){
|
||||
throw new RuntimeException("您没有权限查看该设备");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设备重排
|
||||
|
||||
@ -102,7 +102,9 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("homepage.name7"),
|
||||
MessageUtils.message("homepage.name8"),
|
||||
MessageUtils.message("homepage.name9"),
|
||||
MessageUtils.message("homepage.name10")
|
||||
MessageUtils.message("homepage.name10"),
|
||||
MessageUtils.message("homepage.name11"),
|
||||
MessageUtils.message("homepage.name12")
|
||||
));
|
||||
|
||||
//《关门提醒》warningClose
|
||||
@ -113,7 +115,8 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("warningClose.name3"),
|
||||
MessageUtils.message("warningClose.name4"),
|
||||
MessageUtils.message("warningClose.name5"),
|
||||
MessageUtils.message("warningClose.name6")
|
||||
MessageUtils.message("warningClose.name6"),
|
||||
MessageUtils.message("warningClose.name7")
|
||||
));
|
||||
|
||||
//《添加设备》add
|
||||
@ -161,7 +164,9 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("detail.name17"),
|
||||
MessageUtils.message("detail.name18"),
|
||||
MessageUtils.message("detail.name19"),
|
||||
MessageUtils.message("detail.name20")
|
||||
MessageUtils.message("detail.name20"),
|
||||
MessageUtils.message("detail.name21"),
|
||||
MessageUtils.message("detail.name22")
|
||||
));
|
||||
|
||||
//《倒计时设置》countdown
|
||||
@ -422,7 +427,8 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("family.name1"),
|
||||
MessageUtils.message("family.name2"),
|
||||
MessageUtils.message("family.name3"),
|
||||
MessageUtils.message("family.name4")
|
||||
MessageUtils.message("family.name4"),
|
||||
MessageUtils.message("family.name5")
|
||||
));
|
||||
|
||||
//《成员管理》familyDetail
|
||||
@ -435,7 +441,8 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("familyDetail.name5"),
|
||||
MessageUtils.message("familyDetail.name6"),
|
||||
MessageUtils.message("familyDetail.name7"),
|
||||
MessageUtils.message("familyDetail.name8")
|
||||
MessageUtils.message("familyDetail.name8"),
|
||||
MessageUtils.message("familyDetail.name9")
|
||||
));
|
||||
|
||||
//《设置语言》setLanguage
|
||||
@ -509,7 +516,14 @@ public class EqTextController extends BaseController {
|
||||
MessageUtils.message("ble.name61"),
|
||||
MessageUtils.message("ble.name62"),
|
||||
MessageUtils.message("ble.name63"),
|
||||
MessageUtils.message("ble.name64")
|
||||
MessageUtils.message("ble.name64"),
|
||||
MessageUtils.message("ble.name65"),
|
||||
MessageUtils.message("ble.name66"),
|
||||
MessageUtils.message("ble.name67"),
|
||||
MessageUtils.message("ble.name68"),
|
||||
MessageUtils.message("ble.name69"),
|
||||
MessageUtils.message("ble.name70"),
|
||||
MessageUtils.message("ble.name71")
|
||||
));
|
||||
|
||||
return R.ok(result);
|
||||
|
||||
@ -2,6 +2,7 @@ package org.dromara.web.controller.show;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.web.domain.bo.EqEquipmentBo;
|
||||
import org.dromara.web.domain.vo.EqEquipmentStatisticsVo;
|
||||
import org.dromara.web.service.IEqEquipmentService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -14,6 +15,8 @@ import org.dromara.web.domain.bo.EqEquipmentLogBo;
|
||||
import org.dromara.web.service.IEqEquipmentLogService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* web端 统计分析
|
||||
*
|
||||
@ -45,7 +48,11 @@ public class EqShowEquipmentLogController extends BaseController {
|
||||
*/
|
||||
// @SaCheckPermission("device:showEquipmentLog:list")
|
||||
@GetMapping("/selectEquipmentStatistic")
|
||||
public R<EqEquipmentStatisticsVo> selectEquipmentStatistic(Integer type, String startTime, String endTime) {
|
||||
public R<EqEquipmentStatisticsVo> selectEquipmentStatistic(EqEquipmentBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
Integer type = bo.getType();
|
||||
String startTime = params.get("beginCreateTime") == null?null:params.get("beginCreateTime").toString();
|
||||
String endTime = params.get("endCreateTime") == null?null:params.get("endCreateTime").toString();
|
||||
return R.ok(eqEquipmentService.selectEquipmentStatistic(type,startTime,endTime));
|
||||
}
|
||||
|
||||
|
||||
@ -17,16 +17,15 @@ import org.dromara.web.device.*;
|
||||
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;
|
||||
import org.dromara.web.domain.vo.EqEquipmentStatisticsVo;
|
||||
import org.dromara.web.domain.vo.EqUserEquipmentVo;
|
||||
import org.dromara.web.domain.vo.*;
|
||||
import org.dromara.web.mapper.EqAreaMapper;
|
||||
import org.dromara.web.service.IEqShareService;
|
||||
import org.dromara.web.service.IotService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.web.domain.vo.EqEquipmentVo;
|
||||
import org.dromara.web.domain.EqEquipment;
|
||||
import org.dromara.web.mapper.EqEquipmentMapper;
|
||||
import org.dromara.web.service.IEqEquipmentService;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@ -41,6 +40,7 @@ import java.util.*;
|
||||
public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
|
||||
private final EqEquipmentMapper baseMapper;
|
||||
private final IEqShareService shareService;
|
||||
|
||||
private final EqAreaMapper areaMapper;
|
||||
|
||||
@ -305,11 +305,12 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
eqEquipmentBo.setNickName(sysUserVo.getNickName());
|
||||
DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode);
|
||||
if (deviceMsgDto==null){
|
||||
eqEquipmentBo.setLineStatus(0);//离线
|
||||
eqEquipmentBo.setStatus(0);
|
||||
}else{
|
||||
eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值
|
||||
eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException());
|
||||
eqEquipmentBo.setLineStatus(1);//在线
|
||||
}else{
|
||||
eqEquipmentBo.setLineStatus(0);//离线
|
||||
}
|
||||
|
||||
|
||||
@ -345,4 +346,23 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 检查要查询的userId 是否为分享给当前用户的userId
|
||||
* 如果不是 则抛出异常 zzc 目前操作不进行对设备控制设置的权限控制 后续如有需要再添加该方法进行验证
|
||||
* @param userId
|
||||
* @param currentUserId
|
||||
*/
|
||||
private void checkUserId(Long userId, Long currentUserId) {
|
||||
if (!currentUserId.equals(userId)){
|
||||
EqShareBo eqShareBo = new EqShareBo();
|
||||
eqShareBo.setShareUserId(userId);
|
||||
eqShareBo.setSharedUserId(currentUserId);
|
||||
List<EqShareVo> eqShareVos = shareService.queryList(eqShareBo);
|
||||
if (CollectionUtils.isEmpty(eqShareVos)){
|
||||
throw new RuntimeException("您没有权限查看该设备");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,6 +136,8 @@ homepage.name7=已关门
|
||||
homepage.name8=是否开门?
|
||||
homepage.name9=是否暂停
|
||||
homepage.name10=请选择
|
||||
homepage.name11=全部
|
||||
homepage.name12=暂无数据
|
||||
##《关门提醒》warningClose
|
||||
warningClose.name0=关门提醒
|
||||
warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门
|
||||
@ -144,6 +146,7 @@ warningClose.name3=已开门
|
||||
warningClose.name4=分钟了,请记得关门
|
||||
warningClose.name5=关门
|
||||
warningClose.name6=我知道了
|
||||
warningClose.name7=是否关门?
|
||||
##《添加设备》add
|
||||
add.name0=添加设备
|
||||
add.name1=请输入设备编码
|
||||
@ -180,6 +183,8 @@ detail.name17=清码
|
||||
detail.name18=对码
|
||||
detail.name19=开门设置
|
||||
detail.name20=已打开
|
||||
detail.name21=注:设置倒计时,每次需输入10的整数倍,倒计时最少为0,最多为480分钟;
|
||||
detail.name22=注:设置门体高度时,每次需输入10的整数倍,每次增加减少都会改变门体高度的10%;
|
||||
##《倒计时设置》countdown
|
||||
countdown.name0=倒计时设置
|
||||
countdown.name1=取消
|
||||
@ -387,6 +392,7 @@ family.name1=我的家
|
||||
family.name2=我加入的家庭
|
||||
family.name3=个区域
|
||||
family.name4=个设备
|
||||
family.name5=左滑退出
|
||||
# 《成员管理》familyDetail
|
||||
familyDetail.name0=成员管理
|
||||
familyDetail.name1=家庭名称
|
||||
@ -397,6 +403,8 @@ familyDetail.name5=取消
|
||||
familyDetail.name6=确定
|
||||
familyDetail.name7=删除
|
||||
familyDetail.name8=主人
|
||||
familyDetail.name9=左滑移除
|
||||
|
||||
# 《设置语言》setLanguage
|
||||
setLanguage.name0=设置语言
|
||||
#《配网》ble
|
||||
@ -460,8 +468,15 @@ ble.name56=获取WIFI列表结果
|
||||
ble.name57=提示:没有扫描到可用的WIFI网络!
|
||||
ble.name58=提示:点击要连接的WIFI网络,输入密码,开始配网!
|
||||
ble.name59=重新获取
|
||||
ble.name60=长按设备WIFI按键10秒以上,LED灯快速闪烁后,松手。
|
||||
ble.name60=1. 请保持设备处于通电状态
|
||||
ble.name61=点击,下一步,按提示输入信息,开始配网。
|
||||
ble.name62=提示:输入wifi密码
|
||||
ble.name63=提示:开始配网
|
||||
ble.name64=返回首页
|
||||
ble.name64=2. 长按设备“SET”键,直至显示器显示“1”闪烁;
|
||||
ble.name65=观察:显示器显示“1”闪烁;
|
||||
ble.name66=3. 多次短按“UP”键,直至显示器显示“9”闪烁;
|
||||
ble.name67=观察:显示器从“1”逐步上升至“0”
|
||||
ble.name68=4. 短按“SET”键;
|
||||
ble.name69=观察:显示器显示“A”,此时设备开始配网;
|
||||
ble.name70=5.在APP上对设备进行配网,直至配网完成;
|
||||
ble.name71=观察:配网完成后显示器显示“11”,设备进入待机装填;
|
||||
|
||||
@ -50,10 +50,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<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, -- 离线个数
|
||||
SUM(CASE WHEN line_status = 1 THEN 1 ELSE 0 END) AS online_num, -- 在线个数
|
||||
SUM(CASE WHEN fault_status > 0 THEN 1 ELSE 0 END) AS fault_num -- 故障个数
|
||||
COALESCE(SUM(CASE WHEN line_status = 0 THEN 1 ELSE 0 END), 0) AS offline_num, -- 离线个数
|
||||
COALESCE(SUM(CASE WHEN line_status = 1 THEN 1 ELSE 0 END), 0) AS online_num, -- 在线个数
|
||||
COALESCE(SUM(CASE WHEN fault_status > 0 THEN 1 ELSE 0 END), 0) AS fault_num -- 故障个数
|
||||
FROM eq_equipment
|
||||
-- SUM(CASE WHEN line_status = 0 THEN 1 ELSE 0 END) AS offline_num, -- 离线个数
|
||||
-- SUM(CASE WHEN line_status = 1 THEN 1 ELSE 0 END) AS online_num, -- 在线个数
|
||||
-- SUM(CASE WHEN fault_status > 0 THEN 1 ELSE 0 END) AS fault_num -- 故障个数
|
||||
-- FROM eq_equipment
|
||||
<where>
|
||||
<if test="type != null and type != ''">
|
||||
AND 'type' like
|
||||
|
||||
Loading…
Reference in New Issue
Block a user