二次版本提交
This commit is contained in:
@@ -4,9 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njcn.gather.event.devcie.mapper.PqLineMapper;
|
||||
import com.njcn.gather.event.devcie.pojo.po.PqLine;
|
||||
import com.njcn.gather.event.devcie.pojo.po.PqsDeptsline;
|
||||
import com.njcn.gather.event.devcie.service.PqsDeptslineService;
|
||||
import com.njcn.gather.event.transientes.pojo.po.PqsDepts;
|
||||
import com.njcn.gather.event.transientes.service.PqsDeptsService;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -14,6 +19,7 @@ import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
@@ -29,20 +35,34 @@ public class PqlineCache {
|
||||
private PqLineMapper pqLineMapper;
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
@Autowired
|
||||
private PqsDeptslineService pqsDeptslineService;
|
||||
@Autowired
|
||||
|
||||
|
||||
private PqsDeptsService pqsDeptsService;
|
||||
private final static String NAME_KEY = "LineCache:";
|
||||
@Value("${SYS_TYPE_ZT}")
|
||||
private String sysTypeZt;
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
log.info("系统启动中。。。加载pqline");
|
||||
List<PqLine> pqLines = pqLineMapper.selectList(null);
|
||||
redisUtil.saveByKey("pqLineList",pqLines);
|
||||
redisUtil.saveByKey(NAME_KEY + StrUtil.DASHED+"pqLineList",pqLines);
|
||||
List<PqsDepts> list = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState, 1).list();
|
||||
for (PqsDepts pqsDepts : list) {
|
||||
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(pqsDepts.getDeptsIndex());
|
||||
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());
|
||||
redisUtil.saveByKey(NAME_KEY + StrUtil.DASHED+pqsDepts.getDeptsIndex(),deptslineIds);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() {
|
||||
log.info("系统运行结束");
|
||||
redisUtil.delete("pqLineList");
|
||||
redisUtil.deleteKeysByString(NAME_KEY);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,12 +18,17 @@
|
||||
select
|
||||
PQ_SUBSTATION.sub_index stationId,
|
||||
PQ_SUBSTATION.name stationName,
|
||||
PQ_GDINFORMATION.Name gdName
|
||||
PQ_GDINFORMATION.Name gdName,
|
||||
PQS_MAP.LATITUDE LATITUDE,
|
||||
PQS_MAP.LONGITUDE LONGITUDE
|
||||
from
|
||||
PQ_SUBSTATION,
|
||||
PQ_GDINFORMATION
|
||||
PQ_SUBSTATION left join
|
||||
PQS_MAP on PQ_SUBSTATION.SUB_INDEX =PQS_MAP.SUB_INDEX
|
||||
left join
|
||||
PQ_GDINFORMATION on PQ_SUBSTATION.GD_INDEX =PQ_GDINFORMATION.GD_INDEX
|
||||
|
||||
where
|
||||
PQ_SUBSTATION.GD_INDEX =PQ_GDINFORMATION.GD_INDEX
|
||||
PQS_MAP.state=1
|
||||
and PQ_SUBSTATION.SUB_INDEX in
|
||||
<foreach collection="ids" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
|
||||
@@ -15,6 +15,8 @@ public class SubstationDTO {
|
||||
private Integer stationId;
|
||||
private String stationName;
|
||||
private String gdName;
|
||||
private double longitude;
|
||||
private double latitude;
|
||||
private Integer runFlag=0;;
|
||||
|
||||
}
|
||||
|
||||
@@ -210,6 +210,15 @@ public class LargeScreenCountController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo
|
||||
@PostMapping("/substationCount")
|
||||
@ApiOperation("变电站统计")
|
||||
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
|
||||
public HttpResult<List<SubStationCountVO>> substationCount(@RequestBody LargeScreenCountParam largeScreenCountParam) {
|
||||
String methodDescribe = getMethodDescribe("substationCount");
|
||||
List<SubStationCountVO> result = largeScreenCountService.substationCount(largeScreenCountParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo
|
||||
@PostMapping("/regionDevCount")
|
||||
@@ -224,5 +233,14 @@ public class LargeScreenCountController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@OperateInfo
|
||||
@PostMapping("/eventPage")
|
||||
@ApiOperation("分页查询暂降事件")
|
||||
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
|
||||
public HttpResult<Page<EventDetailVO>> eventPage(@RequestBody LargeScreenCountParam largeScreenCountParam) {
|
||||
String methodDescribe = getMethodDescribe("eventPage");
|
||||
Page<EventDetailVO> result = largeScreenCountService.eventPage(largeScreenCountParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.njcn.gather.event.transientes.pojo.param;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.njcn.web.pojo.param.BaseParam;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/06/19 下午 3:38【需求编号】
|
||||
@@ -25,4 +28,8 @@ public class LargeScreenCountParam extends BaseParam {
|
||||
private Integer eventDeep;
|
||||
|
||||
private Integer sendResult;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime startTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.njcn.gather.event.transientes.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2025/07/29 上午 11:03【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class SubStationCountVO {
|
||||
private Integer stationId;
|
||||
private String stationName;
|
||||
private String gdName;
|
||||
private double longitude;
|
||||
private double latitude;
|
||||
|
||||
private Integer lineCount;
|
||||
private Integer eventCount;
|
||||
|
||||
}
|
||||
@@ -36,6 +36,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.authorizeRequests()
|
||||
//.antMatchers("/cn_authenticate","/ws/**","/accept/testEvent").permitAll() // 允许访问认证接口
|
||||
.antMatchers("/**").permitAll() // 允许访问认证接口
|
||||
.antMatchers("/cn_authenticate","/ws/**","/accept/testEvent").permitAll() // 允许访问认证接口
|
||||
// .antMatchers("/**").permitAll() // 允许访问认证接口
|
||||
.anyRequest().authenticated()
|
||||
.and()
|
||||
.sessionManagement()
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.njcn.gather.event.transientes.service;
|
||||
import com.njcn.gather.event.devcie.pojo.po.PqsDeptsline;
|
||||
import com.njcn.gather.event.devcie.service.PqsDeptslineService;
|
||||
import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -23,7 +24,7 @@ public class CommGeneralService {
|
||||
|
||||
private final PqsDeptslineService pqsDeptslineService;
|
||||
private final PqsDeptsService pqsDeptsService;
|
||||
|
||||
private final RedisUtil redisUtil;
|
||||
|
||||
/**
|
||||
* 根据部门id获取部门所拥有的监测点
|
||||
|
||||
@@ -55,5 +55,7 @@ public interface LargeScreenCountService {
|
||||
|
||||
List<RegionDevCountVO> regionDevCount(LargeScreenCountParam largeScreenCountParam);
|
||||
|
||||
List<SubStationCountVO> substationCount(LargeScreenCountParam largeScreenCountParam);
|
||||
|
||||
Page<EventDetailVO> eventPage(LargeScreenCountParam largeScreenCountParam);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.github.yulichang.wrapper.segments.Fun;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.gather.event.devcie.config.PqlineCache;
|
||||
import com.njcn.gather.event.devcie.mapper.PqLineMapper;
|
||||
import com.njcn.gather.event.devcie.mapper.PqLinedetailMapper;
|
||||
import com.njcn.gather.event.devcie.pojo.dto.DeviceDTO;
|
||||
@@ -87,6 +88,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
private final RedisUtil redisUtil;
|
||||
@Value("${SYS_TYPE_ZT}")
|
||||
private String sysTypeZt;
|
||||
private final static String NAME_KEY = "LineCache:";
|
||||
|
||||
|
||||
private List<Integer> lineIds = new ArrayList<>();
|
||||
@@ -873,10 +875,10 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
@Override
|
||||
public DeviceCountVO devFlagCount(LargeScreenCountParam largeScreenCountParam) {
|
||||
DeviceCountVO deviceCountVO = new DeviceCountVO();
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey("pqLineList");
|
||||
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
||||
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());
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList");
|
||||
List<Integer> deptslineIds = (List<Integer>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId());
|
||||
// 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());
|
||||
pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList());
|
||||
List<Integer> devIndexs = pqLineList.stream().map(PqLine::getDevIndex).collect(Collectors.toList());
|
||||
|
||||
@@ -895,10 +897,12 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
@Override
|
||||
public List<DeviceDTO> devDetail(LargeScreenCountParam largeScreenCountParam) {
|
||||
DeviceCountVO deviceCountVO = new DeviceCountVO();
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey("pqLineList");
|
||||
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
||||
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());
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList");
|
||||
List<Integer> deptslineIds = (List<Integer>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId());
|
||||
|
||||
// List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
||||
// 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());
|
||||
pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList());
|
||||
List<Integer> devIndexs = pqLineList.stream().map(PqLine::getDevIndex).collect(Collectors.toList());
|
||||
|
||||
@@ -911,26 +915,27 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
@Override
|
||||
public List<RegionDevCountVO> regionDevCount(LargeScreenCountParam largeScreenCountParam) {
|
||||
List<RegionDevCountVO> result = new ArrayList<>();
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey("pqLineList");
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList");
|
||||
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
||||
if(deptAndChildren.size()>1){
|
||||
deptAndChildren.remove(largeScreenCountParam.getDeptId());
|
||||
}
|
||||
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
||||
List<PqDevice> pqDeviceList = pqDeviceService.lambdaQuery().eq(PqDevice::getDevflag, 0).list();
|
||||
|
||||
// List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
||||
List<PqsDepts> list = pqsDeptsService.lambdaQuery().in(PqsDepts::getDeptsIndex, deptAndChildren).eq(PqsDepts::getState, 1).list();
|
||||
list.forEach(temp->{
|
||||
RegionDevCountVO regionDevCountVO = new RegionDevCountVO();
|
||||
regionDevCountVO.setDeptsIndex(temp.getDeptsIndex());
|
||||
regionDevCountVO.setDeptsname(temp.getDeptsname());
|
||||
List<Integer> deptslineIds = deptslines.stream().filter(deptsline->Objects.equals(deptsline.getDeptsIndex(),temp.getDeptsIndex())).map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
||||
List<Integer> deptslineIds =(List<Integer>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+temp.getDeptsIndex());
|
||||
List<PqLine> collect = pqLineList.stream().filter(pqLine -> deptslineIds.contains(pqLine.getLineIndex())).collect(Collectors.toList());
|
||||
List<Integer> devIndexs = collect.stream().map(PqLine::getDevIndex).collect(Collectors.toList());
|
||||
|
||||
List<PqDevice> tempDeviceList = pqDeviceList.stream().filter(pqDevice -> devIndexs.contains(pqDevice.getDevIndex())).collect(Collectors.toList());
|
||||
//在运总数
|
||||
List<PqDevice> pqDeviceList = pqDeviceService.lambdaQuery().in(PqDevice::getDevIndex, devIndexs).eq(PqDevice::getDevflag, 0).list();
|
||||
long onLine = pqDeviceList.stream().filter(pqDevice -> Objects.equals(pqDevice.getStatus(), 1)).count();
|
||||
long Offline = pqDeviceList.stream().filter(pqDevice -> Objects.equals(pqDevice.getStatus(), 0)).count();
|
||||
regionDevCountVO.setAllCount(pqDeviceList.size());
|
||||
long onLine = tempDeviceList.stream().filter(pqDevice -> Objects.equals(pqDevice.getStatus(), 1)).count();
|
||||
long Offline = tempDeviceList.stream().filter(pqDevice ->Objects.equals(pqDevice.getStatus(), 0)).count();
|
||||
regionDevCountVO.setAllCount(tempDeviceList.size());
|
||||
|
||||
regionDevCountVO.setOnLine((int) onLine);
|
||||
regionDevCountVO.setOffLine((int) Offline);
|
||||
@@ -940,6 +945,130 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<SubStationCountVO> substationCount(LargeScreenCountParam largeScreenCountParam) {
|
||||
LocalDateTime startTime = largeScreenCountParam.getStartTime();
|
||||
LocalDateTime endTime = largeScreenCountParam.getEndTime();
|
||||
|
||||
List<SubStationCountVO> subStationCountVOS = new ArrayList<>();
|
||||
List<PqLine> pqLineList = (List<PqLine>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList");
|
||||
List<Integer> deptslineIds = (List<Integer>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId());
|
||||
|
||||
|
||||
pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList());
|
||||
List<Integer> subIndexs = pqLineList.stream().map(PqLine::getSubIndex).collect(Collectors.toList());
|
||||
List<SubstationDTO> substationDTOS = pqSubstationService.queryListByIds(subIndexs);
|
||||
Map<Integer, SubstationDTO> substationDTOMap= substationDTOS.stream().collect(Collectors.toMap(SubstationDTO::getStationId, Function.identity()));
|
||||
|
||||
//查询暂态事件
|
||||
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
||||
if(deptslineIds.size()>1000){
|
||||
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
||||
for(List<Integer> itemIds : listIds){
|
||||
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
||||
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
||||
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||
.in(PqsEventdetail::getLineid,listIds)
|
||||
.orderByDesc(PqsEventdetail::getTimeid).list()
|
||||
;
|
||||
eventdetails.addAll(temp);
|
||||
}
|
||||
}else {
|
||||
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
||||
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
||||
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||
.in(PqsEventdetail::getLineid,deptslineIds)
|
||||
.orderByDesc(PqsEventdetail::getTimeid).list();
|
||||
eventdetails.addAll(temp);
|
||||
}
|
||||
Map<Integer, List<PqLine>> map = pqLineList.stream().collect(Collectors.groupingBy(PqLine::getSubIndex));
|
||||
map.forEach((k,v)->{
|
||||
if(substationDTOMap.containsKey(k)){
|
||||
SubStationCountVO subStationCountVO = new SubStationCountVO();
|
||||
SubstationDTO substationDTO = substationDTOMap.get(k);
|
||||
subStationCountVO.setStationId(substationDTO.getStationId());
|
||||
subStationCountVO.setStationName(substationDTO.getStationName());
|
||||
subStationCountVO.setGdName(substationDTO.getGdName());
|
||||
subStationCountVO.setLongitude(substationDTO.getLongitude());
|
||||
subStationCountVO.setLatitude(substationDTO.getLatitude());
|
||||
List<Integer> tempLineIds = v.stream().map(PqLine::getLineIndex).collect(Collectors.toList());
|
||||
subStationCountVO.setLineCount(tempLineIds.size());
|
||||
List<PqsEventdetail> tempEventList = eventdetails.stream().filter(temp -> tempLineIds.contains(temp.getLineid())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(tempEventList)){
|
||||
subStationCountVO.setEventCount(0);
|
||||
|
||||
}else {
|
||||
subStationCountVO.setEventCount(tempEventList.size());
|
||||
}
|
||||
subStationCountVOS.add(subStationCountVO);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
return subStationCountVOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<EventDetailVO> eventPage(LargeScreenCountParam largeScreenCountParam) {
|
||||
Page<PqsEventdetail> pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize());
|
||||
LocalDateTime startTime = largeScreenCountParam.getStartTime();
|
||||
LocalDateTime endTime = largeScreenCountParam.getEndTime();
|
||||
|
||||
List<Integer> deptslineIds = (List<Integer>) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId());
|
||||
|
||||
List<LedgerBaseInfoDTO> pqLineList = pqLineService.getBaseLineInfo(deptslineIds);
|
||||
Map<Integer,LedgerBaseInfoDTO> ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
|
||||
|
||||
QueryWrapper<PqsEventdetail> queryWrapper = new QueryWrapper<>();
|
||||
if (deptslineIds.size()>1000) {
|
||||
List<List<Integer>> idPartitions = CollUtil.split(deptslineIds,1000);
|
||||
|
||||
queryWrapper.lambda()
|
||||
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
||||
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||
.and(ew->{
|
||||
for(List<Integer> pList: idPartitions){
|
||||
ew.or(w->w.in(PqsEventdetail::getLineid, pList));
|
||||
}
|
||||
}).orderByDesc(PqsEventdetail::getTimeid);
|
||||
|
||||
|
||||
} else {
|
||||
queryWrapper.lambda()
|
||||
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
||||
.in(PqsEventdetail::getLineid, deptslineIds)
|
||||
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||
.orderByDesc(PqsEventdetail::getTimeid);
|
||||
}
|
||||
|
||||
|
||||
IPage<PqsEventdetail> list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper);
|
||||
List<EventDetailVO> collect = list.getRecords().stream().map(temp -> {
|
||||
EventDetailVO eventDetailVO = new EventDetailVO();
|
||||
eventDetailVO.setEventdetail_index(temp.getEventdetailIndex());
|
||||
eventDetailVO.setTimeid(temp.getTimeid());
|
||||
eventDetailVO.setMs(temp.getMs());
|
||||
eventDetailVO.setWavetype(temp.getWavetype().toString());
|
||||
eventDetailVO.setPersisttime(BigDecimal.valueOf(temp.getPersisttime() / 1000).setScale(3, RoundingMode.HALF_UP).toString());
|
||||
eventDetailVO.setEventvalue(temp.getEventvalue());
|
||||
eventDetailVO.setLookFlag(temp.getLookFlag());
|
||||
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
||||
if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){
|
||||
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid());
|
||||
eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId());
|
||||
eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName());
|
||||
eventDetailVO.setBdname(ledgerBaseInfoDTO.getStationName());
|
||||
eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName());
|
||||
}
|
||||
return eventDetailVO;
|
||||
}).collect(Collectors.toList());
|
||||
Page<EventDetailVO> returnpage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize());
|
||||
returnpage.setRecords(collect);
|
||||
returnpage.setTotal(list.getTotal());
|
||||
return returnpage;
|
||||
}
|
||||
|
||||
private List<EventDetailVO> change(List<PqsEventdetail> list,List<MsgEventInfo> handleMsg){
|
||||
List<EventDetailVO> result = new ArrayList<>();
|
||||
if(CollectionUtils.isEmpty(list)){
|
||||
|
||||
Reference in New Issue
Block a user