This commit is contained in:
2025-07-15 20:35:15 +08:00
parent 6e4bbfc383
commit c9ac33864a
7 changed files with 132 additions and 84 deletions

View File

@@ -113,6 +113,38 @@ public class EventGateController extends BaseController {
} }
@OperateInfo
@GetMapping("/testEvent")
@ApiOperation("接收远程推送的暂态事件")
public HttpResult<Object> testEvent() {
String methodDescribe = getMethodDescribe("testEvent");
log.info("模拟测试发送暂降事件-------------------------");
JSONObject jsonObject;
try {
//下面一行代码正式环境需要放开
jsonObject = test();
if (msgEventConfigService.getEventType().contains(jsonObject.get("wavetype").toString())) {
webSocketServer.sendMessageToAll(jsonObject.toString());
//开始发送短信
try {
sendMessage(jsonObject);
}catch (Exception e){
log.error("短信组装发送失败!失败原因{}",e.getMessage());
}
}
} catch (Exception e) {
log.error("暂降json格式异常!{}", e.getMessage());
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
//测试模拟,正式环境删除 //测试模拟,正式环境删除
private PqsEventdetail createEvent(JSONObject jsonObject, LocalDateTime now) { private PqsEventdetail createEvent(JSONObject jsonObject, LocalDateTime now) {
PqsEventdetail pqsEventdetail = new PqsEventdetail(); PqsEventdetail pqsEventdetail = new PqsEventdetail();
@@ -149,12 +181,8 @@ public class EventGateController extends BaseController {
Integer[] temArr = new Integer[]{1, 3}; Integer[] temArr = new Integer[]{1, 3};
Integer wave = random.nextInt(2); Integer wave = random.nextInt(2);
double min = 0.5;
double max = 10.0;
// 生成 (0.5, 10.0) 范围内的随机小数 Double per = (double)random.nextInt(5000);
Double perTem = min + (max - min) * Math.random();
Double per = new BigDecimal(perTem).setScale(2, RoundingMode.HALF_UP).doubleValue();
double minV = 0.1; double minV = 0.1;
double maxV = 0.9; double maxV = 0.9;
@@ -176,11 +204,11 @@ public class EventGateController extends BaseController {
tem.set("bdname", dto.getStationName()); tem.set("bdname", dto.getStationName());
tem.set("pointname", dto.getLineName()); tem.set("pointname", dto.getLineName());
PqsEventdetail pqsEventdetail = createEvent(tem, now); /* PqsEventdetail pqsEventdetail = createEvent(tem, now);
if (msgEventConfigService.getEventType().contains(tem.get("wavetype").toString())) { if (msgEventConfigService.getEventType().contains(tem.get("wavetype").toString())) {
webSocketServer.sendMessageToAll(tem.toString()); webSocketServer.sendMessageToAll(tem.toString());
} }
pqsEventdetailService.save(pqsEventdetail); pqsEventdetailService.save(pqsEventdetail);*/
/*----------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------*/
return tem; return tem;

View File

@@ -37,6 +37,17 @@ import java.util.List;
public class LargeScreenCountController extends BaseController { public class LargeScreenCountController extends BaseController {
private final LargeScreenCountService largeScreenCountService; private final LargeScreenCountService largeScreenCountService;
@OperateInfo
@PostMapping("/initLedger")
@ApiOperation("台账规模统计")
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
public HttpResult<Object> initLedger(@RequestBody LargeScreenCountParam largeScreenCountParam) {
String methodDescribe = getMethodDescribe("initLedger");
largeScreenCountService.initLedger(largeScreenCountParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo @OperateInfo
@PostMapping("/ledgercount") @PostMapping("/ledgercount")
@ApiOperation("台账规模统计") @ApiOperation("台账规模统计")

View File

@@ -6,6 +6,7 @@ import com.njcn.gather.event.transientes.pojo.po.MsgEventInfo;
import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail; import com.njcn.gather.event.transientes.pojo.po.PqsEventdetail;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@@ -23,7 +24,7 @@ public class MapCountVO {
private Integer eventCount; private Integer eventCount;
private Integer noticeCount; private Integer noticeCount;
private List<LedgerBaseInfoDTO> lineList; private List<LedgerBaseInfoDTO> lineList = new ArrayList<>();
private List<EventDetailVO> eventList; private List<EventDetailVO> eventList = new ArrayList<>();
private List<MsgEventInfo> noticeList; private List<MsgEventInfo> noticeList = new ArrayList<>();
} }

View File

@@ -34,7 +34,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable() http.csrf().disable()
.authorizeRequests() .authorizeRequests()
.antMatchers("/cn_authenticate","/ws/**").permitAll() // 允许访问认证接口 .antMatchers("/cn_authenticate","/ws/**","/accept/testEvent").permitAll() // 允许访问认证接口
//.antMatchers("/**").permitAll() // 允许访问认证接口 //.antMatchers("/**").permitAll() // 允许访问认证接口
.anyRequest().authenticated() .anyRequest().authenticated()
.and() .and()

View File

@@ -17,6 +17,9 @@ import java.util.List;
* @version V1.0.0 * @version V1.0.0
*/ */
public interface LargeScreenCountService { public interface LargeScreenCountService {
void initLedger(LargeScreenCountParam largeScreenCountParam);
LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam); LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam);
AlarmAnalysisVO alarmAnalysis(LargeScreenCountParam largeScreenCountParam); AlarmAnalysisVO alarmAnalysis(LargeScreenCountParam largeScreenCountParam);

View File

@@ -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());

View File

@@ -31,12 +31,12 @@ spring:
maxPoolPreparedStatementPerConnectionSize: 20 maxPoolPreparedStatementPerConnectionSize: 20
datasource: datasource:
master: master:
#url: jdbc:oracle:thin:@192.168.1.51:1521:pqsbase url: jdbc:oracle:thin:@192.168.1.51:1521:pqsbase
#username: pqsadmin_bj username: pqsadmin_bj
#password: pqsadmin password: pqsadmin
url: jdbc:oracle:thin:@192.168.10.34:11521:pqsbase #url: jdbc:oracle:thin:@192.168.10.34:11521:pqsbase
username: pqsadmin #username: pqsadmin
password: Pqsadmin_123 #password: Pqsadmin_123
driver-class-name: oracle.jdbc.driver.OracleDriver driver-class-name: oracle.jdbc.driver.OracleDriver
# salve: # salve:
# driver-class-name: dm.jdbc.driver.DmDriver # driver-class-name: dm.jdbc.driver.DmDriver
@@ -53,7 +53,7 @@ mybatis-plus:
#驼峰命名 #驼峰命名
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
#配置sql日志输出 #配置sql日志输出
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭日志输出 #关闭日志输出
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config: global-config: