From 8e289b0f002c19aa9194ec420468e1083a7fb005 Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Thu, 15 Aug 2024 17:23:17 +0800 Subject: [PATCH] =?UTF-8?q?web=E7=AB=AF=E4=BC=98=E5=8C=96=E5=8F=8A?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../show/EqShowEquipmentController.java | 2 +- .../show/EqShowEquipmentLogController.java | 20 ++++++- .../show/EqShowUserEquipmentController.java | 4 +- .../domain/vo/EqEquipmentStatisticsVo.java | 54 +++++++++++++++++++ .../dromara/web/mapper/EqEquipmentMapper.java | 9 ++++ .../web/service/IEqEquipmentService.java | 18 +++++-- .../service/impl/EqEquipmentServiceImpl.java | 11 +++- .../mapper/device/EqEquipmentMapper.xml | 26 +++++++-- 8 files changed, 130 insertions(+), 14 deletions(-) create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentStatisticsVo.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java index 4a1e2e292..6491bd2e7 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentController.java @@ -23,7 +23,7 @@ import org.dromara.web.service.IEqEquipmentService; import org.dromara.common.mybatis.core.page.TableDataInfo; /** - * 设备信息 + * web端设备信息 * * @author zzc * @date 2024-08-08 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java index 289ee776d..e80dcdbc5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowEquipmentLogController.java @@ -6,6 +6,8 @@ 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; @@ -23,7 +25,7 @@ import org.dromara.web.service.IEqEquipmentLogService; import org.dromara.common.mybatis.core.page.TableDataInfo; /** - * 设备状态日志 + * web端 统计分析 * * @author zzc * @date 2024-08-14 @@ -35,6 +37,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; public class EqShowEquipmentLogController extends BaseController { private final IEqEquipmentLogService eqEquipmentLogService; + private final IEqEquipmentService eqEquipmentService; /** * 查询设备状态日志列表 @@ -45,7 +48,20 @@ public class EqShowEquipmentLogController extends BaseController { return eqEquipmentLogService.queryPageList(bo, pageQuery); } -/* *//** + + + /** + * 设备类型统计 + */ + @SaCheckPermission("device:showEquipmentLog:list") + @GetMapping("/statisticEquipmentList") + public R statisticEquipmentList(Integer type, String startTime, String endTime) { + return R.ok(eqEquipmentService.statisticEquipmentList(type,startTime,endTime)); + } + + + + /* *//** * 导出设备状态日志列表 *//* @SaCheckPermission("device:showEquipmentLog:export") diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowUserEquipmentController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowUserEquipmentController.java index aa7244797..bfa33f49a 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowUserEquipmentController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/show/EqShowUserEquipmentController.java @@ -15,7 +15,7 @@ import org.dromara.web.domain.bo.EqUserEquipmentBo; import org.dromara.common.mybatis.core.page.TableDataInfo; /** - * 设备信息 + * web端 客户管理 * * @author zzc * @date 2024-08-13 @@ -29,7 +29,7 @@ public class EqShowUserEquipmentController extends BaseController { private final IEqEquipmentService eqEquipmentService; /** - * 查询设备信息列表 + * 用户统计 查询设备信息列表 */ @GetMapping("/list") public TableDataInfo list(EqUserEquipmentBo bo, PageQuery pageQuery) { diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentStatisticsVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentStatisticsVo.java new file mode 100644 index 000000000..e9d0b8505 --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentStatisticsVo.java @@ -0,0 +1,54 @@ +package org.dromara.web.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 设备信息视图对象 eq_user_equipment + * + * @author zzc + * @date 2024-08-13 + */ +@Data +@ExcelIgnoreUnannotated +public class EqEquipmentStatisticsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + /** + * 设备类型 + */ + @ExcelProperty(value = "设备类型") + private Integer type; + + /** + * 绑定设备(个) + */ + @ExcelProperty(value = "绑定设备(个)") + private Integer bindNum; + + /** + * 在线设备(个) + */ + @ExcelProperty(value = "在线设备(个)") + private Integer onlineNum; + + /** + * 离线设备(个) + */ + @ExcelProperty(value = "离线设备(个)") + private Integer offlineNum; + + /** + * 故障设备(个) + */ + @ExcelProperty(value = "故障设备(个)") + private Integer faultNum; +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java b/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java index f2fedc1e7..1b6275311 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/mapper/EqEquipmentMapper.java @@ -2,7 +2,9 @@ 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; @@ -18,4 +20,11 @@ import java.util.List; public interface EqEquipmentMapper extends BaseMapperPlus { IPage selectEquipmentVoPage(Page page, String nickName); + + /** + * 根据设备类型 统计设备信息 统计 总数 离线 在线 和 故障状态个数 + * @param type + * @return + */ + EqEquipmentStatisticsVo selectStatisticEquipmentList(Integer type, String startTime, String endTime); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java index 176018073..dd72ce9ac 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java @@ -2,12 +2,9 @@ package org.dromara.web.service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.dromara.web.domain.bo.*; -import org.dromara.web.domain.vo.EqEquipmentDetailVo; -import org.dromara.web.domain.vo.EqEquipmentStatusVo; -import org.dromara.web.domain.vo.EqEquipmentVo; +import org.dromara.web.domain.vo.*; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.web.domain.vo.EqUserEquipmentVo; import java.util.Collection; import java.util.List; @@ -95,5 +92,18 @@ public interface IEqEquipmentService { */ boolean updateByBos(List bos); + /** + * 查询用户设备列表 + * @param bo + * @param pageQuery + * @return + */ IPage queryEqUserEquipment(EqUserEquipmentBo bo, PageQuery pageQuery); + + /** + * 设备统计 + * @param type + * @return + */ + EqEquipmentStatisticsVo statisticEquipmentList(Integer type, String startTime, String endTime); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index 2a9d041e7..5dc095bd0 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -19,6 +19,7 @@ import org.dromara.web.device.iot.DeviceMsgDto; import org.dromara.web.device.iot.DeviceServerMsgDto; 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.service.IotService; import org.springframework.stereotype.Service; @@ -283,8 +284,14 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { public IPage queryEqUserEquipment(EqUserEquipmentBo bo, PageQuery pageQuery) { Page page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); // 调用Mapper中的新方法 - IPage voPage = baseMapper.selectEquipmentVoPage(page, bo.getNickName()); - return voPage; + return baseMapper.selectEquipmentVoPage(page, bo.getNickName()); + } + + @Override + public EqEquipmentStatisticsVo statisticEquipmentList(Integer type, String startTime, String endTime) { + EqEquipmentStatisticsVo result = baseMapper.selectStatisticEquipmentList(type, startTime, endTime); + result.setType(type); + return result; } diff --git a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml index f07a0e49f..2cd0d5547 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/EqEquipmentMapper.xml @@ -10,9 +10,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" user_id, nick_name, user_name, - COUNT(*) AS bind_num, - SUM(line_status = 1) AS online_num, - SUM(line_status = 0) AS offline_num + 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, -- 在线个数 FROM eq_equipment @@ -22,4 +22,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" GROUP BY user_name, nick_name + + + +