初始版本提交

This commit is contained in:
hzj
2025-06-25 16:29:03 +08:00
parent 594ac7d4d4
commit 5905c0b438
10 changed files with 120 additions and 11 deletions

View File

@@ -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<List<EventDetailVO>> eventList(@RequestBody LargeScreenCountParam largeScreenCountParam) {
public HttpResult<Page<EventDetailVO>> eventList(@RequestBody LargeScreenCountParam largeScreenCountParam) {
String methodDescribe = getMethodDescribe("eventTrend");
List<EventDetailVO> result = largeScreenCountService.eventList(largeScreenCountParam);
Page<EventDetailVO> result = largeScreenCountService.eventList(largeScreenCountParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}

View File

@@ -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;
/**
*

View File

@@ -34,4 +34,24 @@
EVENTREASON, EVENTTYPE, EVENTASS_INDEX, DQTIME, DEALTIME, DEALFLAG, NUM, FILEFLAG,
FIRSTTIME, FIRSTTYPE, FIRSTMS, WAVENAME, ENERGY, SEVERITY, LOOK_FLAG
</sql>
<!-- <select id="queryByCondition" resultType="com.njcn.gather.event.transientes.pojo.vo.EventDetailVO">-->
<!--&lt;!&ndash; SELECT * from( &ndash;&gt;-->
<!-- select * from PQS_EVENTDETAIL eve where eve.LINEID in-->
<!-- <foreach collection="deptslineIds" item="item" open="(" close=")" separator=",">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- and eve.TIMEID between TO_DATE( #{startTime},'YYYY-MM-DD HH24:MI:SS') and TO_DATE( #{endTime},'YYYY-MM-DD HH24:MI:SS')-->
<!-- <if test="eventtype != null and eventtype ==1">-->
<!-- and eve.NOTICE_FLAG =1-->
<!-- </if>-->
<!-- <if test="eventtype == null or eventtype ==0">-->
<!-- and (eve.NOTICE_FLAG =0 or eve.NOTICE_FLAG is null)-->
<!-- </if>-->
<!-- order by eve.NOTICE_FLAG asc NULLS FIRST , eve.TIMEID desc-->
<!--&lt;!&ndash; )&ndash;&gt;-->
<!--&lt;!&ndash; WHERE ROWNUM &lt;= 10;&ndash;&gt;-->
<!-- </select>-->
</mapper>

View File

@@ -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日")

View File

@@ -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;
}

View File

@@ -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<EventTrendVO> eventTrend(LargeScreenCountParam largeScreenCountParam);
List<EventDetailVO> eventList(LargeScreenCountParam largeScreenCountParam);
Page<EventDetailVO> eventList(LargeScreenCountParam largeScreenCountParam);
List<EventDetailVO> noDealEventList(LargeScreenCountParam largeScreenCountParam);

View File

@@ -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【需求编号】

View File

@@ -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<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
List<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
if(CollectionUtils.isEmpty(deptslineIds)){
throw new BusinessException("部门下暂无监测点");
}
List<PqLine> 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<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
List<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
if(CollectionUtils.isEmpty(deptslineIds)){
throw new BusinessException("部门下暂无监测点");
}
List<PqsEventdetail> 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<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
List<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
if(CollectionUtils.isEmpty(deptslineIds)){
throw new BusinessException("部门下暂无监测点");
}
List<PqsEventdetail> 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<EventDetailVO> eventList(LargeScreenCountParam largeScreenCountParam) {
return null;
public Page<EventDetailVO> eventList(LargeScreenCountParam largeScreenCountParam) {
Page<PqsEventdetail> 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<String> deptAndChildren = pqsDeptsService.findDeptAndChildren( largeScreenCountParam.getDeptId());
//获取对应监测点id
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
List<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
if(CollectionUtils.isEmpty(deptslineIds)){
throw new BusinessException("部门下暂无监测点");
}
QueryWrapper<PqsEventdetail> 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<PqsEventdetail> list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper);
List<EventDetailVO> collect = list.getRecords().stream().map(temp -> {
EventDetailVO eventDetailVO = new EventDetailVO();
BeanUtils.copyProperties(temp, eventDetailVO);
return eventDetailVO;
}).collect(Collectors.toList());
Page<EventDetailVO> returnpage = new Page<> (largeScreenCountParam.getPageNum ( ), largeScreenCountParam.getPageSize ( ));
returnpage.setRecords(collect);
return returnpage;
}
@Override

View File

@@ -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<PqsEventdetailMapper, PqsEventdetail> implements PqsEventdetailService{
}

View File

@@ -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