diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java index 3b6facb3..fed03512 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java @@ -1,9 +1,11 @@ package com.njcn.gather.event.transientes.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; +import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; import com.njcn.gather.event.transientes.pojo.vo.AlarmAnalysisVO; import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; import com.njcn.gather.event.transientes.pojo.vo.EventTrendVO; @@ -71,9 +73,9 @@ public class LargeScreenCountController extends BaseController { @PostMapping("/eventList") @ApiOperation("暂降事件列表") @ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true) - public HttpResult> eventList(@RequestBody LargeScreenCountParam largeScreenCountParam) { + public HttpResult> eventList(@RequestBody LargeScreenCountParam largeScreenCountParam) { String methodDescribe = getMethodDescribe("eventTrend"); - List result = largeScreenCountService.eventList(largeScreenCountParam); + Page result = largeScreenCountService.eventList(largeScreenCountParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsEventdetailMapper.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsEventdetailMapper.java index 5b652a5a..6ef98e98 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsEventdetailMapper.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/PqsEventdetailMapper.java @@ -1,7 +1,13 @@ package com.njcn.gather.event.transientes.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; +import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; +import java.util.List; /** * diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsEventdetailMapper.xml b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsEventdetailMapper.xml index dbdac81f..0daa0b55 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsEventdetailMapper.xml +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/mapper/mapping/PqsEventdetailMapper.xml @@ -34,4 +34,24 @@ EVENTREASON, EVENTTYPE, EVENTASS_INDEX, DQTIME, DEALTIME, DEALFLAG, NUM, FILEFLAG, FIRSTTIME, FIRSTTYPE, FIRSTMS, WAVENAME, ENERGY, SEVERITY, LOOK_FLAG + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java index e7262814..d6e0ac8a 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/LargeScreenCountParam.java @@ -1,5 +1,6 @@ package com.njcn.gather.event.transientes.pojo.param; +import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,7 +12,7 @@ import lombok.Data; * @version V1.0.0 */ @Data -public class LargeScreenCountParam { +public class LargeScreenCountParam extends BaseParam { @ApiModelProperty(name="deptId",value="部门id") private String deptId; @ApiModelProperty(name="type",value="类型(1年 2季度 3月份 4周 5日)") diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/AlarmAnalysisVO.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/AlarmAnalysisVO.java index 7ab1c448..b734f46a 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/AlarmAnalysisVO.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/vo/AlarmAnalysisVO.java @@ -1,5 +1,6 @@ package com.njcn.gather.event.transientes.pojo.vo; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -12,11 +13,18 @@ import lombok.Data; @Data public class AlarmAnalysisVO { + @ApiModelProperty(name="eventCount",value="暂降次数") private Integer eventCount; + @ApiModelProperty(name="aLarmCount",value="告警事件统计") private Integer aLarmCount; + @ApiModelProperty(name="warnCount",value="预警事件统计") private Integer warnCount; + @ApiModelProperty(name="noticeCount",value="远程通知统计") private Integer noticeCount; + @ApiModelProperty(name="lookALarmCount",value="告警事件处置数") private Integer lookALarmCount; + @ApiModelProperty(name="lookWarnCount",value="预警事件处置数") private Integer lookWarnCount; + @ApiModelProperty(name="lookNoticeCount",value="远程通知处置数") private Integer lookNoticeCount; } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java index f19630bc..ef4f155d 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java @@ -1,6 +1,8 @@ package com.njcn.gather.event.transientes.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; +import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; import com.njcn.gather.event.transientes.pojo.vo.AlarmAnalysisVO; import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; import com.njcn.gather.event.transientes.pojo.vo.EventTrendVO; @@ -22,7 +24,7 @@ public interface LargeScreenCountService { List eventTrend(LargeScreenCountParam largeScreenCountParam); - List eventList(LargeScreenCountParam largeScreenCountParam); + Page eventList(LargeScreenCountParam largeScreenCountParam); List noDealEventList(LargeScreenCountParam largeScreenCountParam); diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsEventdetailService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsEventdetailService.java index b04d681f..3292298b 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsEventdetailService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqsEventdetailService.java @@ -1,8 +1,14 @@ package com.njcn.gather.event.transientes.service; +import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; import com.baomidou.mybatisplus.extension.service.IService; - /** +import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; + +import java.time.LocalDateTime; +import java.util.List; + +/** * * Description: * Date: 2025/06/20 上午 10:06【需求编号】 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 edab0b2a..9966fd47 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 @@ -6,6 +6,9 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.yulichang.wrapper.segments.Fun; @@ -28,12 +31,13 @@ import com.njcn.gather.event.transientes.service.PqsDeptsService; import com.njcn.gather.event.devcie.service.PqsDeptslineService; import com.njcn.gather.event.transientes.service.PqsEventdetailService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -65,6 +69,10 @@ 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()); + if(CollectionUtils.isEmpty(deptslineIds)){ + throw new BusinessException("部门下暂无监测点"); + + } List pqLineList = pqLineService.lambdaQuery().in(PqLine::getLineIndex, deptslineIds).list(); //统计总数 long allSubCount = pqLineList.stream().map(PqLine::getSubIndex).distinct().count(); @@ -103,6 +111,10 @@ 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()); + if(CollectionUtils.isEmpty(deptslineIds)){ + throw new BusinessException("部门下暂无监测点"); + + } 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(); @@ -161,17 +173,21 @@ 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()); + if(CollectionUtils.isEmpty(deptslineIds)){ + throw new BusinessException("部门下暂无监测点"); + + } 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(); + .eq(PqsEventdetail::getNoticeFlag,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(); + .and(w -> w.eq(PqsEventdetail::getNoticeFlag, 0).or().isNull(PqsEventdetail::getNoticeFlag)).list(); } LocalDate startDate =LocalDate.parse(DateUtil.format(startTime, DatePattern.NORM_DATE_PATTERN)) ; LocalDate endDate = LocalDate.parse(DateUtil.format(endTime, DatePattern.NORM_DATE_PATTERN)) ; @@ -191,8 +207,47 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } @Override - public List eventList(LargeScreenCountParam largeScreenCountParam) { - return null; + public Page eventList(LargeScreenCountParam largeScreenCountParam) { + Page pqsEventdetailPage = new Page<> (largeScreenCountParam.getPageNum ( ), largeScreenCountParam.getPageSize ( )); + + //起始时间 + LocalDateTime startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),DatePattern.NORM_DATETIME_FORMATTER); + //结束时间 + LocalDateTime endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER),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()); + if(CollectionUtils.isEmpty(deptslineIds)){ + throw new BusinessException("部门下暂无监测点"); + + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(Objects.equals(largeScreenCountParam.getEventtype(),1)){ + queryWrapper.lambda() + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getLineid,deptslineIds) + .eq(PqsEventdetail::getNoticeFlag,largeScreenCountParam.getEventtype()) + .orderByAsc(PqsEventdetail::getLookFlag) + .orderByDesc(PqsEventdetail::getTimeid); + }else { + queryWrapper.lambda() + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getLineid,deptslineIds) + .and(w -> w.eq(PqsEventdetail::getNoticeFlag, 0).or().isNull(PqsEventdetail::getNoticeFlag)) + .orderByAsc(PqsEventdetail::getLookFlag) + .orderByDesc(PqsEventdetail::getTimeid); + } + IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper); + List collect = list.getRecords().stream().map(temp -> { + EventDetailVO eventDetailVO = new EventDetailVO(); + BeanUtils.copyProperties(temp, eventDetailVO); + return eventDetailVO; + }).collect(Collectors.toList()); + Page returnpage = new Page<> (largeScreenCountParam.getPageNum ( ), largeScreenCountParam.getPageSize ( )); + returnpage.setRecords(collect); + return returnpage; } @Override diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsEventdetailServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsEventdetailServiceImpl.java index 72e2e10a..c43f4a79 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsEventdetailServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqsEventdetailServiceImpl.java @@ -1,10 +1,16 @@ package com.njcn.gather.event.transientes.service.impl; +import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; +import com.njcn.gather.event.transientes.pojo.vo.EventDetailVO; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; import com.njcn.gather.event.transientes.mapper.PqsEventdetailMapper; import com.njcn.gather.event.transientes.service.PqsEventdetailService; + +import java.time.LocalDateTime; +import java.util.List; + /** * * Description: @@ -16,4 +22,6 @@ import com.njcn.gather.event.transientes.service.PqsEventdetailService; @Service public class PqsEventdetailServiceImpl extends ServiceImpl implements PqsEventdetailService{ + + } diff --git a/event_smart/src/main/resources/application.yml b/event_smart/src/main/resources/application.yml index 95008898..1cacde3f 100644 --- a/event_smart/src/main/resources/application.yml +++ b/event_smart/src/main/resources/application.yml @@ -57,6 +57,7 @@ mybatis-plus: SYS_TYPE_ZT: 1cfcd6e2-c5fe-4b15-988a-32b90f1170c1 SYS_TYPE_WT: 983f9dfe-4f9a-4c96-89d8-7d425a1f1d6c - +db: + type: oracle