From 2b1a33aea0e60328c0ac17f985a25dd5934e92d4 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Fri, 10 Oct 2025 08:33:37 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=B0=90=E6=B3=A2=E6=BA=AF=E6=BA=90=E7=AE=97?= =?UTF-8?q?=E6=B3=95=202.=E5=8C=97=E4=BA=AC=E6=9A=82=E9=99=8D=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HarmonicUpServiceImpl.java | 7 +- .../pojo/constant/CalculationType.java | 25 + .../responsility/pojo/dto/RespDataDTO.java | 2 + .../responsility/pojo/po/RespData.java | 5 + .../impl/RespDataResultServiceImpl.java | 16 +- .../service/impl/RespDataServiceImpl.java | 26 +- .../service/impl/LedgerScaleServiceImpl.java | 9 +- .../mysqlTerminal/pojo/po/UserReportPO.java | 5 - .../LargeScreenCountController.java | 13 + .../transientes/filter/JwtRequestFilter.java | 1 - .../transientes/pojo/vo/EventDetailVO.java | 2 + .../transientes/security/AuthController.java | 26 +- .../security/MyUserDetailsService.java | 4 +- .../transientes/security/SecurityConfig.java | 4 +- .../service/LargeScreenCountService.java | 3 + .../impl/LargeScreenCountServiceImpl.java | 844 ++++++++++-------- 16 files changed, 586 insertions(+), 406 deletions(-) create mode 100644 cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/constant/CalculationType.java diff --git a/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/service/impl/HarmonicUpServiceImpl.java b/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/service/impl/HarmonicUpServiceImpl.java index 64222c0..7cc659d 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/service/impl/HarmonicUpServiceImpl.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/service/impl/HarmonicUpServiceImpl.java @@ -195,6 +195,9 @@ public class HarmonicUpServiceImpl extends ServiceImpl lineIds = commGeneralService.getRunLineIdsByDept(param.getDeptId()); + if(CollUtil.isEmpty(lineIds)){ + throw new BusinessException(CommonResponseEnum.FAIL,"当前部门未绑定监测点"); + } List ledgerBaseInfoList = ledgerScaleMapper.getLedgerBaseInfo(lineIds); if (CollUtil.isEmpty(ledgerBaseInfoList)) { @@ -558,10 +561,6 @@ public class HarmonicUpServiceImpl extends ServiceImpl> infoList =findAllContinuousAnomalies(sortedAnomalies,ledgerBaseInfoMap); diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/constant/CalculationType.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/constant/CalculationType.java new file mode 100644 index 0000000..23411d6 --- /dev/null +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/constant/CalculationType.java @@ -0,0 +1,25 @@ +package com.njcn.product.advance.responsility.pojo.constant; + +import lombok.Getter; + +@Getter +public enum CalculationType { + + PW_TYPE(0,"配网类型"), + SYSTEM_TYPE(1,"系统类型") + + + + + ; + + + + private final int code; + private final String description; + + CalculationType(int code, String description) { + this.code = code; + this.description = description; + } +} diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/dto/RespDataDTO.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/dto/RespDataDTO.java index ec223b1..6a517fa 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/dto/RespDataDTO.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/dto/RespDataDTO.java @@ -25,5 +25,7 @@ public class RespDataDTO extends RespData implements Serializable { private String lineName; + private Integer type; + } diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/po/RespData.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/po/RespData.java index 0a567b2..d0faba8 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/po/RespData.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/pojo/po/RespData.java @@ -52,4 +52,9 @@ public class RespData extends BaseEntity { */ private Integer state; + /** + * 状态(0/null:配网 1:系统) + */ + private Integer type; + } diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java index a7ce6ba..81bf5c8 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.oss.utils.FileStorageUtil; import com.njcn.product.advance.responsility.mapper.RespDataResultMapper; +import com.njcn.product.advance.responsility.pojo.constant.CalculationType; import com.njcn.product.advance.responsility.pojo.dto.CustomerData; import com.njcn.product.advance.responsility.pojo.dto.CustomerResponsibility; import com.njcn.product.advance.responsility.pojo.dto.ResponsibilityResult; @@ -48,11 +49,11 @@ public class RespDataResultServiceImpl extends ServiceImpl displayHistoryData(String id, Integer time) { List responsibilityResults = new ArrayList<>(); - if (Objects.isNull(time)) { - RespData respData = respDataService.getById(id); - String[] split = respData.getDataTimes().split(StrPool.COMMA); + //if (Objects.isNull(time)) { + RespData respDataQuery = respDataService.getById(id); + String[] split = respDataQuery.getDataTimes().split(StrPool.COMMA); time = Integer.parseInt(split[0]); - } + //} LambdaQueryWrapper respDataResultLambdaQueryWrapper = new LambdaQueryWrapper<>(); respDataResultLambdaQueryWrapper.eq(RespDataResult::getResDataId, id) .eq(RespDataResult::getTime, time); @@ -74,12 +75,17 @@ public class RespDataResultServiceImpl extends ServiceImpl customerData = JSONArray.parseArray(userDetailStr, CustomerData.class); - responsibilityResult.setDatas(customerData); //处理排名前10数据 InputStream respStream = fileStorageUtil.getFileStream(respDataResult.getUserResponsibility()); String respStr = IoUtil.readUtf8(respStream); List respData = JSONArray.parseArray(respStr, CustomerResponsibility.class); + if(Objects.nonNull(respDataQuery.getType()) && respDataQuery.getType().equals(CalculationType.SYSTEM_TYPE.getCode())){ + customerData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); + respData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); + } responsibilityResult.setResponsibilities(respData); + responsibilityResult.setDatas(customerData); + responsibilityResults.add(responsibilityResult); } } diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java index 32e6ae8..f535138 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.constant.ServerInfo; 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.common.utils.FileUtil; import com.njcn.common.utils.PubUtils; @@ -41,6 +42,7 @@ import com.njcn.product.advance.responsility.pojo.bo.RespCommon; import com.njcn.product.advance.responsility.pojo.bo.RespHarmData; import com.njcn.product.advance.responsility.pojo.bo.UserDataExcel; import com.njcn.product.advance.responsility.pojo.constant.CalculationStatus; +import com.njcn.product.advance.responsility.pojo.constant.CalculationType; import com.njcn.product.advance.responsility.pojo.dto.CustomerData; import com.njcn.product.advance.responsility.pojo.dto.CustomerResponsibility; import com.njcn.product.advance.responsility.pojo.dto.RespDataDTO; @@ -121,6 +123,7 @@ public class RespDataServiceImpl extends ServiceImpl i public final static int INTERVAL_TIME_1 = 1; public final static int INTERVAL_TIME_3 = 3; public final static int INTERVAL_TIME_5 = 5; + public final static int INTERVAL_TIME_10 = 10; public final static int INTERVAL_TIME_15 = 15; public final static int INTERVAL_TIME_30 = 30; public final static int WINDOW_96 = 96; @@ -453,8 +456,8 @@ public class RespDataServiceImpl extends ServiceImpl i int pNode, pNum, win, harmNum; float harmMk; List userDataExcels = new ArrayList<>(); - if(Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType()==1){ - userDataExcels = test(responsibilityCalculateParam.getUserList(),responsibilityCalculateParam.getSearchBeginTime(),responsibilityCalculateParam.getSearchEndTime()); + if(Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType()==CalculationType.SYSTEM_TYPE.getCode()){ + userDataExcels = sysMonitorDataGet(responsibilityCalculateParam.getUserList(),responsibilityCalculateParam.getSearchBeginTime(),responsibilityCalculateParam.getSearchEndTime()); }else { userDataExcels = respUserDataService.getUserDataExcelList(responsibilityCalculateParam.getUserDataId()); @@ -618,6 +621,12 @@ public class RespDataServiceImpl extends ServiceImpl i customerData.add(customerDataT); } } + + if(Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType()==CalculationType.SYSTEM_TYPE.getCode()){ + customerData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); + customerResponsibilities.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); + } + result.setDatas(customerData); result.setTimeDatas(timeDatas); result.setResponsibilities(customerResponsibilities); @@ -643,6 +652,11 @@ public class RespDataServiceImpl extends ServiceImpl i responsibilityData.setDataTimes(responsibilityCalculateParam.getTime().toString()); responsibilityData.setTimeWindow(timeWin); responsibilityData.setState(DataStateEnum.ENABLE.getCode()); + if(Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType()==CalculationType.SYSTEM_TYPE.getCode()){ + responsibilityData.setType(CalculationType.SYSTEM_TYPE.getCode()); + }else { + responsibilityData.setType(CalculationType.PW_TYPE.getCode()); + } //进行插入操作 this.baseMapper.insert(responsibilityData); } else { @@ -1435,7 +1449,7 @@ public class RespDataServiceImpl extends ServiceImpl i LineDetailDataVO lineDetailData = lineService.getLineDetailData(lineId); int lineInterval = lineDetailData.getTimeInterval(); int userIntervalTime; - if (lineInterval == INTERVAL_TIME_1 || lineInterval == INTERVAL_TIME_3 || lineInterval == INTERVAL_TIME_5) { + if (lineInterval == INTERVAL_TIME_1 || lineInterval == INTERVAL_TIME_3 || lineInterval == INTERVAL_TIME_5 || lineInterval == INTERVAL_TIME_10) { userIntervalTime = INTERVAL_TIME_15; pNum = dateStr.size() * WINDOW_96; } else { @@ -1474,7 +1488,7 @@ public class RespDataServiceImpl extends ServiceImpl i * 获取背景用户的下级用户及其数据 */ - public List test(List userList, String startTime, String endTime){ + public List sysMonitorDataGet(List userList, String startTime, String endTime){ List userDataExcelList = new ArrayList<>(); PHistoryHarmParam param = new PHistoryHarmParam(); param.setSearchBeginTime(startTime); @@ -1485,7 +1499,9 @@ public class RespDataServiceImpl extends ServiceImpl i List result = new ArrayList<>(); collect.forEach((k,v)->{ LineDetailDataVO lineDetailData = lineService.getLineDetailData(k); - + if(v.stream().mapToDouble(DataHarmPowerP::getP).min().getAsDouble() < 0){ + throw new BusinessException(CommonResponseEnum.FAIL,lineDetailData.getLineName()+"功率数据异常"); + } //数据补全 List dataHarmPowerPList = linearInterpolate(startTime.concat(InfluxDBTableConstant.START_TIME), endTime.concat(InfluxDBTableConstant.END_TIME), lineDetailData.getTimeInterval()*60, v); //数据间隔转换成15分钟 diff --git a/cn-diagram/src/main/java/com/njcn/product/diagram/LedgerScale/service/impl/LedgerScaleServiceImpl.java b/cn-diagram/src/main/java/com/njcn/product/diagram/LedgerScale/service/impl/LedgerScaleServiceImpl.java index fc8ce45..59b7bb5 100644 --- a/cn-diagram/src/main/java/com/njcn/product/diagram/LedgerScale/service/impl/LedgerScaleServiceImpl.java +++ b/cn-diagram/src/main/java/com/njcn/product/diagram/LedgerScale/service/impl/LedgerScaleServiceImpl.java @@ -480,16 +480,9 @@ public class LedgerScaleServiceImpl implements LedgerScaleService { InputStream respStream = fileStorageUtil.getFileStream(respDataResult.getUserResponsibility()); String respStr = IoUtil.readUtf8(respStream); List respData = JSONArray.parseArray(respStr, CustomerResponsibility.class); - List userNos = respData.stream().map(it -> it.getCustomerName().substring(it.getCustomerName().indexOf("(") + 1, it.getCustomerName().indexOf(")"))).collect(Collectors.toList()); - - List ledgerBaseInfoList = lineMapper.queryMonitorByUser(userNos); - Map ledgerBaseInfoMap = ledgerBaseInfoList.stream().collect(Collectors.toMap(LedgerBaseInfo::getUserNo, Function.identity())); respData.forEach(it -> { String tem = it.getCustomerName().substring(it.getCustomerName().indexOf("(") + 1, it.getCustomerName().indexOf(")")); - if (ledgerBaseInfoMap.containsKey(tem)) { - LedgerBaseInfo ledgerBaseInfo = ledgerBaseInfoMap.get(tem); - it.setMonitorId(ledgerBaseInfo.getLineId()); - } + it.setMonitorId(tem); }); return respData; } diff --git a/cn-terminal/src/main/java/com/njcn/product/terminal/mysqlTerminal/pojo/po/UserReportPO.java b/cn-terminal/src/main/java/com/njcn/product/terminal/mysqlTerminal/pojo/po/UserReportPO.java index 7514d15..a58e215 100644 --- a/cn-terminal/src/main/java/com/njcn/product/terminal/mysqlTerminal/pojo/po/UserReportPO.java +++ b/cn-terminal/src/main/java/com/njcn/product/terminal/mysqlTerminal/pojo/po/UserReportPO.java @@ -93,11 +93,6 @@ public class UserReportPO extends BaseEntity { @TableField(value = "voltage_level") private String voltageLevel; - /** - * 用户编号 - */ - @TableField(value = "user_no") - private String userNo; /** * 工程名称 diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/controller/LargeScreenCountController.java b/event_smart/src/main/java/com/njcn/product/event/transientes/controller/LargeScreenCountController.java index ce561f3..b0a4992 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/controller/LargeScreenCountController.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/controller/LargeScreenCountController.java @@ -242,6 +242,19 @@ public class LargeScreenCountController extends BaseController { Page result = largeScreenCountService.eventPage(largeScreenCountParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + + @OperateInfo + @PostMapping("/eventPageExport") + @ApiOperation("导出暂降事件报告") + @ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true) + public HttpResult> eventPageExport(@RequestBody LargeScreenCountParam largeScreenCountParam) { + String methodDescribe = getMethodDescribe("eventPageExport"); + List result = largeScreenCountService.eventPageExport(largeScreenCountParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @OperateInfo @PostMapping("/devicePage") @ApiOperation("终端分页查询") diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/filter/JwtRequestFilter.java b/event_smart/src/main/java/com/njcn/product/event/transientes/filter/JwtRequestFilter.java index 6a38736..f53ac7d 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/filter/JwtRequestFilter.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/filter/JwtRequestFilter.java @@ -35,7 +35,6 @@ public class JwtRequestFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { - System.out.println(55); final String authorizationHeader = request.getHeader("Authorization"); String username = null; diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/vo/EventDetailVO.java b/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/vo/EventDetailVO.java index 3b622c0..7728c3d 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/vo/EventDetailVO.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/vo/EventDetailVO.java @@ -36,6 +36,8 @@ public class EventDetailVO { private String pointname; private String gdName; private String busName; + private String busVoltageLevel; + private String devName; private String persisttime; diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/security/AuthController.java b/event_smart/src/main/java/com/njcn/product/event/transientes/security/AuthController.java index e9a64e9..a8b1a59 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/security/AuthController.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/security/AuthController.java @@ -36,21 +36,27 @@ public class AuthController extends BaseController { private final RedisUtil redisUtil; - - - @PostMapping("/cn_authenticate") @ApiOperation("登录认证") public HttpResult createAuthenticationToken(@RequestBody @Validated AuthRequest authRequest) { String methodDescribe = getMethodDescribe("createAuthenticationToken"); //log.info("Authentication request - username: {}, password: {}",authRequest.getUsername(),authRequest.getPassword()); try { - boolean hasFlag = redisUtil.hasKey(eventRedisKey+authRequest.getUsername()); - if(hasFlag){ - String pass = redisUtil.getRawValue(eventRedisKey+authRequest.getUsername()); - + boolean hasFlag; + String pass; + //针对系统推送的认证特殊处理 + if ("system_event".equals(authRequest.getUsername())) { + pass = authRequest.getPassword(); + } else { + hasFlag = redisUtil.hasKey(eventRedisKey + authRequest.getUsername()); + if (hasFlag) { + pass = redisUtil.getRawValue(eventRedisKey + authRequest.getUsername()); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } // 执行认证,内部会调用 UserDetailsService 加载用户信息 - Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(authRequest.getUsername(),pass)); + Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(authRequest.getUsername(), pass)); // 将认证信息存入 SecurityContext SecurityContextHolder.getContext().setAuthentication(authentication); @@ -67,9 +73,7 @@ public class AuthController extends BaseController { authResponse.setToken(jwt); authResponse.setDeptId(department); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, authResponse, methodDescribe); - }else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); - } + } catch (Exception e) { e.printStackTrace(); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/security/MyUserDetailsService.java b/event_smart/src/main/java/com/njcn/product/event/transientes/security/MyUserDetailsService.java index 5915763..915a64f 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/security/MyUserDetailsService.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/security/MyUserDetailsService.java @@ -33,7 +33,9 @@ public class MyUserDetailsService implements UserDetailsService { if("system_event".equals(username)){ - return new MyUserDetails("12345678910","system_event", "@#001njcnpqs","10001", + PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + String encodedPassword = passwordEncoder.encode("@#001njcnpqs"); + return new MyUserDetails("12345678910","system_event",encodedPassword,"10001", new ArrayList<>()); } diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/security/SecurityConfig.java b/event_smart/src/main/java/com/njcn/product/event/transientes/security/SecurityConfig.java index 1f1b5cb..3fdfeae 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/security/SecurityConfig.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/security/SecurityConfig.java @@ -34,8 +34,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { protected void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() - //.antMatchers("/cn_authenticate","/ws/**","/accept/testEvent","/accept/eventMsg").permitAll() // 允许访问认证接口 - .antMatchers("/**").permitAll() // 允许访问认证接口 + .antMatchers("/cn_authenticate","/ws/**","/accept/testEvent","/accept/eventMsg").permitAll() // 允许访问认证接口 + //.antMatchers("/**").permitAll() // 允许访问认证接口 .anyRequest().authenticated() .and() .sessionManagement() diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/service/LargeScreenCountService.java b/event_smart/src/main/java/com/njcn/product/event/transientes/service/LargeScreenCountService.java index 7f3ed9b..eccad7d 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/service/LargeScreenCountService.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/service/LargeScreenCountService.java @@ -58,6 +58,9 @@ public interface LargeScreenCountService { Page eventPage(LargeScreenCountParam largeScreenCountParam); + List eventPageExport(LargeScreenCountParam largeScreenCountParam); + + Page devicePage(LargeScreenCountParam largeScreenCountParam); Page userEventList(LargeScreenCountParam largeScreenCountParam); diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java index 9bdcc63..db9391b 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.beust.ah.A; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; @@ -17,6 +18,8 @@ import com.njcn.product.event.devcie.mapper.*; import com.njcn.product.event.devcie.pojo.dto.*; import com.njcn.product.event.devcie.pojo.po.*; import com.njcn.product.event.transientes.mapper.*; +import com.njcn.product.event.transientes.pojo.DicTreeEnum; +import com.njcn.product.event.transientes.pojo.enums.DicTypeEnum; import com.njcn.product.event.transientes.pojo.param.LargeScreenCountParam; import com.njcn.product.event.transientes.pojo.param.MessageEventFeedbackParam; import com.njcn.product.event.transientes.pojo.po.PqsDepts; @@ -42,6 +45,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; 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; @@ -90,6 +94,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { private final PqSubstationMapper pqSubstationMapper; private final PqDeviceDetailMapper pqDeviceDetailMapper; + private final PqsDicTreeMapper pqsDicTreeMapper; + private final PqsDicTypeMapper pqsDicTypeMapper; @Value("${SYS_TYPE_ZT}") private String sysTypeZt; @@ -113,20 +119,20 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { throw new BusinessException("部门下暂无监测点"); } List pqLineList = new ArrayList<>(); - if(lineIds.size()>1000){ - List> listIds = CollUtil.split(lineIds,1000); - for(List itemIds : listIds){ - List temp =pqLineService.lambdaQuery().in(PqLine::getLineIndex, itemIds).list(); + if (lineIds.size() > 1000) { + List> listIds = CollUtil.split(lineIds, 1000); + for (List itemIds : listIds) { + List temp = pqLineService.lambdaQuery().in(PqLine::getLineIndex, itemIds).list(); pqLineList.addAll(temp); } - }else { - List temp = pqLineService.lambdaQuery().in(PqLine::getLineIndex, lineIds).list(); + } else { + List temp = pqLineService.lambdaQuery().in(PqLine::getLineIndex, lineIds).list(); pqLineList.addAll(temp); } //统计总数 List allLineIds = pqLineList.stream().map(PqLine::getLineIndex).collect(Collectors.toList()); List allSubList = pqLineList.stream().map(PqLine::getSubIndex).distinct().collect(Collectors.toList()); - long allSubCount =allSubList.stream().count(); + long allSubCount = allSubList.stream().count(); List devList = pqLineList.stream().map(PqLine::getDevIndex).distinct().collect(Collectors.toList()); long allDevCount = devList.stream().count(); @@ -135,15 +141,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { List list = pqDeviceService.lambdaQuery().in(PqDevice::getDevIndex, devList).eq(PqDevice::getDevflag, 0).list(); List runDevList = list.stream().map(PqDevice::getDevIndex).collect(Collectors.toList()); long runDevCount = runDevList.stream().count(); - List runSubList = list.stream().map(PqDevice::getSubIndex).distinct().collect(Collectors.toList()); + List runSubList = list.stream().map(PqDevice::getSubIndex).distinct().collect(Collectors.toList()); long runSubCount = runSubList.stream().count(); List ledgerBaseInfoDTOS = pqLineService.getBaseLineInfo(allLineIds); - List runLineList = ledgerBaseInfoDTOS.stream().filter(temp->Objects.equals(temp.getRunFlag(),1)).map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList()); + List runLineList = ledgerBaseInfoDTOS.stream().filter(temp -> Objects.equals(temp.getRunFlag(), 1)).map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList()); long runLineCount = runLineList.stream().count(); - ledgerCountVO.setAllSubCount(allSubCount); ledgerCountVO.setAllDevCount(allDevCount); ledgerCountVO.setAllLineCount(allLineCount); @@ -151,14 +156,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { ledgerCountVO.setRunSubCount(runSubCount); ledgerCountVO.setRunLineCount(runLineCount); - ledgerBaseInfoDTOS.stream().forEach(temp->temp.setRunFlag(runLineList.contains(temp.getLineId())?1:0)); + ledgerBaseInfoDTOS.stream().forEach(temp -> temp.setRunFlag(runLineList.contains(temp.getLineId()) ? 1 : 0)); ledgerCountVO.setAllLineList(ledgerBaseInfoDTOS); List deviceDTOS = pqDeviceService.queryListByIds(devList); - deviceDTOS =deviceDTOS.stream().distinct().collect(Collectors.toList()); - deviceDTOS.forEach(temp-> temp.setRunFlag(runDevList.contains(temp.getDevId())?1:0)); + deviceDTOS = deviceDTOS.stream().distinct().collect(Collectors.toList()); + deviceDTOS.forEach(temp -> temp.setRunFlag(runDevList.contains(temp.getDevId()) ? 1 : 0)); ledgerCountVO.setAllDevList(deviceDTOS); List substationDTOS = pqSubstationService.queryListByIds(allSubList); - substationDTOS.forEach(temp->temp.setRunFlag(runSubList.contains(temp.getStationId())?1:0)); + substationDTOS.forEach(temp -> temp.setRunFlag(runSubList.contains(temp.getStationId()) ? 1 : 0)); ledgerCountVO.setAllSubList(substationDTOS); return ledgerCountVO; } @@ -191,26 +196,25 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } List eventdetails = new ArrayList<>(); - if(lineIds.size()>1000){ - List> listIds = CollUtil.split(lineIds,1000); - for(List itemIds : listIds){ + if (lineIds.size() > 1000) { + List> listIds = CollUtil.split(lineIds, 1000); + for (List itemIds : listIds) { List temp = pqsEventdetailService.lambdaQuery() - .between(PqsEventdetail::getTimeid,startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,listIds) - .orderByDesc(PqsEventdetail::getTimeid).list() - ; + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, listIds) + .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } - }else { + } else { List temp = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,lineIds) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, lineIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } @@ -219,25 +223,24 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { // 告警 List aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList()); // 预警 - List warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList()); + List warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5 && temp.getEventvalue() < 0.9).collect(Collectors.toList()); List eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList()); //通知 - List msgEventInfoList =msgEventInfoService.getMsgByIds(eventIds); - msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime,Comparator.reverseOrder())).collect(Collectors.toList()); + List msgEventInfoList = msgEventInfoService.getMsgByIds(eventIds); + msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime, Comparator.reverseOrder())).collect(Collectors.toList()); - - List lookALarmEvent = aLarmEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 )).collect(Collectors.toList()); - List lookWarnEvent = warnEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 ) ).collect(Collectors.toList()); + List lookALarmEvent = aLarmEvent.stream().filter(temp -> Objects.equals(temp.getLookFlag(), 1)).collect(Collectors.toList()); + List lookWarnEvent = warnEvent.stream().filter(temp -> Objects.equals(temp.getLookFlag(), 1)).collect(Collectors.toList()); List handleMsg = msgEventInfoList.stream().filter(temp -> Objects.equals(temp.getIsHandle(), 1)).collect(Collectors.toList()); - Integer aLarmCount =aLarmEvent.size(); - Integer warnCount =warnEvent.size(); - Integer noticeCount =msgEventInfoList.size(); - Integer lookALarmCount =lookALarmEvent.size(); - Integer lookWarnCount =lookWarnEvent.size(); - Integer lookNoticeCount =handleMsg.size(); + Integer aLarmCount = aLarmEvent.size(); + Integer warnCount = warnEvent.size(); + Integer noticeCount = msgEventInfoList.size(); + Integer lookALarmCount = lookALarmEvent.size(); + Integer lookWarnCount = lookWarnEvent.size(); + Integer lookNoticeCount = handleMsg.size(); alarmAnalysisVO.setEventCount(eventCount); alarmAnalysisVO.setALarmCount(aLarmCount); @@ -257,7 +260,6 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { // alarmAnalysisVO.setLookNoticeEvent(handleMsg); - return alarmAnalysisVO; } @@ -281,7 +283,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } else { throw new BusinessException("统计类型有误类型"); } - // List deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId()); + // List deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId()); //获取对应监测点id //List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); //List deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); @@ -292,25 +294,25 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { LocalDate startDate = LocalDate.parse(DateUtil.format(startTime, DatePattern.NORM_DATE_PATTERN)); LocalDate endDate = LocalDate.parse(DateUtil.format(endTime, DatePattern.NORM_DATE_PATTERN)); List eventdetails = new ArrayList<>(); - if(lineIds.size()>1000){ - List> listIds = CollUtil.split(lineIds,1000); - for(List itemIds : listIds){ + if (lineIds.size() > 1000) { + List> listIds = CollUtil.split(lineIds, 1000); + for (List itemIds : listIds) { List temp = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,listIds) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, listIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } - }else { + } else { List temp = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,lineIds) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, lineIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } @@ -318,7 +320,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { if (Objects.equals(largeScreenCountParam.getEventtype(), 1)) { List eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList()); //通知 - List msgEventInfoList =msgEventInfoService.getMsgByIds(eventIds); + List msgEventInfoList = msgEventInfoService.getMsgByIds(eventIds); // 使用 for 循环处理日期范围 for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { EventTrendVO eventTrendVO = new EventTrendVO(); @@ -344,7 +346,6 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } - return eventTrendVOList; } @@ -379,52 +380,52 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } List pqLineList = pqLineService.getBaseLineInfo(lineIds); - Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); QueryWrapper queryWrapper = new QueryWrapper<>(); - if (lineIds.size()>1000) { - List> idPartitions = CollUtil.split(lineIds,1000); + if (lineIds.size() > 1000) { + List> idPartitions = CollUtil.split(lineIds, 1000); queryWrapper.lambda() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .and(ew->{ - for(List pList: idPartitions){ - ew.or(w->w.in(PqsEventdetail::getLineid, pList)); - } - }).orderByDesc(PqsEventdetail::getTimeid); + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getLineid, pList)); + } + }).orderByDesc(PqsEventdetail::getTimeid); } else { queryWrapper.lambda() .between(PqsEventdetail::getTimeid, startTime, endTime) .in(PqsEventdetail::getLineid, lineIds) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) .orderByDesc(PqsEventdetail::getTimeid); } //查询需要发送短息处理的部门反推监测点 List noticeLineIds = new ArrayList<>(); List pqsUserList = pqsUserService.lambdaQuery().eq(PqsUser::getState, 1).list(); - if(!CollectionUtils.isEmpty(pqsUserList)){ + if (!CollectionUtils.isEmpty(pqsUserList)) { List collect = pqsUserList.stream().map(PqsUser::getUserIndex).collect(Collectors.toList()); - List pqsUserSetList = pqsUsersetService.lambdaQuery().eq(PqsUserSet::getIsNotice, 1).in(PqsUserSet::getUserIndex,collect).list(); + List pqsUserSetList = pqsUsersetService.lambdaQuery().eq(PqsUserSet::getIsNotice, 1).in(PqsUserSet::getUserIndex, collect).list(); List noticeDept = pqsUserSetList.stream().map(temp -> { return pqsDeptsService.findDeptAndChildren(temp.getDeptsIndex()); }).flatMap(Collection::stream).distinct().collect(Collectors.toList()); //获取对应监测点id - if(!CollectionUtils.isEmpty(noticeDept)){ + if (!CollectionUtils.isEmpty(noticeDept)) { List noticeLine = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, noticeDept).eq(PqsDeptsline::getSystype, sysTypeZt).list(); noticeLineIds = noticeLine.stream().map(PqsDeptsline::getLineIndex).distinct().collect(Collectors.toList()); } } - IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper); + IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage, queryWrapper); List finalNoticeLineIds = noticeLineIds; List collect = list.getRecords().stream().map(temp -> { EventDetailVO eventDetailVO = new EventDetailVO(); @@ -436,7 +437,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setEventvalue(temp.getEventvalue()); eventDetailVO.setLookFlag(temp.getLookFlag()); eventDetailVO.setNoticeFlag(temp.getNoticeFlag()); - if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){ + if (ledgerBaseInfoDTOMap.containsKey(temp.getLineid())) { LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid()); eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId()); eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName()); @@ -445,7 +446,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setBusName(ledgerBaseInfoDTO.getBusBarName()); eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName()); } - eventDetailVO.setNeedDealFlag(finalNoticeLineIds.contains(temp.getLineid())?1:0); + eventDetailVO.setNeedDealFlag(finalNoticeLineIds.contains(temp.getLineid()) ? 1 : 0); return eventDetailVO; }).collect(Collectors.toList()); Page returnpage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize()); @@ -466,24 +467,24 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } List allList = new ArrayList<>(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if(deptslineIds.size()>1000){ - List> idList = CollUtil.split(deptslineIds,1000); - for(List ids:idList){ + if (deptslineIds.size() > 1000) { + List> idList = CollUtil.split(deptslineIds, 1000); + for (List ids : idList) { lambdaQueryWrapper.clear(); lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) .in(PqsEventdetail::getLineid, ids) .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); List eventList = pqsEventdetailService.list(lambdaQueryWrapper); allList.addAll(eventList); } - }else { + } else { lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) .in(PqsEventdetail::getLineid, deptslineIds) .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); List eventList = pqsEventdetailService.list(lambdaQueryWrapper); @@ -496,20 +497,20 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { List pqLineList = pqLineService.getBaseLineInfo(ids); Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); - Map userMap; - Map> assMap; - List assList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getLineIndex,ids)); + Map userMap; + Map> assMap; + List assList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getLineIndex, ids)); if (CollUtil.isNotEmpty(assList)) { List userIds = assList.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); - List poList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper().in(PqUserLedgerPO::getId,userIds)); - userMap = poList.stream().collect(Collectors.toMap(PqUserLedgerPO::getId,Function.identity())); + List poList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper().in(PqUserLedgerPO::getId, userIds)); + userMap = poList.stream().collect(Collectors.toMap(PqUserLedgerPO::getId, Function.identity())); assMap = assList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex)); - }else { + } else { userMap = new HashMap<>(); - assMap = new HashMap<>(); + assMap = new HashMap<>(); } - for(PqsEventdetail it : allList){ + for (PqsEventdetail it : allList) { EventDetailVO eventDetailVO = new EventDetailVO(); eventDetailVO.setEventdetail_index(it.getEventdetailIndex()); eventDetailVO.setTimeid(it.getTimeid()); @@ -525,9 +526,9 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setGdName(ledgerBaseInfoDTO.getGdName()); eventDetailVO.setBusName(ledgerBaseInfoDTO.getBusBarName()); } - if(assMap.containsKey(eventDetailVO.getLineid())) { + if (assMap.containsKey(eventDetailVO.getLineid())) { List temList = assMap.get(eventDetailVO.getLineid()).stream().map(PqUserLineAssPO::getUserIndex).collect(Collectors.toList()); - String str = temList.stream().map(its -> userMap.containsKey(its)?userMap.get(its).getCustomerName() + "; ":"/").collect(Collectors.joining()); + String str = temList.stream().map(its -> userMap.containsKey(its) ? userMap.get(its).getCustomerName() + "; " : "/").collect(Collectors.joining()); eventDetailVO.setObjName(str); } result.add(eventDetailVO); @@ -539,14 +540,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override public boolean lookEvent(List ids) { - if(ids.size()>1000){ - List> eventIds = CollUtil.split(ids,1000); - for(List needIds : eventIds){ - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.in(PqsEventdetail::getEventdetailIndex, needIds).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); - pqsEventdetailService.update(updateWrapper); - } - }else { + if (ids.size() > 1000) { + List> eventIds = CollUtil.split(ids, 1000); + for (List needIds : eventIds) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(PqsEventdetail::getEventdetailIndex, needIds).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); + pqsEventdetailService.update(updateWrapper); + } + } else { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.in(PqsEventdetail::getEventdetailIndex, ids).set(PqsEventdetail::getLookFlag, DataStateEnum.ENABLE.getCode()); pqsEventdetailService.update(updateWrapper); @@ -584,7 +585,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } - List list = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState,1).list(); + List list = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState, 1).list(); Map stringPqsDeptsMap = list.stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex, Function.identity(), (key1, key2) -> key2)); Map> collect = deptslines.stream().collect(Collectors.groupingBy(PqsDeptsline::getDeptsIndex)); @@ -597,24 +598,24 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { mapCountVO.setDeptsIndex(k); mapCountVO.setDeptsName(stringPqsDeptsMap.get(k).getDeptsname()); - List temLedger = ledgerBaseInfoDTOS.stream().filter(it->temList.contains(it.getLineId())).collect(Collectors.toList()); + List temLedger = ledgerBaseInfoDTOS.stream().filter(it -> temList.contains(it.getLineId())).collect(Collectors.toList()); mapCountVO.setLineList(temLedger); mapCountVO.setLineCount(temLedger.size()); List deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); List eventdetails = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) .in(PqsEventdetail::getLineid, deptslineIds).list(); mapCountVO.setEventCount(eventdetails.size()); List eveIdndex = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList()); List temp = new ArrayList<>(); - if(!CollectionUtils.isEmpty(eveIdndex)){ - temp =msgEventInfoService.getMsgByIds(eveIdndex); + if (!CollectionUtils.isEmpty(eveIdndex)) { + temp = msgEventInfoService.getMsgByIds(eveIdndex); } - List change = change(eventdetails,temp); + List change = change(eventdetails, temp); mapCountVO.setEventList(change); mapCountVO.setNoticeCount(temp.size()); @@ -632,8 +633,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { MessageEventFeedback messageEventFeedback = messageEventFeedbackService.getOne(lambdaQueryWrapper); if (Objects.nonNull(messageEventFeedback)) { BeanUtil.copyProperties(messageEventFeedback, eventMsgDetailVO); - if(messageEventFeedback.getIsSensitive() == 1){ - PqsEventdetail pqsEventdetail = pqsEventdetailService.lambdaQuery().eq(PqsEventdetail::getEventdetailIndex,eventId).one(); + if (messageEventFeedback.getIsSensitive() == 1) { + PqsEventdetail pqsEventdetail = pqsEventdetailService.lambdaQuery().eq(PqsEventdetail::getEventdetailIndex, eventId).one(); PqLinedetail pqLinedetail = pqLinedetailMapper.selectById(pqsEventdetail.getLineid()); eventMsgDetailVO.setObjName(pqLinedetail.getObjname()); } @@ -649,7 +650,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override public List msgSendList(LargeScreenCountParam largeScreenCountParam) { List result = new ArrayList<>(); - // List ids = commGeneralService.getLineIdsByDept(largeScreenCountParam); + // List ids = commGeneralService.getLineIdsByDept(largeScreenCountParam); if (CollUtil.isEmpty(lineIds)) { return result; } @@ -669,7 +670,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } List eventIds = allEventList.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList()); - result =msgEventInfoService.getMsgByIds(eventIds); + result = msgEventInfoService.getMsgByIds(eventIds); result = result.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime, Comparator.reverseOrder())).collect(Collectors.toList()); if (result.size() > 200) { result = result.subList(0, 200); @@ -683,30 +684,30 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { DateTime end = DateUtil.endOfDay(DateUtil.parse(largeScreenCountParam.getSearchEndTime())); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(!StringUtils.isEmpty(largeScreenCountParam.getSendResult()),MsgEventInfo::getSendResult,largeScreenCountParam.getSendResult()); - lambdaQueryWrapper.orderByDesc(MsgEventInfo::getSendTime).between(MsgEventInfo::getSendTime,start,end); - return msgEventInfoService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam)),lambdaQueryWrapper); + lambdaQueryWrapper.eq(!StringUtils.isEmpty(largeScreenCountParam.getSendResult()), MsgEventInfo::getSendResult, largeScreenCountParam.getSendResult()); + lambdaQueryWrapper.orderByDesc(MsgEventInfo::getSendTime).between(MsgEventInfo::getSendTime, start, end); + return msgEventInfoService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam), PageFactory.getPageSize(largeScreenCountParam)), lambdaQueryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean msgHandle(MessageEventFeedbackParam messageEventFeedbackParam) { - PqsEventdetail pqsEventdetail = pqsEventdetailService.lambdaQuery().eq(PqsEventdetail::getEventdetailIndex,messageEventFeedbackParam.getEventIndex()).one(); - if(Objects.isNull(pqsEventdetail.getLookFlag())|| pqsEventdetail.getLookFlag() == 0){ - throw new BusinessException(CommonResponseEnum.FAIL,"当前事件暂未处理,请先处理!"); + PqsEventdetail pqsEventdetail = pqsEventdetailService.lambdaQuery().eq(PqsEventdetail::getEventdetailIndex, messageEventFeedbackParam.getEventIndex()).one(); + if (Objects.isNull(pqsEventdetail.getLookFlag()) || pqsEventdetail.getLookFlag() == 0) { + throw new BusinessException(CommonResponseEnum.FAIL, "当前事件暂未处理,请先处理!"); } MessageEventFeedback messageEventFeedback = messageEventFeedbackService.lambdaQuery().eq(MessageEventFeedback::getEventIndex, messageEventFeedbackParam.getEventIndex()).one(); if (Objects.nonNull(messageEventFeedback)) { - throw new BusinessException(CommonResponseEnum.FAIL,"请勿重复处理!"); + throw new BusinessException(CommonResponseEnum.FAIL, "请勿重复处理!"); } MessageEventFeedback po = new MessageEventFeedback(); BeanUtil.copyProperties(messageEventFeedbackParam, po); po.setId(IdUtil.simpleUUID()); messageEventFeedbackService.save(po); - pqsEventdetailService.lambdaUpdate().set(PqsEventdetail::getNoticeFlag,DataStateEnum.ENABLE.getCode()).eq(PqsEventdetail::getEventdetailIndex,messageEventFeedbackParam.getEventIndex()).update(); - msgEventInfoService.lambdaUpdate().set(MsgEventInfo::getIsHandle,DataStateEnum.ENABLE.getCode()).eq(MsgEventInfo::getEventIndex,messageEventFeedbackParam.getEventIndex()).update(); + pqsEventdetailService.lambdaUpdate().set(PqsEventdetail::getNoticeFlag, DataStateEnum.ENABLE.getCode()).eq(PqsEventdetail::getEventdetailIndex, messageEventFeedbackParam.getEventIndex()).update(); + msgEventInfoService.lambdaUpdate().set(MsgEventInfo::getIsHandle, DataStateEnum.ENABLE.getCode()).eq(MsgEventInfo::getEventIndex, messageEventFeedbackParam.getEventIndex()).update(); return true; } @@ -741,26 +742,25 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } List eventdetails = new ArrayList<>(); - if(lineIds.size()>1000){ - List> listIds = CollUtil.split(lineIds,1000); - for(List itemIds : listIds){ + if (lineIds.size() > 1000) { + List> listIds = CollUtil.split(lineIds, 1000); + for (List itemIds : listIds) { List temp = pqsEventdetailService.lambdaQuery() - .between(PqsEventdetail::getTimeid,startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,listIds) - .orderByDesc(PqsEventdetail::getTimeid).list() - ; + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, listIds) + .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } - }else { + } else { List temp = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,lineIds) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, lineIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } @@ -769,25 +769,24 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { // 告警 List aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList()); // 预警 - List warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList()); + List warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5 && temp.getEventvalue() < 0.9).collect(Collectors.toList()); List eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList()); //通知 - List msgEventInfoList =msgEventInfoService.getMsgByIds(eventIds); + List msgEventInfoList = msgEventInfoService.getMsgByIds(eventIds); - msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime,Comparator.reverseOrder())).collect(Collectors.toList()); + msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime, Comparator.reverseOrder())).collect(Collectors.toList()); - - List lookALarmEvent = aLarmEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 )).collect(Collectors.toList()); - List lookWarnEvent = warnEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 ) ).collect(Collectors.toList()); + List lookALarmEvent = aLarmEvent.stream().filter(temp -> Objects.equals(temp.getLookFlag(), 1)).collect(Collectors.toList()); + List lookWarnEvent = warnEvent.stream().filter(temp -> Objects.equals(temp.getLookFlag(), 1)).collect(Collectors.toList()); List handleMsg = msgEventInfoList.stream().filter(temp -> Objects.equals(temp.getIsHandle(), 1)).collect(Collectors.toList()); - Integer aLarmCount =aLarmEvent.size(); - Integer warnCount =warnEvent.size(); - Integer noticeCount =msgEventInfoList.size(); - Integer lookALarmCount =lookALarmEvent.size(); - Integer lookWarnCount =lookWarnEvent.size(); - Integer lookNoticeCount =handleMsg.size(); + Integer aLarmCount = aLarmEvent.size(); + Integer warnCount = warnEvent.size(); + Integer noticeCount = msgEventInfoList.size(); + Integer lookALarmCount = lookALarmEvent.size(); + Integer lookWarnCount = lookWarnEvent.size(); + Integer lookNoticeCount = handleMsg.size(); alarmAnalysisVO.setEventCount(eventCount); alarmAnalysisVO.setALarmCount(aLarmCount); @@ -798,22 +797,21 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { alarmAnalysisVO.setLookNoticeCount(lookNoticeCount); - alarmAnalysisVO.setEventdetails(change(eventdetails,msgEventInfoList)); - alarmAnalysisVO.setALarmEvent(change(aLarmEvent,msgEventInfoList)); - alarmAnalysisVO.setWarnEvent(change(warnEvent,msgEventInfoList)); + alarmAnalysisVO.setEventdetails(change(eventdetails, msgEventInfoList)); + alarmAnalysisVO.setALarmEvent(change(aLarmEvent, msgEventInfoList)); + alarmAnalysisVO.setWarnEvent(change(warnEvent, msgEventInfoList)); alarmAnalysisVO.setNoticeEvent(msgEventInfoList); - alarmAnalysisVO.setLookALarmEvent(change(lookALarmEvent,msgEventInfoList)); - alarmAnalysisVO.setLookWarnEvent(change(lookWarnEvent,msgEventInfoList)); + alarmAnalysisVO.setLookALarmEvent(change(lookALarmEvent, msgEventInfoList)); + alarmAnalysisVO.setLookWarnEvent(change(lookWarnEvent, msgEventInfoList)); alarmAnalysisVO.setLookNoticeEvent(handleMsg); - return alarmAnalysisVO; } @Override public Page eventTablePage(LargeScreenCountParam largeScreenCountParam) { - Page result = new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam)); + Page result = new Page<>(PageFactory.getPageNum(largeScreenCountParam), PageFactory.getPageSize(largeScreenCountParam)); //起始时间 LocalDateTime startTime; //结束时间 @@ -838,23 +836,22 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } - List eventType = msgEventConfigService.getEventType(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper - .between(PqsEventdetail::getTimeid,startTime, endTime) - .in(PqsEventdetail::getWavetype,eventType) + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getWavetype, eventType) .orderByDesc(PqsEventdetail::getTimeid); - if(Objects.nonNull(largeScreenCountParam.getEventDeep())){ + if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { if (largeScreenCountParam.getEventDeep() == 0) { lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventvalue, 0.9); } else if (largeScreenCountParam.getEventDeep() == 1) { lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5); } } - if(lineIds.size()>1000){ - List> splitList = CollUtil.split(lineIds,1000); - lambdaQueryWrapper.and(ew->{ + if (lineIds.size() > 1000) { + List> splitList = CollUtil.split(lineIds, 1000); + lambdaQueryWrapper.and(ew -> { for (int i = 0; i < splitList.size(); i++) { List batch = splitList.get(i); if (i == 0) { @@ -864,23 +861,23 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } } }); - }else { + } else { lambdaQueryWrapper.in(PqsEventdetail::getLineid, lineIds); } - Page page = pqsEventdetailService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam)),lambdaQueryWrapper); + Page page = pqsEventdetailService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam), PageFactory.getPageSize(largeScreenCountParam)), lambdaQueryWrapper); result.setTotal(page.getTotal()); - if(CollUtil.isEmpty(page.getRecords())){ + if (CollUtil.isEmpty(page.getRecords())) { return result; } List ids = page.getRecords().stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); List pqLineList = pqLineService.getBaseLineInfo(ids); - Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); List resultList = new ArrayList<>(); - for(PqsEventdetail pqsEventdetail : page.getRecords()){ + for (PqsEventdetail pqsEventdetail : page.getRecords()) { EventDetailVO eventDetailVO = new EventDetailVO(); - BeanUtil.copyProperties(pqsEventdetail,eventDetailVO); - if(ledgerBaseInfoDTOMap.containsKey(pqsEventdetail.getLineid())){ + BeanUtil.copyProperties(pqsEventdetail, eventDetailVO); + if (ledgerBaseInfoDTOMap.containsKey(pqsEventdetail.getLineid())) { LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(pqsEventdetail.getLineid()); eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId()); eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName()); @@ -898,9 +895,9 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override public DeviceCountVO devFlagCount(LargeScreenCountParam largeScreenCountParam) { DeviceCountVO deviceCountVO = new DeviceCountVO(); - List pqLineList = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList"); - List deptslineIds = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId()); - pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); + List pqLineList = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + "pqLineList"); + List deptslineIds = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + largeScreenCountParam.getDeptId()); + pqLineList = pqLineList.stream().filter(temp -> deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); List devIndexs = pqLineList.stream().map(PqLine::getDevIndex).collect(Collectors.toList()); //在运总数 @@ -909,8 +906,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { long onLine = list.stream().filter(temp -> Objects.equals(temp.getStatus(), 1)).count(); long Offline = list.stream().filter(temp -> Objects.equals(temp.getStatus(), 0)).count(); deviceCountVO.setAllCount(list.size()); - // deviceCountVO.setOnLine((int) onLine); - // deviceCountVO.setOffLine((int) Offline); + // deviceCountVO.setOnLine((int) onLine); + // deviceCountVO.setOffLine((int) Offline); //临时调整 deviceCountVO.setOnLine(list.size()); @@ -922,39 +919,39 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { @Override public List devDetail(LargeScreenCountParam largeScreenCountParam) { DeviceCountVO deviceCountVO = new DeviceCountVO(); - List pqLineList = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList"); - List deptslineIds = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+largeScreenCountParam.getDeptId()); + List pqLineList = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + "pqLineList"); + List deptslineIds = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + largeScreenCountParam.getDeptId()); // List deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId()); // List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); // List deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); - pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); + pqLineList = pqLineList.stream().filter(temp -> deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); List devIndexs = pqLineList.stream().map(PqLine::getDevIndex).collect(Collectors.toList()); List deviceDTOList = pqDeviceService.queryListByIds(devIndexs); - deviceDTOList = deviceDTOList.stream().filter(temp->Objects.equals(temp.getDevFlag(),0)).collect(Collectors.toList()); + deviceDTOList = deviceDTOList.stream().filter(temp -> Objects.equals(temp.getDevFlag(), 0)).collect(Collectors.toList()); return deviceDTOList; } @Override public List regionDevCount(LargeScreenCountParam largeScreenCountParam) { List result = new ArrayList<>(); - List pqLineList = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList"); + List pqLineList = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + "pqLineList"); List deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId()); - if(deptAndChildren.size()>1){ + if (deptAndChildren.size() > 1) { deptAndChildren.remove(largeScreenCountParam.getDeptId()); } List pqDeviceList = pqDeviceService.lambdaQuery().eq(PqDevice::getDevflag, 0).list(); // List deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list(); List list = pqsDeptsService.getDeptList(deptAndChildren); - list.forEach(temp->{ + list.forEach(temp -> { RegionDevCountVO regionDevCountVO = new RegionDevCountVO(); regionDevCountVO.setDeptsIndex(temp.getDeptsIndex()); regionDevCountVO.setDeptsname(temp.getDeptsname()); regionDevCountVO.setAreaName(temp.getAreaName()); - List deptslineIds =(List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+temp.getDeptsIndex()); + List deptslineIds = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + temp.getDeptsIndex()); List collect = pqLineList.stream().filter(pqLine -> deptslineIds.contains(pqLine.getLineIndex())).collect(Collectors.toList()); List devIndexs = collect.stream().map(PqLine::getDevIndex).collect(Collectors.toList()); List tempDeviceList = pqDeviceList.stream().filter(pqDevice -> devIndexs.contains(pqDevice.getDevIndex())).collect(Collectors.toList()); @@ -971,73 +968,74 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { return result; } - private List getUserLineAssociations(List lineIds){ + private List getUserLineAssociations(List lineIds) { LambdaQueryWrapper assQuery = new LambdaQueryWrapper<>(); assQuery.in(PqUserLineAssPO::getLineIndex, lineIds); - if(lineIds.size()>1000){ + if (lineIds.size() > 1000) { List> lineList = CollUtil.split(lineIds, 1000); assQuery.and(w -> { for (List ids : lineList) { w.or(wIn -> wIn.in(PqUserLineAssPO::getLineIndex, ids)); } }); - }else { + } else { assQuery.in(PqUserLineAssPO::getLineIndex, lineIds); } return pqUserLineAssMapper.selectList(assQuery); } - private List getUserLedgers(List assUserIds){ + private List getUserLedgers(List assUserIds) { LambdaQueryWrapper userWrapper = new LambdaQueryWrapper<>(); - if(assUserIds.size()>1000){ + if (assUserIds.size() > 1000) { List> assUserIdsList = CollUtil.split(assUserIds, 1000); userWrapper.and(w -> { for (List ids : assUserIdsList) { w.or(wIn -> wIn.in(PqUserLedgerPO::getId, ids)); } }); - }else { + } else { userWrapper.in(PqUserLedgerPO::getId, assUserIds); } return pqUserLedgerMapper.selectList(userWrapper); } + @Override public List substationCount(LargeScreenCountParam largeScreenCountParam) { LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay(); LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay()); List deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId()); - if(CollUtil.isEmpty(deptslineIds)){ + if (CollUtil.isEmpty(deptslineIds)) { return new ArrayList<>(); } //查询暂态事件 List eventdetails = new ArrayList<>(); - if(deptslineIds.size()>1000){ - List> listIds = CollUtil.split(deptslineIds,1000); - for(List itemIds : listIds){ + if (deptslineIds.size() > 1000) { + List> listIds = CollUtil.split(deptslineIds, 1000); + for (List itemIds : listIds) { List temp = pqsEventdetailService.lambdaQuery() - .between(PqsEventdetail::getTimeid,startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,itemIds) + .between(PqsEventdetail::getTimeid, startTime, endTime) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, itemIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } - }else { + } else { List temp = pqsEventdetailService.lambdaQuery() .between(PqsEventdetail::getTimeid, startTime, endTime) - .in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .in(PqsEventdetail::getLineid,deptslineIds) + .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .in(PqsEventdetail::getLineid, deptslineIds) .orderByDesc(PqsEventdetail::getTimeid).list(); eventdetails.addAll(temp); } - if(CollUtil.isEmpty(eventdetails)){ + if (CollUtil.isEmpty(eventdetails)) { return new ArrayList<>(); } @@ -1048,61 +1046,61 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { List assPOList = getUserLineAssociations(lineIds); List userIds = assPOList.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); - Map> lineAssMap = assPOList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex,Collectors.mapping(PqUserLineAssPO::getUserIndex,Collectors.toList()))); + Map> lineAssMap = assPOList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex, Collectors.mapping(PqUserLineAssPO::getUserIndex, Collectors.toList()))); List pqUserLedgerPOList = getUserLedgers(userIds); List subStationCountVOS = new ArrayList<>(); - List ledgerBaseInfoDTOS = pqLineService.getBaseLedger(lineIds,null); + List ledgerBaseInfoDTOS = pqLineService.getBaseLedger(lineIds, null); //Map ledgerBaseInfoDTOMap = ledgerBaseInfoDTOS.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); List subIndexs = ledgerBaseInfoDTOS.stream().map(LedgerBaseInfoDTO::getStationId).collect(Collectors.toList()); - List pqsStationMapList = pqsStationMapMapper.selectList(new LambdaQueryWrapper().in(PqsStationMap::getSubIndex,subIndexs).eq(PqsStationMap::getState,1)); - Map stationMapMap = pqsStationMapList.stream().collect(Collectors.toMap(PqsStationMap::getSubIndex,dept->dept)); + List pqsStationMapList = pqsStationMapMapper.selectList(new LambdaQueryWrapper().in(PqsStationMap::getSubIndex, subIndexs).eq(PqsStationMap::getState, 1)); + Map stationMapMap = pqsStationMapList.stream().collect(Collectors.toMap(PqsStationMap::getSubIndex, dept -> dept)); - Map> substationDTOMap= ledgerBaseInfoDTOS.stream().collect(Collectors.groupingBy(LedgerBaseInfoDTO::getStationId)); + Map> substationDTOMap = ledgerBaseInfoDTOS.stream().collect(Collectors.groupingBy(LedgerBaseInfoDTO::getStationId)); Map> collect = eventdetails.stream().collect(Collectors.groupingBy(PqsEventdetail::getLineid)); - substationDTOMap.forEach((k,v)->{ + substationDTOMap.forEach((k, v) -> { LedgerBaseInfoDTO ledgerBaseInfoDTO = v.get(0); - SubStationCountVO subStationCountVO = new SubStationCountVO(); - subStationCountVO.setStationId(k); - subStationCountVO.setStationName(ledgerBaseInfoDTO.getStationName()); - subStationCountVO.setGdName(ledgerBaseInfoDTO.getGdName()); + SubStationCountVO subStationCountVO = new SubStationCountVO(); + subStationCountVO.setStationId(k); + subStationCountVO.setStationName(ledgerBaseInfoDTO.getStationName()); + subStationCountVO.setGdName(ledgerBaseInfoDTO.getGdName()); - if(stationMapMap.containsKey(k.longValue())){ - PqsStationMap pqsStationMap = stationMapMap.get(k.longValue()); - if(Objects.nonNull(pqsStationMap.getLongItude())){ - subStationCountVO.setLongitude(pqsStationMap.getLongItude()); - }else { - subStationCountVO.setLongitude(0); - } - - if(Objects.nonNull(pqsStationMap.getLatItude())){ - subStationCountVO.setLatitude(pqsStationMap.getLatItude()); - }else { - subStationCountVO.setLatitude(0); - } - }else { + if (stationMapMap.containsKey(k.longValue())) { + PqsStationMap pqsStationMap = stationMapMap.get(k.longValue()); + if (Objects.nonNull(pqsStationMap.getLongItude())) { + subStationCountVO.setLongitude(pqsStationMap.getLongItude()); + } else { subStationCountVO.setLongitude(0); + } + + if (Objects.nonNull(pqsStationMap.getLatItude())) { + subStationCountVO.setLatitude(pqsStationMap.getLatItude()); + } else { subStationCountVO.setLatitude(0); } - List tempLineIds = v.stream().map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList()); - subStationCountVO.setLineCount(tempLineIds.size()); - List tempEventList = eventdetails.stream().filter(temp -> tempLineIds.contains(temp.getLineid())).collect(Collectors.toList()); - subStationCountVO.setEventCount(tempEventList.size()); - v.forEach(item->{ - String obj = ""; - if(lineAssMap.containsKey(item.getLineId())){ - List userIndex = lineAssMap.get(item.getLineId()); - obj = pqUserLedgerPOList.stream().filter(it->userIndex.contains(it.getId())).map(PqUserLedgerPO::getCustomerName).collect(Collectors.joining(";")); - } - item.setObjName(StrUtil.isNotBlank(obj)? obj:"/"); - item.setEventCount(collect.get(item.getLineId()).size()); - }); - subStationCountVO.setLineEventDetails(v); - subStationCountVOS.add(subStationCountVO); + } else { + subStationCountVO.setLongitude(0); + subStationCountVO.setLatitude(0); + } + List tempLineIds = v.stream().map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList()); + subStationCountVO.setLineCount(tempLineIds.size()); + List tempEventList = eventdetails.stream().filter(temp -> tempLineIds.contains(temp.getLineid())).collect(Collectors.toList()); + subStationCountVO.setEventCount(tempEventList.size()); + v.forEach(item -> { + String obj = ""; + if (lineAssMap.containsKey(item.getLineId())) { + List userIndex = lineAssMap.get(item.getLineId()); + obj = pqUserLedgerPOList.stream().filter(it -> userIndex.contains(it.getId())).map(PqUserLedgerPO::getCustomerName).collect(Collectors.joining(";")); + } + item.setObjName(StrUtil.isNotBlank(obj) ? obj : "/"); + item.setEventCount(collect.get(item.getLineId()).size()); + }); + subStationCountVO.setLineEventDetails(v); + subStationCountVOS.add(subStationCountVO); }); return subStationCountVOS; } @@ -1121,61 +1119,61 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper .between(PqsEventdetail::getTimeid, startTime, endTime) - .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) - .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) .orderByDesc(PqsEventdetail::getTimeid); - if(Objects.nonNull(largeScreenCountParam.getEventtype())){ - queryWrapper.eq(PqsEventdetail::getWavetype,largeScreenCountParam.getEventtype()); - }else { - queryWrapper.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()); + if (Objects.nonNull(largeScreenCountParam.getEventtype())) { + queryWrapper.eq(PqsEventdetail::getWavetype, largeScreenCountParam.getEventtype()); + } else { + queryWrapper.in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()); } - if(Objects.nonNull(largeScreenCountParam.getEventDurationMin()) ||Objects.nonNull(largeScreenCountParam.getEventDurationMax())){ - queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventDurationMin()),PqsEventdetail::getPersisttime,largeScreenCountParam.getEventDurationMin()); - queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventDurationMax()),PqsEventdetail::getPersisttime,largeScreenCountParam.getEventDurationMax()); + if (Objects.nonNull(largeScreenCountParam.getEventDurationMin()) || Objects.nonNull(largeScreenCountParam.getEventDurationMax())) { + queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventDurationMin()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMin()); + queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventDurationMax()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMax()); } - if(Objects.nonNull(largeScreenCountParam.getEventValueMin()) ||Objects.nonNull(largeScreenCountParam.getEventValueMax())){ - queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventValueMin()),PqsEventdetail::getEventvalue,largeScreenCountParam.getEventValueMin()); - queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventValueMax()),PqsEventdetail::getEventvalue,largeScreenCountParam.getEventValueMax()); + if (Objects.nonNull(largeScreenCountParam.getEventValueMin()) || Objects.nonNull(largeScreenCountParam.getEventValueMax())) { + queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventValueMin()), PqsEventdetail::getEventvalue, largeScreenCountParam.getEventValueMin()); + queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventValueMax()), PqsEventdetail::getEventvalue, largeScreenCountParam.getEventValueMax()); } - if(StrUtil.isNotBlank(largeScreenCountParam.getSearchValue())){ + if (StrUtil.isNotBlank(largeScreenCountParam.getSearchValue())) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.select(PqUserLedgerPO::getId,PqUserLedgerPO::getCustomerName); - lambdaQueryWrapper.like(PqUserLedgerPO::getCustomerName,largeScreenCountParam.getSearchValue()); + lambdaQueryWrapper.select(PqUserLedgerPO::getId, PqUserLedgerPO::getCustomerName); + lambdaQueryWrapper.like(PqUserLedgerPO::getCustomerName, largeScreenCountParam.getSearchValue()); List lineTemUserIds = new ArrayList<>(); pqUserLedgerPOList = pqUserLedgerMapper.selectList(lambdaQueryWrapper); - if(CollUtil.isNotEmpty(pqUserLedgerPOList)) { + if (CollUtil.isNotEmpty(pqUserLedgerPOList)) { List userIds = pqUserLedgerPOList.stream().map(PqUserLedgerPO::getId).collect(Collectors.toList()); assList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getUserIndex, userIds)); List assIds = assList.stream().map(PqUserLineAssPO::getLineIndex).distinct().collect(Collectors.toList()); lineTemUserIds = deptslineIds.stream().filter(assIds::contains).collect(Collectors.toList()); } - ledgerList = pqLineService.getBaseLedger(deptslineIds,largeScreenCountParam.getSearchValue()); + ledgerList = pqLineService.getBaseLedger(deptslineIds, largeScreenCountParam.getSearchValue()); lineTemUserIds.addAll(ledgerList.stream().map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList())); - if(CollUtil.isEmpty(lineTemUserIds)){ + if (CollUtil.isEmpty(lineTemUserIds)) { return new Page<>(); } - if (lineTemUserIds.size()>1000) { - List> idPartitions = CollUtil.split(lineTemUserIds,1000); - queryWrapper.and(ew->{ - for(List pList: idPartitions){ - ew.or(w->w.in(PqsEventdetail::getLineid, pList)); + if (lineTemUserIds.size() > 1000) { + List> idPartitions = CollUtil.split(lineTemUserIds, 1000); + queryWrapper.and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getLineid, pList)); } }); } else { queryWrapper.in(PqsEventdetail::getLineid, lineTemUserIds); } - }else { - if (deptslineIds.size()>1000) { - List> idPartitions = CollUtil.split(deptslineIds,1000); - queryWrapper.and(ew->{ - for(List pList: idPartitions){ - ew.or(w->w.in(PqsEventdetail::getLineid, pList)); + } else { + if (deptslineIds.size() > 1000) { + List> idPartitions = CollUtil.split(deptslineIds, 1000); + queryWrapper.and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getLineid, pList)); } }); } else { @@ -1183,16 +1181,16 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } } - IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper); - if(CollUtil.isEmpty(list.getRecords())){ + IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage, queryWrapper); + if (CollUtil.isEmpty(list.getRecords())) { return new Page<>(); } List pageLineIds = list.getRecords().stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); - List pageLedger = pqLineService.getBaseLedger(pageLineIds,null); - Map ledgerBaseInfoDTOMap = pageLedger.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + List pageLedger = pqLineService.getBaseLedger(pageLineIds, null); + Map ledgerBaseInfoDTOMap = pageLedger.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); - List assLastList = pqUserLedgerMapper.getUserByParam(pageLineIds,null); - Map> mapObj = assLastList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex,Collectors.mapping(PqUserLineAssPO::getUserName,Collectors.toList()))); + List assLastList = pqUserLedgerMapper.getUserByParam(pageLineIds, null); + Map> mapObj = assLastList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex, Collectors.mapping(PqUserLineAssPO::getUserName, Collectors.toList()))); List collect = list.getRecords().stream().map(temp -> { EventDetailVO eventDetailVO = new EventDetailVO(); @@ -1204,7 +1202,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setEventvalue(temp.getEventvalue()); eventDetailVO.setLookFlag(temp.getLookFlag()); eventDetailVO.setNoticeFlag(temp.getNoticeFlag()); - if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){ + if (ledgerBaseInfoDTOMap.containsKey(temp.getLineid())) { LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid()); eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId()); eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName()); @@ -1213,8 +1211,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setBusName(ledgerBaseInfoDTO.getBusBarName()); eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName()); } - String objName ="/"; - if(mapObj.containsKey(eventDetailVO.getLineid())){ + String objName = "/"; + if (mapObj.containsKey(eventDetailVO.getLineid())) { objName = String.join(";", mapObj.get(eventDetailVO.getLineid())); } eventDetailVO.setObjName(objName); @@ -1225,129 +1223,249 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { returnpage.setTotal(list.getTotal()); return returnpage; } + + + @Override + public List eventPageExport(LargeScreenCountParam largeScreenCountParam) { + List pqsEventdetailPage = new ArrayList<>(); + LocalDateTime startTime = LocalDateTime.parse(largeScreenCountParam.getSearchBeginTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); + LocalDateTime endTime = LocalDateTime.parse(largeScreenCountParam.getSearchEndTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); + + List deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId()); + + List ledgerList = new ArrayList<>(); + List pqUserLedgerPOList = new ArrayList<>(); + List assList = new ArrayList<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .between(PqsEventdetail::getTimeid, startTime, endTime) + .gt(PqsEventdetail::getPersisttime, msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue, msgEventConfigService.getEventValue()) + .orderByDesc(PqsEventdetail::getTimeid); + + if (Objects.nonNull(largeScreenCountParam.getEventtype())) { + queryWrapper.eq(PqsEventdetail::getWavetype, largeScreenCountParam.getEventtype()); + } else { + queryWrapper.in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()); + } + + if (Objects.nonNull(largeScreenCountParam.getEventDurationMin()) || Objects.nonNull(largeScreenCountParam.getEventDurationMax())) { + queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventDurationMin()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMin()); + queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventDurationMax()), PqsEventdetail::getPersisttime, largeScreenCountParam.getEventDurationMax()); + } + + if (Objects.nonNull(largeScreenCountParam.getEventValueMin()) || Objects.nonNull(largeScreenCountParam.getEventValueMax())) { + queryWrapper.gt(Objects.nonNull(largeScreenCountParam.getEventValueMin()), PqsEventdetail::getEventvalue, largeScreenCountParam.getEventValueMin()); + queryWrapper.lt(Objects.nonNull(largeScreenCountParam.getEventValueMax()), PqsEventdetail::getEventvalue, largeScreenCountParam.getEventValueMax()); + } + + if (StrUtil.isNotBlank(largeScreenCountParam.getSearchValue())) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(PqUserLedgerPO::getId, PqUserLedgerPO::getCustomerName); + lambdaQueryWrapper.like(PqUserLedgerPO::getCustomerName, largeScreenCountParam.getSearchValue()); + List lineTemUserIds = new ArrayList<>(); + pqUserLedgerPOList = pqUserLedgerMapper.selectList(lambdaQueryWrapper); + if (CollUtil.isNotEmpty(pqUserLedgerPOList)) { + List userIds = pqUserLedgerPOList.stream().map(PqUserLedgerPO::getId).collect(Collectors.toList()); + assList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getUserIndex, userIds)); + List assIds = assList.stream().map(PqUserLineAssPO::getLineIndex).distinct().collect(Collectors.toList()); + lineTemUserIds = deptslineIds.stream().filter(assIds::contains).collect(Collectors.toList()); + } + + ledgerList = pqLineService.getBaseLedger(deptslineIds, largeScreenCountParam.getSearchValue()); + lineTemUserIds.addAll(ledgerList.stream().map(LedgerBaseInfoDTO::getLineId).collect(Collectors.toList())); + if (CollUtil.isEmpty(lineTemUserIds)) { + return pqsEventdetailPage; + } + if (lineTemUserIds.size() > 1000) { + List> idPartitions = CollUtil.split(lineTemUserIds, 1000); + queryWrapper.and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getLineid, pList)); + } + }); + } else { + queryWrapper.in(PqsEventdetail::getLineid, lineTemUserIds); + } + + } else { + if (deptslineIds.size() > 1000) { + List> idPartitions = CollUtil.split(deptslineIds, 1000); + queryWrapper.and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getLineid, pList)); + } + }); + } else { + queryWrapper.in(PqsEventdetail::getLineid, deptslineIds); + } + } + + List list = pqsEventdetailService.getBaseMapper().selectList(queryWrapper); + if (CollUtil.isEmpty(list)) { + return pqsEventdetailPage; + } + List pageLineIds = list.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); + List pageLedger = pqLineService.getBaseLedger(pageLineIds, null); + Map ledgerBaseInfoDTOMap = pageLedger.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + + List assLastList = pqUserLedgerMapper.getUserByParam(pageLineIds, null); + Map> mapObj = assLastList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex, Collectors.mapping(PqUserLineAssPO::getUserName, Collectors.toList()))); + + pqsEventdetailPage = list.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.setGdName(ledgerBaseInfoDTO.getGdName()); + eventDetailVO.setBusName(ledgerBaseInfoDTO.getBusBarName()); + eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName()); + } + String objName = "/"; + if (mapObj.containsKey(eventDetailVO.getLineid())) { + objName = String.join(";", mapObj.get(eventDetailVO.getLineid())); + } + eventDetailVO.setObjName(objName); + return eventDetailVO; + }).collect(Collectors.toList()); + + return pqsEventdetailPage; + } + + @Override public Page devicePage(LargeScreenCountParam largeScreenCountParam) { TimeInterval timeInterval = new TimeInterval(); - log.info("开始查询:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + log.info("开始查询:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); LocalDateTime startTime = largeScreenCountParam.getStartTime().atStartOfDay(); LocalDateTime endTime = LocalDateTimeUtil.endOfDay(largeScreenCountParam.getEndTime().atStartOfDay()); Page pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize()); - List pqLineList = (List) redisUtil.getObjectByKey( NAME_KEY+ StrUtil.DASHED+"pqLineList"); + List pqLineList = (List) redisUtil.getObjectByKey(NAME_KEY + StrUtil.DASHED + "pqLineList"); List deptslineIds = commGeneralService.getLineIdsByRedis(largeScreenCountParam.getDeptId()); - if(Objects.isNull(largeScreenCountParam.getGdIndex())){ - pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); - }else { - pqLineList = pqLineList.stream().filter(temp->deptslineIds.contains(temp.getLineIndex()) && Objects.equals(temp.getGdIndex(),largeScreenCountParam.getGdIndex())).collect(Collectors.toList()); + if (Objects.isNull(largeScreenCountParam.getGdIndex())) { + pqLineList = pqLineList.stream().filter(temp -> deptslineIds.contains(temp.getLineIndex())).collect(Collectors.toList()); + } else { + pqLineList = pqLineList.stream().filter(temp -> deptslineIds.contains(temp.getLineIndex()) && Objects.equals(temp.getGdIndex(), largeScreenCountParam.getGdIndex())).collect(Collectors.toList()); } - if(CollUtil.isEmpty(pqLineList)){ + if (CollUtil.isEmpty(pqLineList)) { return new Page<>(); } List devIndexs = pqLineList.stream().map(PqLine::getDevIndex).distinct().collect(Collectors.toList()); - log.info("完成从redis获取信息:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + log.info("完成从redis获取信息:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); //在运总数 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if(StrUtil.isNotBlank(largeScreenCountParam.getState())){ + if (StrUtil.isNotBlank(largeScreenCountParam.getState())) { - if(largeScreenCountParam.getState().equals("0")){ + if (largeScreenCountParam.getState().equals("0")) { return new Page<>(); } } - if(StrUtil.isNotBlank(largeScreenCountParam.getDevName())){ - lambdaQueryWrapper.like(StrUtil.isNotEmpty(largeScreenCountParam.getDevName()),PqDevice::getName,largeScreenCountParam.getDevName()); + if (StrUtil.isNotBlank(largeScreenCountParam.getDevName())) { + lambdaQueryWrapper.like(StrUtil.isNotEmpty(largeScreenCountParam.getDevName()), PqDevice::getName, largeScreenCountParam.getDevName()); } lambdaQueryWrapper.in(PqDevice::getDevIndex, devIndexs); List pqDeviceList = pqDeviceService.list(lambdaQueryWrapper); - log.info("完成设备查询sql:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + log.info("完成设备查询sql:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); List runDevList = pqDeviceList.stream().map(PqDevice::getDevIndex).collect(Collectors.toList()); - if(CollUtil.isEmpty(runDevList)){ + if (CollUtil.isEmpty(runDevList)) { return new Page<>(); } - List pqsDicDataList = pqsDicDataMapper.selectList(new LambdaQueryWrapper().eq(PqsDicData::getDicType,"cbb2de8a-87da-4ae9-a35c-aaab999c7bc7")); - Map pqsDicDataMap = pqsDicDataList.stream().collect(Collectors.toMap(PqsDicData::getDicIndex,Function.identity())); + List pqsDicDataList = pqsDicDataMapper.selectList(new LambdaQueryWrapper().eq(PqsDicData::getDicType, "cbb2de8a-87da-4ae9-a35c-aaab999c7bc7")); + Map pqsDicDataMap = pqsDicDataList.stream().collect(Collectors.toMap(PqsDicData::getDicIndex, Function.identity())); List bdList = new ArrayList<>(); - if(StrUtil.isNotBlank(largeScreenCountParam.getSearchValue())){ - List substationList = pqSubstationMapper.selectList(new LambdaQueryWrapper().like(PqSubstation::getName,largeScreenCountParam.getSearchValue())); - bdList = substationList.stream().map(PqSubstation::getSubIndex).collect(Collectors.toList()); + if (StrUtil.isNotBlank(largeScreenCountParam.getSearchValue())) { + List substationList = pqSubstationMapper.selectList(new LambdaQueryWrapper().like(PqSubstation::getName, largeScreenCountParam.getSearchValue())); + bdList = substationList.stream().map(PqSubstation::getSubIndex).collect(Collectors.toList()); } - Page page = pqDeviceService.lambdaQuery().in(CollUtil.isNotEmpty(bdList),PqDevice::getSubIndex,bdList) - .in(PqDevice::getDevIndex,runDevList).page(new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam))); - log.info("完成设备部门查询:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); - // pqsEventdetailPage = pqDeviceService.selectDeviceDTOPage(pqsEventdetailPage,largeScreenCountParam.getSearchValue(),runDevList); - log.info("完成设备分页查询sql:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + Page page = pqDeviceService.lambdaQuery().in(CollUtil.isNotEmpty(bdList), PqDevice::getSubIndex, bdList) + .in(PqDevice::getDevIndex, runDevList).page(new Page<>(PageFactory.getPageNum(largeScreenCountParam), PageFactory.getPageSize(largeScreenCountParam))); + log.info("完成设备部门查询:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); + // pqsEventdetailPage = pqDeviceService.selectDeviceDTOPage(pqsEventdetailPage,largeScreenCountParam.getSearchValue(),runDevList); + log.info("完成设备分页查询sql:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); List deviceDTOList = page.getRecords(); - if(!CollectionUtils.isEmpty(deviceDTOList)){ + if (!CollectionUtils.isEmpty(deviceDTOList)) { //临时处理 - deviceDTOList.forEach(it->it.setStatus(1)); + deviceDTOList.forEach(it -> it.setStatus(1)); List devIds = deviceDTOList.stream().map(PqDevice::getDevIndex).collect(Collectors.toList()); - log.info("在线率查询sql开始:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); - List onlineList = pqsOnlinerateService.lambdaQuery().in(PqsOnlinerate::getDevIndex,devIds).between(PqsOnlinerate::getTimeid, startTime, endTime).list(); - log.info("在线率查询sql结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + log.info("在线率查询sql开始:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); + List onlineList = pqsOnlinerateService.lambdaQuery().in(PqsOnlinerate::getDevIndex, devIds).between(PqsOnlinerate::getTimeid, startTime, endTime).list(); + log.info("在线率查询sql结束:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); - List inteList = pqLineList.stream().filter(it->devIds.contains(it.getDevIndex())).collect(Collectors.toList()); - Map> lineMap = inteList.stream().collect(Collectors.groupingBy(PqLine::getDevIndex,Collectors.mapping(PqLine::getLineIndex,Collectors.toList()))); + List inteList = pqLineList.stream().filter(it -> devIds.contains(it.getDevIndex())).collect(Collectors.toList()); + Map> lineMap = inteList.stream().collect(Collectors.groupingBy(PqLine::getDevIndex, Collectors.mapping(PqLine::getLineIndex, Collectors.toList()))); List inteIds = inteList.stream().map(PqLine::getLineIndex).collect(Collectors.toList()); - Map inteDevMap = new HashMap<>(); - log.info("完整性查询sql开始:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); - List pqsIntegrityList = pqsIntegrityMapper.selectList(new LambdaQueryWrapper().in(PqsIntegrity::getLineIndex,inteIds).between(PqsIntegrity::getTimeID, startTime, endTime)); - log.info("完整性查询sql结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); - lineMap.forEach((dev,lineList)->{ - double rate = pqsIntegrityList.stream().filter(it->lineList.contains(it.getLineIndex())).mapToDouble(it->it.getReal()*1.0/(it.getDue())).average().orElse(0.0); - inteDevMap.put(dev,rate); + Map inteDevMap = new HashMap<>(); + log.info("完整性查询sql开始:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); + List pqsIntegrityList = pqsIntegrityMapper.selectList(new LambdaQueryWrapper().in(PqsIntegrity::getLineIndex, inteIds).between(PqsIntegrity::getTimeID, startTime, endTime)); + log.info("完整性查询sql结束:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); + lineMap.forEach((dev, lineList) -> { + double rate = pqsIntegrityList.stream().filter(it -> lineList.contains(it.getLineIndex())).mapToDouble(it -> it.getReal() * 1.0 / (it.getDue())).average().orElse(0.0); + inteDevMap.put(dev, rate); }); - List deviceDetailList = pqDeviceDetailMapper.selectList(new LambdaQueryWrapper().in(PqDeviceDetail::getDevIndex,devIds)); - Map devMap = deviceDetailList.stream().collect(Collectors.toMap(PqDeviceDetail::getDevIndex,Function.identity())); + List deviceDetailList = pqDeviceDetailMapper.selectList(new LambdaQueryWrapper().in(PqDeviceDetail::getDevIndex, devIds)); + Map devMap = deviceDetailList.stream().collect(Collectors.toMap(PqDeviceDetail::getDevIndex, Function.identity())); List gdIds = deviceDTOList.stream().map(PqDevice::getGdIndex).collect(Collectors.toList()); - List pqGdCompanyList = pqGdCompanyMapper.selectList(new LambdaQueryWrapper().in(PqGdCompany::getGdIndex,gdIds)); - Map gdMap = pqGdCompanyList.stream().collect(Collectors.toMap(PqGdCompany::getGdIndex,Function.identity())); + List pqGdCompanyList = pqGdCompanyMapper.selectList(new LambdaQueryWrapper().in(PqGdCompany::getGdIndex, gdIds)); + Map gdMap = pqGdCompanyList.stream().collect(Collectors.toMap(PqGdCompany::getGdIndex, Function.identity())); List bdIds = deviceDTOList.stream().map(PqDevice::getSubIndex).collect(Collectors.toList()); - List substationList = pqSubstationMapper.selectList(new LambdaQueryWrapper().in(PqSubstation::getSubIndex,bdIds)); - Map bdMap = substationList.stream().collect(Collectors.toMap(PqSubstation::getSubIndex,Function.identity())); + List substationList = pqSubstationMapper.selectList(new LambdaQueryWrapper().in(PqSubstation::getSubIndex, bdIds)); + Map bdMap = substationList.stream().collect(Collectors.toMap(PqSubstation::getSubIndex, Function.identity())); - List lineList = pqLineList.stream().filter(it->devIds.contains(it.getDevIndex())).collect(Collectors.toList()); - List deptslineList = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getLineIndex,lineList.stream().map(PqLine::getLineIndex).collect(Collectors.toList())).eq(PqsDeptsline::getSystype,sysTypeZt).list(); + List lineList = pqLineList.stream().filter(it -> devIds.contains(it.getDevIndex())).collect(Collectors.toList()); + List deptslineList = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getLineIndex, lineList.stream().map(PqLine::getLineIndex).collect(Collectors.toList())).eq(PqsDeptsline::getSystype, sysTypeZt).list(); - Map pqsDeptsMap = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState,1).list().stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex,Function.identity())); + Map pqsDeptsMap = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState, 1).list().stream().collect(Collectors.toMap(PqsDepts::getDeptsIndex, Function.identity())); - Map map = deptslineList.stream().collect(Collectors.toMap(PqsDeptsline::getLineIndex,Function.identity())); - Map temMap = new HashMap<>(); - map.forEach((lineId,deptline)->{ + Map map = deptslineList.stream().collect(Collectors.toMap(PqsDeptsline::getLineIndex, Function.identity())); + Map temMap = new HashMap<>(); + map.forEach((lineId, deptline) -> { String deptName = pqsDeptsMap.get(deptline.getDeptsIndex()).getDeptsname(); - temMap.put(lineId,deptName); + temMap.put(lineId, deptName); }); - lineList.forEach(it->it.setDeptName(temMap.get(it.getLineIndex()))); - Map> pqLineMap = lineList.stream().collect(Collectors.groupingBy(PqLine::getDevIndex)); + lineList.forEach(it -> it.setDeptName(temMap.get(it.getLineIndex()))); + Map> pqLineMap = lineList.stream().collect(Collectors.groupingBy(PqLine::getDevIndex)); List result = new ArrayList<>(); - for(PqDevice pqDevice : deviceDTOList){ + for (PqDevice pqDevice : deviceDTOList) { DeviceDTO dto = new DeviceDTO(); dto.setDevId(pqDevice.getDevIndex()); dto.setDevName(pqDevice.getName()); dto.setIp(pqDevice.getIp()); List tempList = onlineList.stream().filter(temp -> Objects.equals(temp.getDevIndex(), pqDevice.getDevIndex())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(tempList)){ + if (!CollectionUtils.isEmpty(tempList)) { double asDouble = tempList.stream().mapToDouble(temp -> (double) (temp.getOnlinemin() * 100) / (temp.getOfflinemin() + temp.getOnlinemin())).average().getAsDouble(); dto.setOnLineRate(new BigDecimal(asDouble).setScale(2, RoundingMode.UP).doubleValue()); } - dto.setIntegrityRate(inteDevMap.containsKey(pqDevice.getDevIndex())? BigDecimal.valueOf(inteDevMap.get(pqDevice.getDevIndex()) * 100).setScale(2,RoundingMode.UP).doubleValue():0); + dto.setIntegrityRate(inteDevMap.containsKey(pqDevice.getDevIndex()) ? BigDecimal.valueOf(inteDevMap.get(pqDevice.getDevIndex()) * 100).setScale(2, RoundingMode.UP).doubleValue() : 0); PqDeviceDetail pqDeviceDetail = devMap.get(pqDevice.getDevIndex().longValue()); dto.setManufacturerName(pqDeviceDetail.getManufacturer()); @@ -1361,7 +1479,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { dto.setLogonTime(pqDevice.getLogontime()); dto.setDeptName(pqLineMap.get(pqDevice.getDevIndex()).get(0).getDeptName()); - if(pqsDicDataMap.containsKey(pqDeviceDetail.getManufacturer())){ + if (pqsDicDataMap.containsKey(pqDeviceDetail.getManufacturer())) { dto.setManufacturerName(pqsDicDataMap.get(pqDeviceDetail.getManufacturer()).getDicName()); } result.add(dto); @@ -1370,7 +1488,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { pqsEventdetailPage.setRecords(result); pqsEventdetailPage.setTotal(page.getTotal()); } - log.info("所有程序结束:"+timeInterval.intervalMs()+"ms; "+timeInterval.intervalSecond()+"s"); + log.info("所有程序结束:" + timeInterval.intervalMs() + "ms; " + timeInterval.intervalSecond() + "s"); return pqsEventdetailPage; } @@ -1437,19 +1555,19 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { Page pqsEventdetailPage = new Page<>(largeScreenCountParam.getPageNum(), largeScreenCountParam.getPageSize()); List eventIds = largeScreenCountParam.getEventIds(); - if (CollectionUtils.isEmpty(eventIds)){ + if (CollectionUtils.isEmpty(eventIds)) { return new Page<>(); } QueryWrapper queryWrapper = new QueryWrapper<>(); - if (eventIds.size()>1000) { - List> idPartitions = CollUtil.split(eventIds,1000); + if (eventIds.size() > 1000) { + List> idPartitions = CollUtil.split(eventIds, 1000); queryWrapper.lambda() - .and(ew->{ - for(List pList: idPartitions){ - ew.or(w->w.in(PqsEventdetail::getEventdetailIndex, pList)); + .and(ew -> { + for (List pList : idPartitions) { + ew.or(w -> w.in(PqsEventdetail::getEventdetailIndex, pList)); } }).orderByDesc(PqsEventdetail::getTimeid); @@ -1459,10 +1577,10 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { .in(PqsEventdetail::getEventdetailIndex, eventIds) .orderByDesc(PqsEventdetail::getTimeid); } - IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage,queryWrapper); + IPage list = pqsEventdetailService.getBaseMapper().selectPage(pqsEventdetailPage, queryWrapper); List indexIds = list.getRecords().stream().map(PqsEventdetail::getLineid).collect(Collectors.toList()); List pqLineList = pqLineService.getBaseLineInfo(indexIds); - Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); List collect = list.getRecords().stream().map(temp -> { EventDetailVO eventDetailVO = new EventDetailVO(); @@ -1474,7 +1592,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setEventvalue(temp.getEventvalue()); eventDetailVO.setLookFlag(temp.getLookFlag()); eventDetailVO.setNoticeFlag(temp.getNoticeFlag()); - if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){ + if (ledgerBaseInfoDTOMap.containsKey(temp.getLineid())) { LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid()); eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId()); eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName()); @@ -1491,18 +1609,18 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { return returnpage; } - private List change(List list,List handleMsg){ + private List change(List list, List handleMsg) { List result = new ArrayList<>(); - if(CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { return result; } List lineidList = list.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); List pqLineList = pqLineService.getBaseLineInfo(lineidList); - Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); - result = list.stream().map(temp -> { + result = list.stream().map(temp -> { EventDetailVO eventDetailVO = new EventDetailVO(); eventDetailVO.setEventdetail_index(temp.getEventdetailIndex()); eventDetailVO.setTimeid(temp.getTimeid()); @@ -1512,13 +1630,13 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setEventvalue(temp.getEventvalue()); eventDetailVO.setLookFlag(temp.getLookFlag()); eventDetailVO.setNoticeFlag(temp.getNoticeFlag()); - if( temp.getEventvalue()< 0.5){ - eventDetailVO.setEventSeverity(1); - }else{ - eventDetailVO.setEventSeverity(2); + if (temp.getEventvalue() < 0.5) { + eventDetailVO.setEventSeverity(1); + } else { + eventDetailVO.setEventSeverity(2); } - eventDetailVO.setMsgEventInfoSize(handleMsg.stream().filter(msg->Objects.equals(msg.getEventIndex(),temp.getEventdetailIndex())).count()); - if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){ + eventDetailVO.setMsgEventInfoSize(handleMsg.stream().filter(msg -> Objects.equals(msg.getEventIndex(), temp.getEventdetailIndex())).count()); + if (ledgerBaseInfoDTOMap.containsKey(temp.getLineid())) { LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid()); eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId()); eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName()); @@ -1534,6 +1652,4 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { } - - }