|
|
|
@@ -47,6 +47,8 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
import java.math.RoundingMode;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
@@ -66,7 +68,6 @@ import java.util.stream.Stream;
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
|
public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
|
|
|
|
|
|
|
private final JwtUtil jwtUtil;
|
|
|
|
|
|
|
|
private final PqsDeptslineService pqsDeptslineService;
|
|
|
|
private final PqsDeptslineService pqsDeptslineService;
|
|
|
|
private final PqsDeptsService pqsDeptsService;
|
|
|
|
private final PqsDeptsService pqsDeptsService;
|
|
|
|
private final PqLineService pqLineService;
|
|
|
|
private final PqLineService pqLineService;
|
|
|
|
@@ -86,27 +87,31 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
private String sysTypeZt;
|
|
|
|
private String sysTypeZt;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<Integer> lineIds = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void initLedger(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
|
|
|
|
lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
public LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
LedgerCountVO ledgerCountVO = new LedgerCountVO();
|
|
|
|
LedgerCountVO ledgerCountVO = new LedgerCountVO();
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
//获取对应监测点id
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
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("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqLine> pqLineList = new ArrayList<>();
|
|
|
|
List<PqLine> pqLineList = new ArrayList<>();
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
if(lineIds.size()>1000){
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(lineIds,1000);
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
List<PqLine> temp =pqLineService.lambdaQuery().in(PqLine::getLineIndex, listIds).list();
|
|
|
|
List<PqLine> temp =pqLineService.lambdaQuery().in(PqLine::getLineIndex, itemIds).list();
|
|
|
|
pqLineList.addAll(temp);
|
|
|
|
pqLineList.addAll(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
List<PqLine> temp = pqLineService.lambdaQuery().in(PqLine::getLineIndex, deptslineIds).list();
|
|
|
|
List<PqLine> temp = pqLineService.lambdaQuery().in(PqLine::getLineIndex, lineIds).list();
|
|
|
|
pqLineList.addAll(temp);
|
|
|
|
pqLineList.addAll(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//统计总数
|
|
|
|
//统计总数
|
|
|
|
@@ -171,17 +176,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
|
|
|
|
//获取对应监测点id
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
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("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
if(lineIds.size()>1000){
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(lineIds,1000);
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
|
|
|
@@ -195,7 +197,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
|
|
|
.in(PqsEventdetail::getLineid,lineIds)
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -266,19 +268,19 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
// List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//获取对应监测点id
|
|
|
|
//获取对应监测点id
|
|
|
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
|
|
|
//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<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
if (CollectionUtils.isEmpty(deptslineIds)) {
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
LocalDate startDate = LocalDate.parse(DateUtil.format(startTime, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
LocalDate startDate = LocalDate.parse(DateUtil.format(startTime, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
LocalDate endDate = LocalDate.parse(DateUtil.format(endTime, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
LocalDate endDate = LocalDate.parse(DateUtil.format(endTime, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
if(lineIds.size()>1000){
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(lineIds,1000);
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
@@ -291,7 +293,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
|
|
|
.in(PqsEventdetail::getLineid,lineIds)
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -351,20 +353,20 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//获取对应监测点id
|
|
|
|
//获取对应监测点id
|
|
|
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
|
|
|
//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 = deptslines.stream().map(PqsDeptsline::getLineIndex).distinct().collect(Collectors.toList());
|
|
|
|
if (CollectionUtils.isEmpty(deptslineIds)) {
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<LedgerBaseInfoDTO> pqLineList = pqLineService.getBaseLineInfo(deptslineIds);
|
|
|
|
List<LedgerBaseInfoDTO> pqLineList = pqLineService.getBaseLineInfo(lineIds);
|
|
|
|
Map<Integer,LedgerBaseInfoDTO> ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
|
|
|
|
Map<Integer,LedgerBaseInfoDTO> ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
|
|
|
|
|
|
|
|
|
|
|
|
QueryWrapper<PqsEventdetail> queryWrapper = new QueryWrapper<>();
|
|
|
|
QueryWrapper<PqsEventdetail> queryWrapper = new QueryWrapper<>();
|
|
|
|
if (deptslineIds.size()>1000) {
|
|
|
|
if (lineIds.size()>1000) {
|
|
|
|
List<List<Integer>> idPartitions = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> idPartitions = CollUtil.split(lineIds,1000);
|
|
|
|
|
|
|
|
|
|
|
|
queryWrapper.lambda()
|
|
|
|
queryWrapper.lambda()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
@@ -379,7 +381,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
queryWrapper.lambda()
|
|
|
|
queryWrapper.lambda()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds)
|
|
|
|
.in(PqsEventdetail::getLineid, lineIds)
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid);
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -401,8 +403,6 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IPage<PqsEventdetail> list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper);
|
|
|
|
IPage<PqsEventdetail> list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper);
|
|
|
|
List<Integer> finalNoticeLineIds = noticeLineIds;
|
|
|
|
List<Integer> finalNoticeLineIds = noticeLineIds;
|
|
|
|
List<EventDetailVO> collect = list.getRecords().stream().map(temp -> {
|
|
|
|
List<EventDetailVO> collect = list.getRecords().stream().map(temp -> {
|
|
|
|
@@ -411,7 +411,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
eventDetailVO.setTimeid(temp.getTimeid());
|
|
|
|
eventDetailVO.setTimeid(temp.getTimeid());
|
|
|
|
eventDetailVO.setMs(temp.getMs());
|
|
|
|
eventDetailVO.setMs(temp.getMs());
|
|
|
|
eventDetailVO.setWavetype(temp.getWavetype().toString());
|
|
|
|
eventDetailVO.setWavetype(temp.getWavetype().toString());
|
|
|
|
eventDetailVO.setPersisttime(String.valueOf(temp.getPersisttime()/1000));
|
|
|
|
eventDetailVO.setPersisttime(BigDecimal.valueOf(temp.getPersisttime() / 1000).setScale(3, RoundingMode.HALF_UP).toString());
|
|
|
|
eventDetailVO.setEventvalue(temp.getEventvalue());
|
|
|
|
eventDetailVO.setEventvalue(temp.getEventvalue());
|
|
|
|
eventDetailVO.setLookFlag(temp.getLookFlag());
|
|
|
|
eventDetailVO.setLookFlag(temp.getLookFlag());
|
|
|
|
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
|
|
|
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
|
|
|
@@ -452,14 +452,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
List<Integer> deptslineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
// List<Integer> deptslineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
if (CollUtil.isEmpty(deptslineIds)) {
|
|
|
|
if (CollUtil.isEmpty(lineIds)) {
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqsEventdetail> allList = new ArrayList<>();
|
|
|
|
List<PqsEventdetail> allList = new ArrayList<>();
|
|
|
|
LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
if(lineIds.size()>1000){
|
|
|
|
List<List<Integer>> idList = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> idList = CollUtil.split(lineIds,1000);
|
|
|
|
for(List<Integer> ids:idList){
|
|
|
|
for(List<Integer> ids:idList){
|
|
|
|
lambdaQueryWrapper.clear();
|
|
|
|
lambdaQueryWrapper.clear();
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
@@ -479,7 +479,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getLineid, deptslineIds)
|
|
|
|
.in(PqsEventdetail::getLineid, lineIds)
|
|
|
|
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
|
|
|
|
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
|
|
|
|
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
|
|
|
|
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
|
|
|
|
if (largeScreenCountParam.getEventDeep() == 0) {
|
|
|
|
if (largeScreenCountParam.getEventDeep() == 0) {
|
|
|
|
@@ -503,7 +503,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
eventDetailVO.setTimeid(it.getTimeid());
|
|
|
|
eventDetailVO.setTimeid(it.getTimeid());
|
|
|
|
eventDetailVO.setMs(it.getMs());
|
|
|
|
eventDetailVO.setMs(it.getMs());
|
|
|
|
eventDetailVO.setWavetype(it.getWavetype().toString());
|
|
|
|
eventDetailVO.setWavetype(it.getWavetype().toString());
|
|
|
|
eventDetailVO.setPersisttime(String.valueOf(it.getPersisttime()/1000));
|
|
|
|
eventDetailVO.setPersisttime(BigDecimal.valueOf(it.getPersisttime() / 1000).setScale(3, RoundingMode.HALF_UP).toString());
|
|
|
|
eventDetailVO.setEventvalue(it.getEventvalue());
|
|
|
|
eventDetailVO.setEventvalue(it.getEventvalue());
|
|
|
|
if (ledgerBaseInfoDTOMap.containsKey(it.getLineid())) {
|
|
|
|
if (ledgerBaseInfoDTOMap.containsKey(it.getLineid())) {
|
|
|
|
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(it.getLineid());
|
|
|
|
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(it.getLineid());
|
|
|
|
@@ -562,19 +562,25 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
|
|
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
|
|
|
if (CollectionUtils.isEmpty(deptslines)) {
|
|
|
|
if (CollectionUtils.isEmpty(deptslines)) {
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqsDepts> list = pqsDeptsService.lambdaQuery().list();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<PqsDepts> list = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState,1).list();
|
|
|
|
Map<String, PqsDepts> stringPqsDeptsMap = list.stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex, Function.identity(), (key1, key2) -> key2));
|
|
|
|
Map<String, PqsDepts> stringPqsDeptsMap = list.stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex, Function.identity(), (key1, key2) -> key2));
|
|
|
|
Map<String, List<PqsDeptsline>> collect = deptslines.stream().collect(Collectors.groupingBy(PqsDeptsline::getDeptsIndex));
|
|
|
|
Map<String, List<PqsDeptsline>> collect = deptslines.stream().collect(Collectors.groupingBy(PqsDeptsline::getDeptsIndex));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> ids = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
|
|
|
|
List<LedgerBaseInfoDTO> ledgerBaseInfoDTOS = pqLineService.getBaseLineInfo(ids);
|
|
|
|
|
|
|
|
|
|
|
|
collect.forEach((k, v) -> {
|
|
|
|
collect.forEach((k, v) -> {
|
|
|
|
|
|
|
|
List<Integer> temList = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
MapCountVO mapCountVO = new MapCountVO();
|
|
|
|
MapCountVO mapCountVO = new MapCountVO();
|
|
|
|
mapCountVO.setDeptsIndex(k);
|
|
|
|
mapCountVO.setDeptsIndex(k);
|
|
|
|
mapCountVO.setDeptsName(stringPqsDeptsMap.get(k).getDeptsname());
|
|
|
|
mapCountVO.setDeptsName(stringPqsDeptsMap.get(k).getDeptsname());
|
|
|
|
|
|
|
|
|
|
|
|
List<LedgerBaseInfoDTO> ledgerBaseInfoDTOS = pqLineService.getBaseLineInfo(v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()));
|
|
|
|
List<LedgerBaseInfoDTO> temLedger = ledgerBaseInfoDTOS.stream().filter(it->temList.contains(it.getLineId())).collect(Collectors.toList());
|
|
|
|
mapCountVO.setLineList(ledgerBaseInfoDTOS);
|
|
|
|
mapCountVO.setLineList(temLedger);
|
|
|
|
mapCountVO.setLineCount(ledgerBaseInfoDTOS.size());
|
|
|
|
mapCountVO.setLineCount(temLedger.size());
|
|
|
|
List<Integer> deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
List<Integer> deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
List<PqsEventdetail> eventdetails = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> eventdetails = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
@@ -586,13 +592,12 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
List<MsgEventInfo> temp = new ArrayList<>();
|
|
|
|
List<MsgEventInfo> temp = new ArrayList<>();
|
|
|
|
if(!CollectionUtils.isEmpty(eveIdndex)){
|
|
|
|
if(!CollectionUtils.isEmpty(eveIdndex)){
|
|
|
|
temp =msgEventInfoService.getMsgByIds(eveIdndex);
|
|
|
|
temp =msgEventInfoService.getMsgByIds(eveIdndex);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<EventDetailVO> change = change(eventdetails,temp);
|
|
|
|
// List<EventDetailVO> change = change(eventdetails,temp);
|
|
|
|
|
|
|
|
|
|
|
|
mapCountVO.setEventList(change);
|
|
|
|
// mapCountVO.setEventList(change);
|
|
|
|
mapCountVO.setNoticeCount(temp.size());
|
|
|
|
mapCountVO.setNoticeCount(temp.size());
|
|
|
|
mapCountVO.setNoticeList(temp);
|
|
|
|
// mapCountVO.setNoticeList(temp);
|
|
|
|
result.add(mapCountVO);
|
|
|
|
result.add(mapCountVO);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
@@ -623,19 +628,19 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<MsgEventInfo> msgSendList(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
public List<MsgEventInfo> msgSendList(LargeScreenCountParam largeScreenCountParam) {
|
|
|
|
List<MsgEventInfo> result = new ArrayList<>();
|
|
|
|
List<MsgEventInfo> result = new ArrayList<>();
|
|
|
|
List<Integer> ids = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
// List<Integer> ids = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
if (CollUtil.isEmpty(ids)) {
|
|
|
|
if (CollUtil.isEmpty(lineIds)) {
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqsEventdetail> allEventList = new ArrayList<>();
|
|
|
|
List<PqsEventdetail> allEventList = new ArrayList<>();
|
|
|
|
if (ids.size() > 1000) {
|
|
|
|
if (lineIds.size() > 1000) {
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(ids, 1000);
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(lineIds, 1000);
|
|
|
|
for (List<Integer> itemIds : listIds) {
|
|
|
|
for (List<Integer> itemIds : listIds) {
|
|
|
|
List<PqsEventdetail> pqsEventdetailList = pqsEventdetailService.lambdaQuery().in(PqsEventdetail::getLineid, itemIds).select(PqsEventdetail::getEventdetailIndex).list();
|
|
|
|
List<PqsEventdetail> pqsEventdetailList = pqsEventdetailService.lambdaQuery().in(PqsEventdetail::getLineid, itemIds).select(PqsEventdetail::getEventdetailIndex).list();
|
|
|
|
allEventList.addAll(pqsEventdetailList);
|
|
|
|
allEventList.addAll(pqsEventdetailList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
List<PqsEventdetail> pqsEventdetailList = pqsEventdetailService.lambdaQuery().in(PqsEventdetail::getLineid, ids).select(PqsEventdetail::getEventdetailIndex).list();
|
|
|
|
List<PqsEventdetail> pqsEventdetailList = pqsEventdetailService.lambdaQuery().in(PqsEventdetail::getLineid, lineIds).select(PqsEventdetail::getEventdetailIndex).list();
|
|
|
|
allEventList.addAll(pqsEventdetailList);
|
|
|
|
allEventList.addAll(pqsEventdetailList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (CollUtil.isEmpty(allEventList)) {
|
|
|
|
if (CollUtil.isEmpty(allEventList)) {
|
|
|
|
@@ -706,17 +711,17 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
//根据用户获取当前部门及子部门id
|
|
|
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
|
|
|
//获取对应监测点id
|
|
|
|
//获取对应监测点id
|
|
|
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
|
|
|
//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<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
|
|
|
if (CollectionUtils.isEmpty(deptslineIds)) {
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
|
|
|
if(deptslineIds.size()>1000){
|
|
|
|
if(lineIds.size()>1000){
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
|
|
|
List<List<Integer>> listIds = CollUtil.split(lineIds,1000);
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
for(List<Integer> itemIds : listIds){
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
|
|
|
@@ -730,7 +735,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
|
|
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
|
|
|
.in(PqsEventdetail::getLineid,lineIds)
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
eventdetails.addAll(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -802,7 +807,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
throw new BusinessException("统计类型有误类型");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
//List<Integer> lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
if (CollectionUtils.isEmpty(lineIds)) {
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
throw new BusinessException("部门下暂无监测点");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -880,7 +885,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|
|
|
eventDetailVO.setTimeid(temp.getTimeid());
|
|
|
|
eventDetailVO.setTimeid(temp.getTimeid());
|
|
|
|
eventDetailVO.setMs(temp.getMs());
|
|
|
|
eventDetailVO.setMs(temp.getMs());
|
|
|
|
eventDetailVO.setWavetype(temp.getWavetype().toString());
|
|
|
|
eventDetailVO.setWavetype(temp.getWavetype().toString());
|
|
|
|
eventDetailVO.setPersisttime(String.valueOf(temp.getPersisttime()/1000));
|
|
|
|
eventDetailVO.setPersisttime(BigDecimal.valueOf(temp.getPersisttime() / 1000).setScale(3, RoundingMode.HALF_UP).toString());
|
|
|
|
eventDetailVO.setEventvalue(temp.getEventvalue());
|
|
|
|
eventDetailVO.setEventvalue(temp.getEventvalue());
|
|
|
|
eventDetailVO.setLookFlag(temp.getLookFlag());
|
|
|
|
eventDetailVO.setLookFlag(temp.getLookFlag());
|
|
|
|
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
|
|
|
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
|
|
|
|