北京手动发送短信需求

This commit is contained in:
hzj
2026-06-24 11:28:17 +08:00
parent 591f214397
commit 2a702fd661
8 changed files with 234 additions and 11 deletions

View File

@@ -10,6 +10,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -25,11 +26,13 @@ import com.njcn.product.event.devcie.service.PqsDeptslineService;
import com.njcn.product.event.transientes.mapper.PqUserLedgerMapper; import com.njcn.product.event.transientes.mapper.PqUserLedgerMapper;
import com.njcn.product.event.transientes.mapper.PqUserLineAssMapper; import com.njcn.product.event.transientes.mapper.PqUserLineAssMapper;
import com.njcn.product.event.transientes.mapper.PqsEventdetailMapper; import com.njcn.product.event.transientes.mapper.PqsEventdetailMapper;
import com.njcn.product.event.transientes.pojo.dto.MessaeDTO;
import com.njcn.product.event.transientes.pojo.dto.SmsResponseDTO; import com.njcn.product.event.transientes.pojo.dto.SmsResponseDTO;
import com.njcn.product.event.transientes.pojo.dto.SmsSendDTO; import com.njcn.product.event.transientes.pojo.dto.SmsSendDTO;
import com.njcn.product.event.transientes.pojo.dto.UpLoadEvent; import com.njcn.product.event.transientes.pojo.dto.UpLoadEvent;
import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam; import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam;
import com.njcn.product.event.transientes.pojo.po.*; import com.njcn.product.event.transientes.pojo.po.*;
import com.njcn.product.event.transientes.pojo.vo.EventDetailVO;
import com.njcn.product.event.transientes.service.*; import com.njcn.product.event.transientes.service.*;
import com.njcn.product.event.transientes.utils.SmsUtils; import com.njcn.product.event.transientes.utils.SmsUtils;
import com.njcn.product.event.transientes.websocket.WebSocketServer; import com.njcn.product.event.transientes.websocket.WebSocketServer;
@@ -131,7 +134,7 @@ public class EventGateController extends BaseController {
&& (Float.parseFloat(jsonObject.get("persisttime").toString()) * 1000) >= msgEventConfigService.getEventDuration()) { && (Float.parseFloat(jsonObject.get("persisttime").toString()) * 1000) >= msgEventConfigService.getEventDuration()) {
//过滤重要暂降事件 //过滤重要暂降事件
//F47过滤 //F47过滤
float eventvalue = Float.parseFloat(jsonObject.get("eventvalue").toString()); float eventvalue = Float.parseFloat(jsonObject.get("eventvalue").toString())*100;
float persisttime = Float.parseFloat(jsonObject.get("persisttime").toString()) * 1000; float persisttime = Float.parseFloat(jsonObject.get("persisttime").toString()) * 1000;
if(shouldSendSMS(eventvalue,persisttime)){ if(shouldSendSMS(eventvalue,persisttime)){
Integer lineId = Integer.valueOf(jsonObject.get("lineid").toString()); Integer lineId = Integer.valueOf(jsonObject.get("lineid").toString());
@@ -197,7 +200,7 @@ public class EventGateController extends BaseController {
// 条件1: 电压降至50%以下持续时间超过20ms // 条件1: 电压降至50%以下持续时间超过20ms
if (value < 0.5 && time >= 20) { if (value < 50 && time >= 20) {
return true; return true;
} }
@@ -408,6 +411,59 @@ public class EventGateController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo
@PostMapping("/messageGenerate")
@ApiOperation("暂降事件短信内容生成")
public HttpResult<MessaeDTO> messageGenerate(@RequestParam String eventId) {
String methodDescribe = getMethodDescribe("messageGenerate");
MessaeDTO result = eventGateService.messageGenerate(eventId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo
@PostMapping("/messageSend")
@ApiOperation("短信发送")
public HttpResult<List<MsgEventInfo>> messageSend(@RequestBody MessaeDTO messaeDTO) {
String methodDescribe = getMethodDescribe("messageGenerate");
List<MsgEventInfo> resultList = new ArrayList<>();
List<SmsSendDTO.ItemInner> msgDTOList = new ArrayList<>();
for (PqsUser user : messaeDTO.getPqsUsers()) {
String msgId = IdUtil.simpleUUID();
SmsSendDTO.ItemInner dto = new SmsSendDTO.ItemInner();
dto.setContent(messaeDTO.getMessage());
dto.setTo(user.getPhone());
dto.setCustomMsgID(msgId);
msgDTOList.add(dto);
MsgEventInfo msgEventInfo = new MsgEventInfo();
msgEventInfo.setMsgIndex(msgId);
msgEventInfo.setMsgContent(messaeDTO.getMessage());
msgEventInfo.setPhone(user.getPhone());
msgEventInfo.setUserId(user.getUserIndex());
msgEventInfo.setUserName(user.getName());
msgEventInfo.setIsHandle(0);
msgEventInfo.setSendResult(0);
msgEventInfo.setSendTime(LocalDateTime.now());
msgEventInfo.setEventIndex(messaeDTO.getEventId());
resultList.add(msgEventInfo);
}
List<SmsResponseDTO.SmsItem> result = smsUtils.sendSmSToUser(msgDTOList);
Map<String, SmsResponseDTO.SmsItem> stringSmsItemMap = result.stream().collect(Collectors.toMap(SmsResponseDTO.SmsItem::getCustomMsgID, Function.identity()));
resultList.forEach(item -> {
if (stringSmsItemMap.containsKey(item.getMsgIndex())) {
SmsResponseDTO.SmsItem smsItem = stringSmsItemMap.get(item.getMsgIndex());
item.setSendResult(Objects.equals(smsItem.getCode(), "0") ? 1 : 0);
item.setIsHandle(1);
}
});
msgEventInfoService.saveBatch(resultList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resultList, methodDescribe);
}
private void sendMessage(JSONObject jsonObject, String objStr) { private void sendMessage(JSONObject jsonObject, String objStr) {
try { try {

View File

@@ -10,6 +10,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.product.event.dataTransmit.DataSynchronization; import com.njcn.product.event.dataTransmit.DataSynchronization;
import com.njcn.product.event.devcie.pojo.dto.DeviceDTO; import com.njcn.product.event.devcie.pojo.dto.DeviceDTO;
import com.njcn.product.event.transientes.pojo.dto.MessaeDTO;
import com.njcn.product.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.product.event.transientes.pojo.param.LargeScreenCountParam;
import com.njcn.product.event.transientes.pojo.param.MessageEventFeedbackParam; import com.njcn.product.event.transientes.pojo.param.MessageEventFeedbackParam;
import com.njcn.product.event.transientes.pojo.po.MsgEventInfo; import com.njcn.product.event.transientes.pojo.po.MsgEventInfo;

View File

@@ -0,0 +1,21 @@
package com.njcn.product.event.transientes.pojo.dto;
import com.njcn.product.event.transientes.pojo.po.PqsUser;
import lombok.Data;
import java.util.List;
/**
* Description:
* Date: 2026/06/22 上午 10:34【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class MessaeDTO {
private String message;
private String eventId;
private List<PqsUser> pqsUsers;
}

View File

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@@ -36,6 +37,12 @@ public class LargeScreenCountParam extends BaseParam {
private LocalDate startTime; private LocalDate startTime;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endTime; private LocalDate endTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startDateTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTDateime;
@ApiModelProperty(value = "字典树 对象大类") @ApiModelProperty(value = "字典树 对象大类")
private String bigObjType; private String bigObjType;

View File

@@ -1,6 +1,7 @@
package com.njcn.product.event.transientes.service; package com.njcn.product.event.transientes.service;
import com.njcn.event.file.pojo.dto.WaveDataDTO; import com.njcn.event.file.pojo.dto.WaveDataDTO;
import com.njcn.product.event.transientes.pojo.dto.MessaeDTO;
import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam; import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam;
public interface EventGateService { public interface EventGateService {
@@ -12,4 +13,6 @@ public interface EventGateService {
* @return * @return
*/ */
WaveDataDTO getTransientAnalyseWave(MonitorTerminalParam param); WaveDataDTO getTransientAnalyseWave(MonitorTerminalParam param);
MessaeDTO messageGenerate(String eventId);
} }

View File

@@ -1,27 +1,42 @@
package com.njcn.product.event.transientes.service.impl; package com.njcn.product.event.transientes.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.event.file.component.WaveFileComponent; import com.njcn.event.file.component.WaveFileComponent;
import com.njcn.event.file.pojo.dto.WaveDataDTO; import com.njcn.event.file.pojo.dto.WaveDataDTO;
import com.njcn.event.file.pojo.enums.WaveFileResponseEnum; import com.njcn.event.file.pojo.enums.WaveFileResponseEnum;
import com.njcn.product.event.config.RedisUtil;
import com.njcn.product.event.devcie.mapper.PqLinedetailMapper; import com.njcn.product.event.devcie.mapper.PqLinedetailMapper;
import com.njcn.product.event.devcie.pojo.dto.LedgerBaseInfoDTO;
import com.njcn.product.event.devcie.pojo.po.PqDevice; import com.njcn.product.event.devcie.pojo.po.PqDevice;
import com.njcn.product.event.devcie.pojo.po.PqLine; import com.njcn.product.event.devcie.pojo.po.PqLine;
import com.njcn.product.event.devcie.pojo.po.PqLinedetail; import com.njcn.product.event.devcie.pojo.po.PqLinedetail;
import com.njcn.product.event.devcie.pojo.po.PqsDeptsline;
import com.njcn.product.event.devcie.service.PqDeviceService; import com.njcn.product.event.devcie.service.PqDeviceService;
import com.njcn.product.event.devcie.service.PqLineService; import com.njcn.product.event.devcie.service.PqLineService;
import com.njcn.product.event.devcie.service.PqsDeptslineService;
import com.njcn.product.event.transientes.mapper.PqUserLedgerMapper;
import com.njcn.product.event.transientes.mapper.PqUserLineAssMapper;
import com.njcn.product.event.transientes.pojo.dto.MessaeDTO;
import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam; import com.njcn.product.event.transientes.pojo.param.MonitorTerminalParam;
import com.njcn.product.event.transientes.pojo.po.PqsEventdetail; import com.njcn.product.event.transientes.pojo.po.*;
import com.njcn.product.event.transientes.service.EventGateService; import com.njcn.product.event.transientes.service.*;
import com.njcn.product.event.transientes.service.PqsEventdetailService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.InputStream; import java.io.InputStream;
import java.util.Objects; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @Author: cdf * @Author: cdf
@@ -38,6 +53,17 @@ public class EventGateServiceImpl implements EventGateService {
private final WaveFileComponent waveFileComponent; private final WaveFileComponent waveFileComponent;
private final PqLineService pqLineService; private final PqLineService pqLineService;
private final PqLinedetailMapper pqLinedetailMapper; private final PqLinedetailMapper pqLinedetailMapper;
private final PqsDeptslineService pqsDeptslineService;
private final PqsDeptsService pqsDeptsService;
private final PqsUsersetService pqsUsersetService;
private final PqsUserService pqsUserService;
private final PqUserLineAssMapper pqUserLineAssMapper;
private final PqUserLedgerMapper pqUserLedgerMapper;
private final static String NAME_KEY = "LineCache:";
private final RedisUtil redisUtil;
@Value("${SYS_TYPE_ZT}")
private String sysTypeZt;
@Value("${business.wavePath}") @Value("${business.wavePath}")
private String WAVEPATH; private String WAVEPATH;
@@ -80,4 +106,104 @@ public class EventGateServiceImpl implements EventGateService {
return waveDataDTO; return waveDataDTO;
} }
@Override
public MessaeDTO messageGenerate(String eventId) {
MessaeDTO messaeDTO = new MessaeDTO();
messaeDTO.setEventId(eventId);
PqsEventdetail eventDetail = pqsEventdetailService.getById(eventId);
Double eventvalue = eventDetail.getEventvalue();
BigDecimal eventvalueFormmat = new BigDecimal(eventvalue).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
Double persisttime = eventDetail.getPersisttime();
BigDecimal persisttimeFormmat = new BigDecimal(persisttime).divide(new BigDecimal(1000)).setScale(3, RoundingMode.HALF_UP);
List<PqUserLineAssPO> assList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper<PqUserLineAssPO>().eq(PqUserLineAssPO::getLineIndex, eventDetail.getLineid()));
String str ;
if (CollUtil.isNotEmpty(assList)) {
List<String> userIds = assList.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList());
List<PqUserLedgerPO> poList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper<PqUserLedgerPO>().select(PqUserLedgerPO::getId, PqUserLedgerPO::getCustomerName,PqUserLedgerPO::getIsShow).in(PqUserLedgerPO::getId, userIds));
String sensitiveUser = poList.stream().map(PqUserLedgerPO::getCustomerName).collect(Collectors.joining(";"));
str ="影响用户:"+sensitiveUser+";";
} else {
str = "";
}
List<LedgerBaseInfoDTO> ledgerBaseInfoDTOS = (List<LedgerBaseInfoDTO>)redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED+"LedgerBaseInfoDTO");
Map<Integer, LedgerBaseInfoDTO> LedgerBaseInfoDTOMap = ledgerBaseInfoDTOS.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
StringBuilder stringBuilder = new StringBuilder(LocalDateTimeUtil.format(eventDetail.getTimeid(), DatePattern.NORM_DATETIME_PATTERN));
stringBuilder.append(".").append(eventDetail.getMs().toString()).append(",").append(LedgerBaseInfoDTOMap.get(eventDetail.getLineid()).getStationName())
.append(LedgerBaseInfoDTOMap.get(eventDetail.getLineid()).getBusBarName())
// .append("_").append(jsonObject.get("pointname").toString())
.append("发生电压暂降事件,事件残余电压:").append(eventvalueFormmat).append("%,持续时间:").append(persisttimeFormmat).append("S;");
stringBuilder.append(str);
messaeDTO.setMessage(stringBuilder.toString());
List<PqsDeptsline> pqLineDept = pqsDeptslineService.lambdaQuery().eq(PqsDeptsline::getLineIndex, eventDetail.getLineid()).eq(PqsDeptsline::getSystype, sysTypeZt).list();
Set<String> deptIds = pqLineDept.stream().map(PqsDeptsline::getDeptsIndex).collect(Collectors.toSet());
Set<String> resultIds = getAllParentDeptIds(deptIds);
List<PqsUserSet> pqsUserSetList = pqsUsersetService.lambdaQuery().eq(PqsUserSet::getIsNotice, 1).in(PqsUserSet::getDeptsIndex, resultIds).list();
if (CollUtil.isEmpty(pqsUserSetList)) {
//当前事件未找到用户信息,判断为不需要发送短信用户
throw new BusinessException("当前事件暂无发送短信用户信息");
}
List<PqsUser> pqsUserList = pqsUserService.lambdaQuery().select(PqsUser::getUserIndex, PqsUser::getPhone, PqsUser::getName)
.in(PqsUser::getUserIndex, pqsUserSetList.stream().map(PqsUserSet::getUserIndex).collect(Collectors.toList())).list();
messaeDTO.setPqsUsers(pqsUserList);
return messaeDTO;
}
private boolean shouldSendSMS( Double value , Double time ) {
// 条件1: 电压降至50%以下持续时间超过20ms
if (value < 50 && time >= 20) {
return true;
}
// 条件2: 电压降至50%—70%持续时间超过200ms
if (value >= 50 && value < 70 && time >= 200) {
return true;
}
// 条件3: 电压降至70%—80%持续时间超过500ms
if (value >= 70 && value <= 80 && time >= 500) {
return true;
}
return false;
}
public Set<String> getAllParentDeptIds(Set<String> deptIds) {
// 首次获取直接父级
List<PqsDepts> allDeptList = pqsDeptsService.lambdaQuery().list();
// 递归获取所有父级
Set<String> result = recursivelyGetParentIds(deptIds, allDeptList);
return result;
}
/**
* 递归获取所有父级ID
*
* @param currentParentIds 当前层级的父级ID集合
* @return 所有层级的父级ID集合
*/
private Set<String> recursivelyGetParentIds(Set<String> currentParentIds, List<PqsDepts> allDeptList) {
Set<String> result = new HashSet<>(currentParentIds);
Set<String> nextLevelParentIds = new HashSet<>();
List<PqsDepts> parentDeptList = allDeptList.stream().filter(it -> currentParentIds.contains(it.getDeptsIndex())).collect(Collectors.toList());
for (PqsDepts pqsDepts : parentDeptList) {
if (!pqsDepts.getParentnodeid().equals("0")) {
nextLevelParentIds.add(pqsDepts.getParentnodeid());
}
}
// 如果有更高层级的父级,继续递归
if (!nextLevelParentIds.isEmpty()) {
Set<String> deeperParentIds = recursivelyGetParentIds(nextLevelParentIds, allDeptList);
result.addAll(deeperParentIds);
}
return result;
}
} }

View File

@@ -1196,8 +1196,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
@Override @Override
public Page<EventDetailVO> eventPage(LargeScreenCountParam largeScreenCountParam) { public Page<EventDetailVO> eventPage(LargeScreenCountParam largeScreenCountParam) {
Page<PqsEventdetail> pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize()); Page<PqsEventdetail> pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize());
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay(); // LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay()); // LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
List<Integer> deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId()); List<Integer> deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId());
@@ -1206,7 +1206,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
List<PqUserLineAssPO> assList = new ArrayList<>(); List<PqUserLineAssPO> assList = new ArrayList<>();
LambdaQueryWrapper<PqsEventdetail> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PqsEventdetail> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper queryWrapper
.between(PqsEventdetail::getTimeid, startTime, endTime) // .between(PqsEventdetail::getTimeid, startTime, endTime)
.gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration())
.le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue())
.orderByDesc(PqsEventdetail::getTimeid); .orderByDesc(PqsEventdetail::getTimeid);
@@ -1216,6 +1216,15 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
} else { } else {
queryWrapper.in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()); queryWrapper.in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType());
} }
if(Objects.nonNull(largeScreenCountParam.getStartTime())&&Objects.nonNull(largeScreenCountParam.getEndTime())){
LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay();
LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay());
queryWrapper
.between(PqsEventdetail::getTimeid, startTime, endTime);
}
if (Objects.nonNull(largeScreenCountParam.getStartDateTime())&&Objects.nonNull(largeScreenCountParam.getEndTDateime())) {
queryWrapper.between(PqsEventdetail::getTimeid, largeScreenCountParam.getStartDateTime(),largeScreenCountParam.getEndTDateime());
}
if (Objects.nonNull(largeScreenCountParam.getEventDurationMin()) || Objects.nonNull(largeScreenCountParam.getEventDurationMax())) { if (Objects.nonNull(largeScreenCountParam.getEventDurationMin()) || Objects.nonNull(largeScreenCountParam.getEventDurationMax())) {
queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventDurationMin()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMin()); queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventDurationMin()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMin());

View File

@@ -86,7 +86,7 @@ public class SendMessageServiceImpl implements SendMessageService {
List<String> successSendEventIds = msgEventInfos.stream().map(MsgEventInfo::getEventIndex).distinct().collect(Collectors.toList()); List<String> successSendEventIds = msgEventInfos.stream().map(MsgEventInfo::getEventIndex).distinct().collect(Collectors.toList());
pqsEventdetails = pqsEventdetails.stream() pqsEventdetails = pqsEventdetails.stream()
.filter(temp -> shouldSendSMS(temp.getEventvalue(), temp.getPersisttime()) && (!successSendEventIds.contains(temp.getEventdetailIndex()))) .filter(temp -> shouldSendSMS(temp.getEventvalue()*100, temp.getPersisttime()) && (!successSendEventIds.contains(temp.getEventdetailIndex())))
.collect(Collectors.toList()); .collect(Collectors.toList());
log.info("扫描到敏感客户暂态事件过滤后事件:"+pqsEventdetails.size()+""); log.info("扫描到敏感客户暂态事件过滤后事件:"+pqsEventdetails.size()+"");
@@ -348,7 +348,7 @@ public class SendMessageServiceImpl implements SendMessageService {
// 条件1: 电压降至50%以下持续时间超过20ms // 条件1: 电压降至50%以下持续时间超过20ms
if (value < 0.5 && time >= 20) { if (value < 50 && time >= 20) {
return true; return true;
} }