同步代码

This commit is contained in:
lxj
2025-08-04 19:50:46 +08:00
parent 1d474d735e
commit 1f4e168b56
12 changed files with 329 additions and 35 deletions

View File

@@ -1,13 +1,13 @@
package org.dromara.sis.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.util.Date;
/**
* 告警对象 sis_alarm_events
@@ -64,5 +64,14 @@ public class SisAlarmEvents extends TenantEntity {
*/
private Date reportTime;
/**
* 事件状态
*/
private Integer state;
/**
* 工单id
*/
private Long workOrderId;
}

View File

@@ -1,15 +1,15 @@
package org.dromara.sis.domain.bo;
import org.dromara.sis.domain.SisAlarmEvents;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.sis.domain.SisAlarmEvents;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 告警业务对象 sis_alarm_events
@@ -25,19 +25,19 @@ public class SisAlarmEventsBo extends BaseEntity {
/**
* 报警记录ID
*/
@NotNull(message = "报警记录ID不能为空", groups = { EditGroup.class })
@NotNull(message = "报警记录ID不能为空", groups = {EditGroup.class})
private Long id;
/**
* 报警事件类型
*/
@NotNull(message = "报警事件类型不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "报警事件类型不能为空", groups = {AddGroup.class, EditGroup.class})
private Long type;
/**
* 报警记录级别(1一般2中级3紧急)
*/
@NotNull(message = "报警记录级别(1一般2中级3紧急)不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "报警记录级别(1一般2中级3紧急)不能为空", groups = {AddGroup.class, EditGroup.class})
private Long level;
/**
@@ -63,8 +63,17 @@ public class SisAlarmEventsBo extends BaseEntity {
/**
* 设备告警时间
*/
@NotNull(message = "设备告警时间不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "设备告警时间不能为空", groups = {AddGroup.class, EditGroup.class})
private Date reportTime;
/**
* 事件状态
*/
private Integer state;
/**
* 工单id
*/
private Long workOrderId;
}

View File

@@ -78,5 +78,13 @@ public class SisAlarmEventsVo implements Serializable {
@ExcelProperty(value = "设备告警时间")
private Date reportTime;
/**
* 事件状态
*/
private Integer state;
/**
* 工单id
*/
private Long workOrderId;
}

View File

@@ -1,10 +1,9 @@
package org.dromara.sis.service;
import org.dromara.sis.domain.SisAlarmEvents;
import org.dromara.sis.domain.vo.SisAlarmEventsVo;
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
import org.dromara.sis.domain.vo.SisAlarmEventsVo;
import java.util.Collection;
import java.util.List;
@@ -66,4 +65,10 @@ public interface ISisAlarmEventsService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 异步生成告警记录
*/
void createAlarmRecord(String deviceIp, Integer level, Integer type, byte[] smallImg, byte[] bigImg);
}

View File

@@ -71,10 +71,10 @@ public interface ISisDeviceManageService {
/**
* 通过设备ip查询设备信息
*
* @param deviceCode 设备编码
* @param deviceIp 设备编码
* @return 设备信息
*/
SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode);
SisDeviceManageVo queryVoByDeviceIp(String deviceIp);
/**
* 查询设备数

View File

@@ -1,24 +1,29 @@
package org.dromara.sis.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.sis.domain.SisAlarmEvents;
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
import org.dromara.sis.domain.vo.SisAlarmEventsVo;
import org.dromara.sis.domain.SisAlarmEvents;
import org.dromara.sis.domain.vo.SisDeviceManageVo;
import org.dromara.sis.mapper.SisAlarmEventsMapper;
import org.dromara.sis.service.ISisAlarmEventsService;
import org.dromara.sis.service.ISisDeviceManageService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 告警Service业务层处理
@@ -32,7 +37,10 @@ import java.util.Collection;
public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
private final SisAlarmEventsMapper baseMapper;
private final ISisDeviceManageService deviceManageService;
@DubboReference
private RemoteFileService remoteFileService;
/**
* 查询告警
*
@@ -134,5 +142,23 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
@Async
@Override
public void createAlarmRecord(String deviceIp, Integer level, Integer type, byte[] smallImg, byte[] bigImg) {
// 校验设备信息
SisDeviceManageVo sisDeviceManageVo = deviceManageService.queryVoByDeviceIp(deviceIp);
if(sisDeviceManageVo == null){
log.error("设备信息不存在,放弃此条告警记录。");
return;
}
// 上传图片
remoteFileService.upload(smallImg);
}
}

View File

@@ -175,9 +175,9 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService {
@Override
public SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode) {
public SisDeviceManageVo queryVoByDeviceIp(String deviceIp) {
LambdaQueryWrapper<SisDeviceManage> lqw = Wrappers.lambdaQuery();
lqw.eq(SisDeviceManage::getDeviceIp, deviceCode);
lqw.eq(SisDeviceManage::getDeviceIp, deviceIp);
return baseMapper.selectVoById(lqw);
}

View File

@@ -109,9 +109,8 @@ public class ZeroSensationPassageServiceImpl implements IZeroSensationPassageSer
/**
* 生成告警事件
*/
public void createAlarmRecord() {
public void createAlarmRecord(String deviceIp, Integer level, Integer type, byte[] smallImg, byte[] bigImg) {
alarmEventsService.createAlarmRecord(deviceIp, level, type, smallImg, bigImg);
}
/**