Przeglądaj źródła

Merge branch 'master' of http://git.nzklabs.com:3000/huangyuanhao/jfcloud-coldchain

jackzhou 6 miesięcy temu
rodzic
commit
62e86211f7
11 zmienionych plików z 101 dodań i 16 usunięć
  1. 2 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/alarm/bean/SensorAlarmUser.java
  2. 3 1
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java
  3. 4 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/entity/MonitorDeviceType.java
  4. 11 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/entity/StatusCount.java
  5. 4 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/mapper/MonitorTargetMapper.java
  6. 10 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/mapper/mapping/MonitorTargetMapper.xml
  7. 14 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddParam.java
  8. 13 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditParam.java
  9. 16 14
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java
  10. 12 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionAddParam.java
  11. 12 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionEditParam.java

+ 2 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/alarm/bean/SensorAlarmUser.java

@@ -14,7 +14,8 @@ public class SensorAlarmUser {
     public SensorAlarmUser() {
     }
 
-    public SensorAlarmUser(String userId, String openId) {
+    public SensorAlarmUser(String userName, String userId, String openId) {
+        this.userName = userName;
         this.userId = userId;
         this.openId = openId;
     }

+ 3 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java

@@ -92,7 +92,9 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         Page<MonitorDevice> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
         for (MonitorDevice record : page.getRecords()) {
             MonitorDeviceType monitorDeviceType = monitorDeviceTypeService.getById(record.getModelName());
-            record.setTypeName(monitorDeviceType.getName());
+            if (ObjectUtil.isNotNull(monitorDeviceType)) {
+                record.setTypeName(monitorDeviceType.getName());
+            }
         }
         return page;
     }

+ 4 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicetype/entity/MonitorDeviceType.java

@@ -98,4 +98,8 @@ public class MonitorDeviceType extends CommonEntity {
     /** 报警下限 */
     @Schema(description = "报警下限")
     private Float co2Down;
+
+    /** 传感器类型 */
+    @Schema(description = "传感器类型")
+    private String sensorType;
 }

+ 11 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/entity/StatusCount.java

@@ -0,0 +1,11 @@
+package vip.xiaonuo.coldchain.modular.monitortarget.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class StatusCount {
+    private String status;
+    private Long count;
+}

+ 4 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/mapper/MonitorTargetMapper.java

@@ -14,6 +14,9 @@ package vip.xiaonuo.coldchain.modular.monitortarget.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
+import vip.xiaonuo.coldchain.modular.monitortarget.entity.StatusCount;
+
+import java.util.List;
 
 /**
  * 监控对象管理Mapper接口
@@ -22,4 +25,5 @@ import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
  * @date 2024/11/13 16:56
  **/
 public interface MonitorTargetMapper extends BaseMapper<MonitorTarget> {
+    List<StatusCount> getCountByStatus(String name);
 }

+ 10 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/mapper/mapping/MonitorTargetMapper.xml

@@ -1,4 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.coldchain.modular.monitortarget.mapper.MonitorTargetMapper">
+
+    <select id="getCountByStatus" resultType="vip.xiaonuo.coldchain.modular.monitortarget.entity.StatusCount">
+        select status, count(`status`) as count
+        from `monitor_target`
+        <if test="name != null">
+            where name like '%${name}%'
+        </if>
+        group by status
+    </select>
+
 </mapper>

+ 14 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetAddParam.java

@@ -12,10 +12,16 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortarget.param;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
+import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
+
+import java.util.List;
 
 /**
  * 监控对象管理添加参数
@@ -60,4 +66,12 @@ public class MonitorTargetAddParam {
     @NotNull(message = "报警下限不能为空")
     private Float limitDown;
 
+
+    /**
+     * 告警接收人,存储告警通知的接收用户信息
+     */
+    @TableField(value = "alarm_users", typeHandler = SensorAlarmUserTypeHandler.class)
+    @Schema(description = "告警接收人,存储告警通知的接收用户信息")
+    private List<SensorAlarmUser> alarmUsers = Lists.newArrayList();
+
 }

+ 13 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/param/MonitorTargetEditParam.java

@@ -12,12 +12,17 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortarget.param;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
+import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 监控对象管理编辑参数
@@ -77,4 +82,12 @@ public class MonitorTargetEditParam {
      */
     @Schema(description = "最近登录时间")
     private Date lastLoginTime;
+
+
+    /**
+     * 告警接收人,存储告警通知的接收用户信息
+     */
+    @TableField(value = "alarm_users", typeHandler = SensorAlarmUserTypeHandler.class)
+    @Schema(description = "告警接收人,存储告警通知的接收用户信息")
+    private List<SensorAlarmUser> alarmUsers = Lists.newArrayList();
 }

+ 16 - 14
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortarget/service/impl/MonitorTargetServiceImpl.java

@@ -27,6 +27,7 @@ import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
 import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
 import vip.xiaonuo.coldchain.modular.monitortarget.entity.MonitorTarget;
+import vip.xiaonuo.coldchain.modular.monitortarget.entity.StatusCount;
 import vip.xiaonuo.coldchain.modular.monitortarget.enums.MonitorStatusEnum;
 import vip.xiaonuo.coldchain.modular.monitortarget.mapper.MonitorTargetMapper;
 import vip.xiaonuo.coldchain.modular.monitortarget.param.*;
@@ -40,6 +41,7 @@ import vip.xiaonuo.common.page.CommonPageRequest;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 监控对象管理Service接口实现类
@@ -54,6 +56,8 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
     private MonitorTargetRegionService monitorTargetRegionService;
     @Resource
     private MonitorDeviceService monitorDeviceService;
+    @Resource
+    private MonitorTargetMapper monitorTargetMapper;
 
     @Override
     public Page<MonitorTarget> page(MonitorTargetPageParam monitorTargetPageParam) {
@@ -161,21 +165,19 @@ public class MonitorTargetServiceImpl extends ServiceImpl<MonitorTargetMapper, M
 
     @Override
     public TargetStatus getTargetCount(String name) {
-        LambdaQueryWrapper<MonitorTarget> countQueryWrapper = new LambdaQueryWrapper<>();
-        LambdaQueryWrapper<MonitorTarget> onlineQueryWrapper = new LambdaQueryWrapper<>();
-        LambdaQueryWrapper<MonitorTarget> offlineQueryWrapper = new LambdaQueryWrapper<>();
-        if (ObjectUtil.isNotNull(name)) {
-            countQueryWrapper.eq(MonitorTarget::getName, name);
-            onlineQueryWrapper.eq(MonitorTarget::getName, name);
-            offlineQueryWrapper.eq(MonitorTarget::getName, name);
+        List<StatusCount> countByStatusList = monitorTargetMapper.getCountByStatus(name);
+        Long total = 0L;
+        Long online = 0L;
+        Long offline = 0L;
+        for (StatusCount statusCount : countByStatusList) {
+            if (statusCount.getStatus().equals("1")) {
+                online = statusCount.getCount();
+            } else {
+                offline = statusCount.getCount();
+            }
         }
-
-        long count = this.count(countQueryWrapper);
-        onlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.ONLINE.getCode());
-        long monitorTargetListOnline = count(onlineQueryWrapper);
-        offlineQueryWrapper.eq(MonitorTarget::getStatus, MonitorStatusEnum.OFF.getCode());
-        long monitorTargetListOffline = count(offlineQueryWrapper);
-        return new TargetStatus(count, monitorTargetListOnline, monitorTargetListOffline);
+        total = online + offline;
+        return new TargetStatus(total, online, offline);
     }
 
     @Override

+ 12 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionAddParam.java

@@ -12,14 +12,20 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortargetregion.param;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
+import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 
+import java.util.List;
+
 /**
  * 区域管理添加参数
  *
@@ -135,4 +141,10 @@ public class MonitorTargetRegionAddParam {
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
     private Float co2Down;
 
+    /**
+     * 告警接收人,存储告警通知的接收用户信息
+     */
+    @TableField(value = "alarm_users", typeHandler = SensorAlarmUserTypeHandler.class)
+    @Schema(description = "告警接收人,存储告警通知的接收用户信息")
+    private List<SensorAlarmUser> alarmUsers = Lists.newArrayList();
 }

+ 12 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionEditParam.java

@@ -12,15 +12,21 @@
  */
 package vip.xiaonuo.coldchain.modular.monitortargetregion.param;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
+import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 
+import java.util.List;
+
 /**
  * 区域管理编辑参数
  *
@@ -139,4 +145,10 @@ public class MonitorTargetRegionEditParam {
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
     private Float co2Down;
 
+    /**
+     * 告警接收人,存储告警通知的接收用户信息
+     */
+    @TableField(value = "alarm_users", typeHandler = SensorAlarmUserTypeHandler.class)
+    @Schema(description = "告警接收人,存储告警通知的接收用户信息")
+    private List<SensorAlarmUser> alarmUsers = Lists.newArrayList();
 }