|
|
@ -35,103 +35,106 @@ import java.util.*; |
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@Service |
|
|
|
@RequiredArgsConstructor |
|
|
|
@RequiredArgsConstructor |
|
|
|
public class AlarmHandleFlowServiceImpl extends BaseServiceImpl<AlarmHandleFlowMapper, AlarmHandleFlowEntity> implements AlarmHandleFlowService{ |
|
|
|
public class AlarmHandleFlowServiceImpl extends BaseServiceImpl<AlarmHandleFlowMapper, AlarmHandleFlowEntity> implements AlarmHandleFlowService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IMessageClient messageClient; |
|
|
|
private final IMessageClient messageClient; |
|
|
|
|
|
|
|
|
|
|
|
private final ISysClient sysClient; |
|
|
|
private final ISysClient sysClient; |
|
|
|
|
|
|
|
|
|
|
|
private final IFlowClient processClient; |
|
|
|
private final IFlowClient processClient; |
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private AlarmHandleMapper alarmHandleMapper; |
|
|
|
private AlarmHandleMapper alarmHandleMapper; |
|
|
|
|
|
|
|
|
|
|
|
private final IFdpDiagnoseClient iFdpDiagnoseClient; |
|
|
|
private final IFdpDiagnoseClient iFdpDiagnoseClient; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public R listenAndUpdate(ProcessWorkFlowResponse processWorkFlowResponse) { |
|
|
|
public R listenAndUpdate(ProcessWorkFlowResponse processWorkFlowResponse) { |
|
|
|
long taskId; |
|
|
|
long taskId; |
|
|
|
AlarmHandleFlowEntity alarmHandleFlowEntity; |
|
|
|
AlarmHandleFlowEntity alarmHandleFlowEntity; |
|
|
|
log.info("消缺消息开始转换"+processWorkFlowResponse); |
|
|
|
log.info("消缺消息开始转换" + processWorkFlowResponse); |
|
|
|
try { |
|
|
|
try { |
|
|
|
Map<String, Object> variables = (Map<String, Object>) processWorkFlowResponse.getVariables(); |
|
|
|
Map<String, Object> variables = (Map<String, Object>) processWorkFlowResponse.getVariables(); |
|
|
|
//现象缺陷全表更新
|
|
|
|
//现象缺陷全表更新
|
|
|
|
alarmHandleFlowEntity= JSONObject.parseObject(JSONObject.toJSONString(variables), new TypeReference<AlarmHandleFlowEntity>(){}); |
|
|
|
alarmHandleFlowEntity = JSONObject.parseObject(JSONObject.toJSONString(variables), new TypeReference<AlarmHandleFlowEntity>() { |
|
|
|
} catch (Exception e) { |
|
|
|
}); |
|
|
|
log.info("消息转换失败:"+e.getMessage()); |
|
|
|
} catch (Exception e) { |
|
|
|
return R.fail("消息转换失败"); |
|
|
|
log.info("消息转换失败:" + e.getMessage()); |
|
|
|
} |
|
|
|
return R.fail("消息转换失败"); |
|
|
|
taskId=alarmHandleFlowEntity.getId(); |
|
|
|
} |
|
|
|
//设置当前环节+当前环节处理人
|
|
|
|
taskId = alarmHandleFlowEntity.getId(); |
|
|
|
if (StringUtils.isNotEmpty(processWorkFlowResponse.getNextStepOperator())) { |
|
|
|
//设置当前环节+当前环节处理人
|
|
|
|
alarmHandleFlowEntity.setCurrentOperator(processWorkFlowResponse.getTaskName()); |
|
|
|
if (StringUtils.isNotEmpty(processWorkFlowResponse.getNextStepOperator())) { |
|
|
|
alarmHandleFlowEntity.setCurrentLinkHandler(processWorkFlowResponse.getNextStepOperator()); |
|
|
|
alarmHandleFlowEntity.setCurrentOperator(processWorkFlowResponse.getTaskName()); |
|
|
|
}else { |
|
|
|
alarmHandleFlowEntity.setCurrentLinkHandler(processWorkFlowResponse.getNextStepOperator()); |
|
|
|
alarmHandleFlowEntity.setCurrentOperator("流程结束"); |
|
|
|
} else { |
|
|
|
alarmHandleFlowEntity.setCurrentLinkHandler(""); |
|
|
|
alarmHandleFlowEntity.setCurrentOperator("流程结束"); |
|
|
|
// 预警
|
|
|
|
alarmHandleFlowEntity.setCurrentLinkHandler(""); |
|
|
|
if(AlarmHandleConstant.EARLY_WARNING.equals(alarmHandleFlowEntity.getAlarmType())){ |
|
|
|
if (1l == alarmHandleFlowEntity.getHandleWay()) { |
|
|
|
Map<String, Object> map=new HashMap<>(); |
|
|
|
//如果是误诊,把处理结果复制到误报原因
|
|
|
|
map.put("uuid",alarmHandleFlowEntity.getAlarmId()); |
|
|
|
alarmHandleFlowEntity.setFalseAlarmDesc(alarmHandleFlowEntity.getDealDesc()); |
|
|
|
map.put("result",alarmHandleFlowEntity.getHandleWay()); |
|
|
|
alarmHandleMapper.update(null, Wrappers.<AlarmHandleEntity>lambdaUpdate() |
|
|
|
if (1l==alarmHandleFlowEntity.getHandleWay()){ |
|
|
|
.set(AlarmHandleEntity::getHandleWay, alarmHandleFlowEntity.getHandleWay()) |
|
|
|
//处理发现误报,修改对应状态
|
|
|
|
.set(AlarmHandleEntity::getFalseAlarmDesc, alarmHandleFlowEntity.getDealDesc()) |
|
|
|
map.put("result_info",alarmHandleFlowEntity.getDealDesc()); |
|
|
|
.eq(AlarmHandleEntity::getAlarmId, alarmHandleFlowEntity.getAlarmId())); |
|
|
|
alarmHandleMapper.update(null,Wrappers.<AlarmHandleEntity>lambdaUpdate() |
|
|
|
} else { |
|
|
|
.set(AlarmHandleEntity::getHandleWay, alarmHandleFlowEntity.getHandleWay()) |
|
|
|
//流程结束把告警状态修改为结束
|
|
|
|
.set(AlarmHandleEntity::getFalseAlarmDesc, alarmHandleFlowEntity.getDealDesc()) |
|
|
|
alarmHandleFlowEntity.setHandleWay(6L); |
|
|
|
.eq(AlarmHandleEntity::getAlarmId, alarmHandleFlowEntity.getAlarmId())); |
|
|
|
//设置处理完成
|
|
|
|
|
|
|
|
alarmHandleMapper.update(null, Wrappers.<AlarmHandleEntity>lambdaUpdate() |
|
|
|
|
|
|
|
.set(AlarmHandleEntity::getHandleWay, 6l) |
|
|
|
|
|
|
|
.set(AlarmHandleEntity::getFalseAlarmDesc, alarmHandleFlowEntity.getDealDesc()) |
|
|
|
|
|
|
|
.eq(AlarmHandleEntity::getAlarmId, alarmHandleFlowEntity.getAlarmId())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 预警,调用fdp
|
|
|
|
|
|
|
|
if (AlarmHandleConstant.EARLY_WARNING.equals(alarmHandleFlowEntity.getAlarmType())) { |
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
|
|
|
map.put("uuid", alarmHandleFlowEntity.getAlarmId()); |
|
|
|
|
|
|
|
map.put("result", alarmHandleFlowEntity.getHandleWay()); |
|
|
|
|
|
|
|
map.put("result_info", alarmHandleFlowEntity.getDealDesc()); |
|
|
|
|
|
|
|
//流程结束后才,调用fdp修改状态的接口
|
|
|
|
|
|
|
|
R r = iFdpDiagnoseClient.setFaultStatusInfo(map); |
|
|
|
|
|
|
|
if (!r.isSuccess()) { |
|
|
|
|
|
|
|
throw new ServiceException("修改告警状态异常,请稍后重试!"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
} |
|
|
|
//设置处理完成
|
|
|
|
this.updateById(alarmHandleFlowEntity); |
|
|
|
alarmHandleMapper.update(null,Wrappers.<AlarmHandleEntity>lambdaUpdate() |
|
|
|
//推送消息中心相关消息
|
|
|
|
.set(AlarmHandleEntity::getHandleWay, 6l) |
|
|
|
sendMessage(processWorkFlowResponse, alarmHandleFlowEntity, taskId); |
|
|
|
.set(AlarmHandleEntity::getFalseAlarmDesc, alarmHandleFlowEntity.getDealDesc()) |
|
|
|
log.info("消缺消息转换结束" + processWorkFlowResponse); |
|
|
|
.eq(AlarmHandleEntity::getAlarmId, alarmHandleFlowEntity.getAlarmId())); |
|
|
|
return R.success("消息保存成功"); |
|
|
|
map.put("result_info",alarmHandleFlowEntity.getDealDesc()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//流程结束后才,调用fdp修改状态的接口
|
|
|
|
|
|
|
|
R r = iFdpDiagnoseClient.setFaultStatusInfo(map); |
|
|
|
|
|
|
|
if (!r.isSuccess()){ |
|
|
|
|
|
|
|
throw new ServiceException("修改告警状态异常,请稍后重试!"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.updateById(alarmHandleFlowEntity); |
|
|
|
|
|
|
|
//推送消息中心相关消息
|
|
|
|
|
|
|
|
sendMessage(processWorkFlowResponse, alarmHandleFlowEntity,taskId); |
|
|
|
|
|
|
|
log.info("消缺消息转换结束"+processWorkFlowResponse); |
|
|
|
|
|
|
|
return R.success("消息保存成功"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void sendMessage(ProcessWorkFlowResponse processWorkFlowResponse, AlarmHandleFlowEntity alarmHandleFlowEntity,Long taskId) { |
|
|
|
private void sendMessage(ProcessWorkFlowResponse processWorkFlowResponse, AlarmHandleFlowEntity alarmHandleFlowEntity, Long taskId) { |
|
|
|
//推送消息
|
|
|
|
//推送消息
|
|
|
|
if (processWorkFlowResponse.getTaskId() != null) { |
|
|
|
if (processWorkFlowResponse.getTaskId() != null) { |
|
|
|
BusinessMessageDTO message = new BusinessMessageDTO(); |
|
|
|
BusinessMessageDTO message = new BusinessMessageDTO(); |
|
|
|
message.setBusinessClassify("system"); |
|
|
|
message.setBusinessClassify("system"); |
|
|
|
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); |
|
|
|
message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); |
|
|
|
message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); |
|
|
|
message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); |
|
|
|
message.setTaskId(Optional.ofNullable(taskId).orElse(System.currentTimeMillis())); |
|
|
|
message.setTaskId(Optional.ofNullable(taskId).orElse(System.currentTimeMillis())); |
|
|
|
message.setTenantId("200000"); |
|
|
|
message.setTenantId("200000"); |
|
|
|
String countent = |
|
|
|
String countent = |
|
|
|
"您的告警处理流程待审批!告警内容:".concat(Optional.ofNullable(alarmHandleFlowEntity.getAlarmContent()).orElse("")) |
|
|
|
"您的告警处理流程待审批!告警内容:".concat(Optional.ofNullable(alarmHandleFlowEntity.getAlarmContent()).orElse("")) |
|
|
|
.concat(",审批环节:") |
|
|
|
.concat(",审批环节:") |
|
|
|
.concat(processWorkFlowResponse.getTaskName()); |
|
|
|
.concat(processWorkFlowResponse.getTaskName()); |
|
|
|
message.setContent(countent); |
|
|
|
message.setContent(countent); |
|
|
|
message.setDeptId(alarmHandleFlowEntity.getCreateDept()); |
|
|
|
message.setDeptId(alarmHandleFlowEntity.getCreateDept()); |
|
|
|
R<String> deptName = sysClient.getDeptName(alarmHandleFlowEntity.getCreateDept()); |
|
|
|
R<String> deptName = sysClient.getDeptName(alarmHandleFlowEntity.getCreateDept()); |
|
|
|
if (deptName.isSuccess()) { |
|
|
|
if (deptName.isSuccess()) { |
|
|
|
message.setDeptName(deptName.getData()); |
|
|
|
message.setDeptName(deptName.getData()); |
|
|
|
} |
|
|
|
} |
|
|
|
String userIds = processWorkFlowResponse.getUserId(); |
|
|
|
String userIds = processWorkFlowResponse.getUserId(); |
|
|
|
if (StringUtils.isBlank(userIds)) { |
|
|
|
if (StringUtils.isBlank(userIds)) { |
|
|
|
log.error("推送的消息不能为空哦,{}", userIds); |
|
|
|
log.error("推送的消息不能为空哦,{}", userIds); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
message.setUserIds(userIds); |
|
|
|
message.setUserIds(userIds); |
|
|
|
message.setCreateUser(alarmHandleFlowEntity.getCreateUser()); |
|
|
|
message.setCreateUser(alarmHandleFlowEntity.getCreateUser()); |
|
|
|
messageClient.sendAppAndWsMsgByUsers(message); |
|
|
|
messageClient.sendAppAndWsMsgByUsers(message); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|