App消息推送调整
This commit is contained in:
@@ -51,6 +51,7 @@ public class FileCommonUtils {
|
|||||||
*/
|
*/
|
||||||
public void cleanRedisData(String nDid, String fileName) {
|
public void cleanRedisData(String nDid, String fileName) {
|
||||||
redisUtil.deleteKeysByString("downloadFilePath:"+ nDid);
|
redisUtil.deleteKeysByString("downloadFilePath:"+ nDid);
|
||||||
|
redisUtil.deleteKeysByString("isWeb:"+ nDid);
|
||||||
redisUtil.delete("fileDowning:"+nDid);
|
redisUtil.delete("fileDowning:"+nDid);
|
||||||
redisUtil.delete("fileCheck" + nDid + fileName);
|
redisUtil.delete("fileCheck" + nDid + fileName);
|
||||||
redisUtil.delete(AppRedisKey.FILE_PART_TIME.concat(fileName));
|
redisUtil.delete(AppRedisKey.FILE_PART_TIME.concat(fileName));
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ public class AskDeviceDataServiceImpl implements AskDeviceDataService {
|
|||||||
public boolean downloadFile(String nDid, String name, Integer size, String fileCheck) {
|
public boolean downloadFile(String nDid, String name, Integer size, String fileCheck) {
|
||||||
boolean result = true;
|
boolean result = true;
|
||||||
try {
|
try {
|
||||||
|
redisUtil.saveByKeyWithExpire("isWeb:"+nDid,name,30L);
|
||||||
redisUtil.saveByKeyWithExpire("fileDowning:"+nDid,"fileDowning",300L);
|
redisUtil.saveByKeyWithExpire("fileDowning:"+nDid,"fileDowning",300L);
|
||||||
redisUtil.saveByKey("fileCheck"+nDid+name,fileCheck);
|
redisUtil.saveByKey("fileCheck"+nDid+name,fileCheck);
|
||||||
Object object = getDeviceMid(nDid);
|
Object object = getDeviceMid(nDid);
|
||||||
@@ -104,6 +105,7 @@ public class AskDeviceDataServiceImpl implements AskDeviceDataService {
|
|||||||
redisUtil.delete("fileDowning:"+nDid);
|
redisUtil.delete("fileDowning:"+nDid);
|
||||||
redisUtil.delete("fileCheck"+nDid+name);
|
redisUtil.delete("fileCheck"+nDid+name);
|
||||||
redisUtil.delete("fileDownUserId"+nDid+name);
|
redisUtil.delete("fileDownUserId"+nDid+name);
|
||||||
|
redisUtil.deleteKeysByString("isWeb:"+ nDid);
|
||||||
throw new BusinessException(AlgorithmResponseEnum.FILE_DOWNLOAD_ERROR);
|
throw new BusinessException(AlgorithmResponseEnum.FILE_DOWNLOAD_ERROR);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import com.njcn.oss.constant.OssPath;
|
|||||||
import com.njcn.oss.utils.FileStorageUtil;
|
import com.njcn.oss.utils.FileStorageUtil;
|
||||||
import com.njcn.redis.pojo.enums.AppRedisKey;
|
import com.njcn.redis.pojo.enums.AppRedisKey;
|
||||||
import com.njcn.redis.utils.RedisUtil;
|
import com.njcn.redis.utils.RedisUtil;
|
||||||
import com.njcn.user.api.UserFeignClient;
|
|
||||||
import com.njcn.zlevent.param.CsEventParam;
|
import com.njcn.zlevent.param.CsEventParam;
|
||||||
import com.njcn.zlevent.pojo.dto.FileInfoDto;
|
import com.njcn.zlevent.pojo.dto.FileInfoDto;
|
||||||
import com.njcn.zlevent.pojo.dto.FileStreamDto;
|
import com.njcn.zlevent.pojo.dto.FileStreamDto;
|
||||||
@@ -270,7 +269,7 @@ public class FileServiceImpl implements IFileService {
|
|||||||
+ ",nowStep:" + appFileMessage.getMsg().getFrameCurr()
|
+ ",nowStep:" + appFileMessage.getMsg().getFrameCurr()
|
||||||
+ ",userId:" + userIndex
|
+ ",userId:" + userIndex
|
||||||
+"}";
|
+"}";
|
||||||
publisher.send("/Web/Progress/" + appFileMessage.getId(), new Gson().toJson(json), 1, false);
|
publisher.send("/Web/Progress/" + appFileMessage.getId(), new Gson().toJson(json), 2, false);
|
||||||
if (!Objects.isNull(filePath)){
|
if (!Objects.isNull(filePath)){
|
||||||
redisUtil.saveByKeyWithExpire("downloadFilePath:" + appFileMessage.getId() + appFileMessage.getMsg().getName(),filePath,60L);
|
redisUtil.saveByKeyWithExpire("downloadFilePath:" + appFileMessage.getId() + appFileMessage.getMsg().getName(),filePath,60L);
|
||||||
}
|
}
|
||||||
@@ -280,6 +279,7 @@ public class FileServiceImpl implements IFileService {
|
|||||||
//2.缓存了判断收到的报文个数是否和总个数一致,一致则解析文件;不一致则更新缓存
|
//2.缓存了判断收到的报文个数是否和总个数一致,一致则解析文件;不一致则更新缓存
|
||||||
//3.超时判断: 30s未收到相关文件信息,核查文件个数,看丢失哪些帧,重新请求
|
//3.超时判断: 30s未收到相关文件信息,核查文件个数,看丢失哪些帧,重新请求
|
||||||
else {
|
else {
|
||||||
|
Object isWeb = redisUtil.getObjectByKey("isWeb:" + appFileMessage.getId());
|
||||||
redisUtil.saveByKey("handleEvent:" + appFileMessage.getId(),"doing");
|
redisUtil.saveByKey("handleEvent:" + appFileMessage.getId(),"doing");
|
||||||
if (appFileMessage.getMsg().getFrameTotal() == 1){
|
if (appFileMessage.getMsg().getFrameTotal() == 1){
|
||||||
//解析文件入库
|
//解析文件入库
|
||||||
@@ -289,18 +289,20 @@ public class FileServiceImpl implements IFileService {
|
|||||||
csEventLogs.setNowStep(1);
|
csEventLogs.setNowStep(1);
|
||||||
csEventLogs.setAllStep(1);
|
csEventLogs.setAllStep(1);
|
||||||
csEventLogs.setIsAll(1);
|
csEventLogs.setIsAll(1);
|
||||||
//更新文件信息
|
if (Objects.isNull(isWeb)) {
|
||||||
csWaveService.updateCsWave(fileName);
|
//更新文件信息
|
||||||
//波形文件关联事件
|
csWaveService.updateCsWave(fileName);
|
||||||
filePath = filePath.replaceAll(GeneralConstant.CFG,"").replaceAll(GeneralConstant.DAT,"");
|
//波形文件关联事件
|
||||||
List<String> eventList = correlateEvents(fileInfoDto,filePath,fileName);
|
filePath = filePath.replaceAll(GeneralConstant.CFG,"").replaceAll(GeneralConstant.DAT,"");
|
||||||
if (CollectionUtil.isNotEmpty(eventList) && devModel){
|
List<String> eventList = correlateEvents(fileInfoDto,filePath,fileName);
|
||||||
eventList.forEach(item -> {
|
if (CollectionUtil.isNotEmpty(eventList) && devModel){
|
||||||
//波形文件解析成图片
|
eventList.forEach(item -> {
|
||||||
wavePicFeignClient.getWavePics(item);
|
//波形文件解析成图片
|
||||||
//同步更新r_mp_event_detail,将波形路径录入
|
wavePicFeignClient.getWavePics(item);
|
||||||
wavePicFeignClient.updateEventById(item);
|
//同步更新r_mp_event_detail,将波形路径录入
|
||||||
});
|
wavePicFeignClient.updateEventById(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//解析完删除、处理缓存
|
//解析完删除、处理缓存
|
||||||
removeInfoUtils.deleteEventInfo(appFileMessage.getId(),fileName);
|
removeInfoUtils.deleteEventInfo(appFileMessage.getId(),fileName);
|
||||||
@@ -339,18 +341,20 @@ public class FileServiceImpl implements IFileService {
|
|||||||
csEventLogs.setAllStep(appFileMessage.getMsg().getFrameTotal());
|
csEventLogs.setAllStep(appFileMessage.getMsg().getFrameTotal());
|
||||||
csEventLogs.setIsAll(1);
|
csEventLogs.setIsAll(1);
|
||||||
log.info("当前文件 {} 帧,这是第 {} 帧报文,全部收到,解析成功!", appFileMessage.getMsg().getFrameTotal(), appFileMessage.getMsg().getFrameCurr());
|
log.info("当前文件 {} 帧,这是第 {} 帧报文,全部收到,解析成功!", appFileMessage.getMsg().getFrameTotal(), appFileMessage.getMsg().getFrameCurr());
|
||||||
//修改文件信息
|
if (Objects.isNull(isWeb)) {
|
||||||
csWaveService.updateCsWave(fileName);
|
//修改文件信息
|
||||||
//波形文件关联事件
|
csWaveService.updateCsWave(fileName);
|
||||||
filePath = filePath.replaceAll(GeneralConstant.CFG, "").replaceAll(GeneralConstant.DAT, "");
|
//波形文件关联事件
|
||||||
List<String> eventList = correlateEvents(fileInfoDto, filePath, fileName);
|
filePath = filePath.replaceAll(GeneralConstant.CFG, "").replaceAll(GeneralConstant.DAT, "");
|
||||||
if (CollectionUtil.isNotEmpty(eventList) && devModel){
|
List<String> eventList = correlateEvents(fileInfoDto, filePath, fileName);
|
||||||
eventList.forEach(item -> {
|
if (CollectionUtil.isNotEmpty(eventList) && devModel){
|
||||||
//波形文件解析成图片
|
eventList.forEach(item -> {
|
||||||
wavePicFeignClient.getWavePics(item);
|
//波形文件解析成图片
|
||||||
//同步更新r_mp_event_detail,将波形路径录入
|
wavePicFeignClient.getWavePics(item);
|
||||||
wavePicFeignClient.updateEventById(item);
|
//同步更新r_mp_event_detail,将波形路径录入
|
||||||
});
|
wavePicFeignClient.updateEventById(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
redisUtil.delete(AppRedisKey.FILE_PART_TIME.concat(appFileMessage.getMsg().getName()));
|
redisUtil.delete(AppRedisKey.FILE_PART_TIME.concat(appFileMessage.getMsg().getName()));
|
||||||
redisUtil.delete(AppRedisKey.FILE_PART.concat(appFileMessage.getMsg().getName()));
|
redisUtil.delete(AppRedisKey.FILE_PART.concat(appFileMessage.getMsg().getName()));
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class SendEventUtils {
|
|||||||
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "1":
|
case "1":
|
||||||
code = 2;
|
code = 3;
|
||||||
//设备自身事件 不推送给用户,推送给业务管理
|
//设备自身事件 不推送给用户,推送给业务管理
|
||||||
eventUser = getEventUser(devId,false);
|
eventUser = getEventUser(devId,false);
|
||||||
if (CollectionUtil.isNotEmpty(eventUser)) {
|
if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
@@ -108,7 +108,7 @@ public class SendEventUtils {
|
|||||||
userList.add(user.getDevCode());
|
userList.add(user.getDevCode());
|
||||||
}
|
}
|
||||||
noticeUserDto.setPushClientId(userList);
|
noticeUserDto.setPushClientId(userList);
|
||||||
noticeUserDto.setTitle("设备事件");
|
noticeUserDto.setTitle("运行事件");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -132,26 +132,26 @@ public class SendEventUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "3":
|
// case "3":
|
||||||
code = 1;
|
// code = 1;
|
||||||
//稳态事件
|
// //稳态事件
|
||||||
eventUser = getEventUser(devId,true);
|
// eventUser = getEventUser(devId,true);
|
||||||
if (CollectionUtil.isNotEmpty(eventUser)) {
|
// if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
eventUser.forEach(item->{
|
// eventUser.forEach(item->{
|
||||||
CsEventUserPO csEventUser = new CsEventUserPO();
|
// CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
csEventUser.setUserId(item);
|
// csEventUser.setUserId(item);
|
||||||
csEventUser.setStatus(0);
|
// csEventUser.setStatus(0);
|
||||||
csEventUser.setEventId(id);
|
// csEventUser.setEventId(id);
|
||||||
result.add(csEventUser);
|
// result.add(csEventUser);
|
||||||
});
|
// });
|
||||||
users = getSendUser(eventUser,1);
|
// users = getSendUser(eventUser,1);
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
// if (CollectionUtil.isNotEmpty(users)){
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
// devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
// noticeUserDto.setPushClientId(devCodeList);
|
||||||
noticeUserDto.setTitle("稳态事件");
|
// noticeUserDto.setTitle("稳态事件");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
default:
|
default:
|
||||||
code = 0;
|
code = 0;
|
||||||
break;
|
break;
|
||||||
@@ -161,62 +161,62 @@ public class SendEventUtils {
|
|||||||
content = devDetailDto.getEngineeringName() + "-" + devDetailDto.getProjectName() + "-" + devDetailDto.getEquipmentName() + "于" + eventTime.format(DatePattern.NORM_DATETIME_MS_FORMATTER) + "发生" + eventName;
|
content = devDetailDto.getEngineeringName() + "-" + devDetailDto.getProjectName() + "-" + devDetailDto.getEquipmentName() + "于" + eventTime.format(DatePattern.NORM_DATETIME_MS_FORMATTER) + "发生" + eventName;
|
||||||
noticeUserDto.setContent(content);
|
noticeUserDto.setContent(content);
|
||||||
payload.setType(code);
|
payload.setType(code);
|
||||||
payload.setPath("/pages/message/message?type="+payload.getType());
|
payload.setPath("/pages/index/message1?type="+payload.getType());
|
||||||
noticeUserDto.setPayload(payload);
|
|
||||||
}
|
|
||||||
//告警处理
|
|
||||||
else if (eventType == 2){
|
|
||||||
switch (type) {
|
|
||||||
case "1":
|
|
||||||
//Ⅰ级告警 不推送给用户,推送给业务管理
|
|
||||||
eventUser = getEventUser(devId,false);
|
|
||||||
if (CollectionUtil.isNotEmpty(eventUser)) {
|
|
||||||
eventUser.forEach(item->{
|
|
||||||
CsEventUserPO csEventUser = new CsEventUserPO();
|
|
||||||
csEventUser.setUserId(item);
|
|
||||||
csEventUser.setStatus(0);
|
|
||||||
csEventUser.setEventId(id);
|
|
||||||
result.add(csEventUser);
|
|
||||||
});
|
|
||||||
users = getSendUser(eventUser,3);
|
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
|
||||||
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case "2":
|
|
||||||
eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
|
||||||
case "3":
|
|
||||||
//Ⅱ、Ⅲ级告警推送相关用户及业务管理员
|
|
||||||
eventUser = getEventUser(devId,true);
|
|
||||||
if (CollectionUtil.isNotEmpty(eventUser)) {
|
|
||||||
eventUser.forEach(item->{
|
|
||||||
CsEventUserPO csEventUser = new CsEventUserPO();
|
|
||||||
csEventUser.setUserId(item);
|
|
||||||
csEventUser.setStatus(0);
|
|
||||||
csEventUser.setEventId(id);
|
|
||||||
result.add(csEventUser);
|
|
||||||
});
|
|
||||||
users = getSendUser(eventUser,3);
|
|
||||||
if (CollectionUtil.isNotEmpty(users)){
|
|
||||||
devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
|
||||||
noticeUserDto.setPushClientId(devCodeList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
noticeUserDto.setTitle("告警事件");
|
|
||||||
DevDetailDTO devDetailDto = csLedgerFeignclient.queryDevDetail(devId).getData();
|
|
||||||
content = devDetailDto.getEngineeringName() + "-" + devDetailDto.getProjectName() + "-" + devDetailDto.getEquipmentName() + "于" + eventTime.format(DatePattern.NORM_DATETIME_MS_FORMATTER) + "发生告警,告警信息:" + eventName;
|
|
||||||
noticeUserDto.setContent(content);
|
|
||||||
payload.setType(3);
|
|
||||||
payload.setPath("/pages/message/message?type="+payload.getType());
|
|
||||||
noticeUserDto.setPayload(payload);
|
noticeUserDto.setPayload(payload);
|
||||||
}
|
}
|
||||||
|
// //告警处理
|
||||||
|
// else if (eventType == 2){
|
||||||
|
// switch (type) {
|
||||||
|
// case "1":
|
||||||
|
// //Ⅰ级告警 不推送给用户,推送给业务管理
|
||||||
|
// eventUser = getEventUser(devId,false);
|
||||||
|
// if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
|
// eventUser.forEach(item->{
|
||||||
|
// CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
|
// csEventUser.setUserId(item);
|
||||||
|
// csEventUser.setStatus(0);
|
||||||
|
// csEventUser.setEventId(id);
|
||||||
|
// result.add(csEventUser);
|
||||||
|
// });
|
||||||
|
// users = getSendUser(eventUser,3);
|
||||||
|
// if (CollectionUtil.isNotEmpty(users)){
|
||||||
|
// eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
||||||
|
// devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
|
// noticeUserDto.setPushClientId(devCodeList);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// case "2":
|
||||||
|
// eventName = epdFeignClient.findByName(eventName).getData().getShowName();
|
||||||
|
// case "3":
|
||||||
|
// //Ⅱ、Ⅲ级告警推送相关用户及业务管理员
|
||||||
|
// eventUser = getEventUser(devId,true);
|
||||||
|
// if (CollectionUtil.isNotEmpty(eventUser)) {
|
||||||
|
// eventUser.forEach(item->{
|
||||||
|
// CsEventUserPO csEventUser = new CsEventUserPO();
|
||||||
|
// csEventUser.setUserId(item);
|
||||||
|
// csEventUser.setStatus(0);
|
||||||
|
// csEventUser.setEventId(id);
|
||||||
|
// result.add(csEventUser);
|
||||||
|
// });
|
||||||
|
// users = getSendUser(eventUser,3);
|
||||||
|
// if (CollectionUtil.isNotEmpty(users)){
|
||||||
|
// devCodeList = users.stream().map(User::getDevCode).distinct().collect(Collectors.toList());
|
||||||
|
// noticeUserDto.setPushClientId(devCodeList);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// default:
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// noticeUserDto.setTitle("告警事件");
|
||||||
|
// DevDetailDTO devDetailDto = csLedgerFeignclient.queryDevDetail(devId).getData();
|
||||||
|
// content = devDetailDto.getEngineeringName() + "-" + devDetailDto.getProjectName() + "-" + devDetailDto.getEquipmentName() + "于" + eventTime.format(DatePattern.NORM_DATETIME_MS_FORMATTER) + "发生告警,告警信息:" + eventName;
|
||||||
|
// noticeUserDto.setContent(content);
|
||||||
|
// payload.setType(3);
|
||||||
|
// payload.setPath("/pages/message/message?type="+payload.getType());
|
||||||
|
// noticeUserDto.setPayload(payload);
|
||||||
|
// }
|
||||||
if (CollectionUtil.isNotEmpty(noticeUserDto.getPushClientId())) {
|
if (CollectionUtil.isNotEmpty(noticeUserDto.getPushClientId())) {
|
||||||
List<String> filteredList = noticeUserDto.getPushClientId().stream()
|
List<String> filteredList = noticeUserDto.getPushClientId().stream()
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
|
|||||||
Reference in New Issue
Block a user