diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java index 9543de95..f61fec44 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.gather.event.transientes.service.impl; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.devcie.pojo.po.PqDevice; @@ -22,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -84,26 +86,28 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { public AlarmAnalysisVO alarmAnalysis(LargeScreenCountParam largeScreenCountParam) { AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO(); //起始时间 - String startTime = DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATE_PATTERN); + String startTime = DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER); //结束时间 - String endTime = DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATE_PATTERN); + String endTime = DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER); //根据用户获取当前部门及子部门id List deptAndChildren = pqsDeptsService.findDeptAndChildren( largeScreenCountParam.getDeptId()); //获取对应监测点id List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); List deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); - List eventdetails = pqsEventdetailService.lambdaQuery().between(PqsEventdetail::getTimeid, startTime, endTime).in(PqsEventdetail::getLineid,deptslineIds).list(); + List eventdetails = pqsEventdetailService.lambdaQuery() + .between(PqsEventdetail::getTimeid, LocalDateTimeUtil.parse(startTime,DatePattern.NORM_DATETIME_FORMATTER), LocalDateTimeUtil.parse(endTime,DatePattern.NORM_DATETIME_FORMATTER)) + .in(PqsEventdetail::getLineid,deptslineIds).list(); Integer eventCount = eventdetails.size(); // 告警 List aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList()); // 预警 List warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList()); - List noticeEvent = eventdetails.stream().filter(temp -> temp.getNoticeFlag()==1).collect(Collectors.toList()); + List noticeEvent = eventdetails.stream().filter(temp ->Objects.equals(temp.getNoticeFlag(),1)).collect(Collectors.toList()); - List lookALarmEvent = aLarmEvent.stream().filter(temp -> temp.getLookFlag() == 1).collect(Collectors.toList()); - List lookWarnEvent = warnEvent.stream().filter(temp -> temp.getLookFlag() == 1).collect(Collectors.toList()); - List lookNoticeEvent = noticeEvent.stream().filter(temp -> temp.getLookFlag() == 1).collect(Collectors.toList()); + List lookALarmEvent = aLarmEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 )).collect(Collectors.toList()); + List lookWarnEvent = warnEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 ) ).collect(Collectors.toList()); + List lookNoticeEvent = noticeEvent.stream().filter(temp -> Objects.equals(temp.getLookFlag(),1 )).collect(Collectors.toList()); Integer aLarmCount =aLarmEvent.size(); Integer warnCount =warnEvent.size(); @@ -128,19 +132,19 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { public List eventTrend(LargeScreenCountParam largeScreenCountParam) { List eventTrendVOList = new ArrayList<>(); //起始时间 - String startTime; + LocalDateTime startTime; //结束时间 - String endTime; + LocalDateTime endTime; if(largeScreenCountParam.getType()==3){ //起始时间 - startTime = DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATE_PATTERN); + startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); //结束时间 - endTime = DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATE_PATTERN); + endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); }else if(largeScreenCountParam.getType()==4){ //起始时间 - startTime = DateUtil.format(DateUtil.beginOfWeek(new Date()), DatePattern.NORM_DATE_PATTERN); + startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfWeek(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); //结束时间 - endTime = DateUtil.format(DateUtil.endOfWeek(new Date()), DatePattern.NORM_DATE_PATTERN); + endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfWeek(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); }else { throw new BusinessException("统计类型有误类型"); } @@ -148,12 +152,20 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { //获取对应监测点id List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); List deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); - List eventdetails = pqsEventdetailService.lambdaQuery() - .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getLineid,deptslineIds) - .eq(PqsEventdetail::getLookFlag,largeScreenCountParam.getEventtype()).list(); - LocalDate startDate = LocalDate.parse(startTime, DatePattern.NORM_DATE_FORMATTER); - LocalDate endDate = LocalDate.parse(endTime, DatePattern.NORM_DATE_FORMATTER); + List eventdetails = new ArrayList<>(); + if(Objects.equals(largeScreenCountParam.getEventtype(),1)){ + eventdetails = pqsEventdetailService.lambdaQuery() + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getLineid,deptslineIds) + .eq(PqsEventdetail::getLookFlag,largeScreenCountParam.getEventtype()).list(); + }else { + eventdetails = pqsEventdetailService.lambdaQuery() + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getLineid,deptslineIds) + .and(w -> w.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)).list(); + } + LocalDate startDate =LocalDate.parse(DateUtil.format(startTime, DatePattern.NORM_DATE_PATTERN)) ; + LocalDate endDate = LocalDate.parse(DateUtil.format(endTime, DatePattern.NORM_DATE_PATTERN)) ; List dateList = new ArrayList<>();