|
|
|
|
@@ -84,16 +84,9 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
private final PqsUserService pqsUserService;
|
|
|
|
|
private final PqLinedetailMapper pqLinedetailMapper;
|
|
|
|
|
|
|
|
|
|
private List<String> WAVETYPE_LIST = new ArrayList<>();
|
|
|
|
|
@Value("${SYS_TYPE_ZT}")
|
|
|
|
|
private String sysTypeZt;
|
|
|
|
|
|
|
|
|
|
@PostConstruct
|
|
|
|
|
public void init() {
|
|
|
|
|
MsgEventConfig one = msgEventConfigService.queryConfig();
|
|
|
|
|
this.WAVETYPE_LIST = one.getEventTypeList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
|
@@ -194,7 +187,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid,listIds)
|
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list()
|
|
|
|
|
;
|
|
|
|
|
@@ -203,7 +196,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
}else {
|
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
|
@@ -302,7 +295,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid,listIds)
|
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
|
@@ -310,7 +303,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
}else {
|
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
|
@@ -397,12 +390,11 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
|
|
|
|
|
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,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.and(ew->{
|
|
|
|
|
for(List<Integer> pList: idPartitions){
|
|
|
|
|
ew.or(w->w.in(PqsEventdetail::getLineid, pList));
|
|
|
|
|
@@ -414,7 +406,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
queryWrapper.lambda()
|
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid);
|
|
|
|
|
}
|
|
|
|
|
//查询需要发送短息处理的部门反推监测点
|
|
|
|
|
@@ -485,17 +477,19 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
|
}
|
|
|
|
|
//根据用户获取当前部门及子部门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).distinct().collect(Collectors.toList());
|
|
|
|
|
List<Integer> deptslineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
|
if (CollUtil.isEmpty(deptslineIds)) {
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
List<PqsEventdetail> allList = new ArrayList<>();
|
|
|
|
|
LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
|
List<List<Integer>> idList = CollUtil.split(deptslineIds,1000);
|
|
|
|
|
for(List<Integer> ids:idList){
|
|
|
|
|
lambdaQueryWrapper.clear();
|
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid, ids)
|
|
|
|
|
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
|
|
|
|
|
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
|
|
|
|
|
if (largeScreenCountParam.getEventDeep() == 0) {
|
|
|
|
|
@@ -505,11 +499,30 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
List<PqsEventdetail> eventList = pqsEventdetailService.list(lambdaQueryWrapper);
|
|
|
|
|
if (CollUtil.isNotEmpty(eventList)) {
|
|
|
|
|
List<Integer> ids = eventList.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList());
|
|
|
|
|
allList.addAll(eventList);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds)
|
|
|
|
|
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
|
|
|
|
|
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
|
|
|
|
|
if (largeScreenCountParam.getEventDeep() == 0) {
|
|
|
|
|
lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventtype, 0.9);
|
|
|
|
|
} else if (largeScreenCountParam.getEventDeep() == 1) {
|
|
|
|
|
lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
List<PqsEventdetail> eventList = pqsEventdetailService.list(lambdaQueryWrapper);
|
|
|
|
|
allList.addAll(eventList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(allList)) {
|
|
|
|
|
List<Integer> ids = allList.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList());
|
|
|
|
|
List<LedgerBaseInfoDTO> pqLineList = pqLineMapper.getBaseLineInfo(ids);
|
|
|
|
|
Map<Integer, LedgerBaseInfoDTO> ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
|
|
|
|
|
eventList.forEach(it -> {
|
|
|
|
|
for(PqsEventdetail it : allList){
|
|
|
|
|
EventDetailVO eventDetailVO = new EventDetailVO();
|
|
|
|
|
eventDetailVO.setEventdetail_index(it.getEventdetailIndex());
|
|
|
|
|
eventDetailVO.setTimeid(it.getTimeid());
|
|
|
|
|
@@ -524,8 +537,9 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
eventDetailVO.setBdname(ledgerBaseInfoDTO.getStationName());
|
|
|
|
|
}
|
|
|
|
|
result.add(eventDetailVO);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
result = result.stream().sorted(Comparator.comparing(EventDetailVO::getTimeid)).collect(Collectors.toList());
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -579,7 +593,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
List<Integer> deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
|
List<PqsEventdetail> eventdetails = pqsEventdetailService.lambdaQuery()
|
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
|
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds).list();
|
|
|
|
|
mapCountVO.setEventCount(eventdetails.size());
|
|
|
|
|
List<EventDetailVO> change = change(eventdetails);
|
|
|
|
|
|