refactor(alarm): 重构报警处置分配功能并优化消息推送机制
parent
beeaa44527
commit
6ef1c34f9c
|
|
@ -2,16 +2,14 @@ package com.zcloud.command;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
|
||||||
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
|
||||||
import com.zcloud.domain.config.MessageTemplateConfig;
|
|
||||||
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
||||||
|
import com.zcloud.domain.gateway.AlarmDisposeLogGateway;
|
||||||
import com.zcloud.domain.gateway.AlarmRecordGateway;
|
import com.zcloud.domain.gateway.AlarmRecordGateway;
|
||||||
|
import com.zcloud.domain.model.AlarmDisposeLogE;
|
||||||
import com.zcloud.domain.model.AlarmRecordE;
|
import com.zcloud.domain.model.AlarmRecordE;
|
||||||
import com.zcloud.dto.AlarmDisposeAssignCmd;
|
import com.zcloud.dto.AlarmDisposeAssignCmd;
|
||||||
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
||||||
|
|
@ -19,9 +17,9 @@ import com.zcloud.gbscommon.todolistmq.event.TodoListAddBatchEvent;
|
||||||
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
|
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
|
||||||
import com.zcloud.gbscommon.utils.Tools;
|
import com.zcloud.gbscommon.utils.Tools;
|
||||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||||
|
import com.zcloud.service.AlarmMessageService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -42,7 +40,8 @@ import java.util.List;
|
||||||
public class AlarmDisposeAssignExe {
|
public class AlarmDisposeAssignExe {
|
||||||
|
|
||||||
private final AlarmRecordGateway alarmRecordGateway;
|
private final AlarmRecordGateway alarmRecordGateway;
|
||||||
private final MessageTemplateConfig messageTemplateConfig;
|
private final AlarmDisposeLogGateway alarmDisposeLogGateway;
|
||||||
|
private final AlarmMessageService alarmMessageService;
|
||||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -59,44 +58,38 @@ public class AlarmDisposeAssignExe {
|
||||||
}
|
}
|
||||||
checkAssignStatus(cmd.getStatus());
|
checkAssignStatus(cmd.getStatus());
|
||||||
|
|
||||||
// 获取当前时间的LocalDateTime "yyyy-MM-dd HH:mm:ss"
|
|
||||||
LocalDateTime assignTime = LocalDateTime.now();
|
LocalDateTime assignTime = LocalDateTime.now();
|
||||||
List<TodoListAddEvent> todoListAddEventList = new ArrayList<>();
|
List<AlarmRecordE> alarmRecords = new ArrayList<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 查询报警记录
|
|
||||||
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
|
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
|
||||||
if (Tools.isEmpty(alarmRecord)) {
|
if (Tools.isEmpty(alarmRecord)) {
|
||||||
return SingleResponse.buildFailure("id:"+id+"报警记录不存在;");
|
throw new BizException("id:" + id + "报警记录不存在;");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查状态:只有待研判(10)状态可以分配
|
|
||||||
if (!AlarmRecordStatusEnum.PENDING_REVIEW.sameStatus(alarmRecord.getStatus())) {
|
if (!AlarmRecordStatusEnum.PENDING_REVIEW.sameStatus(alarmRecord.getStatus())) {
|
||||||
return SingleResponse.buildFailure("报警编码为" + alarmRecord.getAlarmNo() + "报警记录状态不是待研判;");
|
throw new BizException("报警编码为" + alarmRecord.getAlarmNo() + "报警记录状态不是待研判;");
|
||||||
}
|
}
|
||||||
|
alarmRecords.add(alarmRecord);
|
||||||
|
}
|
||||||
|
|
||||||
// 更新报警记录状态和处置人
|
List<TodoListAddEvent> todoListAddEventList = new ArrayList<>();
|
||||||
|
List<AlarmRecordE> notifyRecords = new ArrayList<>();
|
||||||
|
for (AlarmRecordE alarmRecord : alarmRecords) {
|
||||||
AlarmRecordE updateEntity = new AlarmRecordE();
|
AlarmRecordE updateEntity = new AlarmRecordE();
|
||||||
BeanUtil.copyProperties(cmd, updateEntity);
|
BeanUtil.copyProperties(cmd, updateEntity);
|
||||||
updateEntity.setId(id);
|
updateEntity.setId(alarmRecord.getId());
|
||||||
updateEntity.setAssignTime(assignTime);
|
updateEntity.setAssignTime(assignTime);
|
||||||
updateEntity.setAssignUserId(AuthContext.getUserId());
|
updateEntity.setAssignUserId(AuthContext.getUserId());
|
||||||
alarmRecordGateway.update(updateEntity);
|
alarmRecordGateway.update(updateEntity);
|
||||||
if (AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(cmd.getStatus())) {
|
|
||||||
// 发送站内信
|
|
||||||
sendMessage(messageTemplateConfig.getDispose(), cmd.getDisposeUserId());
|
|
||||||
//待排查 待办
|
|
||||||
TodoListAddEvent event = new TodoListAddEvent();
|
|
||||||
event.setTitle("您有一条【物联网报警】待处置");
|
|
||||||
event.setContent("您有一条报警信息,请及时进行处置。");
|
|
||||||
event.setForeignKey(alarmRecord.getId()); // 业务表ID -申请
|
|
||||||
event.setForeignSubsidiaryKey(alarmRecord.getId()); // 业务附表ID 没有附表时为foreignKey的值
|
|
||||||
event.setReceiveUser(cmd.getDisposeUserId());// user表ID
|
|
||||||
event.setPcFlag(0); // 是否PC端待办 1是 0否
|
|
||||||
event.setAppFlag(1); // 是否APP端待办 1是 0否
|
|
||||||
event.setOtherParams(new JSONObject());
|
|
||||||
todoListAddEventList.add(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
alarmDisposeLogGateway.add(buildAssignLog(alarmRecord, cmd, assignTime));
|
||||||
|
if (AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(cmd.getStatus())) {
|
||||||
|
notifyRecords.add(buildNotifyRecord(alarmRecord, cmd, assignTime));
|
||||||
|
todoListAddEventList.add(buildDisposeTodoEvent(alarmRecord.getId(), cmd.getDisposeUserId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (AlarmRecordE notifyRecord : notifyRecords) {
|
||||||
|
alarmMessageService.sendDisposePushMessage(notifyRecord, cmd.getDisposeUserId());
|
||||||
}
|
}
|
||||||
if (AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(cmd.getStatus()) && !todoListAddEventList.isEmpty()) {
|
if (AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(cmd.getStatus()) && !todoListAddEventList.isEmpty()) {
|
||||||
sendTodoBatch(todoListAddEventList);
|
sendTodoBatch(todoListAddEventList);
|
||||||
|
|
@ -104,10 +97,6 @@ public class AlarmDisposeAssignExe {
|
||||||
return SingleResponse.buildSuccess();
|
return SingleResponse.buildSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@DubboReference
|
|
||||||
private MessageFacade messageFacade;
|
|
||||||
|
|
||||||
private void checkAssignStatus(Integer status) {
|
private void checkAssignStatus(Integer status) {
|
||||||
if (!AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(status)
|
if (!AlarmRecordStatusEnum.PENDING_DISPOSE.sameStatus(status)
|
||||||
&& !AlarmRecordStatusEnum.FALSE_ALARM.sameStatus(status)) {
|
&& !AlarmRecordStatusEnum.FALSE_ALARM.sameStatus(status)) {
|
||||||
|
|
@ -127,23 +116,47 @@ public class AlarmDisposeAssignExe {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(String template, Long userId) {
|
private AlarmDisposeLogE buildAssignLog(AlarmRecordE alarmRecord, AlarmDisposeAssignCmd cmd, LocalDateTime assignTime) {
|
||||||
try {
|
AlarmDisposeLogE log = new AlarmDisposeLogE();
|
||||||
MessageSendCmd messageSendCmd = new MessageSendCmd();
|
log.setAlarmDisposalLogId(UuidUtil.get32UUID());
|
||||||
messageSendCmd.setBusinessId(UuidUtil.get32UUID());
|
log.setAlarmId(alarmRecord.getId());
|
||||||
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
|
log.setAlarmNo(alarmRecord.getAlarmNo());
|
||||||
messageTargetCmd.setUserId(userId);
|
log.setActionType("MANUAL_ASSIGN");
|
||||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
log.setBeforeStatus(alarmRecord.getStatus());
|
||||||
messageSendCmd.setSourceCode(template);
|
log.setAfterStatus(cmd.getStatus());
|
||||||
messageSendCmd.setNeedTokenEnum(false);
|
log.setOperatorId(AuthContext.getUserId());
|
||||||
|
log.setActionDesc("处置分配");
|
||||||
log.info("发送站内信人员:{}", userId);
|
log.setActionTime(assignTime);
|
||||||
SingleResponse<Boolean> result = messageFacade.send(messageSendCmd);
|
log.setTenantId(alarmRecord.getTenantId());
|
||||||
log.info("发送站内信结果:{}", result.toString());
|
log.setOrgId(alarmRecord.getOrgId());
|
||||||
} catch (Exception e){
|
log.setDeleteEnum("FALSE");
|
||||||
log.error("处置分配站内信发送失败,不影响分配主流程,接收人ID:{},错误:{}", userId, e.getMessage(), e);
|
return log;
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AlarmRecordE buildNotifyRecord(AlarmRecordE alarmRecord, AlarmDisposeAssignCmd cmd, LocalDateTime assignTime) {
|
||||||
|
AlarmRecordE notifyRecord = new AlarmRecordE();
|
||||||
|
BeanUtil.copyProperties(alarmRecord, notifyRecord);
|
||||||
|
notifyRecord.setStatus(cmd.getStatus());
|
||||||
|
notifyRecord.setDisposeUserId(cmd.getDisposeUserId());
|
||||||
|
notifyRecord.setAssignTime(assignTime);
|
||||||
|
notifyRecord.setAssignUserId(AuthContext.getUserId());
|
||||||
|
notifyRecord.setAlarmLevel(cmd.getAlarmLevel());
|
||||||
|
notifyRecord.setAlarmLevelName(cmd.getAlarmLevelName());
|
||||||
|
notifyRecord.setAlarmType(cmd.getAlarmType());
|
||||||
|
notifyRecord.setAlarmTypeName(cmd.getAlarmTypeName());
|
||||||
|
return notifyRecord;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TodoListAddEvent buildDisposeTodoEvent(Long alarmId, Long disposeUserId) {
|
||||||
|
TodoListAddEvent event = new TodoListAddEvent();
|
||||||
|
event.setTitle("您有一条【物联网报警】待处理");
|
||||||
|
event.setContent("待处置");
|
||||||
|
event.setForeignKey(alarmId);
|
||||||
|
event.setForeignSubsidiaryKey(alarmId);
|
||||||
|
event.setReceiveUser(disposeUserId);
|
||||||
|
event.setPcFlag(0);
|
||||||
|
event.setAppFlag(1);
|
||||||
|
event.setOtherParams(new JSONObject());
|
||||||
|
return event;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.command;
|
package com.zcloud.command;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
||||||
|
|
@ -18,7 +19,6 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,8 +43,6 @@ public class AlarmDisposeBatchAssignExe {
|
||||||
throw new BizException("请选择要分配的报警记录");
|
throw new BizException("请选择要分配的报警记录");
|
||||||
}
|
}
|
||||||
|
|
||||||
String assignTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
||||||
|
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 查询报警记录
|
// 查询报警记录
|
||||||
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
|
AlarmRecordE alarmRecord = alarmRecordGateway.getById(id);
|
||||||
|
|
@ -63,9 +61,9 @@ public class AlarmDisposeBatchAssignExe {
|
||||||
updateEntity.setStatus(AlarmRecordStatusEnum.PENDING_DISPOSE.getStatus()); // 待处置
|
updateEntity.setStatus(AlarmRecordStatusEnum.PENDING_DISPOSE.getStatus()); // 待处置
|
||||||
updateEntity.setManagerId(cmd.getDisposeUserId());
|
updateEntity.setManagerId(cmd.getDisposeUserId());
|
||||||
updateEntity.setDisposeUserId(cmd.getDisposeUserId());
|
updateEntity.setDisposeUserId(cmd.getDisposeUserId());
|
||||||
// updateEntity.setAssignTime(assignTime);
|
|
||||||
updateEntity.setTenantId(cmd.getTenantId());
|
updateEntity.setTenantId(cmd.getTenantId());
|
||||||
updateEntity.setAssignTime(LocalDateTime.now());
|
LocalDateTime assignTime = LocalDateTime.now();
|
||||||
|
updateEntity.setAssignTime(assignTime);
|
||||||
updateEntity.setAssignUserId(AuthContext.getUserId());
|
updateEntity.setAssignUserId(AuthContext.getUserId());
|
||||||
updateEntity.setOrgId(cmd.getOrgId());
|
updateEntity.setOrgId(cmd.getOrgId());
|
||||||
|
|
||||||
|
|
@ -81,18 +79,32 @@ public class AlarmDisposeBatchAssignExe {
|
||||||
log.setAfterStatus(AlarmRecordStatusEnum.PENDING_DISPOSE.getStatus());
|
log.setAfterStatus(AlarmRecordStatusEnum.PENDING_DISPOSE.getStatus());
|
||||||
log.setOperatorId(cmd.getDisposeUserId());
|
log.setOperatorId(cmd.getDisposeUserId());
|
||||||
log.setActionDesc("批量分配处置");
|
log.setActionDesc("批量分配处置");
|
||||||
// log.setActionTime(assignTime);
|
log.setActionTime(assignTime);
|
||||||
log.setTenantId(cmd.getTenantId());
|
log.setTenantId(cmd.getTenantId());
|
||||||
log.setOrgId(cmd.getOrgId());
|
log.setOrgId(cmd.getOrgId());
|
||||||
log.setDeleteEnum("FALSE");
|
log.setDeleteEnum("FALSE");
|
||||||
|
|
||||||
alarmDisposeLogGateway.add(log);
|
alarmDisposeLogGateway.add(log);
|
||||||
|
|
||||||
|
AlarmRecordE notifyRecord = buildNotifyRecord(alarmRecord, updateEntity);
|
||||||
// 发送报警处置推送消息给处置人
|
// 发送报警处置推送消息给处置人
|
||||||
alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId());
|
alarmMessageService.sendDisposePushMessage(notifyRecord, cmd.getDisposeUserId());
|
||||||
|
|
||||||
// 新增处置人待办
|
// 新增处置人待办
|
||||||
alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
|
alarmTodoService.addDisposeTodo(notifyRecord, cmd.getDisposeUserId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AlarmRecordE buildNotifyRecord(AlarmRecordE sourceRecord, AlarmRecordE updateEntity) {
|
||||||
|
AlarmRecordE notifyRecord = new AlarmRecordE();
|
||||||
|
BeanUtil.copyProperties(sourceRecord, notifyRecord);
|
||||||
|
notifyRecord.setStatus(updateEntity.getStatus());
|
||||||
|
notifyRecord.setManagerId(updateEntity.getManagerId());
|
||||||
|
notifyRecord.setDisposeUserId(updateEntity.getDisposeUserId());
|
||||||
|
notifyRecord.setAssignTime(updateEntity.getAssignTime());
|
||||||
|
notifyRecord.setAssignUserId(updateEntity.getAssignUserId());
|
||||||
|
notifyRecord.setTenantId(updateEntity.getTenantId());
|
||||||
|
notifyRecord.setOrgId(updateEntity.getOrgId());
|
||||||
|
return notifyRecord;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.zcloud.service;
|
||||||
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
import com.jjb.saas.message.client.message.facede.MessageFacade;
|
||||||
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
import com.jjb.saas.message.client.message.request.MessageSendCmd;
|
||||||
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
|
||||||
|
import com.zcloud.domain.config.MessageTemplateConfig;
|
||||||
import com.zcloud.domain.model.AlarmRecordE;
|
import com.zcloud.domain.model.AlarmRecordE;
|
||||||
import com.zcloud.gbscommon.utils.UuidUtil;
|
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
@ -10,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -28,9 +30,7 @@ public class AlarmMessageService {
|
||||||
@DubboReference
|
@DubboReference
|
||||||
private MessageFacade messageFacade;
|
private MessageFacade messageFacade;
|
||||||
|
|
||||||
// TODO: 后续需要配置消息模板编码
|
private final MessageTemplateConfig messageTemplateConfig;
|
||||||
private static final String AUTO_PUSH_TEMPLATE_CODE = "MT0001XX";
|
|
||||||
private static final String DISPOSE_PUSH_TEMPLATE_CODE = "MT0001XX";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送报警自动推送消息
|
* 发送报警自动推送消息
|
||||||
|
|
@ -51,7 +51,12 @@ public class AlarmMessageService {
|
||||||
messageTargetCmd.setUserId(managerId);
|
messageTargetCmd.setUserId(managerId);
|
||||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
messageSendCmd.setTargetCmd(messageTargetCmd);
|
||||||
|
|
||||||
messageSendCmd.setSourceCode(AUTO_PUSH_TEMPLATE_CODE);
|
String templateCode = messageTemplateConfig.getAssign();
|
||||||
|
if (!StringUtils.hasText(templateCode)) {
|
||||||
|
log.warn("报警自动推送消息模板未配置,跳过发送,报警ID: {}", alarmRecord.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
messageSendCmd.setSourceCode(templateCode);
|
||||||
messageSendCmd.setNeedTokenEnum(false);
|
messageSendCmd.setNeedTokenEnum(false);
|
||||||
|
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
|
@ -89,7 +94,12 @@ public class AlarmMessageService {
|
||||||
messageTargetCmd.setUserId(disposeUserId);
|
messageTargetCmd.setUserId(disposeUserId);
|
||||||
messageSendCmd.setTargetCmd(messageTargetCmd);
|
messageSendCmd.setTargetCmd(messageTargetCmd);
|
||||||
|
|
||||||
messageSendCmd.setSourceCode(DISPOSE_PUSH_TEMPLATE_CODE);
|
String templateCode = messageTemplateConfig.getDispose();
|
||||||
|
if (!StringUtils.hasText(templateCode)) {
|
||||||
|
log.warn("报警处置推送消息模板未配置,跳过发送,报警ID: {}", alarmRecord.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
messageSendCmd.setSourceCode(templateCode);
|
||||||
messageSendCmd.setNeedTokenEnum(false);
|
messageSendCmd.setNeedTokenEnum(false);
|
||||||
|
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
|
@ -107,4 +117,4 @@ public class AlarmMessageService {
|
||||||
alarmRecord.getId(), disposeUserId, e.getMessage(), e);
|
alarmRecord.getId(), disposeUserId, e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package com.zcloud.service;
|
package com.zcloud.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
import com.zcloud.domain.enums.AlarmRecordStatusEnum;
|
||||||
import com.zcloud.domain.model.AlarmRecordE;
|
import com.zcloud.domain.model.AlarmRecordE;
|
||||||
|
|
@ -12,6 +15,8 @@ import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmTodoService - 报警待办服务
|
* AlarmTodoService - 报警待办服务
|
||||||
* @Author wangyan
|
* @Author wangyan
|
||||||
|
|
@ -128,9 +133,12 @@ public class AlarmTodoService {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
TodoListCompleteEvent event = new TodoListCompleteEvent(alarmId, String.valueOf(alarmId));
|
TodoListCompleteEvent event1 = new TodoListCompleteEvent();
|
||||||
todoListEventPusherUtil.sendMessageCompleteEvent(event);
|
event1.setForeignSubsidiaryKey(alarmId);// 业务附表ID 没有附表时为foreignKey的值
|
||||||
log.info("待办完成发送成功,报警ID: {}", alarmId);
|
event1.setCreateTime(DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN));
|
||||||
|
log.info("发送待办消息,参数:{}", JSONUtil.toJsonStr(event1));
|
||||||
|
boolean b = todoListEventPusherUtil.sendMessageCompleteEvent(event1);
|
||||||
|
log.info("发送待办消息结果:{}", JSONUtil.toJsonStr(b));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("待办完成发送失败,报警ID: {}, 错误: {}", alarmId, e.getMessage(), e);
|
log.error("待办完成发送失败,报警ID: {}, 错误: {}", alarmId, e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,7 @@ public class AppAlarmDisposeSubmitCmd extends Command {
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "处置状态 30已消警/40误报", name = "status", required = true)
|
@ApiModelProperty(value = "处置状态 30已消警/40误报", name = "status", required = true)
|
||||||
@NotNull(message = "处置状态不能为空")
|
private Integer status=30;
|
||||||
private Integer status;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "处置结果快照", name = "disposeResult")
|
@ApiModelProperty(value = "处置结果快照", name = "disposeResult")
|
||||||
private String disposeResult;
|
private String disposeResult;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue